react-semaphor 0.1.192 → 0.1.193
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/{calendar-preferences-dialog-CMM-uye9.js → calendar-preferences-dialog-B8R2MaI1.js} +1 -1
- package/dist/chunks/{calendar-preferences-dialog-wu_fGBRY.js → calendar-preferences-dialog-B9bwWqMI.js} +1 -1
- package/dist/chunks/{dashboard-controls-CZiglER8.js → dashboard-controls-BB-6s-Ht.js} +5 -5
- package/dist/chunks/{dashboard-controls-DZ3RdkPp.js → dashboard-controls-ehLCW0nC.js} +1 -1
- package/dist/chunks/{dashboard-json-CBLwtP5m.js → dashboard-json-BlY0uqcf.js} +1 -1
- package/dist/chunks/{dashboard-json-DxsH7NvN.js → dashboard-json-CSA80k9J.js} +1 -1
- package/dist/chunks/{edit-dashboard-visual-CdR2ywTB.js → edit-dashboard-visual-D5zVmGO7.js} +2 -2
- package/dist/chunks/{edit-dashboard-visual-DyvG8L5y.js → edit-dashboard-visual-_s5p9j5B.js} +1 -1
- package/dist/chunks/{editor-action-buttons-DRX64gHq.js → editor-action-buttons-B452b6bO.js} +1 -1
- package/dist/chunks/{editor-action-buttons-BvRPaQoF.js → editor-action-buttons-Vkwsm2kl.js} +2 -2
- package/dist/chunks/{index-C5wrl3dy.js → index-C5XVrMzP.js} +408 -411
- package/dist/chunks/{index-BmPlQ_Vy.js → index-DEzod5lN.js} +3 -3
- package/dist/chunks/{notification-bell-sAl4kF0A.js → notification-bell-BTLjXwXd.js} +1 -1
- package/dist/chunks/{notification-bell-C4cn4uYe.js → notification-bell-e236UlND.js} +3 -3
- package/dist/chunks/{resource-management-panel-DRpbtjWO.js → resource-management-panel-BuyYkjBW.js} +3 -3
- package/dist/chunks/{resource-management-panel-DNffk7G6.js → resource-management-panel-XB3llD7A.js} +1 -1
- package/dist/chunks/{use-role-aware-display-preferences-DEWoTnfO.js → use-role-aware-display-preferences-DmiYlSDa.js} +1 -1
- package/dist/chunks/{use-role-aware-display-preferences-BIAB5o80.js → use-role-aware-display-preferences-MtOAYA2Y.js} +1 -1
- package/dist/chunks/{use-visual-utils-BMqAflAg.js → use-visual-utils-B3dd_yYT.js} +1 -1
- package/dist/chunks/{use-visual-utils-BfZLkFD4.js → use-visual-utils-CYy0761D.js} +1 -1
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +6 -6
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +2 -2
- package/package.json +1 -1
|
@@ -1074,8 +1074,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
1074
1074
|
|
|
1075
1075
|
`)},flush(e){e.enqueue(`data: [DONE]
|
|
1076
1076
|
|
|
1077
|
-
`)}})}});var AZe=EKe(()=>wee(vi([ir({type:Lt("text-start"),id:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("text-delta"),id:ft(),delta:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("text-end"),id:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("error"),errorText:ft()}),ir({type:Lt("tool-input-start"),toolCallId:ft(),toolName:ft(),providerExecuted:co().optional(),dynamic:co().optional()}),ir({type:Lt("tool-input-delta"),toolCallId:ft(),inputTextDelta:ft()}),ir({type:Lt("tool-input-available"),toolCallId:ft(),toolName:ft(),input:ya(),providerExecuted:co().optional(),providerMetadata:Sr.optional(),dynamic:co().optional()}),ir({type:Lt("tool-input-error"),toolCallId:ft(),toolName:ft(),input:ya(),providerExecuted:co().optional(),providerMetadata:Sr.optional(),dynamic:co().optional(),errorText:ft()}),ir({type:Lt("tool-output-available"),toolCallId:ft(),output:ya(),providerExecuted:co().optional(),dynamic:co().optional(),preliminary:co().optional()}),ir({type:Lt("tool-output-error"),toolCallId:ft(),errorText:ft(),providerExecuted:co().optional(),dynamic:co().optional()}),ir({type:Lt("reasoning-start"),id:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("reasoning-delta"),id:ft(),delta:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("reasoning-end"),id:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("source-url"),sourceId:ft(),url:ft(),title:ft().optional(),providerMetadata:Sr.optional()}),ir({type:Lt("source-document"),sourceId:ft(),mediaType:ft(),title:ft(),filename:ft().optional(),providerMetadata:Sr.optional()}),ir({type:Lt("file"),url:ft(),mediaType:ft(),providerMetadata:Sr.optional()}),ir({type:gee(e=>typeof e=="string"&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:ft().optional(),data:ya(),transient:co().optional()}),ir({type:Lt("start-step")}),ir({type:Lt("finish-step")}),ir({type:Lt("start"),messageId:ft().optional(),messageMetadata:ya().optional()}),ir({type:Lt("finish"),finishReason:hee(["stop","length","content-filter","tool-calls","error","other","unknown"]).optional(),messageMetadata:ya().optional()}),ir({type:Lt("abort")}),ir({type:Lt("message-metadata"),messageMetadata:ya()})])));function PZe(e){return e.type.startsWith("data-")}function Tee(e,t){if(e===void 0&&t===void 0)return;if(e===void 0)return t;if(t===void 0)return e;const n={...e};for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)){const s=t[r];if(s===void 0)continue;const o=r in e?e[r]:void 0,i=s!==null&&typeof s=="object"&&!Array.isArray(s)&&!(s instanceof Date)&&!(s instanceof RegExp),a=o!=null&&typeof o=="object"&&!Array.isArray(o)&&!(o instanceof Date)&&!(o instanceof RegExp);i&&a?n[r]=Tee(o,s):n[r]=s}return n}function OZe(e){const t=["ROOT"];let n=-1,r=null;function s(l,u,d){switch(l){case'"':{n=u,t.pop(),t.push(d),t.push("INSIDE_STRING");break}case"f":case"t":case"n":{n=u,r=u,t.pop(),t.push(d),t.push("INSIDE_LITERAL");break}case"-":{t.pop(),t.push(d),t.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{n=u,t.pop(),t.push(d),t.push("INSIDE_NUMBER");break}case"{":{n=u,t.pop(),t.push(d),t.push("INSIDE_OBJECT_START");break}case"[":{n=u,t.pop(),t.push(d),t.push("INSIDE_ARRAY_START");break}}}function o(l,u){switch(l){case",":{t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{n=u,t.pop();break}}}function i(l,u){switch(l){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{n=u,t.pop();break}}}for(let l=0;l<e.length;l++){const u=e[l];switch(t[t.length-1]){case"ROOT":s(u,l,"FINISH");break;case"INSIDE_OBJECT_START":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}case"}":{n=l,t.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(u){case":":{t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{s(u,l,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{o(u,l);break}case"INSIDE_STRING":{switch(u){case'"':{t.pop(),n=l;break}case"\\":{t.push("INSIDE_STRING_ESCAPE");break}default:n=l}break}case"INSIDE_ARRAY_START":{switch(u){case"]":{n=l,t.pop();break}default:{n=l,s(u,l,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(u){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{n=l,t.pop();break}default:{n=l;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{s(u,l,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{t.pop(),n=l;break}case"INSIDE_NUMBER":{switch(u){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{n=l;break}case"e":case"E":case"-":case".":break;case",":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&o(u,l);break}case"}":{t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&o(u,l);break}case"]":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l);break}default:{t.pop();break}}break}case"INSIDE_LITERAL":{const f=e.substring(r,l+1);!"false".startsWith(f)&&!"true".startsWith(f)&&!"null".startsWith(f)?(t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?o(u,l):t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l)):n=l;break}}}let a=e.slice(0,n+1);for(let l=t.length-1;l>=0;l--)switch(t[l]){case"INSIDE_STRING":{a+='"';break}case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":{a+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{a+="]";break}case"INSIDE_LITERAL":{const d=e.substring(r,e.length);"true".startsWith(d)?a+="true".slice(d.length):"false".startsWith(d)?a+="false".slice(d.length):"null".startsWith(d)&&(a+="null".slice(d.length))}}return a}async function Mee(e){if(e===void 0)return{value:void 0,state:"undefined-input"};let t=await j1({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await j1({text:OZe(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}function $v(e){return e.type.startsWith("tool-")}function FZe(e){return e.type==="dynamic-tool"}function J_(e){return $v(e)||FZe(e)}function h6(e){return e.type.split("-").slice(1).join("-")}function $Ze({lastMessage:e,messageId:t}){return{message:(e==null?void 0:e.role)==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function LZe({stream:e,messageMetadataSchema:t,dataPartSchemas:n,runUpdateMessageJob:r,onError:s,onToolCall:o,onData:i}){return e.pipeThrough(new TransformStream({async transform(a,l){await r(async({state:u,write:d})=>{var f,h,m,p;function g(w){const S=u.message.parts.filter($v).find(N=>N.toolCallId===w);if(S==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return S}function b(w){const S=u.message.parts.filter(N=>N.type==="dynamic-tool").find(N=>N.toolCallId===w);if(S==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return S}function x(w){var j;const S=u.message.parts.find(_=>$v(_)&&_.toolCallId===w.toolCallId),N=w,E=S;S!=null?(S.state=w.state,E.input=N.input,E.output=N.output,E.errorText=N.errorText,E.rawInput=N.rawInput,E.preliminary=N.preliminary,E.providerExecuted=(j=N.providerExecuted)!=null?j:S.providerExecuted,N.providerMetadata!=null&&S.state==="input-available"&&(S.callProviderMetadata=N.providerMetadata)):u.message.parts.push({type:`tool-${w.toolName}`,toolCallId:w.toolCallId,state:w.state,input:N.input,output:N.output,rawInput:N.rawInput,errorText:N.errorText,providerExecuted:N.providerExecuted,preliminary:N.preliminary,...N.providerMetadata!=null?{callProviderMetadata:N.providerMetadata}:{}})}function y(w){var j,S;const N=u.message.parts.find(k=>k.type==="dynamic-tool"&&k.toolCallId===w.toolCallId),E=w,_=N;N!=null?(N.state=w.state,_.toolName=w.toolName,_.input=E.input,_.output=E.output,_.errorText=E.errorText,_.rawInput=(j=E.rawInput)!=null?j:_.rawInput,_.preliminary=E.preliminary,_.providerExecuted=(S=E.providerExecuted)!=null?S:N.providerExecuted,E.providerMetadata!=null&&N.state==="input-available"&&(N.callProviderMetadata=E.providerMetadata)):u.message.parts.push({type:"dynamic-tool",toolName:w.toolName,toolCallId:w.toolCallId,state:w.state,input:E.input,output:E.output,errorText:E.errorText,preliminary:E.preliminary,providerExecuted:E.providerExecuted,...E.providerMetadata!=null?{callProviderMetadata:E.providerMetadata}:{}})}async function v(w){if(w!=null){const j=u.message.metadata!=null?Tee(u.message.metadata,w):w;t!=null&&await l6({value:j,schema:t}),u.message.metadata=j}}switch(a.type){case"text-start":{const w={type:"text",text:"",providerMetadata:a.providerMetadata,state:"streaming"};u.activeTextParts[a.id]=w,u.message.parts.push(w),d();break}case"text-delta":{const w=u.activeTextParts[a.id];w.text+=a.delta,w.providerMetadata=(f=a.providerMetadata)!=null?f:w.providerMetadata,d();break}case"text-end":{const w=u.activeTextParts[a.id];w.state="done",w.providerMetadata=(h=a.providerMetadata)!=null?h:w.providerMetadata,delete u.activeTextParts[a.id],d();break}case"reasoning-start":{const w={type:"reasoning",text:"",providerMetadata:a.providerMetadata,state:"streaming"};u.activeReasoningParts[a.id]=w,u.message.parts.push(w),d();break}case"reasoning-delta":{const w=u.activeReasoningParts[a.id];w.text+=a.delta,w.providerMetadata=(m=a.providerMetadata)!=null?m:w.providerMetadata,d();break}case"reasoning-end":{const w=u.activeReasoningParts[a.id];w.providerMetadata=(p=a.providerMetadata)!=null?p:w.providerMetadata,w.state="done",delete u.activeReasoningParts[a.id],d();break}case"file":{u.message.parts.push({type:"file",mediaType:a.mediaType,url:a.url}),d();break}case"source-url":{u.message.parts.push({type:"source-url",sourceId:a.sourceId,url:a.url,title:a.title,providerMetadata:a.providerMetadata}),d();break}case"source-document":{u.message.parts.push({type:"source-document",sourceId:a.sourceId,mediaType:a.mediaType,title:a.title,filename:a.filename,providerMetadata:a.providerMetadata}),d();break}case"tool-input-start":{const w=u.message.parts.filter($v);u.partialToolCalls[a.toolCallId]={text:"",toolName:a.toolName,index:w.length,dynamic:a.dynamic},a.dynamic?y({toolCallId:a.toolCallId,toolName:a.toolName,state:"input-streaming",input:void 0,providerExecuted:a.providerExecuted}):x({toolCallId:a.toolCallId,toolName:a.toolName,state:"input-streaming",input:void 0,providerExecuted:a.providerExecuted}),d();break}case"tool-input-delta":{const w=u.partialToolCalls[a.toolCallId];w.text+=a.inputTextDelta;const{value:j}=await Mee(w.text);w.dynamic?y({toolCallId:a.toolCallId,toolName:w.toolName,state:"input-streaming",input:j}):x({toolCallId:a.toolCallId,toolName:w.toolName,state:"input-streaming",input:j}),d();break}case"tool-input-available":{a.dynamic?y({toolCallId:a.toolCallId,toolName:a.toolName,state:"input-available",input:a.input,providerExecuted:a.providerExecuted,providerMetadata:a.providerMetadata}):x({toolCallId:a.toolCallId,toolName:a.toolName,state:"input-available",input:a.input,providerExecuted:a.providerExecuted,providerMetadata:a.providerMetadata}),d(),o&&!a.providerExecuted&&await o({toolCall:a});break}case"tool-input-error":{a.dynamic?y({toolCallId:a.toolCallId,toolName:a.toolName,state:"output-error",input:a.input,errorText:a.errorText,providerExecuted:a.providerExecuted,providerMetadata:a.providerMetadata}):x({toolCallId:a.toolCallId,toolName:a.toolName,state:"output-error",input:void 0,rawInput:a.input,errorText:a.errorText,providerExecuted:a.providerExecuted,providerMetadata:a.providerMetadata}),d();break}case"tool-output-available":{if(a.dynamic){const w=b(a.toolCallId);y({toolCallId:a.toolCallId,toolName:w.toolName,state:"output-available",input:w.input,output:a.output,preliminary:a.preliminary})}else{const w=g(a.toolCallId);x({toolCallId:a.toolCallId,toolName:h6(w),state:"output-available",input:w.input,output:a.output,providerExecuted:a.providerExecuted,preliminary:a.preliminary})}d();break}case"tool-output-error":{if(a.dynamic){const w=b(a.toolCallId);y({toolCallId:a.toolCallId,toolName:w.toolName,state:"output-error",input:w.input,errorText:a.errorText,providerExecuted:a.providerExecuted})}else{const w=g(a.toolCallId);x({toolCallId:a.toolCallId,toolName:h6(w),state:"output-error",input:w.input,rawInput:w.rawInput,errorText:a.errorText,providerExecuted:a.providerExecuted})}d();break}case"start-step":{u.message.parts.push({type:"step-start"});break}case"finish-step":{u.activeTextParts={},u.activeReasoningParts={};break}case"start":{a.messageId!=null&&(u.message.id=a.messageId),await v(a.messageMetadata),(a.messageId!=null||a.messageMetadata!=null)&&d();break}case"finish":{a.finishReason!=null&&(u.finishReason=a.finishReason),await v(a.messageMetadata),a.messageMetadata!=null&&d();break}case"message-metadata":{await v(a.messageMetadata),a.messageMetadata!=null&&d();break}case"error":{s==null||s(new Error(a.errorText));break}default:if(PZe(a)){(n==null?void 0:n[a.type])!=null&&await l6({value:a.data,schema:n[a.type]});const w=a;if(w.transient){i==null||i(w);break}const j=w.id!=null?u.message.parts.find(S=>w.type===S.type&&w.id===S.id):void 0;j!=null?j.data=w.data:u.message.parts.push(w),i==null||i(w),d()}}l.enqueue(a)})}}))}async function zZe({stream:e,onError:t}){const n=e.getReader();try{for(;;){const{done:r}=await n.read();if(r)break}}catch(r){t==null||t(r)}finally{n.releaseLock()}}Ay({prefix:"aitxt",size:24});Ay({prefix:"aiobj",size:24});var BZe=class{constructor(){this.queue=[],this.isProcessing=!1}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;)await this.queue[0](),this.queue.shift();this.isProcessing=!1}}async run(e){return new Promise((t,n)=>{this.queue.push(async()=>{try{await e(),t()}catch(r){n(r)}}),this.processQueue()})}};Ay({prefix:"aiobj",size:24});var VZe={};jZe(VZe,{object:()=>UZe,text:()=>HZe});var HZe=()=>({type:"text",responseFormat:{type:"text"},async parsePartial({text:e}){return{partial:e}},async parseOutput({text:e}){return e}}),UZe=({schema:e})=>{const t=CZe(e);return{type:"object",responseFormat:{type:"json",schema:t.jsonSchema},async parsePartial({text:n}){const r=await Mee(n);switch(r.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:r.value};default:{const s=r.state;throw new Error(`Unsupported parse state: ${s}`)}}},async parseOutput({text:n},r){const s=await j1({text:n});if(!s.success)throw new d6({message:"No object generated: could not parse the response.",cause:s.error,text:n,response:r.response,usage:r.usage,finishReason:r.finishReason});const o=await _A({value:s.value,schema:t});if(!o.success)throw new d6({message:"No object generated: response did not match schema.",cause:o.error,text:n,response:r.response,usage:r.usage,finishReason:r.finishReason});return o.value}}};async function WZe(e){if(e==null)return[];if(!globalThis.FileList||!(e instanceof globalThis.FileList))throw new Error("FileList is not supported in the current environment");return Promise.all(Array.from(e).map(async t=>{const{name:n,type:r}=t,s=await new Promise((o,i)=>{const a=new FileReader;a.onload=l=>{var u;o((u=l.target)==null?void 0:u.result)},a.onerror=l=>i(l),a.readAsDataURL(t)});return{type:"file",mediaType:r,filename:n,url:s}}))}var qZe=class{constructor({api:e="/api/chat",credentials:t,headers:n,body:r,fetch:s,prepareSendMessagesRequest:o,prepareReconnectToStreamRequest:i}){this.api=e,this.credentials=t,this.headers=n,this.body=r,this.fetch=s,this.prepareSendMessagesRequest=o,this.prepareReconnectToStreamRequest=i}async sendMessages({abortSignal:e,...t}){var n,r,s,o,i;const a=await nh(this.body),l=await nh(this.headers),u=await nh(this.credentials),d={...ed(l),...ed(t.headers)},f=await((n=this.prepareSendMessagesRequest)==null?void 0:n.call(this,{api:this.api,id:t.chatId,messages:t.messages,body:{...a,...t.body},headers:d,credentials:u,requestMetadata:t.metadata,trigger:t.trigger,messageId:t.messageId})),h=(r=f==null?void 0:f.api)!=null?r:this.api,m=(f==null?void 0:f.headers)!==void 0?ed(f.headers):d,p=(f==null?void 0:f.body)!==void 0?f.body:{...a,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},g=(s=f==null?void 0:f.credentials)!=null?s:u,x=await((o=this.fetch)!=null?o:globalThis.fetch)(h,{method:"POST",headers:i6({"Content-Type":"application/json",...m},`ai-sdk/${f6}`,o6()),body:JSON.stringify(p),credentials:g,signal:e});if(!x.ok)throw new Error((i=await x.text())!=null?i:"Failed to fetch the chat response.");if(!x.body)throw new Error("The response body is empty.");return this.processResponseStream(x.body)}async reconnectToStream(e){var t,n,r,s,o;const i=await nh(this.body),a=await nh(this.headers),l=await nh(this.credentials),u={...ed(a),...ed(e.headers)},d=await((t=this.prepareReconnectToStreamRequest)==null?void 0:t.call(this,{api:this.api,id:e.chatId,body:{...i,...e.body},headers:u,credentials:l,requestMetadata:e.metadata})),f=(n=d==null?void 0:d.api)!=null?n:`${this.api}/${e.chatId}/stream`,h=(d==null?void 0:d.headers)!==void 0?ed(d.headers):u,m=(r=d==null?void 0:d.credentials)!=null?r:l,g=await((s=this.fetch)!=null?s:globalThis.fetch)(f,{method:"GET",headers:i6(h,`ai-sdk/${f6}`,o6()),credentials:m});if(g.status===204)return null;if(!g.ok)throw new Error((o=await g.text())!=null?o:"Failed to fetch the chat response.");if(!g.body)throw new Error("The response body is empty.");return this.processResponseStream(g.body)}},MA=class extends qZe{constructor(e={}){super(e)}processResponseStream(e){return MKe({stream:e,schema:AZe}).pipeThrough(new TransformStream({async transform(t,n){if(!t.success)throw t.error;n.enqueue(t.value)}}))}},YZe=class{constructor({generateId:e=vKe,id:t=e(),transport:n=new MA,messageMetadataSchema:r,dataPartSchemas:s,state:o,onError:i,onToolCall:a,onFinish:l,onData:u,sendAutomaticallyWhen:d}){this.activeResponse=void 0,this.jobExecutor=new BZe,this.sendMessage=async(f,h)=>{var m,p,g,b;if(f==null){await this.makeRequest({trigger:"submit-message",messageId:(m=this.lastMessage)==null?void 0:m.id,...h});return}let x;if("text"in f||"files"in f?x={parts:[...Array.isArray(f.files)?f.files:await WZe(f.files),..."text"in f&&f.text!=null?[{type:"text",text:f.text}]:[]]}:x=f,f.messageId!=null){const y=this.state.messages.findIndex(v=>v.id===f.messageId);if(y===-1)throw new Error(`message with id ${f.messageId} not found`);if(this.state.messages[y].role!=="user")throw new Error(`message with id ${f.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,y+1),this.state.replaceMessage(y,{...x,id:f.messageId,role:(p=x.role)!=null?p:"user",metadata:f.metadata})}else this.state.pushMessage({...x,id:(g=x.id)!=null?g:this.generateId(),role:(b=x.role)!=null?b:"user",metadata:f.metadata});await this.makeRequest({trigger:"submit-message",messageId:f.messageId,...h})},this.regenerate=async({messageId:f,...h}={})=>{const m=f==null?this.state.messages.length-1:this.state.messages.findIndex(p=>p.id===f);if(m===-1)throw new Error(`message ${f} not found`);this.state.messages=this.state.messages.slice(0,this.messages[m].role==="assistant"?m:m+1),await this.makeRequest({trigger:"regenerate-message",messageId:f,...h})},this.resumeStream=async(f={})=>{await this.makeRequest({trigger:"resume-stream",...f})},this.clearError=()=>{this.status==="error"&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolOutput=async({state:f="output-available",tool:h,toolCallId:m,output:p,errorText:g})=>this.jobExecutor.run(async()=>{var b,x;const y=this.state.messages,v=y[y.length-1];this.state.replaceMessage(y.length-1,{...v,parts:v.parts.map(w=>J_(w)&&w.toolCallId===m?{...w,state:f,output:p,errorText:g}:w)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(w=>J_(w)&&w.toolCallId===m?{...w,state:f,output:p,errorText:g}:w)),this.status!=="streaming"&&this.status!=="submitted"&&((b=this.sendAutomaticallyWhen)!=null&&b.call(this,{messages:this.state.messages}))&&this.makeRequest({trigger:"submit-message",messageId:(x=this.lastMessage)==null?void 0:x.id})}),this.addToolResult=this.addToolOutput,this.stop=async()=>{var f;this.status!=="streaming"&&this.status!=="submitted"||(f=this.activeResponse)!=null&&f.abortController&&this.activeResponse.abortController.abort()},this.id=t,this.transport=n,this.generateId=e,this.messageMetadataSchema=r,this.dataPartSchemas=s,this.state=o,this.onError=i,this.onToolCall=a,this.onFinish=l,this.onData=u,this.sendAutomaticallyWhen=d}get status(){return this.state.status}setStatus({status:e,error:t}){this.status!==e&&(this.state.status=e,this.state.error=t)}get error(){return this.state.error}get messages(){return this.state.messages}get lastMessage(){return this.state.messages[this.state.messages.length-1]}set messages(e){this.state.messages=e}async makeRequest({trigger:e,metadata:t,headers:n,body:r,messageId:s}){var o,i,a,l;this.setStatus({status:"submitted",error:void 0});const u=this.lastMessage;let d=!1,f=!1,h=!1;try{const m={state:$Ze({lastMessage:this.state.snapshot(u),messageId:this.generateId()}),abortController:new AbortController};m.abortController.signal.addEventListener("abort",()=>{d=!0}),this.activeResponse=m;let p;if(e==="resume-stream"){const b=await this.transport.reconnectToStream({chatId:this.id,metadata:t,headers:n,body:r});if(b==null){this.setStatus({status:"ready"});return}p=b}else p=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:m.abortController.signal,metadata:t,headers:n,body:r,trigger:e,messageId:s});const g=b=>this.jobExecutor.run(()=>b({state:m.state,write:()=>{var x;this.setStatus({status:"streaming"}),m.state.message.id===((x=this.lastMessage)==null?void 0:x.id)?this.state.replaceMessage(this.state.messages.length-1,m.state.message):this.state.pushMessage(m.state.message)}}));await zZe({stream:LZe({stream:p,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:g,onError:b=>{throw b}}),onError:b=>{throw b}}),this.setStatus({status:"ready"})}catch(m){if(d||m.name==="AbortError")return d=!0,this.setStatus({status:"ready"}),null;h=!0,m instanceof TypeError&&(m.message.toLowerCase().includes("fetch")||m.message.toLowerCase().includes("network"))&&(f=!0),this.onError&&m instanceof Error&&this.onError(m),this.setStatus({status:"error",error:m})}finally{try{(i=this.onFinish)==null||i.call(this,{message:this.activeResponse.state.message,messages:this.state.messages,isAbort:d,isDisconnect:f,isError:h,finishReason:(o=this.activeResponse)==null?void 0:o.state.finishReason})}catch(m){console.error(m)}this.activeResponse=void 0}(a=this.sendAutomaticallyWhen)!=null&&a.call(this,{messages:this.state.messages})&&!h&&await this.makeRequest({trigger:"submit-message",messageId:(l=this.lastMessage)==null?void 0:l.id,metadata:t,headers:n,body:r})}};function GZe({messages:e}){const t=e[e.length-1];if(!t||t.role!=="assistant")return!1;const n=t.parts.reduce((s,o,i)=>o.type==="step-start"?i:s,-1),r=t.parts.slice(n+1).filter(J_).filter(s=>!s.providerExecuted);return r.length>0&&r.every(s=>s.state==="output-available"||s.state==="output-error")}function KZe(e,t){if(typeof e!="function")throw new TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let n,r=0;return function(...o){clearTimeout(n);const i=Date.now(),a=i-r,l=t-a;l<=0?(r=i,e.apply(this,o)):n=setTimeout(()=>{r=Date.now(),e.apply(this,o)},l)}}var ZZe=KZe;const XZe=hf(ZZe);var Dee=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},Gn=(e,t,n)=>(Dee(e,t,"read from private field"),n?n.call(e):t.get(e)),ma=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},vc=(e,t,n,r)=>(Dee(e,t,"write to private field"),t.set(e,n),n);function QZe(e,t){return t!=null?XZe(e,t):e}var Qo,Lv,zv,kg,Eg,_g,lh,eT,tT,JZe=class{constructor(e=[]){ma(this,Qo,void 0),ma(this,Lv,"ready"),ma(this,zv,void 0),ma(this,kg,new Set),ma(this,Eg,new Set),ma(this,_g,new Set),this.pushMessage=t=>{vc(this,Qo,Gn(this,Qo).concat(t)),Gn(this,lh).call(this)},this.popMessage=()=>{vc(this,Qo,Gn(this,Qo).slice(0,-1)),Gn(this,lh).call(this)},this.replaceMessage=(t,n)=>{vc(this,Qo,[...Gn(this,Qo).slice(0,t),this.snapshot(n),...Gn(this,Qo).slice(t+1)]),Gn(this,lh).call(this)},this.snapshot=t=>structuredClone(t),this["~registerMessagesCallback"]=(t,n)=>{const r=n?QZe(t,n):t;return Gn(this,kg).add(r),()=>{Gn(this,kg).delete(r)}},this["~registerStatusCallback"]=t=>(Gn(this,Eg).add(t),()=>{Gn(this,Eg).delete(t)}),this["~registerErrorCallback"]=t=>(Gn(this,_g).add(t),()=>{Gn(this,_g).delete(t)}),ma(this,lh,()=>{Gn(this,kg).forEach(t=>t())}),ma(this,eT,()=>{Gn(this,Eg).forEach(t=>t())}),ma(this,tT,()=>{Gn(this,_g).forEach(t=>t())}),vc(this,Qo,e)}get status(){return Gn(this,Lv)}set status(e){vc(this,Lv,e),Gn(this,eT).call(this)}get error(){return Gn(this,zv)}set error(e){vc(this,zv,e),Gn(this,tT).call(this)}get messages(){return Gn(this,Qo)}set messages(e){vc(this,Qo,[...e]),Gn(this,lh).call(this)}};Qo=new WeakMap;Lv=new WeakMap;zv=new WeakMap;kg=new WeakMap;Eg=new WeakMap;_g=new WeakMap;lh=new WeakMap;eT=new WeakMap;tT=new WeakMap;var ch,m6=class extends YZe{constructor({messages:e,...t}){const n=new JZe(e);super({...t,state:n}),ma(this,ch,void 0),this["~registerMessagesCallback"]=(r,s)=>Gn(this,ch)["~registerMessagesCallback"](r,s),this["~registerStatusCallback"]=r=>Gn(this,ch)["~registerStatusCallback"](r),this["~registerErrorCallback"]=r=>Gn(this,ch)["~registerErrorCallback"](r),vc(this,ch,n)}};ch=new WeakMap;function Iee({experimental_throttle:e,resume:t=!1,...n}={}){const r=C.useRef("chat"in n?n.chat:new m6(n));("chat"in n&&n.chat!==r.current||"id"in n&&r.current.id!==n.id)&&(r.current="chat"in n?n.chat:new m6(n));const o="id"in n?n.id:null,i=C.useCallback(f=>r.current["~registerMessagesCallback"](f,e),[e,o]),a=C.useSyncExternalStore(i,()=>r.current.messages,()=>r.current.messages),l=C.useSyncExternalStore(r.current["~registerStatusCallback"],()=>r.current.status,()=>r.current.status),u=C.useSyncExternalStore(r.current["~registerErrorCallback"],()=>r.current.error,()=>r.current.error),d=C.useCallback(f=>{typeof f=="function"&&(f=f(r.current.messages)),r.current.messages=f},[r]);return C.useEffect(()=>{t&&r.current.resumeStream()},[t,r]),{id:r.current.id,messages:a,setMessages:d,sendMessage:r.current.sendMessage,regenerate:r.current.regenerate,clearError:r.current.clearError,stop:r.current.stop,error:u,resumeStream:r.current.resumeStream,status:l,addToolResult:r.current.addToolOutput,addToolOutput:r.current.addToolOutput}}function eXe(e,t){return e.some(n=>n.tableName&&n.tableName===t.tableName||n.datamodelName&&n.datamodelName===t.datamodelName)}function tXe(e){return e.filter((n,r,s)=>r===s.findIndex(o=>o.tableName===n.tableName&&o.datamodelName===n.datamodelName))}function nXe(e,t){return e.filter(n=>!(n.connectionId===t.connectionId&&n.tableName===t.tableName&&n.datamodelName===t.datamodelName))}function rXe(e){return e.toLowerCase()==="clickhouse"?"{database_name}.{table_name}":e.toLowerCase()==="postgres"?"{schema_name}.{table_name}":"{table_name}"}function Ree(e){return e.map(r=>{const s=r.connectionType==="API"||r.connectionType==="S3"||r.connectionType==="S3Tables"?"DuckDb":r.connectionType;return r.datamodelName?{...r,databaseName:"",schemaName:"",tableName:"",connectionType:s,tableReferenceFormat:"dm.{table_name}"}:{...r,connectionType:s,tableReferenceFormat:rXe(s)}}).filter(r=>r.datamodelName?r.connectionId&&r.datamodelName&&r.connectionType:r.connectionId&&r.tableName&&r.connectionType)}function Aee(e){var n,r;if(!e)return"";let t="";try{const s=JSON.parse((e==null?void 0:e.message)||"{}");t=((r=(n=s==null?void 0:s.error)==null?void 0:n.lastError)==null?void 0:r.message)||(s==null?void 0:s.error)||e.message}catch{t=e.message}return t}function sXe(){var b;const{authToken:e,tokenProps:t}=Xe(),n=J(x=>x.dashboard.aiScopeTables),r=(b=L1().data)==null?void 0:b.assistantProfileId,{sendMessage:s,messages:o,setMessages:i,regenerate:a,status:l,addToolResult:u,error:d,stop:f,clearError:h}=Iee({transport:new MA({api:`${t.apiServiceUrl}/v1/assistant`,headers:()=>({Authorization:`Bearer ${e==null?void 0:e.accessToken}`}),body:()=>{const x=la.getState();return{assistantId:"dashboard-assistant",assistantProfileId:r,aiContext:x.currentAIContext,reasoningEffort:x.reasoningEffort,showReasoning:x.showReasoning}},credentials:"omit",prepareSendMessagesRequest:({messages:x,body:y})=>({body:{...y,messages:Dq(x)}})}),onToolCall:m,sendAutomaticallyWhen:GZe,onFinish({isAbort:x,isDisconnect:y,isError:v}){console.log(x?"[Dashboard Assistant] Stream aborted by user":y?"[Dashboard Assistant] Stream disconnected (network error)":v?"[Dashboard Assistant] Stream error occurred":"[Dashboard Assistant] Stream completed successfully")},onError(x){var y;if(x.name==="AbortError"||(y=x.message)!=null&&y.includes("aborted")){console.log("[Dashboard Assistant] Stream aborted (expected)");return}console.error("[Dashboard Assistant] Stream error:",x)}});async function m({toolCall:x}){if(x.toolName==="getCurrentTableScope"&&u({tool:x.toolName,toolCallId:x.toolCallId,output:{tables:Ree(n||[])}}),x.toolName==="getDashboardContext"){const y=J.getState().dashboard;u({tool:x.toolName,toolCallId:x.toolCallId,output:{dashboardContext:y}})}}const p=!["ready","error"].includes(l),g=Aee(d);return{sendMessage:s,regenerate:a,isLoading:p,messages:o,setMessages:i,status:l,stop:f,errorMessage:g,clearError:h}}function Pee(){var u;const{authToken:e,tokenProps:t}=Xe(),n=(u=L1().data)==null?void 0:u.assistantProfileId;function r(){return!(!n||!(e!=null&&e.accessToken))}const{data:s,isLoading:o,isFetching:i,isError:a}=En({queryKey:["assistant-profile",n],queryFn:()=>rr(`${t.apiServiceUrl}/v1/assistant/${n}`,(e==null?void 0:e.accessToken)||""),enabled:r()});return{assistantProfile:s==null?void 0:s.assistantProfile,isLoading:o,isFetching:i,isError:a}}function Oee({seedQuestions:e,handleSeedQuestionClick:t}){return e.length===0?null:c.jsxs("div",{className:"overflow-x-auto rounded-md border bg-muted/40 p-4",children:[c.jsxs("div",{className:"mb-3 flex items-center",children:[c.jsx(c8,{className:"mr-2 h-4 w-4 text-muted-foreground"}),c.jsx("h3",{className:"font-medium",children:"Example Questions"})]}),c.jsx("div",{className:"flex flex-wrap gap-2",children:e.map((n,r)=>c.jsx(se,{variant:"outline",size:"sm",onClick:()=>t(n),className:"text-sm",children:n},r))})]})}function N1(e,t={}){const{size:n="h-4 w-4"}=t,r=n;switch(e){case"table":return c.jsx(eM,{className:r});case"view":return c.jsx(tu,{className:r});case"materialized view":return c.jsx(Woe,{className:r});case"model":return c.jsx(U1,{className:r});case"file":return c.jsx(Ji,{className:r});case"dataset":return c.jsx($l,{className:r});case"upload":return c.jsx(sM,{className:r});case"url":return c.jsx(p8,{className:r});default:return c.jsx(Sx,{className:r})}}const Fee=D.forwardRef(({className:e,...t},n)=>c.jsxs("div",{className:"flex items-center px-3","cmdk-input-wrapper":"",children:[c.jsx(Ko,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),c.jsx($s.Input,{ref:n,className:X("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));Fee.displayName=$s.Input.displayName;const uv=e=>e.label||(e==null?void 0:e.name),p6=e=>"description"in e?e.description:`${e.type} from ${e.database||"database"}`;function oXe({isOpen:e,onSelect:t,onDeselect:n,onClose:r,availableEntities:s,selectedEntities:o,onTabComplete:i,onSelectAll:a,onRemoveAll:l,onAddContext:u}){const{tokenProps:d}=Xe(),f=(d==null?void 0:d.type)==="dashboard",[h,m]=C.useState(""),[p,g]=C.useState(""),b=s.filter(S=>{if(!h)return!0;const N=uv(S).toLowerCase(),E=p6(S).toLowerCase(),_=h.toLowerCase();return N.includes(_)||E.includes(_)});C.useEffect(()=>{e||(m(""),g(""))},[e]),C.useEffect(()=>{b.length>0&&!p&&g(uv(b[0]))},[b,p]);const x=()=>{if(!p)return;const S=b.find(N=>uv(N)===p);S&&(o.some(E=>"id"in S&&"id"in E?S.id===E.id:S.name===E.name&&S.connectionId===E.connectionId)||t(S),i(S),r())},y=S=>{(S.key==="Tab"||S.key==="Enter")&&(S.preventDefault(),x())};if(!e)return null;const v=S=>o.some(N=>"id"in S&&"id"in N?S.id===N.id:S.name===N.name&&S.connectionId===N.connectionId),w=o.length===s.length,j=o.length>0;return c.jsx(c.Fragment,{children:c.jsxs(op,{shouldFilter:!1,value:p,onValueChange:g,onKeyDown:y,children:[s.length>0&&c.jsxs("div",{className:"flex items-center justify-between border-b pr-3",children:[c.jsx(Fee,{placeholder:"Search entities...",value:h,onValueChange:m,className:"flex-1 border-0",autoFocus:!0}),!f&&c.jsxs(se,{onClick:S=>{S.preventDefault(),S.stopPropagation(),u==null||u()},onMouseDown:S=>{S.preventDefault(),S.stopPropagation()},variant:"outline",size:"sm",className:"h-7 shrink-0",children:[c.jsx(Tr,{className:"mr-1 h-4 w-4"}),"Add"]})]}),s.length>0&&c.jsxs("div",{className:"flex items-center justify-between border-b px-3 py-2 text-sm",children:[c.jsxs("div",{className:"text-muted-foreground",children:[o.length," ",o.length===1?"entity":"entities"," selected"]}),c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx(se,{onClick:S=>{S.preventDefault(),S.stopPropagation(),a==null||a()},onMouseDown:S=>{S.preventDefault(),S.stopPropagation()},disabled:w,variant:"ghost",size:"sm",className:"h-6 px-2 text-xs",children:"Select All"}),j&&c.jsxs(se,{onClick:S=>{S.preventDefault(),S.stopPropagation(),l==null||l()},onMouseDown:S=>{S.preventDefault(),S.stopPropagation()},variant:"ghost",size:"sm",className:"h-6 gap-1 px-2 text-xs",children:[c.jsx(St,{className:"h-3.5 w-3.5"}),"Clear"]})]})]}),c.jsxs(ip,{className:"min-h-60",children:[c.jsx(ap,{children:c.jsxs("div",{className:"flex flex-col items-center justify-center py-4",children:[c.jsx("p",{className:"mb-3 text-sm text-muted-foreground",children:"No entities found."}),!f&&c.jsxs(se,{onClick:S=>{S.preventDefault(),S.stopPropagation(),u==null||u()},onMouseDown:S=>{S.preventDefault(),S.stopPropagation()},size:"sm",variant:"outline",className:"flex items-center gap-2",children:[c.jsx(Tr,{className:"h-4 w-4"}),"Add Datasets"]})]})}),c.jsx(lp,{children:b.map((S,N)=>{const E=v(S),_="id"in S?S.id:`${S.connectionId}-${S.name}`,k=uv(S);return c.jsxs(cp,{value:k,onSelect:()=>{E?n==null||n(S):t(S)},onMouseDown:M=>{M.preventDefault(),M.stopPropagation()},className:X("flex cursor-pointer items-start gap-2 p-2 hover:bg-gray-100"),children:[c.jsx("div",{className:"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center",children:N1(S.type)}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("div",{className:"truncate font-medium",children:k}),c.jsx("div",{className:"truncate text-xs text-muted-foreground",children:p6(S)})]}),E&&c.jsx("div",{className:"ml-1 flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-foreground/80",children:c.jsx(Ar,{className:"h-3 w-3 text-background"})})]},_)})})]})]})})}const nT=e=>e.name||e.name,iXe=e=>{const t=nT(e),n="description"in e?e.description:"",r=e.database||"",s=e.schema||"";return c.jsxs("div",{className:"space-y-1",children:[c.jsx("div",{className:"font-medium",children:t}),n&&c.jsx("div",{className:"text-sm text-muted-foreground",children:n}),c.jsxs("div",{className:"text-xs text-muted-foreground",children:["Type: ",e.type,r&&` • Database: ${r}`,s&&` • Schema: ${s}`]})]})};function aXe({entities:e,availableEntities:t,onRemoveEntity:n,onRemoveEntities:r}){const[s,o]=C.useState(!1),i=e.length>0;e.length,t.length,e.length<t.length;const a=e.length>=3?e.slice(0,2):e,l=e.length>=3?e.slice(2):[],u=l.length>0;return c.jsx(Ln,{children:c.jsx("div",{className:"space-y-2",children:i&&c.jsxs("div",{className:"flex flex-wrap gap-1",children:[a.map((d,f)=>{const h="id"in d?d.id:`${d.connectionId}-${d.name}`;return c.jsxs(an,{children:[c.jsx(ln,{asChild:!0,children:c.jsxs(Ve,{variant:"secondary",className:"group relative cursor-pointer gap-2 transition-colors hover:border-red-200 hover:bg-red-50 dark:hover:border-red-800 dark:hover:bg-red-950",children:[N1(d.type,{size:"h-3 w-3"}),c.jsx("span",{className:"max-w-24 truncate text-xs",children:nT(d)}),c.jsx("button",{className:"rounded-full p-0.5 transition-opacity hover:bg-red-100 group-hover:opacity-100",onClick:()=>n(d),children:c.jsx(St,{className:"h-3 w-3"})})]})}),c.jsx(dn,{side:"top",className:"max-w-xs",children:iXe(d)})]},h)}),u&&c.jsxs(an,{open:s,onOpenChange:o,children:[c.jsx(ln,{asChild:!0,children:c.jsxs(Ve,{variant:"secondary",className:"flex cursor-pointer items-center gap-1 transition-colors hover:bg-secondary/80",onClick:()=>o(!0),children:[c.jsx(f8,{className:"h-3 w-3"}),c.jsxs("span",{className:"text-xs",children:[l.length," more"]}),c.jsx("button",{className:"rounded-full p-0.5 transition-opacity hover:bg-red-100 group-hover:opacity-100",onClick:()=>r(l),children:c.jsx(St,{className:"h-3 w-3"})})]})}),c.jsx(dn,{side:"top",className:"max-h-60 max-w-xs overflow-y-auto p-2",children:c.jsxs("div",{className:"space-y-2",children:[c.jsx("div",{className:"text-sm font-medium",children:"Additional Datasets"}),c.jsx("div",{className:"space-y-2",children:l.map(d=>{const f="id"in d?d.id:`${d.connectionId}-${d.name}`;return c.jsxs("div",{className:"group flex items-center justify-between gap-2",children:[c.jsxs("div",{className:"flex items-start gap-2",children:[c.jsx("div",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:N1(d.type,{size:"h-3 w-3"})}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("div",{className:"truncate text-sm font-medium",children:nT(d)}),c.jsxs("div",{className:"truncate text-xs text-muted-foreground",children:[d.type," ",d.database?`• ${d.database}`:""]})]})]}),c.jsx(se,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0 opacity-0 group-hover:opacity-100",onClick:()=>{n(d),l.length===1&&o(!1)},children:c.jsx(St,{className:"h-3 w-3"})})]},f)})})]})})]})]})})})}function $ee(e){return e.type==="dataset"&&e.label||e.name}function lXe(e){const t=[];return t.push({label:"Type",value:e.type}),t.push({label:"Name",value:e.name}),e.connectionType&&t.push({label:"Connection",value:e.connectionType}),e.database&&t.push({label:"Database",value:e.database}),e.schema&&t.push({label:"Schema",value:e.schema}),e.type==="dataset"&&e.label&&t.push({label:"Label",value:e.label}),e.type==="dataset"&&e.description&&t.push({label:"Description",value:e.description}),e.type==="model"&&e.label&&t.push({label:"Label",value:e.label}),e.type==="model"&&e.description&&t.push({label:"Description",value:e.description}),t}function cXe({selectedEntities:e,onDeselectEntity:t}){return e.length===0?null:c.jsxs("div",{className:"mb-4 space-y-2",children:[c.jsxs(ae,{className:"mb-2 text-xs font-medium text-muted-foreground",children:["Selected Entities (",e.length,")"]}),c.jsx("div",{className:"max-h-32 overflow-y-auto rounded-md border border-border/50 p-2",children:c.jsx("div",{className:"flex flex-wrap gap-1",children:e.map((n,r)=>c.jsxs(Ve,{variant:"secondary",className:"group relative cursor-pointer pr-6 text-xs transition-colors hover:border-red-200 hover:bg-red-50 dark:hover:border-red-800 dark:hover:bg-red-950",children:[c.jsxs("span",{className:"mr-1 text-gray-500",children:["[",n.type,"]"]}),$ee(n),c.jsx("button",{onClick:s=>{s.stopPropagation(),t(n)},className:"absolute right-1 top-1/2 -translate-y-1/2 rounded-full p-0.5 opacity-0 transition-opacity hover:bg-red-100 group-hover:opacity-100",children:c.jsx(St,{className:"h-2.5 w-2.5 text-red-500"})})]},`${n.type}-${n.name}-${r}`))})})]})}function uXe(e){const{tokenProps:t}=Xe(),n=J(l=>l.authToken)||e;Ae(l=>l.selectedConnectionId),Ae(l=>{var u,d;return(d=(u=l==null?void 0:l.card)==null?void 0:u.dataSource)==null?void 0:d.connectionId});const{refetch:r,isPending:s,data:o,isLoading:i,isError:a}=En({queryKey:["semantic-domains"],queryFn:()=>rr(`${t.apiServiceUrl}/v1/domains`,(n==null?void 0:n.accessToken)||""),enabled:!!(n!=null&&n.accessToken)});return{isPending:s,error:a,semanticDomainsData:o,semanticDomains:(o==null?void 0:o.domains)||[],isSemanticDomainsLoading:i,isSemanticDomainsError:a,refetchSemanticDomains:r}}function dXe(e,t){const{tokenProps:n}=Xe(),r=J(u=>u.authToken)||t,{refetch:s,isPending:o,data:i,isLoading:a,isError:l}=En({queryKey:["datasets",e],queryFn:()=>rr(`${n.apiServiceUrl}/v1/datasets`,(r==null?void 0:r.accessToken)||"",{domainId:e}),enabled:!!(r!=null&&r.accessToken)&&!!e});return{isPending:o,error:l,datasets:(i==null?void 0:i.datasets)||[],isDatasetsLoading:a,isDatasetsError:l,refetchDatasets:s}}function fXe(e){var g,b;const{tokenProps:t}=Xe(),n=J(x=>x.authToken)||e,{connections:r}=Ci(e),s=Ae(x=>{var y,v;return(v=(y=x==null?void 0:x.card)==null?void 0:y.dataSource)==null?void 0:v.connectionId}),o=r==null?void 0:r.find(x=>x.id===s),i=o==null?void 0:o.type,a=o==null?void 0:o.capabilities,l=((g=a==null?void 0:a.labels)==null?void 0:g.database)||"Database";function u(x){return s&&x?!(x==="API"||x==="S3"):!1}const{data:d,isPending:f,error:h,refetch:m}=En({queryKey:["databases",s],queryFn:()=>rr(`${t.apiServiceUrl}/v1/databases`,(n==null?void 0:n.accessToken)||"",{connection_id:s}),enabled:u(i)}),p=(b=d==null?void 0:d.databases)==null?void 0:b.map(x=>({id:x.database_name,name:x.database_name}));return{isPending:f,error:h,databases:p||[],refetch:m,label:l}}function hXe(e){var g;const{tokenProps:t}=Xe(),n=J(b=>b.authToken)||e,{connections:r}=Ci(e),s=Ae(b=>{var x,y;return(y=(x=b==null?void 0:b.card)==null?void 0:x.dataSource)==null?void 0:y.connectionId}),o=Ae(b=>{var x,y,v;return(v=(y=(x=b==null?void 0:b.card)==null?void 0:x.dataSource)==null?void 0:y.dbSelection)==null?void 0:v.database}),i=r==null?void 0:r.find(b=>b.id===s),a=i==null?void 0:i.capabilities,l=((g=a==null?void 0:a.labels)==null?void 0:g.schema)||"Schema";function u(){return!(!s||(i==null?void 0:i.type)==="API"||(i==null?void 0:i.type)==="S3"||!o||!(a!=null&&a.path.includes("schema")))}const{data:d,isPending:f,error:h,refetch:m}=En({queryKey:["schemas",s,o],queryFn:()=>rr(`${t.apiServiceUrl}/v1/schemas`,(n==null?void 0:n.accessToken)||"",{connection_id:s,database_name:o}),enabled:u()}),p=d==null?void 0:d.schemas.map(b=>({id:b.schema_name,name:b.schema_name}));return{isPending:f,error:h,schemas:p||[],refetch:m,label:l}}function Lee(e){const{tokenProps:t}=Xe(),n=J(h=>h.authToken)||e,{connections:r}=Ci(e),s=Ae(h=>{var m,p;return(p=(m=h==null?void 0:h.card)==null?void 0:m.dataSource)==null?void 0:p.connectionId}),o=r.find(h=>h.id===s);function i(){return!(!(n!=null&&n.accessToken)||!s)}const{data:a,isPending:l,error:u,refetch:d}=En({queryKey:["dataModels",s],queryFn:()=>rr(`${t.apiServiceUrl}/v1/datamodels`,(n==null?void 0:n.accessToken)||"",{connection_id:s}),enabled:i()}),f=a==null?void 0:a.datamodels.map(h=>({id:h.id,name:h.name,label:h.label,description:h.description,connectionId:s,dialect:h.dialect,connectionType:o==null?void 0:o.type,type:"model",database:h.database,schema:h.schema}));return{isPending:l,error:u,dataModels:f||[],refetch:d}}function mXe(){var j,S,N;const e=Ae(E=>E.card.dataSource);Ae(E=>E.actions.updateDirectSource);const t=Ae(E=>E.actions.updateDataSource),[n,r]=C.useState(""),{selectedConnection:s,error:o}=Ci(),{databases:i,isPending:a,error:l,label:u}=fXe(),{schemas:d,isPending:f,error:h,label:m}=hXe(),{error:p}=Lee(),g=s==null?void 0:s.capabilities.path.includes("schema"),b=s==null?void 0:s.capabilities.path.includes("database"),x=u==null?void 0:u.toLowerCase(),y=m==null?void 0:m.toLowerCase(),v=E=>{e&&t({...e,dbSelection:{database:E,schema:"",entityType:"table"},selectedEntities:(e==null?void 0:e.selectedEntities)||[]})},w=E=>{var k;if(!((k=e==null?void 0:e.dbSelection)!=null&&k.database))return;const _=e.dbSelection||{database:"",schema:"",entityType:"table"};t({...e,dbSelection:{..._,schema:E},selectedEntities:(e==null?void 0:e.selectedEntities)||[]})};return c.jsxs(c.Fragment,{children:[(o||l||h||p)&&c.jsxs("div",{className:"rounded-md border border-red-200 bg-red-50 p-3",children:[c.jsx("div",{className:"flex items-center",children:c.jsxs("div",{className:"text-sm text-red-800",children:[c.jsx("strong",{children:"Error loading data:"}),c.jsxs("ul",{className:"mt-1 list-inside list-disc",children:[o&&c.jsxs("li",{children:["Connections: ",o]}),l&&c.jsxs("li",{children:[u,": ",l.message]}),h&&c.jsxs("li",{children:[m,": ",h.message]}),p&&c.jsxs("li",{children:["Data Models: ",p.message]})]})]})}),c.jsx(se,{variant:"outline",size:"sm",className:"mt-2",onClick:()=>window.location.reload(),children:"Retry"})]}),c.jsxs("div",{className:"space-y-4",children:[b&&c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium",children:u}),c.jsxs(ot,{value:((j=e==null?void 0:e.dbSelection)==null?void 0:j.database)||"",onValueChange:v,disabled:a,children:[c.jsx(nt,{className:"w-full",children:c.jsxs("div",{className:"flex items-center gap-2",children:[a&&c.jsx(xn,{className:"h-4 w-4 animate-spin"}),c.jsx(at,{placeholder:l?`Error loading ${x}`:a?`Loading ${x}...`:`Select ${x}...`})]})}),c.jsx(rt,{children:i.map(E=>c.jsx(ve,{className:"hover:bg-muted",value:E.id,children:E.name},E.id))})]})]}),((S=e==null?void 0:e.dbSelection)==null?void 0:S.database)&&g&&c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium",children:m}),c.jsxs(ot,{value:((N=e==null?void 0:e.dbSelection)==null?void 0:N.schema)||"",onValueChange:w,disabled:f,children:[c.jsx(nt,{className:"w-full",children:c.jsxs("div",{className:"flex items-center gap-2",children:[f&&c.jsx(xn,{className:"h-4 w-4 animate-spin"}),c.jsx(at,{placeholder:h?`Error loading ${y}`:f?`Loading ${y}...`:`Select ${y}...`})]})}),c.jsx(rt,{children:d.map(E=>c.jsx(ve,{className:"hover:bg-muted",value:E.id,children:E.name},E.id))})]})]})]})]})}function pXe(){const e=Ae(l=>l.card.dataSource),t=Ae(l=>l.actions.updateDataSource),[n,r]=C.useState(!1),s=l=>{if(!l||(e==null?void 0:e.mode)!=="upload")return;const u=Array.from(l).map(f=>({id:`file-${Date.now()}-${Math.random()}`,name:f.name,type:"upload",connectionId:"default",connectionType:"none",label:f.name,description:`Uploaded ${new Date().toLocaleString()}`,originalName:f.name,file:f})),d=(e==null?void 0:e.selectedEntities)||[];t({...e,selectedEntities:[...d,...u]})},o=l=>{if(!e)return;const u=(e.selectedEntities||[]).filter(d=>d.id!==l);t({...e,selectedEntities:u})},i=l=>{if(l===0)return"0 Bytes";const u=1024,d=["Bytes","KB","MB","GB"],f=Math.floor(Math.log(l)/Math.log(u));return Number.parseFloat((l/Math.pow(u,f)).toFixed(2))+" "+d[f]},a=(e==null?void 0:e.selectedEntities)||[];return c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium",children:"Upload Files"}),c.jsxs("div",{className:`rounded-lg border-2 border-dashed p-6 text-center transition-colors ${n?"border-blue-400 bg-blue-50":"border-gray-300 hover:border-gray-400"}`,onDragOver:l=>{l.preventDefault(),r(!0)},onDragLeave:()=>r(!1),onDrop:l=>{l.preventDefault(),r(!1),s(l.dataTransfer.files)},children:[c.jsx(sM,{className:"mx-auto mb-2 h-8 w-8 text-gray-400"}),c.jsx("p",{className:"mb-2 text-sm text-gray-600",children:"Drag and drop files here, or click to select"}),c.jsx("input",{type:"file",multiple:!0,className:"hidden",id:"file-upload",onChange:l=>s(l.target.files),accept:".csv,.json,.xlsx,.xls"}),c.jsx(se,{variant:"outline",size:"sm",onClick:()=>{var l;return(l=document.getElementById("file-upload"))==null?void 0:l.click()},children:"Select Files"}),c.jsx("p",{className:"mt-2 text-xs text-gray-500",children:"Supports CSV, JSON, Excel files"})]})]}),a.length>0&&c.jsxs("div",{className:"space-y-2",children:[c.jsxs(ae,{className:"text-xs text-gray-600",children:["Uploaded Files (",a.length,")"]}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:a.map(l=>c.jsxs("div",{className:"flex items-center justify-between rounded border bg-gray-50 p-2",children:[c.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[c.jsx(Ji,{className:"h-4 w-4 flex-shrink-0 text-gray-500"}),c.jsxs("div",{className:"min-w-0",children:[c.jsx("p",{className:"truncate text-sm text-gray-700",children:l.originalName}),c.jsx("p",{className:"text-xs text-gray-500",children:l.file?i(l.file.size):""})]})]}),c.jsx(se,{variant:"ghost",size:"sm",className:"h-6 w-6 flex-shrink-0 p-0",onClick:()=>o(l.id),children:c.jsx(St,{className:"h-3 w-3"})})]},l.id))})]})]})}function gXe(){const e=Ae(f=>f.card.dataSource),t=Ae(f=>f.actions.updateDataSource),[n,r]=C.useState(""),[s,o]=C.useState(""),[i,a]=C.useState("api"),l=()=>{if(!n.trim()||!s.trim()||!e)return;const f={id:`url-${Date.now()}-${Math.random()}`,name:n.trim(),type:"url",connectionId:"default",connectionType:"none",label:n.trim(),description:`URL source of type ${i}`,url:s.trim(),sourceType:i,originalName:n.trim()},h=(e==null?void 0:e.selectedEntities)||[];t({...e,selectedEntities:[...h,f]}),r(""),o(""),a("api")},u=f=>{if(!e)return;const h=(e.selectedEntities||[]).filter(m=>m.id!==f);t({...e,selectedEntities:h})},d=(e==null?void 0:e.selectedEntities)||[];return c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium text-gray-700",children:"URL Sources"}),c.jsxs("div",{className:"space-y-3 rounded-lg border bg-gray-50 p-3",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-xs text-gray-600",children:"Source Name"}),c.jsx(mn,{placeholder:"e.g., Sales API, Customer Data",value:n,onChange:f=>r(f.target.value),className:"h-8 text-sm"})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-xs text-gray-600",children:"URL"}),c.jsx(mn,{placeholder:"https://api.example.com/data",value:s,onChange:f=>o(f.target.value),className:"h-8 text-sm"})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-xs text-gray-600",children:"Type"}),c.jsxs("select",{value:i,onChange:f=>a(f.target.value),className:"h-8 w-full rounded-md border border-gray-300 px-2 text-sm",children:[c.jsx("option",{value:"api",children:"API Endpoint"}),c.jsx("option",{value:"csv",children:"CSV File"}),c.jsx("option",{value:"json",children:"JSON File"})]})]}),c.jsxs(se,{onClick:l,disabled:!n.trim()||!s.trim(),size:"sm",className:"w-full",children:[c.jsx(Tr,{className:"mr-1 h-3 w-3"}),"Add Source"]})]})]}),d.length>0&&c.jsxs("div",{className:"space-y-2",children:[c.jsxs(ae,{className:"text-xs text-gray-600",children:["Added Sources (",d.length,")"]}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:d.map(f=>c.jsxs("div",{className:"flex items-center justify-between rounded border bg-gray-50 p-2",children:[c.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[c.jsx(Sx,{className:"h-4 w-4 flex-shrink-0 text-gray-500"}),c.jsxs("div",{className:"min-w-0",children:[c.jsx("p",{className:"truncate text-sm text-gray-700",children:f.name}),c.jsx("p",{className:"truncate text-xs text-gray-500",children:f.url})]})]}),c.jsx(se,{variant:"ghost",size:"sm",className:"h-6 w-6 flex-shrink-0 p-0",onClick:()=>u(f.id),children:c.jsx(St,{className:"h-3 w-3"})})]},f.id))})]})]})}function bXe(e,t){var y,v;const{tokenProps:n}=Xe(),r=J(w=>w.authToken)||t,{connections:s}=Ci(t),o=Ae(w=>{var j,S;return(S=(j=w==null?void 0:w.card)==null?void 0:j.dataSource)==null?void 0:S.connectionId}),i=Ae(w=>{var j,S,N;return(N=(S=(j=w==null?void 0:w.card)==null?void 0:j.dataSource)==null?void 0:S.dbSelection)==null?void 0:N.database}),a=Ae(w=>{var j,S,N;return(N=(S=(j=w==null?void 0:w.card)==null?void 0:j.dataSource)==null?void 0:S.dbSelection)==null?void 0:N.schema}),l=s==null?void 0:s.find(w=>w.id===o),u=l==null?void 0:l.capabilities,d=((y=u==null?void 0:u.labels)==null?void 0:y.schema)||"Schema";function f(){return o?(l==null?void 0:l.type)==="API"||(l==null?void 0:l.type)==="S3"?!0:!(!i||u!=null&&u.path.includes("schema")&&!a):!1}const{data:h,isPending:m,isLoading:p,error:g,refetch:b}=En({queryKey:[e,o,i,a],queryFn:()=>rr(`${n.apiServiceUrl}/v1/${e}s`,(r==null?void 0:r.accessToken)||"",{connection_id:o,database_name:i,schema_name:a}),enabled:f()}),x=(v=h==null?void 0:h[`${e}s`])==null?void 0:v.map(w=>{var j;return{connectionId:l==null?void 0:l.id,connectionType:l==null?void 0:l.type,dialect:l==null?void 0:l.dialect,type:e,dbObjectType:(j=w==null?void 0:w.table_type)==null?void 0:j.toLowerCase(),id:w[`${e}_name`],database:i,schema:a,name:w[`${e}_name`]}});return{isPending:m,isLoading:p,error:g,entities:x||[],refetch:b,label:d}}function k1({title:e,message:t}){return c.jsx("div",{className:"rounded-xl border border-destructive/40 bg-destructive/10 p-4 text-destructive shadow-sm",children:c.jsxs("div",{className:"flex items-start gap-4",children:[c.jsx(Yl,{className:"h-6 w-6 flex-shrink-0"}),c.jsxs("div",{className:"flex-1",children:[c.jsx("h4",{className:"text-base font-semibold",children:e}),t&&c.jsx("p",{className:"mt-1 text-sm text-destructive/90",children:t})]})]})})}function xXe({dataSource:e,onSelectionChange:t,selectedEntities:n,onRegisterSelectAll:r}){const{connections:s,isPending:o}=Ci(),[i,a]=C.useState(""),[l,u]=C.useState(""),[d,f]=C.useState("tables"),{updateDataSource:h,setSelectedConnectionId:m}=cr(),{entities:p,isLoading:g,error:b}=bXe("table"),{dataModels:x,isPending:y,error:v}=Lee(),w=k=>{const M=s.find(P=>P.id===k);if(!M)return;const T=M.type==="upload"?"upload":M.type==="url"?"url":"database";h({...e,connectionId:k,connectionType:M.type,mode:T,dbSelection:{database:"",schema:"",entityType:"table"}}),m(k)},j=k=>{var O,I;const M=n||[],T=M.some($=>$.name===k.name&&$.type===k.type);let P;if(T)P=M.filter($=>!($.name===k.name&&$.type===k.type));else{const $={connectionId:e.connectionId,connectionType:e.connectionType,type:k.type,dbObjectType:k.dbObjectType,database:((O=e.dbSelection)==null?void 0:O.database)||"",schema:((I=e.dbSelection)==null?void 0:I.schema)||"",name:k.name,dialect:k.dialect};P=[...M,$]}t==null||t(P)},S=k=>{const M=n||[],T=M.some(O=>O.type==="model"&&O.name===k.name);let P;T?P=M.filter(O=>!(O.type==="model"&&O.name===k.name)):P=[...M,k],t==null||t(P)},N=p.filter(k=>k.name.toLowerCase().includes(i.toLowerCase())),E=x.filter(k=>k.name.toLowerCase().includes(l.toLowerCase())),_=C.useCallback(()=>{if(!t)return;const k=n||[];let M=[...k];if(d==="tables"){const P=N.filter(O=>!k.some(I=>I.name===O.name&&I.type==="table")).map(O=>{var I,$;return{connectionId:e.connectionId,connectionType:e.connectionType,type:"table",dbObjectType:O.dbObjectType,database:((I=e.dbSelection)==null?void 0:I.database)||"",schema:(($=e.dbSelection)==null?void 0:$.schema)||"",name:O.name,dialect:O.dialect}});M=[...k,...P]}else if(d==="datamodels"){const T=E.filter(P=>!k.some(O=>O.name===P.name&&O.type==="model"));M=[...k,...T]}t(M)},[d,N,E,n,e,t]);return C.useEffect(()=>{r&&r(_)},[r,_]),c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"font-medium= text-sm",children:"Connection"}),c.jsxs(ot,{value:(e==null?void 0:e.connectionId)||"",onValueChange:w,disabled:o,children:[c.jsx(nt,{className:"w-full",children:c.jsx(at,{placeholder:o?"Loading connections...":"Select connection..."})}),c.jsx(rt,{children:s.map(k=>c.jsx(ve,{className:"hover:bg-muted",value:k.id,children:c.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[c.jsx($l,{className:"h-4 w-4 flex-shrink-0"}),c.jsx("span",{className:"truncate",children:k.name}),c.jsx(Ve,{variant:"secondary",className:"flex-shrink-0 text-xs",children:k.type})]})},k.id))})]})]}),(e==null?void 0:e.connectionId)&&c.jsxs(c.Fragment,{children:[e.connectionType==="upload"&&c.jsx(pXe,{}),e.connectionType==="url"&&c.jsx(gXe,{}),e.connectionType!=="upload"&&e.connectionType!=="url"&&c.jsxs(c.Fragment,{children:[c.jsx(mXe,{}),c.jsx("div",{className:"space-y-4",children:c.jsx("div",{className:"space-y-2",children:c.jsxs(Os,{defaultValue:"tables",value:d,onValueChange:k=>f(k),className:"w-full",children:[c.jsxs(ys,{className:"grid w-full grid-cols-2",children:[c.jsxs(nn,{value:"tables",children:["Tables & Views (",N.length,")"]}),c.jsxs(nn,{value:"datamodels",children:["Data Models (",E.length,")"]})]}),c.jsxs(pr,{value:"tables",className:"space-y-2",children:[c.jsx(jn,{placeholder:"Search tables and views...",value:i,onChange:k=>a(k.target.value),className:"h-8 text-sm",disabled:g}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:g?c.jsx("div",{className:"py-4 text-center text-sm",children:"Loading tables..."}):b?c.jsx(k1,{title:"Error loading tables",message:b.message||"Failed to load tables. Please try again.",onRetry:()=>window.location.reload()}):N.length===0?c.jsx("div",{className:"py-4 text-center text-sm",children:"No tables or views found"}):N.map(k=>{const M=n.some(T=>T.name===k.name&&T.type==="table");return c.jsxs("div",{className:"group flex cursor-pointer items-center space-x-2 rounded p-2 hover:bg-muted",onClick:()=>j(k),children:[c.jsx(cn,{id:`table-${k.name}`,checked:M,onCheckedChange:()=>j(k),onClick:T=>T.stopPropagation(),disabled:g}),c.jsxs(ae,{className:"flex flex-1 cursor-pointer items-center gap-2",children:[k.name,k.dbObjectType==="view"&&c.jsx(Ve,{variant:"secondary",className:"text-xs group-hover:border-border",children:"View"}),k.dbObjectType==="materialized view"&&c.jsx(Ve,{variant:"secondary",className:"text-xs group-hover:border-border",children:"Materialized View"})]})]},k.name)})})]}),c.jsxs(pr,{value:"datamodels",className:"space-y-2",children:[c.jsx(jn,{placeholder:"Search data models...",value:l,onChange:k=>u(k.target.value),className:"h-8 text-sm",disabled:y}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:y?c.jsx("div",{className:"py-4 text-center text-sm",children:"Loading data models..."}):v?c.jsx(k1,{title:"Error loading data models",message:v.message||"Failed to load data models. Please try again.",onRetry:()=>window.location.reload()}):E.length===0?c.jsx("div",{className:"py-4 text-center text-sm",children:"No data models found"}):E.map(k=>{const M=n.some(T=>T.name===k.name&&T.type==="model");return c.jsxs("div",{className:"flex cursor-pointer items-start space-x-2 rounded p-2 hover:bg-muted",onClick:()=>S(k),children:[c.jsx(cn,{id:`dataModel-${k.name}`,checked:M,onCheckedChange:()=>S(k),onClick:T=>T.stopPropagation(),disabled:y}),c.jsxs("div",{className:"flex flex-1 cursor-pointer flex-col gap-1",children:[c.jsx(ae,{className:"cursor-pointer",children:k.name}),c.jsx("span",{className:"text-xs text-muted-foreground",children:k.description})]})]},k.name)})})]})]})})})]})]})]})}function yXe({dataSource:e,onDataSourceUpdate:t,onSelectionChange:n,selectedEntities:r,allowedDomainIds:s=[],isRestricted:o=!1,autoSelectedDomainId:i,onRegisterSelectAll:a}){var j;const[l,u]=C.useState(""),d=C.useCallback(S=>{const N={...e,connectionId:e.connectionId||"none",connectionType:e.connectionType||"none",mode:"semanticDomain",semanticDomainId:S};t({...N})},[e,t]);C.useEffect(()=>{i&&!(e!=null&&e.semanticDomainId)&&d(i)},[i,e==null?void 0:e.semanticDomainId,d]);const{semanticDomains:f,isPending:h,error:m}=uXe(),p=o?f.filter(S=>s.includes(S.id)):f,{datasets:g,isPending:b,error:x}=dXe(e==null?void 0:e.semanticDomainId),y=S=>{const N=r||[],E=N.some(k=>k.id===S.id&&k.type==="dataset");let _;if(E)_=N.filter(k=>!(k.id===S.id&&k.type==="dataset"));else{const k={id:S.id,datasetType:S.type,name:S.name||S.table,label:S.label,domainId:S.domainId,description:S.description,database:S.database,schema:S.schema,type:"dataset",connectionId:S.connectionId,connectionType:S.connectionType,dialect:S.dialect,datamodelId:S.datamodelId,sql:S.sql};_=[...N,k]}n==null||n(_)},v=g.filter(S=>S.name.toLowerCase().includes(l.toLowerCase())),w=C.useCallback(()=>{if(!n||!(e!=null&&e.semanticDomainId))return;const S=r||[],E=v.filter(k=>!S.some(M=>M.id===k.id&&M.type==="dataset")).map(k=>({id:k.id,datasetType:k.type,name:k.name||k.table,label:k.label,domainId:k.domainId,description:k.description,database:k.database,schema:k.schema,type:"dataset",connectionId:k.connectionId,connectionType:k.connectionType,dialect:k.dialect,datamodelId:k.datamodelId,sql:k.sql})),_=[...S,...E];n(_)},[v,r,e==null?void 0:e.semanticDomainId,n]);return C.useEffect(()=>{a&&a(w)},[a,w]),c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium",children:"Semantic Domain"}),c.jsxs(ot,{value:(e==null?void 0:e.semanticDomainId)||"",onValueChange:d,disabled:h||o&&!!i,children:[c.jsx(nt,{className:"w-full",children:c.jsx(at,{placeholder:h?"Loading semantic domains...":o&&i?"Loading domain...":"Select semantic domain...",children:((j=p.find(S=>S.id===(e==null?void 0:e.semanticDomainId)))==null?void 0:j.label)||"Select semantic domain"})}),c.jsx(rt,{children:p.map(S=>c.jsx(ve,{className:"hover:bg-muted",value:S.id,children:c.jsxs("div",{className:"flex flex-col items-start",children:[c.jsx("span",{className:"font-medium",children:S.label}),c.jsx("span",{className:"text-xs",children:S.description})]})},S.id))})]}),m&&c.jsx(k1,{title:"Error loading semantic models",message:m.message})]}),(e==null?void 0:e.semanticDomainId)&&c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium text-gray-700",children:"Datasets"}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(jn,{placeholder:"Search datasets...",value:l,onChange:S=>u(S.target.value),className:"h-8 text-sm",disabled:b}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:b?c.jsx("div",{className:"py-4 text-center text-sm text-gray-500",children:"Loading datasets..."}):x?c.jsx(k1,{title:"Error loading datasets",message:x.message||"Failed to load datasets. Please try again.",onRetry:()=>window.location.reload()}):v.length===0?c.jsx("div",{className:"py-4 text-center text-sm text-gray-500",children:l?"No datasets match your search":"No datasets available"}):v.map(S=>{const N=r.some(E=>E.id===S.id&&E.type==="dataset");return c.jsxs("div",{className:"flex cursor-pointer items-start space-x-2 rounded p-2 hover:bg-gray-50",onClick:()=>y(S),children:[c.jsx(cn,{id:`dataset-${S.id}`,checked:N,onCheckedChange:()=>y(S),onClick:E=>E.stopPropagation(),disabled:b}),c.jsxs("div",{className:"flex flex-1 flex-col gap-1",children:[c.jsx(ae,{className:"cursor-pointer font-medium",children:S.label||S.name}),c.jsx("span",{className:"text-xs text-gray-500",children:S.description})]})]},S.label||S.name)})})]})]})]})}function DA({open:e,onOpenChange:t,dataSource:n,dialogMode:r,incomingSelectedEntities:s}){const{tokenProps:o}=Xe(),{allowedSemanticDomains:i}=o,[a,l]=C.useState([]),{updateDataSource:u}=cr(),d=J(M=>M.isVisualEditing),f=J(M=>M.dashboard.aiContext),{setAiContext:h}=Wt(),m=C.useRef(null),[p,g]=C.useState(!1),b=i&&i.length>0,x=!b,y=b&&i.length===1?i[0]:void 0,v=C.useCallback(M=>{const T=M;u({...n,connectionId:(n==null?void 0:n.connectionId)||"",connectionType:(n==null?void 0:n.connectionType)||"",mode:T,selectedEntities:(n==null?void 0:n.selectedEntities)||[],...T!=="semanticDomain"&&{semanticDomainId:void 0}})},[n,u]),w=C.useCallback(M=>{u({...n,...M})},[n,u]);C.useEffect(()=>{b&&n.mode!=="semanticDomain"&&v("semanticDomain")},[b,n.mode,v]),C.useEffect(()=>{y&&!n.semanticDomainId&&w({semanticDomainId:y})},[y,n.semanticDomainId,w]),C.useEffect(()=>{e?l(s||[]):(m.current=null,g(!1))},[e,n==null?void 0:n.selectedEntities,r,u,s,n]);const j=M=>{const T=a.filter(P=>!(P.name===M.name&&P.type===M.type));l(T)},S=()=>{l([])},N=C.useCallback(M=>{l(M)},[]),E=C.useCallback(()=>{m.current&&m.current()},[]),_=C.useCallback(M=>{m.current=M,g(!0)},[]);function k(){var M,T;if(r==="aiContext")d&&u(n),h({...f,selectedEntities:a}),t(!1);else if(r==="dataSource"){if(n.mode==="semanticDomain"){const P=(M=a==null?void 0:a[0])==null?void 0:M.connectionId,O=(T=a==null?void 0:a[0])==null?void 0:T.connectionType;u({...n,connectionId:P,connectionType:O,selectedEntities:a})}else u({...n,selectedEntities:a});t(!1)}}return c.jsx(Gr,{open:e,onOpenChange:t,children:c.jsx(zr,{className:"flex max-w-2xl flex-col",children:c.jsxs("div",{children:[c.jsxs(Br,{className:"flex-shrink-0",children:[c.jsx(Vr,{children:r==="aiContext"?"Data Context":"Select Data Source"}),c.jsx(is,{children:r==="aiContext"?"Set the overall data scope for the dashboard":"Select data sets to analyze"})]}),c.jsx("div",{className:"flex-1 grow overflow-y-auto py-4",children:c.jsxs("div",{className:"space-y-4",children:[x&&c.jsx("div",{className:"space-y-2",children:c.jsx(Os,{defaultValue:(n==null?void 0:n.mode)||"database",value:(n==null?void 0:n.mode)||"database",onValueChange:v,className:"w-full",children:c.jsxs(ys,{className:"grid w-full grid-cols-2",children:[c.jsx(nn,{value:"database",children:"Direct Source"}),c.jsx(nn,{value:"semanticDomain",children:"Semantic Domain"})]})})}),(n==null?void 0:n.mode)==="semanticDomain"&&c.jsx(yXe,{dataSource:n,onDataSourceUpdate:w,selectedEntities:a,onSelectionChange:N,allowedDomainIds:i||[],isRestricted:b,autoSelectedDomainId:y,onRegisterSelectAll:_}),(n==null?void 0:n.mode)==="database"&&x&&c.jsx(xXe,{dataSource:n,onDataSourceUpdate:w,selectedEntities:a,onSelectionChange:N,onRegisterSelectAll:_})]})}),c.jsx(cXe,{selectedEntities:a,onDeselectEntity:j}),c.jsx(os,{className:"flex-shrink-0",children:c.jsx("div",{className:"flex w-full justify-between",children:c.jsxs("div",{className:"flex grow justify-end gap-2",children:[c.jsx(se,{variant:"outline",onClick:E,disabled:!p,children:"Select All"}),c.jsx(se,{variant:"outline",onClick:S,disabled:a.length===0,children:"Clear All"}),c.jsxs(se,{variant:"outline",onClick:()=>t(!1),children:[c.jsx(St,{className:"mr-2 h-4 w-4"}),"Close"]}),c.jsxs(se,{onClick:k,children:[c.jsx(Ar,{className:"mr-2 h-4 w-4"}),"Accept"]})]})})})]})})})}function vXe({onFilesSelected:e,disabled:t=!1,currentFileCount:n=0,className:r}){const s=C.useRef(null),o=async a=>{const l=Array.from(a.target.files||[]);if(l.length===0)return;const u=gl-n;if(l.length>u){ze.error(`You can only attach ${gl} files per message. You have ${u} slot(s) remaining.`);return}const{valid:d,errors:f}=SJ(l);if(f.forEach(({file:h,error:m})=>{ze.error(`${h.name}: ${m}`)}),d.length>0)try{const h=await Promise.all(d.map(m=>vA(m)));e(h)}catch(h){console.error("Failed to process files:",h),ze.error("Failed to process one or more files")}s.current&&(s.current.value="")},i=()=>{var a;(a=s.current)==null||a.click()};return c.jsxs(c.Fragment,{children:[c.jsx("input",{ref:s,type:"file",multiple:!0,accept:".png,.jpg,.jpeg,.gif,.webp,.pdf,.txt,.md,.csv,.json,.xml,.js,.jsx,.ts,.tsx,.py,.sql",onChange:o,className:"hidden",disabled:t||n>=gl}),c.jsx(se,{variant:"secondary",size:"sm",className:`h-7 px-2 ${r}`,onClick:i,disabled:t||n>=gl,title:n>=gl?`Maximum ${gl} files allowed`:"Attach files",children:c.jsx(ZT,{className:"h-4 w-4 text-muted-foreground"})})]})}function wXe({children:e,onFilesDropped:t,disabled:n=!1,currentFileCount:r=0,className:s}){const[o,i]=C.useState(!1),a=C.useCallback(f=>{f.preventDefault(),f.stopPropagation(),n||i(!0)},[n]),l=C.useCallback(f=>{f.preventDefault(),f.stopPropagation();const h=f.currentTarget.getBoundingClientRect(),m=f.clientX,p=f.clientY;(m<h.left||m>=h.right||p<h.top||p>=h.bottom)&&i(!1)},[]),u=C.useCallback(f=>{f.preventDefault(),f.stopPropagation()},[]),d=C.useCallback(async f=>{if(f.preventDefault(),f.stopPropagation(),i(!1),n)return;const h=Array.from(f.dataTransfer.files);if(h.length===0)return;const m=gl-r;if(h.length>m){ze.error(`You can only attach ${gl} files per message. You have ${m} slot(s) remaining.`);return}const{valid:p,errors:g}=SJ(h);if(g.forEach(({file:b,error:x})=>{ze.error(`${b.name}: ${x}`)}),p.length>0)try{const b=await Promise.all(p.map(x=>vA(x)));t(b),ze.success(`${b.length} file(s) attached successfully`)}catch(b){console.error("Failed to process files:",b),ze.error("Failed to process one or more files")}},[n,r,t]);return c.jsxs("div",{className:X("relative",s),onDragEnter:a,onDragLeave:l,onDragOver:u,onDrop:d,children:[e,o&&!n&&c.jsx("div",{className:"pointer-events-none absolute inset-0 z-50 flex items-center justify-center rounded-lg border-2 border-dashed border-primary bg-primary/5 backdrop-blur-sm",children:c.jsxs("div",{className:"flex flex-col items-center gap-2",children:[c.jsx(sM,{className:"h-8 w-8 text-primary"}),c.jsx("p",{className:"text-sm font-medium text-primary",children:"Drop files here to upload"}),c.jsxs("p",{className:"text-xs text-muted-foreground",children:[gl-r," slot(s) available"]})]})})]})}const IA=C.forwardRef(({input:e,setInput:t,handleInputChange:n,handleSubmit:r,isLoading:s,stop:o,onFocus:i,status:a,assistantType:l},u)=>{const[d,f]=C.useState(!1),[h,m]=C.useState(!1),[p,g]=C.useState(!1),b=C.useRef(null),x=dp();gje(),pje();const{setCurrentAIContext:y,updateSelectedEntities:v,setReasoningEffort:w,setShowReasoning:j}=WC(),{queueMessage:S}=fp(),{addFileAttachment:N,removeFileAttachment:E,clearFileAttachments:_,getFileAttachments:k}=QD(),M=XD(l),T=Ae(U=>U.card.dataSource),P=J(U=>U.dashboard.aiContext),O=J(U=>{var G;return(G=U.dashboard.aiContext)==null?void 0:G.selectedEntities});C.useEffect(()=>{u&&"current"in u&&(u.current=b.current)},[u]);const I=C.useCallback(()=>{const U=b.current;if(U){if(!e||e.length===0){U.style.height="10px";return}U.style.height="auto";const G=Math.min(Math.max(U.scrollHeight,10),200);U.style.height=`${G}px`}},[e]);C.useEffect(()=>{I()},[I]),C.useEffect(()=>{const U=setTimeout(()=>{I()},0);return()=>clearTimeout(U)},[I]);const $=()=>{const U=e.trim();!U&&M.length===0||(a!=="ready"?(S(l,U,M),t(""),_(l)):r({preventDefault:()=>{}}))},V=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),$()),U.key==="@"&&(q(),f(!0))},W=C.useCallback(U=>{const G=WUe(U.nativeEvent);G.length>0&&(U.preventDefault(),G.forEach(async Z=>{const Q=await vA(Z);N(l,Q)}))},[N,l]),L=C.useCallback(U=>{U.forEach(G=>{N(l,G)})},[N,l]),R=C.useCallback(U=>{U.forEach(G=>{N(l,G)})},[N,l]),z=C.useCallback(U=>{E(l,U)},[E,l]),F=U=>{if(x.selectedEntities.some(Z=>Z.id&&Z.id===U.id||Z.name===U.name)){const Z=x.selectedEntities.filter(Q=>!(Q.id&&Q.id===U.id||Q.name===U.name));y({selectedEntities:Z})}else{const Z=[...x.selectedEntities,U];y({selectedEntities:Z})}},A=U=>{F(U)},H=U=>{var Q;if(!x.selectedEntities.some(K=>K.id&&K.id===U.id||K.name===U.name)){const K=[...x.selectedEntities,U];y({selectedEntities:K})}const Z="label"in U?U.label:U.name;t(e+`@${Z} `),f(!1),(Q=b.current)==null||Q.focus()},B=U=>{const G=x.selectedEntities.filter(K=>!(K.id&&K.id===U.id||K.name===U.name));y({selectedEntities:G});const Q=`@${"label"in U?U.label:U.name}`;e.includes(Q)&&t(e.replace(Q,"").trim())},Y=U=>{const G=new Set(U.map(K=>K.id||K.name)),Z=x.selectedEntities.filter(K=>!G.has(K.id||K.name));y({selectedEntities:Z});let Q=e;U.forEach(K=>{const le=`@${"label"in K?K.label:K.name}`;Q=Q.replace(le,"").trim()}),t(Q)},q=C.useCallback(()=>{x.selectedEntities.length===0&&y({selectedEntities:(P==null?void 0:P.selectedEntities)||[]})},[x.selectedEntities.length,P==null?void 0:P.selectedEntities,y]);return c.jsxs(wXe,{onFilesDropped:L,currentFileCount:M.length,disabled:s,className:"space-y-4",children:[c.jsx(aXe,{entities:x.selectedEntities,availableEntities:O||[],onRemoveEntity:B,onRemoveEntities:Y}),M.length>0&&c.jsx(qUe,{files:M,onRemove:z,showRemove:!s,className:"mb-2"}),c.jsxs("div",{className:"rounded-lg border border-border bg-background shadow-sm focus-within:ring-1 focus-within:ring-foreground/40",children:[c.jsx("textarea",{ref:b,value:e,onChange:n,onKeyDown:V,onPaste:W,onFocus:()=>{I(),i==null||i()},placeholder:"Ask a question...",className:"max-h-[200px] min-h-[40px] w-full resize-none overflow-y-auto border-0 bg-transparent px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground/50 focus:outline-none focus:ring-0",style:{height:"40px",lineHeight:"1.5"}}),c.jsxs("div",{className:"flex items-center justify-between border-foreground/10 px-3 py-2",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[l==="dashboard"&&c.jsxs(ms,{open:d,onOpenChange:U=>{U&&q(),f(U)},children:[c.jsx(ps,{asChild:!0,children:c.jsx(se,{variant:"secondary",size:"sm",className:"h-7 px-2",title:"Add entity",children:c.jsx(zoe,{className:"h-4 w-4 text-muted-foreground"})})}),c.jsx(gs,{className:"w-80 p-0",align:"start",side:"top",sideOffset:8,onOpenAutoFocus:U=>U.preventDefault(),children:c.jsx(oXe,{isOpen:!0,onSelect:F,onDeselect:A,onClose:()=>{var U;f(!1),(U=b.current)==null||U.focus()},availableEntities:O||[],selectedEntities:x.selectedEntities,onTabComplete:H,onSelectAll:()=>{O&&y({selectedEntities:O})},onRemoveAll:()=>{y({selectedEntities:[]})},onAddContext:()=>{f(!1),m(!0)}})})]}),c.jsx(vXe,{onFilesSelected:R,disabled:s,currentFileCount:M.length})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[s&&c.jsx(se,{className:"rounded-full",size:"sm",onClick:o,children:c.jsx(tie,{className:"size-3.5 bg-background"})}),!s&&c.jsx(se,{disabled:!e.trim()&&M.length===0,size:"sm",variant:a!=="ready"?"secondary":"default",onClick:$,title:a!=="ready"?"Message will be queued":void 0,children:c.jsx(w8,{className:"size-4"})})]})]})]}),c.jsx(DA,{incomingSelectedEntities:x.selectedEntities,open:h,onOpenChange:m,dataSource:T||HS,dialogMode:"aiContext"})]})});IA.displayName="ChatInputWithContext";function zee({assistantType:e,className:t}){const n=Iq(e),{removeFromQueue:r}=fp();return n.length===0?null:c.jsxs("div",{className:X("space-y-2",t),children:[c.jsxs("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[c.jsx(Gl,{className:"h-3 w-3"}),c.jsxs("span",{children:["Pending messages (",n.length,")"]})]}),c.jsx("div",{className:"space-y-2",children:n.map(s=>c.jsx("div",{className:"group relative rounded-lg border border-dashed border-muted-foreground/30 bg-muted/30 px-3 py-2 text-sm animate-in fade-in-0 slide-in-from-bottom-1",children:c.jsxs("div",{className:"flex items-start justify-between gap-2",children:[c.jsx("div",{className:"flex-1 space-y-1",children:c.jsx("p",{className:"break-words text-foreground/70",children:s.text})}),c.jsx(se,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0 opacity-0 transition-opacity group-hover:opacity-100",onClick:()=>r(e,s.id),title:"Remove from queue",children:c.jsx(St,{className:"h-3 w-3"})})]})},s.id))})]})}function Bee({assistantType:e,status:t,isLoading:n,sendMessage:r}){const s=Iq(e),{dequeueMessage:o}=fp();C.useEffect(()=>{if(t!=="ready"||n||!(s&&s.length>0))return;const a=o(e);a&&r({role:"user",parts:[{type:"text",text:a.text}]})},[t,n,s,o,r,e])}function Vee(e,t={}){const{threshold:n=50,behavior:r="smooth",forceScrollOnStream:s=!0,isStreaming:o=!1}=t,i=C.useRef(null),[a,l]=C.useState(!0),[u,d]=C.useState(!0),[f,h]=C.useState(!1),[m,p]=C.useState(0),g=C.useRef(0),b=C.useRef(!1),x=C.useRef(0),y=C.useRef(a),v=C.useRef(void 0),w=C.useRef({key:null,count:0,length:0}),j=C.useCallback(()=>{const _=i.current;return _?_.scrollHeight-_.scrollTop-_.clientHeight:0},[]),S=C.useCallback((_={})=>{if(!i.current)return;const{force:M=!1,instant:T=!1}=_;if(!M&&!y.current||!a&&!M)return;const P=T||r==="auto"||r==="instant"?"auto":r;v.current&&cancelAnimationFrame(v.current),b.current=!0,v.current=requestAnimationFrame(()=>{if(!M&&!y.current){b.current=!1,v.current=void 0;return}const O=i.current;if(!O){b.current=!1,v.current=void 0;return}const I=O.scrollHeight;P==="smooth"&&"scrollTo"in O?O.scrollTo({top:I,behavior:P}):O.scrollTop=I,g.current=O.scrollTop,d(!0),l(!0),y.current=!0,h(!1),p(0),b.current=!1,v.current=void 0})},[r,a]),N=C.useCallback(()=>{const _=i.current;if(!_)return;const k=g.current,M=_.scrollTop,T=M-k;if(g.current=M,T<-1){v.current&&(cancelAnimationFrame(v.current),v.current=void 0),b.current=!1,y.current=!1,l(!1),d(!1);return}if(b.current)return;const P=j()<=n;d(P),l(P),y.current=P,P&&(h(!1),p(0))},[j,n]),E=C.useCallback(()=>{p(0),h(!1)},[]);return C.useEffect(()=>{y.current=a},[a]),C.useEffect(()=>{const _=i.current;if(!_||!e||e.length===0){h(!1),p(0),w.current={key:null,count:0,length:0},g.current=_?_.scrollTop:0,x.current=_?_.scrollHeight:0;return}g.current=_.scrollTop,x.current=_.scrollHeight;const k=w.current,M=e[e.length-1],T=(M==null?void 0:M.id)??(M==null?void 0:M.messageId)??(M==null?void 0:M.createdAt)??(M==null?void 0:M.timestamp)??e.length,P=Array.isArray(M==null?void 0:M.parts)?M.parts.reduce((L,R)=>R?typeof R=="string"?L+R.length:typeof R.text=="string"?L+R.text.length:typeof R.content=="string"?L+R.content.length:typeof R.value=="string"?L+R.value.length:L:L,0):typeof(M==null?void 0:M.content)=="string"?M.content.length:typeof(M==null?void 0:M.text)=="string"?M.text.length:0,O=e.length>k.count,I=T!==k.key,$=P>k.length,V=s&&(M==null?void 0:M.role)==="assistant"&&!O&&(I||$),W=o||V;if(w.current={key:T,count:e.length,length:P},a&&(O||I||$||W)){S({force:!1,instant:W});return}if(!a&&O){const L=e.length-k.count;L>0&&(h(!0),p(R=>R+L))}else!a&&$&&(h(!0),p(L=>L>0?L:1))},[e,S,a,s,o]),C.useEffect(()=>{S({instant:!0})},[S]),C.useEffect(()=>{if(typeof ResizeObserver>"u")return;const _=i.current;if(!_)return;x.current=_.scrollHeight;const k=new ResizeObserver(()=>{const M=i.current;if(!M)return;const T=x.current,P=M.scrollHeight;x.current=P,!b.current&&y.current&&P>T&&S({force:!1,instant:!0})});return k.observe(_),()=>{k.disconnect()}},[S]),C.useEffect(()=>()=>{v.current&&cancelAnimationFrame(v.current)},[]),{scrollRef:i,isAutoScrollEnabled:a,isAtBottom:u,hasNewMessages:f,newMessageCount:m,scrollToBottom:S,handleScroll:N,resetNewMessageCount:E}}function Hee(e,t={}){const{maxVisibleMessages:n=50,initialLoadCount:r=20,loadMoreCount:s=10}=t,[o,i]=C.useState(r),a=C.useMemo(()=>{if(e.length<=o)return e;const h=Math.max(0,e.length-o);return e.slice(h)},[e,o]),l=e.length>o,u=o>=e.length,d=C.useCallback(()=>{i(h=>Math.min(h+s,n))},[s,n]),f=C.useCallback(()=>{i(r)},[r]);return C.useEffect(()=>{u&&e.length>o&&o<n&&i(Math.min(e.length,n))},[e.length,o,u,n]),{visibleMessages:a,hasMoreMessages:l,totalMessageCount:e.length,loadMoreMessages:d,resetMessageWindow:f,isShowingAll:u}}function Uee(e){var n;if(!e||e.length===0)return{hasActiveTools:!1};const t=e[e.length-1];if(!(t!=null&&t.parts))return{hasActiveTools:!1};for(const r of t.parts){if(r.type==="reasoning"&&"state"in r&&r.state==="streaming")return{hasActiveTools:!0,activeToolText:r.text||"Reasoning...",toolType:"reasoning"};if(((n=r.type)!=null&&n.startsWith("tool-")||r.type==="dynamic-tool")&&"state"in r&&["input-streaming","input-available"].includes(r.state)){const s=r,o=s.state;return{hasActiveTools:!0,activeToolText:jJ(s.type,o),toolType:s.type}}}return{hasActiveTools:!1}}const CXe=[{title:"Show top 3 insights",subtitle:"from this dataset"},{title:"Create a bar chart for",subtitle:"sales by product category"}];function SXe({open:e,setOpen:t,isFullscreen:n,onFullscreenChange:r,fullscreenContainer:s}){const[o,i]=C.useState(!1),[a,l]=C.useState(gT),[u,d]=C.useState(!1),[f,h]=C.useState(!1),[m,p]=C.useState(!1),g=n??m,{isLocalDev:b,isConsoleMode:x}=Hm(),y=C.useRef(null);J(Ye=>Ye.dashboard.aiScopeTables),J(Ye=>Ye.isDashboardEditing);const v=J(Ye=>Ye.selectedSheetId),{setDataSource:w}=cr(),{addFrame:j,setSelectedFrameId:S,setIsDashboardEditing:N}=Wt(),E=dp(),{setCurrentAIContext:_,updateSelectedEntities:k,setReasoningEffort:M,setShowReasoning:T}=WC(),{clearQueue:P}=fp(),{clearFileAttachments:O,getFileAttachments:I}=QD(),$=XD("dashboard"),V=J(Ye=>Ye.dashboard.aiContext),W=Ae(Ye=>Ye.card.dataSource),{assistantProfile:L}=Pee(),R=J(Ye=>Ye.handleOpenAssistantProfile),{sendMessage:z,isLoading:F,messages:A,setMessages:H,status:B,stop:Y,errorMessage:q,clearError:U}=sXe(),G=C.useCallback(Ye=>{r==null||r(Ye),n===void 0&&p(Ye)},[n,r]),Z=C.useCallback(()=>{G(!g)},[g,G]);C.useEffect(()=>{if(!g)return;function Ye(Yt){Yt.key==="Escape"&&G(!1)}return window.addEventListener("keydown",Ye),()=>{window.removeEventListener("keydown",Ye)}},[g,G]);const[Q,K]=C.useState(""),te=Ye=>{K(Ye.target.value)};function le({sql:Ye,cardTitle:Yt,connectionId:Ge,cardType:et,python:Be,cardConfig:Ke,dataSource:kt,customVisualPreferences:pe}){if(!v)return;const Re={id:Rr(),title:Yt||"Title",preferences:{onClickFilter:[{columnIndex:0,expression:""}],chartOptions:{indexAxis:et==="horizontalBar"?"y":"x"}},type:et,sql:Ye,python:Be,dataSource:kt,config:Ke,connectionId:Ge,customCardPreferences:pe?{url:pe.url,componentName:pe.componentName,pluginChartType:pe.pluginChartType,settings:pe.settings,type:"component"}:void 0},re={id:Rr(),cards:[Re],activeCardId:Re.id};N(!0),j(v,re,"end"),S(re.id)}const de=Ye=>{Ye.preventDefault();const Yt=Q.trim();if(!Yt&&$.length===0)return;const Ge=[];Yt&&Ge.push({type:"text",text:Yt}),$.forEach(et=>{et.data&&Ge.push({type:"file",mediaType:et.type,filename:et.name,url:`data:${et.type};base64,${et.data}`})}),z({role:"user",parts:Ge}),K(""),O("dashboard"),ie({force:!0})};C.useEffect(()=>{var Ye;e&&((Ye=y.current)==null||Ye.focus())},[e]),Bee({assistantType:"dashboard",status:B,isLoading:F,sendMessage:z});const{hasActiveTools:ce}=Uee(A),{visibleMessages:Ce,hasMoreMessages:ge,totalMessageCount:he,loadMoreMessages:me,resetMessageWindow:oe}=Hee(A,{maxVisibleMessages:15,initialLoadCount:10,loadMoreCount:5}),{scrollRef:Ne,isAtBottom:fe,hasNewMessages:Me,newMessageCount:ke,scrollToBottom:ie,handleScroll:xe,resetNewMessageCount:Oe}=Vee(Ce,{threshold:50,behavior:"smooth",isStreaming:F});function be(Ye){Fe();const Yt={role:"user",parts:[{type:"text",text:Ye.title+" "+Ye.subtitle}]};z(Yt)}function De(Ye){Fe(),z({role:"user",parts:[{type:"text",text:Ye}]})}function qe(Ye){Fe(),z({role:"user",parts:[{type:"text",text:Ye}]}),ie({force:!0})}const He=C.useCallback(async()=>{const Ye=JSON.stringify(A??[],null,2);try{if(typeof navigator>"u"||!navigator.clipboard)throw new Error("Clipboard API unavailable");await navigator.clipboard.writeText(Ye),ze.success("Conversation copied")}catch(Yt){console.error("Failed to copy conversation",Yt),ze.error("Unable to copy conversation")}},[A]);function Fe(){E.selectedEntities.length===0&&_({selectedEntities:(V==null?void 0:V.selectedEntities)||[]})}const yt=(Q==null?void 0:Q.length)===0&&(A==null?void 0:A.filter(Ye=>Ye.role==="user").length)===0;function je(){return c.jsx("div",{"data-role":"header",children:c.jsx("div",{className:"text-lg font-semibold",children:"Assistant"})})}function dt(){return c.jsxs(wf,{children:[c.jsx(Cf,{asChild:!0,children:c.jsx(Wc,{className:"h-7 p-2 text-muted-foreground hover:text-foreground",children:c.jsx(Pm,{className:"size-3.5"})})}),c.jsxs(yu,{align:"end",children:[c.jsx(Eh,{children:"Options"}),c.jsx(Kd,{}),c.jsx(Mg,{checked:o,onCheckedChange:i,children:"Token Usage"}),c.jsx(Mg,{checked:a,onCheckedChange:l,children:"Tool Invocations"}),c.jsx(Mg,{checked:u,onCheckedChange:d,children:"System Message"})]})]})}const Ct=c.jsxs("div",{"data-role":"dashboard-assistant",className:X("flex h-full grow flex-col justify-between break-words px-6 py-4",g&&"rounded-2xl border border-border/60 bg-background px-8 pb-6 pt-6 shadow-xl"),children:[c.jsxs("div",{"data-role":"header-section",className:"flex items-start justify-between gap-2",children:[je(),R&&c.jsx(se,{variant:"outline",size:"sm",className:"h-7 p-2",onClick:R,children:(L==null?void 0:L.name)||"Default Profile"}),c.jsxs("div",{"data-role":"header-actions",className:"flex items-center",children:[x&&dt(),a&&c.jsx(se,{variant:"ghost",size:"sm",className:"ml-2 h-7 px-2 text-muted-foreground hover:text-foreground",onClick:He,children:"Copy Conversation"}),c.jsx(Wc,{className:"h-7 p-2 text-muted-foreground hover:text-foreground",tooltip:g?"Exit Fullscreen":"Expand",onClick:Z,children:g?c.jsx(KT,{className:"size-4"}):c.jsx(W1,{className:"size-4"})}),c.jsx(Wc,{className:"h-7 p-2 text-muted-foreground hover:text-foreground",tooltip:"New Chat",onClick:()=>{H([]),P("dashboard"),U(),oe()},children:c.jsx(Y1,{className:"size-4"})}),c.jsx(Wc,{className:"h-7 p-2 text-muted-foreground hover:text-foreground",onClick:()=>{t(!1)},children:c.jsx(St,{className:"size-4"})})]})]}),c.jsxs(tl,{"data-role":"dashboard-assistant-scroll-area",ref:Ne,className:"mt-4 flex flex-1 basis-0 flex-col flex-wrap justify-end pr-2",onScroll:xe,children:[c.jsxs("div",{className:"space-y-3 pb-4",children:[ge&&c.jsx("div",{className:"flex justify-center py-2",children:c.jsxs(se,{variant:"outline",size:"sm",onClick:me,className:"text-xs",children:["Load ",Math.min(5,he-Ce.length)," ","more messages (",he-Ce.length," ","hidden)"]})}),c.jsx(kJ,{showTools:a,showSystemMessage:u,messages:Ce,onAddToDashboard:le,onQuickReply:qe,disableQuickReplies:F}),!ce&&c.jsx(NJ,{status:B,errorMessage:q})]}),c.jsx(bi,{orientation:"horizontal"})]}),e&&!fe&&c.jsx("div",{className:"absolute bottom-24 right-8 z-10",children:c.jsxs(se,{onClick:()=>{ie({force:!0}),Oe()},size:"sm",variant:"secondary",className:"rounded-full shadow-lg","aria-label":"Scroll to bottom",children:[c.jsx(kr,{className:"h-4 w-4"}),Me&&ke>0&&c.jsx("span",{className:"ml-1.5 flex h-5 w-5 items-center justify-center rounded-full bg-primary text-xs text-primary-foreground",children:ke>9?"9+":ke})]})}),c.jsxs("div",{className:"space-y-3",children:[!L&&yt&&c.jsx(EJ,{onClick:be,placeholders:CXe}),c.jsx("div",{children:yt&&L&&c.jsx(Oee,{seedQuestions:L.seedQuestions||[],handleSeedQuestionClick:De})}),c.jsx(zee,{assistantType:"dashboard",className:"mb-3"}),c.jsx(IA,{ref:y,setInput:K,stop:Y,input:Q,handleInputChange:te,handleSubmit:Ye=>{Fe(),de(Ye),ie({force:!0})},isLoading:F,status:B,assistantType:"dashboard",onFocus:()=>{}})]}),c.jsx(DA,{incomingSelectedEntities:(V==null?void 0:V.selectedEntities)||[],open:f,onOpenChange:h,dataSource:W||HS,dialogMode:"aiContext"})]});return g&&s?Zn.createPortal(c.jsx("div",{className:"pointer-events-auto absolute inset-0 z-50 flex bg-background px-6 pb-6 pt-[calc(var(--app-header-height,15px)+1rem)]",children:c.jsx("div",{className:"flex h-full w-full",children:Ct})}),s):Ct}function jXe(e){const t=e.current,{getSelectedFrame:n,addFrame:r,setSelectedFrameId:s}=Wt(),o=J(d=>d.dashboard.sheets),a=J(d=>d.selectedSheetId)??(o==null?void 0:o[0].id),l=J(d=>d.isDashboardEditing),u=J(d=>d.isVisualEditing);C.useEffect(()=>{if(!l||u)return;async function d(m){const p=m.ctrlKey||m.metaKey;p&&m.key==="c"?(await f(),ze.success("Card copied to clipboard"),m.preventDefault()):p&&m.key==="v"&&(await h(),m.preventDefault())}async function f(){try{const m=n();m&&await navigator.clipboard.writeText(JSON.stringify(m))}catch(m){console.error("Failed to copy text:",m)}}async function h(){if(!a)return null;try{const m=await navigator.clipboard.readText();try{const p=JSON.parse(m);if(p!=null&&p.id){const g=NR(p),b=g.cards.findIndex(x=>x.id===g.activeCardId);b!==-1&&(g.cards[b].title=`${g.cards[b].title} (Copy)`),r(a,g),s(g.id),ze.success("Card pasted from clipboard")}}catch(p){console.error("Failed to parse clipboard contents: ",p)}return m}catch(m){return console.error("Failed to paste text:",m),null}}return t==null||t.addEventListener("keydown",d),()=>t==null?void 0:t.removeEventListener("keydown",d)},[r,n,s,a,l,u,t])}function NXe(e,t){switch(e.interactionMode){case"drillToDetail":kXe(e,t);break;case"drillThrough":EXe(e,t);break;case"drillToURL":_Xe(e);break;case"inlineDrill":console.warn("Inline drill execution not yet implemented");break;case"clickFilter":case"drillDown":case"dynamicDrill":break;default:console.warn("Unknown interaction mode:",e.interactionMode)}}function kXe(e,t){var l;const{targetInsightId:n,contextMode:r,displayMode:s,filterGroups:o}=e;if(!n){console.warn("drillToDetail event missing targetInsightId");return}const i=r||"full";let a=[];switch(i){case"interactionFilters":a=o.flatMap(u=>u.filters);break;case"full":{const u=((l=t.getCurrentFilters)==null?void 0:l.call(t))||[],d=o.flatMap(f=>f.filters);a=[...u,...d];break}case"none":default:a=[];break}s==="replace-card"?t.replaceCardContent({cardId:e.sourceCardId,insightId:n,filters:a,contextMode:r}):t.openInsightModal({insightId:n,filters:a,contextMode:r})}function EXe(e,t){var u,d;const{targetDashboardId:n,contextMode:r="interactionFilters",filterGroups:s,sourceCardId:o}=e;if(!n){console.warn("[DrillThrough] Event missing targetDashboardId. This interaction needs to be reconfigured with a target dashboard.",e);return}const i=s.flatMap(f=>f.filters),a=((u=t.getCurrentDashboardId)==null?void 0:u.call(t))||"",l=(d=t.getCurrentDashboardTitle)==null?void 0:d.call(t);t.setGlobalDrillContext&&t.setGlobalDrillContext({filters:i,contextMode:r,sourceDashboardId:a,sourceDashboardTitle:l,targetDashboardId:n}),t.setPendingDrillThrough&&t.setPendingDrillThrough({targetDashboardId:n,sourceDashboardId:a,sourceDashboardTitle:l,filters:i,contextMode:r})}function _Xe(e){const{url:t}=e;if(!t){console.warn("drillToURL event missing url");return}try{new URL(t)}catch(n){console.error("Invalid URL:",t,n);return}window.open(t,"_blank","noopener,noreferrer")}function TXe({open:e,onOpenChange:t,insightId:n,filters:r,filterDefinitions:s,contextMode:o,cardTitle:i,cardDescription:a}){return c.jsx(Gr,{open:e,onOpenChange:t,children:c.jsxs(zr,{className:"max-h-[90vh] max-w-[90vw] p-6",children:[c.jsxs(Br,{children:[c.jsx(Vr,{children:i||"Insight Detail"}),c.jsx(is,{children:a||"View detailed insight data with applied filters"})]}),c.jsx(YZ,{filters:r,filterDefinitions:s,contextMode:o}),c.jsx("div",{className:"h-[400px] flex-1 overflow-auto",children:n?c.jsx(XZ,{insightId:n,filters:r,contextMode:o}):c.jsx("div",{className:"flex items-center justify-center p-12 text-muted-foreground",children:"No insight selected"})})]})})}function MXe(){const e=Vt(w=>w.interactionStates),t=Vt(w=>w.setInteractionState),n=Vt(w=>w.clearLastInteractionEvent),r=Vt(w=>w.replaceCardWithInsight),s=Vt(w=>w.setPendingDrillThrough),o=Vt(w=>w.pendingDrillThrough),i=Vt(w=>w.clearPendingDrillThrough),{setSelectedSheetId:a,navigateWithDrill:l}=Wt(),{selectDashboard:u}=Cx(),d=J(w=>w.dashboard),f=J(w=>w.filterValues),{data:h,isLoading:m}=F7((o==null?void 0:o.targetDashboardId)||"",{enabled:!!(o!=null&&o.targetDashboardId)}),[p,g]=C.useState({open:!1,insightId:""}),b=QZ(p.insightId,{enabled:p.open&&!!p.insightId}),x=C.useRef(new Set),y=C.useMemo(()=>({setSelectedSheetId:a,openInsightModal:({insightId:w,filters:j,contextMode:S})=>{g({open:!0,insightId:w,filters:j,filterDefinitions:(d==null?void 0:d.filters)||[],contextMode:S})},replaceCardContent:({cardId:w,insightId:j,filters:S,contextMode:N})=>{r(w,j,S,N)},getCurrentFilters:()=>f||[],navigateWithDrill:l,getCurrentDashboardId:()=>(d==null?void 0:d.id)||"",getCurrentDashboardTitle:()=>d==null?void 0:d.title,setPendingDrillThrough:s,setGlobalDrillContext:({filters:w,contextMode:j,sourceDashboardId:S,sourceDashboardTitle:N,targetDashboardId:E})=>{const k={sourceCardId:Da,interactionMode:"clickFilter",filterGroups:[{filters:w}]},M={...ii(),appliedClickFilters:[k],contextMode:j,sourceDashboardId:S,sourceDashboardTitle:N,targetDashboardId:E};t(Da,M)}}),[a,r,f,l,d,s,t]);C.useEffect(()=>{Object.entries(e).forEach(([w,j])=>{if(j!=null&&j.lastInteractionEvent){const S=j.lastInteractionEvent,N=`${w}-${S.interactionMode}-${S.sourceCardId}-${Date.now()}`;if(x.current.has(N))return;x.current.add(N);try{NXe(S,y)}catch(E){console.error("Error executing interaction event:",E)}finally{n(w),setTimeout(()=>{x.current.delete(N)},5e3)}}})},[e,n,y]),C.useEffect(()=>{if(!(!o||!h||m))try{u(h),l(o.targetDashboardId,o.sourceDashboardId,o.sourceDashboardTitle,o.filters,o.contextMode),i()}catch(w){console.error("[DrillThrough] Error during automatic navigation:",w),i()}},[o,h,m,u,l,i]);const v=()=>{g({open:!1,insightId:""})};return c.jsxs(c.Fragment,{children:[c.jsx(TXe,{open:p.open,onOpenChange:v,insightId:p.insightId,filters:p.filters,filterDefinitions:p.filterDefinitions,contextMode:p.contextMode,cardTitle:b.title,cardDescription:b.description}),o&&m&&c.jsx("div",{className:"fixed inset-0 z-[51] flex items-center justify-center bg-background/80 backdrop-blur-sm",children:c.jsxs("div",{className:"flex flex-col items-center gap-3 rounded-lg border bg-background p-6 shadow-lg",children:[c.jsx(xn,{className:"h-8 w-8 animate-spin text-primary"}),c.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading dashboard..."})]})})]})}function DXe(e){return e.length===0?"":e.map(t=>{const n=t.field.label||t.field.name,r=t.operator,s=IXe(t.value);return r==="="?`${n} = ${s}`:`${n} ${r} ${s}`}).join(", ")}function IXe(e){return e==null?"null":Array.isArray(e)?e.join(", "):typeof e=="object"&&e.toString?e.toString():String(e)}function RXe(e){return e?`Back to ${e}`:"Back"}function AXe(){var x,y,v,w,j;const e=Vt(S=>S.interactionStates[Da]),t=J(S=>S.actions.goBackFromDrill),n=J(S=>S.actions.clearDrillContext),{selectDashboard:r}=Cx(),[s,o]=C.useState({x:16,y:16}),[i,a]=C.useState(!1),l=C.useRef({x:0,y:0});C.useEffect(()=>{if(!i)return;const S=E=>{o({x:E.clientX-l.current.x,y:E.clientY-l.current.y})},N=()=>{a(!1)};return document.addEventListener("mousemove",S),document.addEventListener("mouseup",N),()=>{document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",N)}},[i]);const u=e==null?void 0:e.sourceDashboardId,d=e==null?void 0:e.sourceDashboardTitle,f=((w=(v=(y=(x=e==null?void 0:e.appliedClickFilters)==null?void 0:x[0])==null?void 0:y.filterGroups)==null?void 0:v[0])==null?void 0:w.filters)||[],h=u?{id:u,title:d||"Previous Dashboard",description:"",isPrivate:!1,isPublic:!1,version:"",createdBy:null,createdByTenantUser:"",tenantId:"",projectId:"",createdAt:"",updatedAt:"",lastModified:"",lastModifiedBy:"",createdByUser:null,createdByTenantUserRel:{name:"",email:""},permissions:{canEdit:!0,canShare:!0,canDelete:!0},ownership:{status:"private",isOwner:!0,sharedCount:0,createdBy:{type:"user",userId:"",name:"",email:""}}}:null;if(!e||!((j=e.appliedClickFilters)!=null&&j.length))return null;const m=()=>{if(!h){console.warn("[DrillBack] No source dashboard in context");return}try{t(),r(h)}catch(S){console.error("[DrillBack] Error during back navigation:",S)}},p=()=>{n()},g=S=>{S.target.closest("button")||(a(!0),l.current={x:S.clientX-s.x,y:S.clientY-s.y})};DXe(f);const b=RXe(d);return c.jsx("div",{className:"fixed z-50 max-w-md",style:{left:0,top:0,transform:`translate(${s.x}px, ${s.y}px)`,transition:i?"none":void 0},children:c.jsxs("div",{className:"select-none rounded-lg border bg-background/95 p-3 shadow-lg backdrop-blur-sm",onMouseDown:g,style:{cursor:i?"grabbing":"grab"},children:[c.jsxs("div",{className:"mb-3 flex items-start justify-between gap-2",children:[c.jsxs("div",{className:"flex flex-col gap-2",children:[c.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Viewing:"}),c.jsx("div",{className:"flex flex-wrap gap-2",children:f.map((S,N)=>{const E=S.field.label||S.field.name,_=String(S.value);return c.jsxs(Ve,{variant:"secondary",className:"pointer-events-none text-xs",children:[E," = ",_]},N)})})]}),c.jsx(se,{variant:"ghost",size:"sm",onClick:p,className:"h-6 w-6 cursor-pointer p-0",title:"Clear drill context",children:c.jsx(St,{className:"h-3 w-3"})})]}),c.jsx("div",{className:"flex items-center gap-2 border-t pt-2",children:c.jsxs(se,{variant:"secondary",size:"sm",onClick:m,disabled:!h,className:"w-full cursor-pointer",children:[c.jsx(t8,{className:"mr-2 h-4 w-4"}),b]})})]})})}function Wee(){var ge;const{showAssistant:e,tokenProps:t}=Xe(),{preferences:n,isConsoleMode:r}=Hm(),s=((ge=n==null?void 0:n.cardDisplay)==null?void 0:ge.mode)==="print",o=C.useRef(null),i=C.useRef(null),[a,l]=C.useState(!1),{handleDragStart:u,isDraggingRef:d,getStyle:f,getPositionClasses:h}=L6e({initialPosition:"bottom-right"}),m=Od(he=>he.setFullscreen),p=Od(he=>he.setPanelOpen),g=Od(he=>he.setContainer),b=_q("dashboard"),x=Tq(),y=Mq("dashboard"),v=b.isOpen,w=x==="dashboard",j=J(he=>he.isVisualEditing),S=J(he=>he.themeStyle),N=J(he=>{var me;return(me=he.dashboard)==null?void 0:me.sheets}),E=J(he=>he.showFilters),_=J(he=>he.isDashboardEditing),k=J(he=>he.selectedSheetId),M=J(he=>{var me;return(me=he.dashboard)==null?void 0:me.id}),T=J(he=>he.isDashboardPanelOpen),P=J(he=>he.actions.setIsDashboardPanelOpen),{getDefaultSheetId:O,setDefaultSheetId:I,clearDefaultSheetId:$}=Zz(M),[V,W]=C.useState(null);iC(Ut.DASHBOARD);const{setSelectedSheetId:L,setSheetTitle:R,addSheet:z,setSheets:F}=Wt();jXe(i);const{setActiveAssistantType:A}=WC();C.useEffect(()=>{if(M){const he=O();W(he)}},[M,O]),C.useEffect(()=>{v?A("dashboard"):x==="dashboard"&&m(null)},[v,A,x,m]),C.useEffect(()=>{var he;v||(he=o.current)==null||he.resize(0)},[v]);function H(he){var me,oe;he?((me=o.current)==null||me.resize(40),p("dashboard",!0),A("dashboard")):(p("dashboard",!1),m(null),(oe=o.current)==null||oe.resize(0),A(null))}function B(){const he={id:Rr(),title:"New Sheet"};z(he),L(he.id)}function Y(he,me){if(!M)return;V===he?($(),W(null),ze.success("Default sheet cleared")):(I(he),W(he),ze.success(`"${me}" set as default sheet`))}function q(he){var me;he<1?(p("dashboard",!1),m(null),A(null),(me=o.current)==null||me.resize(0)):(v||p("dashboard",!0),A("dashboard"))}function U(){return(S==null?void 0:S.canvasTheme)==="muted"||!(S!=null&&S.canvasTheme)?"hsl(var(--semaphor-muted))":(S==null?void 0:S.canvasTheme)==="clear"?"":S==null?void 0:S.canvasTheme}const G=(he,me)=>{he.dataTransfer.setData("tabIndex",me.toString())},Z=he=>{he.preventDefault()},Q=(he,me)=>{const oe=he.dataTransfer.getData("tabIndex");if(oe===me.toString())return;const Ne=Array.from(N||[]),[fe]=Ne.splice(parseInt(oe),1);Ne.splice(me,0,fe),F(Ne)},K=t.orgUserId||t.tenantId&&t.endUserId&&t.endUserEmail,te=e===!0&&!s&&!v&&!j&&!E;function le(){var he,me;if(N&&N.length>1||_)return c.jsxs(ys,{role:"tab-list",className:"flex h-12 w-0 min-w-full items-center justify-start gap-2 overflow-x-auto rounded-none border-b border-b-muted bg-transparent px-3",children:[r&&K&&c.jsx(se,{style:{borderRadius:S==null?void 0:S.controlInputRadius},variant:"outline","aria-label":"Manage Dashboards and Visuals",onClick:()=>{P(!T)},className:"h-8 shrink-0 p-2",children:T?c.jsx(i8,{className:"h-4 w-4"}):c.jsx(a8,{className:"h-4 w-4"})}),N==null?void 0:N.map((oe,Ne)=>{const fe=k===oe.id,Me=V===oe.id;return c.jsxs(nn,{draggable:!0,onDragStart:ke=>G(ke,Ne),onDragOver:Z,onDrop:ke=>Q(ke,Ne),style:{borderRadius:S==null?void 0:S.controlInputRadius},onClick:()=>L(oe.id),className:"flex shrink-0 items-center gap-1 border px-2 py-1",value:oe.id,children:[c.jsx(Vb,{enabled:_&&fe,text:oe.title,onSave:ke=>R(oe.id,ke),children:oe.title},oe.id),!_&&fe&&c.jsx("div",{title:Me?"Clear default sheet":"Set as default sheet",children:c.jsx(JT,{className:X("ml-1 size-3 cursor-pointer transition-all",Me?"fill-yellow-500 text-yellow-500":"text-muted-foreground hover:text-foreground"),onClick:ke=>{ke.stopPropagation(),Y(oe.id,oe.title||"Sheet")}})}),_&&fe&&N.length>1&&c.jsx(St,{className:"ml-1 size-3",onClick:()=>l(!0)})]},oe.id)}),_&&c.jsx("div",{style:{borderRadius:(me=(he=S==null?void 0:S.chart)==null?void 0:he.options)==null?void 0:me.borderRadius},className:"flex h-7 shrink-0 items-center justify-center border-none bg-muted p-2 hover:cursor-pointer dark:border-l-background",onClick:B,children:c.jsx(Tr,{className:"size-3"})})]})}function de(){return c.jsx("div",{ref:i,style:{},className:"grow",children:N==null?void 0:N.map(he=>c.jsx(pr,{style:{backgroundColor:U()},className:X("mt-0",{}),value:he.id,children:c.jsx(c6e,{sheet:he})},he.id))})}function ce(){var he;return c.jsxs(Os,{"data-role":"dashboard-tabs-container",className:X("relative flex h-full flex-col",S==null?void 0:S.dashboardTabsContainer),onValueChange:me=>{L(me)},value:k||((he=N==null?void 0:N[0])==null?void 0:he.id),children:[le(),c.jsx(tl,{"data-role":"dashboard-tabs-content",className:"flex-1 grow basis-0 overflow-y-auto",children:de()}),c.jsx(z6e,{open:a,setOpen:l})]})}const Ce=C.useCallback(he=>{g("dashboard",he)},[g]);return N?c.jsxs(c.Fragment,{children:[c.jsx(MXe,{}),c.jsx(AXe,{}),c.jsxs("div",{className:"relative flex-1 basis-0 overflow-hidden",children:[c.jsxs(aQ,{className:X("flex-1 basis-0 overflow-y-auto transition-opacity",w&&"pointer-events-none opacity-0"),direction:"horizontal",children:[c.jsx(I_,{children:ce()}),e===!0&&c.jsxs(c.Fragment,{children:[c.jsx($6e,{open:v,onTabClick:H,withHandle:!0,disabled:!v}),c.jsx(I_,{className:"flex grow","data-role":"dashboard-assistant-panel",onResize:q,defaultSize:v?40:0,ref:o,children:c.jsx("div",{className:"grow overflow-y-auto",children:c.jsx(SXe,{open:v,setOpen:H,isFullscreen:w,onFullscreenChange:he=>m(he?"dashboard":null),fullscreenContainer:y})})})]})]}),c.jsx("div",{ref:Ce,className:X("absolute inset-0",!w&&"pointer-events-none")}),te&&c.jsx("div",{className:X("absolute z-50 transition-all duration-300 ease-in-out",h().horizontal,h().vertical),style:f(),children:c.jsx(se,{size:"sm",variant:"outline",className:"h-12 w-12 cursor-grab rounded-full border-border bg-background p-0 shadow-lg hover:bg-muted active:cursor-grabbing",onClick:()=>{d.current||H(!0)},onMouseDown:u,onTouchStart:u,title:"Open Assistant (drag to move)",children:c.jsx(q1,{className:"h-5 w-5"})})})]})]}):null}function RA({children:e}){return c.jsx(Za,{style:{height:"100%",width:"100%"},children:c.jsx(eoe,{defaultTheme:"system",storageKey:"vite-ui-theme",children:c.jsx(Ln,{delayDuration:0,children:e})})})}function qee({children:e,preferences:t}){const{currentUser:n}=Ps(),r=C.useMemo(()=>{var s,o;return{preferences:t||{},isLocalDev:((s=t==null?void 0:t.uiMode)==null?void 0:s.developer)||!1,isConsoleMode:((o=t==null?void 0:t.uiMode)==null?void 0:o.console)||!1}},[t]);return c.jsx(m7.Provider,{value:r,children:c.jsx(AR,{displayPreferences:t==null?void 0:t.cardDisplay,currentUser:n,children:e})})}function PXe(e=2e3,t=500){const n=Toe(),[r,s]=C.useState(!1),[o,i]=C.useState(!1),a=C.useRef(null);return C.useEffect(()=>{const l=setTimeout(()=>s(!0),e);return()=>clearTimeout(l)},[e]),C.useEffect(()=>{if(r){if(n>0){i(!1),a.current&&(clearTimeout(a.current),a.current=null);return}return a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{i(!0)},t),()=>{a.current&&clearTimeout(a.current)}}},[r,n,t]),o}function AA({delayMs:e=2e3,quietMs:t=500,componentType:n,componentId:r}){const s=PXe(e,t);return C.useEffect(()=>(s&&(window.__SEMAPHOR_READY__={ready:!0,type:n,componentId:r||null,timestamp:Date.now()}),()=>{window.__SEMAPHOR_READY__={ready:!1,type:n,componentId:r||null,timestamp:Date.now()}}),[s,n,r]),c.jsx("div",{id:"idle-check","aria-hidden":"true",style:{position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},children:s?"ready":""})}function Yee(e){if(typeof window>"u")return null;const{preferences:t}=e;return c.jsx(rl,{FallbackComponent:gS,children:c.jsxs(PT,{dashboardProps:e,children:[c.jsx(AA,{componentType:"dashboard",componentId:e.id}),c.jsx(RA,{children:c.jsx(qee,{preferences:t,children:c.jsx("main",{className:"flex h-full flex-col",children:c.jsx(JD,{...e,type:"dashboard",children:c.jsx(Wee,{})})})})})]})})}function g6(e,t){return e.map(n=>({...n,fieldScope:t}))}function OXe(e){const t=new Map;return e.forEach(n=>{const r=`${n.name}-${n.role||"unknown"}`;t.has(r)||t.set(r,n)}),Array.from(t.values())}function b6(e){if(sc(e)||Ux(e))return e.expression}function PA(){const{columns:e,columnGroups:t,isLoading:n,hasError:r,error:s,refetch:o}=kD(),i=Ae(g=>g.frame.calculatedFields),a=Ae(g=>g.card.config),l=C.useMemo(()=>e.filter(g=>g.fieldScope==="domain"),[e]),u=C.useMemo(()=>e.filter(g=>g.fieldScope!=="domain"),[e]),d=C.useMemo(()=>i!=null&&i.length?g6(i,"dashboard"):[],[i]),f=C.useMemo(()=>{const g=new Map;return d.forEach(b=>{const x=`${b.name}-${b.role||"unknown"}`;g.set(x,b)}),g},[d]),h=C.useMemo(()=>{const g=((a==null?void 0:a.metricColumns)||[]).filter(sc),b=((a==null?void 0:a.groupByColumns)||[]).filter(Ux),y=OXe([...g,...b]).filter(v=>{const w=`${v.name}-${v.role||"unknown"}`,j=f.get(w);if(!j)return!0;const S=b6(v),N=b6(j);return S&&N?S!==N:!0});return g6(y,"card").map(v=>({...v,id:`card-source-${v.id}`}))},[a==null?void 0:a.groupByColumns,a==null?void 0:a.metricColumns,f]),m=C.useMemo(()=>[...l,...d,...h,...u],[h,u,d,l]),p=C.useMemo(()=>t.filter(g=>g.entityId!==pz),[t]);return{columns:e,columnGroups:p,rawColumnGroups:t,columnFields:u,domainCalculatedFields:l,dashboardCalculatedFields:d,cardCalculatedFields:h,scopedFields:m,isLoading:n,hasError:r,error:s,refetch:o}}function OA(e){const{tokenProps:t,authToken:n}=Xe(),r=t==null?void 0:t.apiServiceUrl;return En({queryKey:["joinability-map",e],queryFn:async()=>{if(!e||!(n!=null&&n.accessToken))return null;const s=`${r}/v1/domains/${e}/joinability`;return rr(s,n.accessToken)},enabled:!!e&&!!(n!=null&&n.accessToken)&&!!r,staleTime:5*60*1e3,gcTime:10*60*1e3,retry:2,retryDelay:s=>Math.min(1e3*2**s,3e4)})}function Gee(e,t,n){if(t==="source")return{isValid:!0};const r=yr(e.dataType);if(n==="detailTable"&&t!=="detailColumns"&&t!=="sortBy")return{isValid:!1,reason:"Detail tables only accept columns"};if(n==="kpi"){if(t==="groupBy"&&r!=="date")return{isValid:!1,reason:"KPI Trend By only accepts date fields"};if(t==="metrics"&&r==="date")return{isValid:!1,reason:"KPI metrics cannot be date fields"}}return{isValid:!0}}function Kee(e,t,n,r,s){if(e!=="kpi"||s.length<3)return;const o=(t==null?void 0:t.groupByColumns)&&t.groupByColumns.length>0,i=(t==null?void 0:t.comparisonType)==="none";!o&&i||n(r,{groupByColumns:[],comparisonType:"none"})}const Zee=e=>{var O;const t=(O=e==null?void 0:e.dataSource)==null?void 0:O.semanticDomainId,{data:n}=OA(t),{updateCardConfig:r,updateGroupByColumn:s,updateMetricColumn:o,updatePivotByColumn:i,updateSortByColumn:a,removeGroupByColumn:l,removeMetricColumn:u,removePivotByColumn:d,removeSortByColumn:f}=cr(),h=Ae(I=>I.card.type),m=e==null?void 0:e.id,p=(I,$)=>{if(I.id)return I.id;const V=I.qualifiedEntityName||I.entityName||$;return`${$}-${V}-${I.name}`},g=C.useCallback(I=>{if(!(e!=null&&e.config))return[];switch(I){case"groupBy":return(e.config.groupByColumns||[]).map($=>({...$,id:p($,"groupBy"),label:$.label!==void 0?$.label:$.name}));case"metrics":return(e.config.metricColumns||[]).map($=>({...$,id:p($,"metrics"),label:$.label!==void 0?$.label:$.name}));case"pivotBy":return(e.config.pivotByColumns||[]).map($=>({id:p($,"pivotBy"),name:$.name,dataType:$.dataType,label:$.label!==void 0?$.label:$.name,qualifiedEntityName:$.qualifiedEntityName,entityId:$.entityId,entityName:$.entityName,entityType:$.entityType}));case"sortBy":return(e.config.sortByColumns||[]).map($=>({id:p($,"sortBy"),name:$.name,dataType:$.dataType,label:$.label!==void 0?$.label:$.name,qualifiedEntityName:$.qualifiedEntityName,entityId:$.entityId,entityName:$.entityName,entityType:$.entityType,direction:$.direction}));case"detailColumns":return(e.config.detailColumns||[]).map($=>({id:p($,"detailColumns"),name:$.name,dataType:$.dataType,label:$.label!==void 0?$.label:$.name,qualifiedEntityName:$.qualifiedEntityName,entityId:$.entityId,entityName:$.entityName,entityType:$.entityType,dateFormat:$.dateFormat,customFormat:$.customFormat}));case"source":return[];default:return[]}},[e]),b=C.useCallback((I,$)=>{if(m)switch(I){case"groupBy":{r(m,{groupByColumns:$});break}case"metrics":{r(m,{metricColumns:$});break}case"pivotBy":{r(m,{pivotByColumns:$});break}case"sortBy":{r(m,{sortByColumns:$});break}case"detailColumns":{r(m,{detailColumns:$});break}}},[m,r]),x=C.useCallback((I,$,V)=>{if(!m)return;const W=g(I),L=W[$];if(L)switch(I){case"groupBy":s(m,L.id,{label:V});break;case"metrics":o(m,L.id,{label:V});break;case"pivotBy":i(m,L.id,{label:V});break;case"sortBy":a(m,L.id,{label:V});break;case"detailColumns":{const R=W.map((z,F)=>F===$?{...z,label:V}:z);r(m,{detailColumns:R});break}}},[m,g,s,o,i,a,r]),y=C.useCallback((I,$)=>{if(!m)return;const W=g("metrics")[I];W&&o(m,W.id,{aggregate:$,label:IU(W.name,$)})},[m,g,o]),v=C.useCallback((I,$,V,W="groupBy")=>{if(!m)return;const L=g(W),R=L[I];if(!R)return;const z={dateFormat:$,customFormat:$==="custom"&&V?V:void 0};if(W==="detailColumns"){const F=L.map((A,H)=>H===I?{...A,...z}:A);r(m,{detailColumns:F});return}s(m,R.id,z)},[m,g,r,s]),w=C.useCallback((I,$)=>{if(!m)return;const W=g("groupBy")[I];W&&s(m,W.id,{granularity:$})},[m,g,s]),j=C.useCallback((I,$)=>{if(!m)return;const W=g("metrics")[I];W&&o(m,W.id,{aliasTemplate:$})},[m,g,o]),S=C.useCallback((I,$)=>{if(console.log("handleValueAliasesChange",I,$),!m)return;console.log("handleValueAliasesChange",I,$);const W=g("metrics")[I];W&&(console.log("handleValueAliasesChange",$),o(m,W.id,{valueAliases:$}))},[m,g,o]),N=C.useCallback(I=>{if(!m)return;if(g("metrics").length===0){ze.error("Add Metric First",{description:"Please add a metric field before selecting a comparison type",position:"top-center",duration:3e3});return}r(m,{comparisonType:I})},[m,r,g]),E=C.useCallback(I=>{m&&r(m,{showTrendline:I})},[m,r]),_=C.useCallback(I=>{m&&r(m,{trendlineWindow:I})},[m,r]),k=C.useCallback(I=>{m&&r(m,{trendlineGranularity:I})},[m,r]),M=C.useCallback(I=>{m&&r(m,{targetValue:I})},[m,r]),T=C.useCallback(async I=>{var A;if(!m)return;const $=[...g("groupBy"),...g("pivotBy"),...g("metrics"),...g("sortBy"),...g("detailColumns")],V=I,W=G1e(V,$,{joinPlan:(A=e==null?void 0:e.config)==null?void 0:A.joinPlan,joinabilityMap:n==null?void 0:n.joinabilityMap,semanticDomainId:t});if(!W.isValid){W.showError&&TU();return}const L=X1e(V,$,h);if(!L){ze.error("Invalid Field",{description:"This field cannot be added to any container",position:"top-center",duration:3e3});return}const R=Gee(V,L,h);if(!R.isValid){ze.error("Invalid Field Type",{description:R.reason,position:"top-center",duration:3e3});return}const z=g(L);if(MU(V,z))return;const F=RU(V,L,z);if(F){const H=[...z,F];b(L,H),L==="metrics"&&Kee(h,e==null?void 0:e.config,r,m,H)}},[m,e==null?void 0:e.config,g,b,t,n,h,r]),P=C.useCallback((I,$)=>{if(!m)return;const W=g(I)[$];if(W){if(I!=="sortBy"){const L=g("sortBy"),R=L.filter(z=>!(z.name===W.name&&z.qualifiedEntityName===W.qualifiedEntityName));R.length!==L.length&&r(m,{sortByColumns:R})}switch(I){case"groupBy":l(m,W.id);break;case"metrics":u(m,W.id);break;case"pivotBy":d(m,W.id);break;case"sortBy":f(m,W.id);break;case"detailColumns":{r(m,{detailColumns:(g("detailColumns")||[]).filter((L,R)=>R!==$)});break}}}},[m,g,l,u,d,f,r]);return{getFieldsForContainer:g,setFieldsForContainer:b,updateLabel:x,handleAggregationChange:y,handleDateFormatChange:v,handleGranularityChange:w,handleAliasTemplateChange:j,handleValueAliasesChange:S,removeField:P,handleFieldClick:T,handleKpiComparisonTypeChange:N,handleKpiShowTrendlineChange:E,handleKpiTrendlineWindowChange:_,handleKpiTrendlineGranularityChange:k,handleKpiTargetValueChange:M,cardType:h}};function YS(e,t){var De,qe,He,Fe,yt;const{tokenProps:n}=Xe(),r=so(),s=Xe().authToken||e,o=Ae(je=>je.selectedConnectionId),i=Ae(je=>je.card),{queryKey:a}=phe(i),l=Ae(je=>je.selectedDatamodelId),u=Ae(je=>je.isDevMode),d=Ae(je=>je.selectedDatabaseName),f=Ae(je=>je.selectedSchemaName),h=Ae(je=>je.selectedTableName),m=Ae(je=>je.actions.setSelectedConnectionId),p=Ae(je=>je.actions.setSelectedDatamodelId),g=Ae(je=>je.actions.setSelectedDatabaseName),b=Ae(je=>je.actions.setSelectedSchemaName),x=Ae(je=>je.actions.setSelectedTableName);Ae(je=>je.actions.setCardSql);const{setQueryConfig:y}=cr();function v(je){var Ct;return o&&je==="API"?!1:o&&je==="S3"?!0:!(!o||!d||d==="NA"||((Ct=_==null?void 0:_.capabilities)==null?void 0:Ct.path.includes("schema"))&&!f)}function w(je){return o&&je?!(je==="API"||je==="S3"):!1}const{refetchConnections:j,connectionsData:S,isConnectionsLoading:N,isConnectionsError:E,selectedConnection:_}=Ci(e),{refetch:k,data:M,isLoading:T,isError:P}=En({queryKey:["models",o],queryFn:()=>rr(`${n.apiServiceUrl}/v1/datamodels`,(s==null?void 0:s.accessToken)||"",{connection_id:o}),enabled:!!(s!=null&&s.accessToken)&&!!o}),O=_==null?void 0:_.type,I=(_==null?void 0:_.type)==="API"||(_==null?void 0:_.type)==="S3",{data:$,isLoading:V,isFetching:W,isError:L,refetch:R}=En({queryKey:["databases",o],queryFn:()=>rr(`${n.apiServiceUrl}/v1/databases`,(s==null?void 0:s.accessToken)||"",{connection_id:o}),enabled:w(O)}),{data:z,isLoading:F,isFetching:A,isError:H,refetch:B}=En({queryKey:["schemas",o,d],queryFn:()=>rr(`${n.apiServiceUrl}/v1/schemas`,(s==null?void 0:s.accessToken)||"",{connection_id:o,database_name:d}),enabled:!!o&&!!d&&!I&&d!=="NA"}),{data:Y,isLoading:q,isFetching:U,isError:G,refetch:Z}=En({queryKey:["tables",o,d,f],queryFn:()=>rr(`${n.apiServiceUrl}/v1/tables`,(s==null?void 0:s.accessToken)||"",{connection_id:o,database_name:d,schema_name:f}),enabled:v(O)}),{columns:Q,isColumnsLoading:K,isColumnsFetching:te,isColumnsError:le,refetchColumns:de}=AU(e);C.useEffect(()=>{(O==="S3"||O==="API")&&(g(""),b(""),p(""),O==="API"&&x("api"))},[O,x,g,b,p]);const ce=(_==null?void 0:_.type)==="API"?(De=_==null?void 0:_.type)==null?void 0:De.toLowerCase():h||"",Ce=I?"":f||"";function ge(je){x(je),y(void 0),u||(r.setQueryData(a,null),r.removeQueries({queryKey:a,exact:!0}))}function he(je){b(je),x("")}function me(je){g(je==="none"?"":je),b(""),x(""),je!=="none"&&je!==""&&p("")}function oe(je){m(je)}function Ne(je){p(je==="none"?"":je),je!=="none"&&je!==""&&g("")}$&&((qe=$==null?void 0:$.databases)==null?void 0:qe.length)>0,z&&((He=z==null?void 0:z.schemas)==null?void 0:He.length)>0;const fe=S==null?void 0:S.connections.map(je=>({id:je.id,name:je.name,type:je.type})),Me=(Fe=M==null?void 0:M.datamodels)==null?void 0:Fe.map(je=>({id:je.id,name:je.name})),ke=$==null?void 0:$.databases.map(je=>({id:je.database_name,name:je.database_name})),ie=z==null?void 0:z.schemas.map(je=>({id:je.schema_name,name:je.schema_name})),xe=Y==null?void 0:Y.tables.map(je=>({id:je.table_name,name:je.table_name})),Oe=(yt=M==null?void 0:M.datamodels.find(je=>je.id===l))==null?void 0:yt.name,be=_!=null&&_.capabilities?qv({schemaName:Ce,tableName:ce,modelName:Oe,databaseName:d||"",capabilities:_.capabilities}):ce;return{connectionItems:fe,selectedConnectionId:o,selectedConnection:_,isConnectionsLoading:N,isConnectionsError:E,modelItems:Me,selectedDatamodelId:l,selectedDatamodelName:Oe,isModelsLoading:T,isModelsError:P,selectedDatabaseName:d,databaseItems:ke,isDatabasesLoadingOrFetching:V||W,isDatabaseError:L,schemaItems:ie,selectedSchemaName:f,isSchemaLoadingOrFetching:F||A,isSchemaError:H,tableItems:xe,selectedTableName:h,isTableLoadingOrFetching:q||U,isTableError:G,columns:Q,isColumnsLoadingOrFetching:K||te,isColumnsError:le,isNonDbConnection:I,connectionType:O,tableName:ce,formattedTableName:be,schemaName:Ce,refetchConnections:j,refetchModels:k,refetchDatabases:R,refetchSchemas:B,refetchTables:Z,refetchColumns:de,handleConnectionChange:oe,handleDatamodelChange:Ne,handleDatabaseChange:me,handleSchemaChange:he,handleTableChange:ge}}function dv(e){return`${e}-${Rr()}`}function x6(e,t){const n=pi(e.replace(/_/g," "));switch(t){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 FXe(e,t){const n=pi(e.replace(/_/g," "));switch(t){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 FA(e){if(!e||!e.selectedEntities||e.selectedEntities.length===0)return{tableName:void 0,schemaName:void 0,databaseName:void 0,connectionId:e==null?void 0:e.connectionId,connectionType:e==null?void 0:e.connectionType};const t=e.selectedEntities[0];return{tableName:t==null?void 0:t.name,schemaName:t==null?void 0:t.schema,databaseName:t==null?void 0:t.database,connectionId:e.connectionId,connectionType:e.connectionType}}function Xee(e){if(!e||!e.selectedEntities||e.selectedEntities.length===0)return!1;const t=e.selectedEntities[0];return!!(t!=null&&t.name)}function Qee(){const e=Ae(N=>N.sqlGen),t=Ae(N=>N.isDevMode),n=Ae(N=>N.card.dataSource),r=Ae(N=>{var E,_;return(_=(E=N.card)==null?void 0:E.queryConfig)==null?void 0:_.metricColumns}),{tableName:s,schemaName:o,databaseName:i}=FA(n),a=Xee(n),l=Ae(N=>N.selectedDatamodelId),{addColumnToMetricColumns:u,addColumnToGroupBy:d,setCardSql:f,setRunSql:h,setSqlGen:m,setIsShowingVisual:p}=cr(),{modelItems:g,selectedDatamodelName:b}=YS(),{selectedConnection:x}=Ci(),y=x==null?void 0:x.capabilities,v=N=>({column_name:N.name,data_type:N.dataType,label:N.label,description:N.description});return{handleDevModeFieldClick:N=>{var _;if(!t)return;const E=v(N);if(t&&a&&s&&y){const k=CT(E,e);m(k);const M=(_=g==null?void 0:g.find(P=>P.id===l))==null?void 0:_.name,T=wT(k,o||"",s,M||"",i||"",y,N.qualifiedEntityName);T&&(f(T),h(!0))}else if(!t){if(yx(E.data_type))if(r&&r.length>0){const k={...E,role:"groupby",id:dv(E.column_name),name:E.column_name,type:E.data_type};d(k)}else{const k={...E,role:"metric",id:dv(E.column_name),name:E.column_name,label:x6(E.column_name,"COUNT"),type:E.data_type,aggregate:"COUNT"};u(k)}if(Ki(E.data_type)){const k={...E,role:"groupby",id:dv(E.column_name),name:E.column_name,type:E.data_type,label:FXe(E.column_name,"month"),granularity:"month"};d(k)}if(Gi(E.data_type)){const k={...E,role:"metric",id:dv(E.column_name),name:E.column_name,label:x6(E.column_name,"SUM"),type:E.data_type,aggregate:"SUM"};u(k)}}},handleShowSample:()=>{if(!a||!s||!y){console.warn("Cannot generate SQL: missing table metadata or capabilities");return}const N=qv({schemaName:o||"",tableName:s,modelName:b,databaseName:i||"",capabilities:y});p(!1);const _=(x==null?void 0:x.type)==="MSSQL"?`SELECT top 10 * FROM ${N}`:`SELECT * FROM ${N} LIMIT 10`;f(_),h(!0)},handleShowCount:()=>{if(!a||!s||!y){console.warn("Cannot generate SQL: missing table metadata or capabilities");return}const N=qv({schemaName:o||"",tableName:s,modelName:b,databaseName:i||"",capabilities:y});f(`SELECT COUNT(*) as count FROM ${N}`),h(!0)},isNumberField:N=>Gi(N.dataType)}}function $Xe(e){const t=e.qualifiedFieldName,r=(e.qualifiedEntityName||e.qualifiedFieldName.split(".").slice(0,-1).join(".")).split(".").map(o=>ab(o)).join("."),s=ab(e.name);return{qualifiedColumnName:t,qualifiedTableName:r,formattedColumnName:s}}function Jee(){const e=J(a=>a.dashboard.filters)||[],t=J(a=>a.selectedSheetId),n=J(a=>a.actions.addFilter),r=J(a=>a.actions.removeFilter),{removeFilterValues:s}=Wt(),{selectedConnection:o}=Ci();function i(a,l="sheet"){const{qualifiedColumnName:u,qualifiedTableName:d,formattedColumnName:f}=$Xe(a);let h;if(l==="sheet"&&t?h=oke(e,u,d,t):h=e==null?void 0:e.find(m=>wm(m.column)===wm(u)),h)s(h.id),r(h.id);else{const m=Rr(),p=l==="sheet"&&t?[t]:void 0;return n({id:m,location:l,column:u,title:a.label||a.name,dataType:a.dataType,qualifiedTableName:d,connectionId:(o==null?void 0:o.id)||"",operation:"in",applyToSheetIds:p,sql:wK(a.dataType,d,f)}),m}}return{assignFilter:i}}function LXe({column:e}){const[t,n]=C.useState(!1),r=Ae(y=>y.card.dataSource),{tableName:s,schemaName:o,databaseName:i}=FA(r),a=Ae(y=>y.selectedDatamodelId),l=Ae(y=>y.sqlGen),{modelItems:u,selectedConnection:d}=YS(),f=d==null?void 0:d.capabilities,h=Ae(y=>y.actions.setSqlGen),m=Ae(y=>y.actions.setCardSql),p=Ae(y=>y.actions.setRunSql),g=Xee(r);function b(y,v){var E,_;if(!g||!s){console.warn("Cannot generate SQL: missing table metadata");return}const w=CT(y,l,v),j=(E=u==null?void 0:u.find(k=>k.id===a))==null?void 0:E.name;if(h(w),!f){console.warn("Cannot generate SQL: missing connection capabilities");return}const S=(_=y.qualifiedFieldName)==null?void 0:_.split(".").slice(0,-1).join("."),N=wT(w,o||"",s,j||"",i||"",f,S);N&&(m(N),p(!0)),n(!1)}function x(){return c.jsxs("ul",{className:"text-xs",children:[c.jsx("li",{onClick:()=>b(e,"COUNT"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Count"}),c.jsx("li",{onClick:()=>b(e,"AVG"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Avg"}),c.jsx("li",{onClick:()=>b(e,"SUM"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Sum"}),c.jsx("li",{onClick:()=>b(e,"MAX"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Max"}),c.jsx("li",{onClick:()=>b(e,"MIN"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Min"})]})}return g?c.jsxs(Wm,{openDelay:0,open:t,onOpenChange:n,children:[c.jsx(qm,{asChild:!0,children:c.jsx(Pm,{className:"invisible size-3.5 cursor-pointer text-foreground/40 group-hover/container:visible"})}),c.jsx(Mf,{align:"center",className:"w-20 rounded-md p-0 shadow-none",children:x()})]}):null}function zXe({field:e,fieldState:t}){return c.jsxs("div",{className:"w-64 bg-background p-0",children:[c.jsxs("div",{className:"mb-2 flex items-start justify-between gap-2",children:[c.jsx("h3",{className:"text-sm font-medium text-foreground",children:e.label||e.name}),c.jsx("span",{className:"rounded bg-muted px-2 py-0.5 font-mono text-xs text-muted-foreground",children:e.dataType})]}),e.description&&c.jsx("p",{className:"mb-3 text-xs text-muted-foreground",children:e.description}),t&&t.tooltip&&c.jsx("div",{className:"mb-2 rounded bg-muted/50 p-2",children:c.jsx("p",{className:"text-xs text-muted-foreground",children:t.tooltip})}),c.jsx("div",{className:"overflow-x-auto border-t border-border pb-2 pt-2",children:c.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:e.name})})]})}function y6({field:e,context:t="editor",fieldState:n,onFieldSelect:r,inlineFilters:s,actions:o}){const i=Ae(K=>K.isDevMode),a=t==="filter"||t==="inline-filter",l=i||a||(n==null?void 0:n.state)==="unreachable"&&!a,u=J(K=>K.dashboard.filters),d=J(K=>K.selectedSheetId),f=J(K=>K.actions.removeFilter),{removeFilterValues:h}=Wt(),{assignFilter:m}=Jee(),p=t==="filter"?oc(u,d):u,g=t==="filter"?p==null?void 0:p.find(K=>{if(K.title===e.name)return!0;const te=wm(K.column||""),le=wm(e.name);return te.endsWith(`.${le}`)||te===le}):void 0,b=!!g,x=t==="inline-filter"&&(s==null?void 0:s.some(K=>K.column===e.qualifiedFieldName||K.column===e.name)),y=b||x,v=g&&a?u==null?void 0:u.find(K=>K.id===g.id):void 0,w=v&&(v.applyToSheetIds&&v.applyToSheetIds.length>1||v.excludeSheetIds&&v.excludeSheetIds.length>0||!v.applyToSheetIds&&!v.excludeSheetIds&&!v.sheetId);a&&y&&console.log("[SourceField Debug]",{fieldName:e.name,hasActiveFilter:y,activeFilterOnSheet:g?{id:g.id,title:g.title,column:g.column,applyToSheetIds:g.applyToSheetIds,excludeSheetIds:g.excludeSheetIds}:null,activeFilterForField:v?{id:v.id,title:v.title,column:v.column,applyToSheetIds:v.applyToSheetIds,excludeSheetIds:v.excludeSheetIds}:null,isMultiSheetFilter:w,selectedSheetId:d});const[j,S]=C.useState(!1),[N,E]=C.useState(null),{attributes:_,listeners:k,setNodeRef:M,transform:T,transition:P,isDragging:O}=Ey({id:e.id,disabled:l}),[I,$]=C.useState(!1),V=Ae(K=>K.card),{handleFieldClick:W}=Zee(V),{handleDevModeFieldClick:L,isNumberField:R}=Qee(),z=()=>{v&&(console.log("[SourceField] Removing multi-sheet filter:",v.id),h(v.id),f(v.id)),E(null),S(!1)},F=()=>{if(t==="inline-filter"&&r){r(e);return}t==="filter"?y&&w?(E(e),S(!0)):m(e,"sheet"):i?L(e):W(e)},A={column_name:e.name,data_type:e.dataType,label:e.label,description:e.description},H={transform:yi.Transform.toString(T),transition:P},B=()=>{if(!n||a)return{};const te={base:{hoverBorderColor:"hover:border-blue-500/40",hoverBgColor:"hover:bg-blue-50/50 dark:hover:bg-blue-950/20"},draggable:{hoverBorderColor:"hover:border-green-500/40",hoverBgColor:"hover:bg-green-50/30 dark:hover:bg-green-950/20"},indirect:{hoverBorderColor:"hover:border-yellow-500/40",hoverBgColor:"hover:bg-yellow-50/30 dark:hover:bg-yellow-950/20"},unreachable:{borderColor:"border-gray-300/40 dark:border-gray-700/40",bgColor:"bg-gray-50/30 dark:bg-gray-900/20",hoverBgColor:"hover:bg-gray-100/30 dark:hover:bg-gray-800/20",opacity:"opacity-50",cursor:"cursor-not-allowed"}}[n.state]||{};return n.isSelected&&{base:{borderColor:"border-blue-300/30 dark:border-blue-700/30",bgColor:"bg-blue-50/20 dark:bg-blue-950/10",...te},draggable:{borderColor:"border-green-300/30 dark:border-green-700/30",bgColor:"bg-green-50/20 dark:bg-green-950/10",...te},indirect:{borderColor:"border-yellow-300/30 dark:border-yellow-700/30",bgColor:"bg-yellow-50/20 dark:bg-yellow-950/10",...te}}[n.state]||te};function Y(K){return K==="domain"?{label:"Domain",Icon:Sx,className:"border-border bg-muted text-foreground"}:K==="dashboard"?{label:"Dashboard",Icon:qT,className:"border-border bg-muted/70 text-foreground"}:{label:"Card",Icon:S8,className:"border-border bg-muted/40 text-foreground"}}const q=B(),U=e.fieldScope,G=U?Y(U):null,Z=Pw(e),Q=Z&&sc(e);return c.jsxs("div",{ref:M,style:H,...l?{}:_,...l?{}:k,className:X("group/container max-w-[265px] overflow-hidden rounded-lg transition-all",O&&"scale-95 opacity-50",!O&&"border",q.borderColor||"border-transparent",q.bgColor||"",q.hoverBorderColor,q.hoverBgColor||"hover:bg-muted",q.opacity,q.cursor,b&&"border-accent-foreground/20 bg-accent",x&&"border-primary/20 bg-primary/10",{"cursor-pointer":i||a,"cursor-grab active:cursor-grabbing":!l&&!i&&!a}),title:n==null?void 0:n.tooltip,children:[c.jsxs("div",{className:"flex min-w-0 items-center gap-3 p-2",onClick:F,children:[c.jsxs("div",{className:"relative shrink-0",children:[_m(e.dataType),Z&&c.jsx("span",{className:X("absolute bottom-0 right-0 translate-x-[30%] translate-y-[35%] rounded-[3px] px-0.5 py-0.5 text-[7px] font-semibold uppercase italic leading-none shadow-sm",Q?"bg-emerald-500/90 text-white":"bg-blue-500/90 text-white"),children:"fx"})]}),c.jsx(Ln,{children:c.jsxs(an,{children:[c.jsx(ln,{asChild:!0,children:c.jsx("div",{className:"min-w-0 flex-1 overflow-hidden",children:c.jsx("span",{className:`block text-sm text-foreground/80 hover:text-foreground dark:text-muted-foreground ${I?"whitespace-normal break-words":"truncate"}`,children:e.label||e.name})})}),c.jsx(dn,{side:"bottom",align:"start",className:"ml-5 max-w-xs px-4 pb-2 pt-4",children:c.jsx(zXe,{field:e,fieldState:n})})]})}),t==="editor"&&G&&c.jsx("span",{title:G.label,className:X("shrink-0 rounded-full border p-1",G.className),children:c.jsx(G.Icon,{className:"h-3.5 w-3.5"})}),i&&!a&&R(e)&&c.jsx("div",{onClick:K=>K.stopPropagation(),children:c.jsx(LXe,{column:A})}),o&&c.jsx("div",{className:"ml-auto flex items-center",onClick:K=>K.stopPropagation(),onPointerDown:K=>K.stopPropagation(),children:o})]}),I&&c.jsx("div",{className:"text-muted-foreground-700 px-2 pb-3 text-sm",children:c.jsx(Uo,{className:"",children:c.jsxs(Qi,{className:"space-y-2 p-3",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(j8,{className:"h-4 w-4 text-muted-foreground"}),c.jsx("span",{className:"break-all",children:e.label||e.name})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(iie,{className:"h-4 w-4 text-muted-foreground"}),c.jsx("span",{className:"break-all",children:e.name})]}),c.jsx(Ve,{variant:"outline",className:"mt-2 text-xs",children:e.dataType})]})})}),c.jsx(Um,{open:j,onOpenChange:S,children:c.jsxs(Sf,{children:[c.jsxs(jf,{children:[c.jsx(kf,{children:"Remove Filter from Multiple Sheets?"}),c.jsx(Ef,{children:"This filter is currently applied to multiple sheets. Removing it will affect all sheets where it's applied."})]}),c.jsxs(Nf,{children:[c.jsx(Tf,{children:"Cancel"}),c.jsx(_f,{onClick:z,children:"Remove Filter"})]})]})})]})}var da="Accordion",BXe=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[$A,VXe,HXe]=Ex(da),[GS]=Lr(da,[HXe,gW]),LA=gW(),ete=C.forwardRef((e,t)=>{const{type:n,...r}=e,s=r,o=r;return c.jsx($A.Provider,{scope:e.__scopeAccordion,children:n==="multiple"?c.jsx(YXe,{...o,ref:t}):c.jsx(qXe,{...s,ref:t})})});ete.displayName=da;var[tte,UXe]=GS(da),[nte,WXe]=GS(da,{collapsible:!1}),qXe=C.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:s=()=>{},collapsible:o=!1,...i}=e,[a,l]=ss({prop:n,defaultProp:r??"",onChange:s,caller:da});return c.jsx(tte,{scope:e.__scopeAccordion,value:C.useMemo(()=>a?[a]:[],[a]),onItemOpen:l,onItemClose:C.useCallback(()=>o&&l(""),[o,l]),children:c.jsx(nte,{scope:e.__scopeAccordion,collapsible:o,children:c.jsx(rte,{...i,ref:t})})})}),YXe=C.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:s=()=>{},...o}=e,[i,a]=ss({prop:n,defaultProp:r??[],onChange:s,caller:da}),l=C.useCallback(d=>a((f=[])=>[...f,d]),[a]),u=C.useCallback(d=>a((f=[])=>f.filter(h=>h!==d)),[a]);return c.jsx(tte,{scope:e.__scopeAccordion,value:i,onItemOpen:l,onItemClose:u,children:c.jsx(nte,{scope:e.__scopeAccordion,collapsible:!0,children:c.jsx(rte,{...o,ref:t})})})}),[GXe,KS]=GS(da),rte=C.forwardRef((e,t)=>{const{__scopeAccordion:n,disabled:r,dir:s,orientation:o="vertical",...i}=e,a=C.useRef(null),l=ut(a,t),u=VXe(n),f=bu(s)==="ltr",h=Ie(e.onKeyDown,m=>{var E;if(!BXe.includes(m.key))return;const p=m.target,g=u().filter(_=>{var k;return!((k=_.ref.current)!=null&&k.disabled)}),b=g.findIndex(_=>_.ref.current===p),x=g.length;if(b===-1)return;m.preventDefault();let y=b;const v=0,w=x-1,j=()=>{y=b+1,y>w&&(y=v)},S=()=>{y=b-1,y<v&&(y=w)};switch(m.key){case"Home":y=v;break;case"End":y=w;break;case"ArrowRight":o==="horizontal"&&(f?j():S());break;case"ArrowDown":o==="vertical"&&j();break;case"ArrowLeft":o==="horizontal"&&(f?S():j());break;case"ArrowUp":o==="vertical"&&S();break}const N=y%x;(E=g[N].ref.current)==null||E.focus()});return c.jsx(GXe,{scope:n,disabled:r,direction:s,orientation:o,children:c.jsx($A.Slot,{scope:n,children:c.jsx(Ze.div,{...i,"data-orientation":o,ref:l,onKeyDown:r?void 0:h})})})}),E1="AccordionItem",[KXe,zA]=GS(E1),ste=C.forwardRef((e,t)=>{const{__scopeAccordion:n,value:r,...s}=e,o=KS(E1,n),i=UXe(E1,n),a=LA(n),l=xr(),u=r&&i.value.includes(r)||!1,d=o.disabled||e.disabled;return c.jsx(KXe,{scope:n,open:u,disabled:d,triggerId:l,children:c.jsx(yW,{"data-orientation":o.orientation,"data-state":ute(u),...a,...s,ref:t,disabled:d,open:u,onOpenChange:f=>{f?i.onItemOpen(r):i.onItemClose(r)}})})});ste.displayName=E1;var ote="AccordionHeader",ite=C.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=KS(da,n),o=zA(ote,n);return c.jsx(Ze.h3,{"data-orientation":s.orientation,"data-state":ute(o.open),"data-disabled":o.disabled?"":void 0,...r,ref:t})});ite.displayName=ote;var rT="AccordionTrigger",ate=C.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=KS(da,n),o=zA(rT,n),i=WXe(rT,n),a=LA(n);return c.jsx($A.ItemSlot,{scope:n,children:c.jsx(aSe,{"aria-disabled":o.open&&!i.collapsible||void 0,"data-orientation":s.orientation,id:o.triggerId,...a,...r,ref:t})})});ate.displayName=rT;var lte="AccordionContent",cte=C.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=KS(da,n),o=zA(lte,n),i=LA(n);return c.jsx(lSe,{role:"region","aria-labelledby":o.triggerId,"data-orientation":s.orientation,...i,...r,ref:t,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});cte.displayName=lte;function ute(e){return e?"open":"closed"}var ZXe=ete,XXe=ste,QXe=ite,dte=ate,fte=cte;const BA=ZXe,rx=D.forwardRef(({className:e,...t},n)=>c.jsx(XXe,{ref:n,className:X("border-b",e),...t}));rx.displayName="AccordionItem";const sx=D.forwardRef(({className:e,children:t,...n},r)=>c.jsx(QXe,{className:"flex",children:c.jsxs(dte,{ref:r,className:X("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",e),...n,children:[t,c.jsx(kr,{className:"h-4 w-4 shrink-0 transition-transform duration-200"})]})}));sx.displayName=dte.displayName;const ox=D.forwardRef(({className:e,children:t,...n},r)=>c.jsx(fte,{ref:r,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...n,children:c.jsx("div",{className:X("pb-4 pt-0",e),children:t})}));ox.displayName=fte.displayName;let hte=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,n)=>(n&=63,n<36?t+=n.toString(36):n<62?t+=(n-26).toString(36).toUpperCase():n>62?t+="-":t+="_",t),"");const ix=[{id:"sum",label:"Sum",symbol:"+",description:"Add two metrics together",template:()=>"({field_0} + {field_1})",requiresTwoInputs:!0},{id:"difference",label:"Difference",symbol:"−",description:"Subtract one metric from another",template:()=>"({field_0} - {field_1})",requiresTwoInputs:!0},{id:"product",label:"Product (Multiplication)",symbol:"×",description:"Multiply two metrics",template:()=>"({field_0} * {field_1})",requiresTwoInputs:!0},{id:"ratio",label:"Ratio",symbol:"÷",description:"Divide one metric by another",template:()=>"({field_0} / NULLIF({field_1}, 0))",requiresTwoInputs:!0},{id:"change",label:"Change",symbol:"Δ",description:"Calculate percentage change from A to B",template:()=>"(({field_1} - {field_0}) / NULLIF({field_0}, 0))",requiresTwoInputs:!0},{id:"percentage",label:"Percentage",symbol:"%",description:"Calculate (A / B) × 100",template:()=>"(({field_0} / NULLIF({field_1}, 0)) * 100)",requiresTwoInputs:!0},{id:"scale",label:"Scale (Multiply by Factor)",symbol:"×n",description:"Multiply a metric by a constant factor",template:()=>"({field_0} * {constant})",requiresTwoInputs:!1},{id:"custom",label:"Custom Expression",symbol:"{}",description:"Drag fields to create custom expression with tokens",requiresTwoInputs:!1,allowsCustomExpression:!0}],fl=e=>e.trim().toLowerCase().replace(/\s+/g,"_"),Nl=e=>e!=null&&e.startsWith("card-source-")?e.replace("card-source-",""):e;function v6(e,t,n,r,s,o,i,a,l,u){const d=ix.find(x=>x.id===t);if(!d)throw new Error(`Unknown operation: ${t}`);let f,h=[],m;if(t==="custom"){if(!(a!=null&&a.trim()))throw new Error("Custom expression is required");f=a.trim(),h=u||[]}else if(t==="scale"){if(!n)throw new Error("Metric A is required for scale operation");if(l===void 0||Number.isNaN(l))throw new Error("Constant factor is required for scale operation");f=d.template().replace("{constant}",String(l)),h=[n],m=l}else{if(!n||!r)throw new Error("Metrics A and B are required for standard operations");f=d.template(),h=[n,r]}const p={operation:t,inputFields:h,...m!==void 0&&{constant:m}},g=fl(e);return{id:i||`calc_${hte(10)}`,name:g,label:e,alias:g,qualifiedFieldName:g,dataType:"number",role:"metric",aggregate:"SUM",expression:f,calculatedFormula:p,entityId:o,entityName:cu,entityType:"table",description:`Calculated field: ${e}`}}function JXe(e){var r,s;const t=ix.find(o=>o.id===e.operation);if(!t)return"Unknown operation";if(e.operation==="custom")return"Custom expression";if(e.operation==="scale"){const o=((r=e.inputFields[0])==null?void 0:r.label)||((s=e.inputFields[0])==null?void 0:s.name)||"A",i=e.constant??1;return`${o} × ${i}`}return e.inputFields.map(o=>o.label||o.name).join(` ${t.symbol} `)}function eQe(e,t,n,r,s,o){const i=fl(e);return{id:o||`calc_dim_${hte(10)}`,name:i,label:e.trim(),alias:i,qualifiedFieldName:i,dataType:r,role:"groupby",expression:t.trim(),calculatedFormula:{operation:"custom",inputFields:n.map(a=>a.role==="metric"?{...a,role:"metric"}:{...a,role:"groupby"})},entityId:s,entityName:cu,entityType:"table",description:`Calculated field: ${e.trim()}`}}function tQe(){const{domainCalculatedFields:e}=PA(),t=C.useMemo(()=>e.filter(r=>r.role==="metric"),[e]),n=C.useMemo(()=>e.filter(r=>r.role==="groupby"),[e]);return{fields:e,metrics:t,dimensions:n}}function nQe({value:e,onChange:t,disabled:n,options:r=["dimension","metric"]}){const s=r.length>0?r:["dimension","metric"],o=["dimension","metric"].filter(l=>s.includes(l)),i=n||o.length<=1,a=o.includes(e)?e:o[0];return c.jsx(Os,{value:a,onValueChange:l=>t(l),className:"w-full",children:c.jsx(ys,{className:"grid h-9 w-full",style:{gridTemplateColumns:`repeat(${o.length}, minmax(0, 1fr))`},children:o.map(l=>c.jsx(nn,{value:l,disabled:i,className:"text-xs",children:l==="metric"?"Calculated Metric":"Calculated Dimension"},l))})})}function rQe({groups:e,searchTerm:t,onSearchTermChange:n,onFieldClick:r,selectedFieldIds:s,disabled:o}){const i=new Set(s||[]),a=e.length>0||t.length>0,l=e.map(f=>f.id),u=(f,h)=>{if(!h)return f;const m=f.toLowerCase(),p=h.toLowerCase();return m.startsWith(`${p}.`)?f.slice(h.length+1):f},d=(f,h)=>{const p=(f.name||f.baseLabel||f.label||f.tokenLabel||"").trim(),g=[h,f.qualifiedEntityName,f.entityName].filter(Boolean);for(const b of g){const x=u(p,b);if(x!==p)return x}return p.includes(".")&&p.split(".").pop()||p};return c.jsxs("div",{className:"flex h-full min-h-0 flex-col gap-3 border-r border-border pr-4",children:[a&&c.jsxs("div",{className:"relative",children:[c.jsx(Ko,{className:"absolute left-3 top-1/2 size-3.5 -translate-y-1/2 transform text-muted-foreground"}),c.jsx(jn,{value:t,onChange:f=>n(f.target.value),placeholder:"Search fields...",className:"pl-10 pr-10"}),t&&c.jsx("button",{type:"button",onClick:()=>n(""),className:"absolute right-3 top-1/2 -translate-y-1/2 transform text-muted-foreground hover:text-foreground",children:c.jsx(St,{className:"size-3.5"})})]}),c.jsx(tl,{className:"min-h-0 flex-1",children:e.length===0?c.jsx("div",{className:"rounded-md border border-dashed border-muted px-3 py-6 text-center text-xs text-muted-foreground",children:"No fields match your search."}):c.jsx(BA,{type:"multiple",defaultValue:l,className:"space-y-2",children:e.map(f=>c.jsxs(rx,{value:f.id,className:"border-none",children:[c.jsx(sx,{className:"group rounded-md px-2.5 py-2 text-muted-foreground hover:bg-muted hover:no-underline",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"max-w-[190px] truncate text-ellipsis whitespace-nowrap text-sm font-medium text-primary",children:f.label}),c.jsx(Ve,{variant:"secondary",className:"rounded-full text-xs text-muted-foreground group-hover:bg-background",children:f.fields.length})]})}),c.jsx(ox,{className:"pb-2",children:c.jsx("div",{className:"space-y-1",children:f.fields.map(h=>{const m=i.has(h.id),p=!h.isCompatible||o,g=h.isCalculated&&h.role==="metric",b=d(h,f.label);return c.jsxs("button",{type:"button",onClick:()=>h.isCompatible&&!o&&r(h),className:X("group/container flex w-full items-center gap-3 rounded-lg border border-transparent px-2 py-2 text-left transition-all",p?"cursor-not-allowed opacity-50":"hover:bg-muted",m&&"border-border bg-muted"),disabled:p,children:[c.jsxs("div",{className:"relative shrink-0",children:[_m(h.dataType),h.isCalculated&&c.jsx("span",{className:X("absolute bottom-0 right-0 translate-x-[30%] translate-y-[35%] rounded-[3px] px-0.5 py-0.5 text-[7px] font-semibold uppercase italic leading-none shadow-sm",g?"bg-emerald-500/90 text-white":"bg-blue-500/90 text-white"),children:"fx"})]}),c.jsx("div",{className:"min-w-0 flex-1 overflow-hidden",children:c.jsx("span",{className:X("block truncate text-sm text-foreground/80",!p&&"group-hover/container:text-foreground"),children:b})}),m&&c.jsx(Ve,{variant:"secondary",className:"shrink-0 text-[10px]",children:"Selected"})]},h.id)})})})]},f.id))})})]})}function sQe({value:e,onChange:t,allowCustom:n,disabled:r}){const s=ix.filter(l=>n?!0:l.id!=="custom"),i=!s.some(l=>l.id==="custom")&&e==="custom"?[...s,ix.find(l=>l.id==="custom")]:s,a=i.find(l=>l.id===e);return c.jsxs("div",{className:"space-y-2",children:[c.jsxs(ot,{value:e,onValueChange:l=>t(l),disabled:r,children:[c.jsx(nt,{children:c.jsx(at,{})}),c.jsx(rt,{children:c.jsxs(WD,{children:[c.jsx(BC,{children:"OPERATIONS"}),i.map(l=>c.jsx(ve,{value:l.id,children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"font-mono text-sm",children:l.symbol}),c.jsx("span",{children:l.label})]})},l.id))]})})]}),a&&c.jsx("p",{className:"text-xs text-muted-foreground",children:a.description})]})}const oQe={COUNT:"Count",DISTINCT:"Count Distinct",SUM:"Sum",AVG:"Average",MIN:"Minimum",MAX:"Maximum",MEDIAN:"Median"};function iQe({value:e,onChange:t,disabled:n,fieldDataType:r,allowMedian:s}){const i=(r?yr(r):"number")==="number",a=["SUM","AVG","COUNT","DISTINCT","MIN","MAX"],l=i?s?[...a,"MEDIAN"]:a:["COUNT","DISTINCT"];return c.jsxs(ot,{value:e,onValueChange:u=>t(u),disabled:n,children:[c.jsx(nt,{className:"h-9",children:c.jsx(at,{})}),c.jsx(rt,{children:l.map(u=>c.jsx(ve,{value:u,children:oQe[u]},u))})]})}const aQe=e=>{const n=(e.name||e.baseLabel||e.label||e.tokenLabel||"").trim();return n.includes(".")&&n.split(".").pop()||n};function w6({label:e,input:t,availableFields:n,excludeFieldIds:r,onFieldSelect:s,onAggregateChange:o,onRemove:i,onActivate:a,allowMedian:l,disabled:u}){const d=(t==null?void 0:t.field.id)||"",f=r!=null&&r.length?n.filter(h=>!r.includes(h.id)):n;return c.jsxs("div",{className:X("flex items-center gap-2 rounded-md border border-border px-2 py-2",a&&!u&&"cursor-pointer",u&&"opacity-60"),onClick:u?void 0:a,children:[c.jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded bg-muted font-mono text-xs font-semibold",children:e}),c.jsxs("div",{className:"flex flex-1 gap-2",children:[c.jsxs(ot,{value:d,onValueChange:h=>{const m=f.find(p=>p.id===h);m&&s(m)},disabled:u,children:[c.jsx(nt,{className:"h-9 flex-1",children:c.jsx(at,{placeholder:"Select field"})}),c.jsx(rt,{children:f.map(h=>c.jsx(ve,{value:h.id,children:aQe(h)},h.id))})]}),c.jsx("div",{className:"w-36",children:c.jsx(iQe,{value:(t==null?void 0:t.aggregate)||"SUM",onChange:o,disabled:u||(t==null?void 0:t.isCalculatedField),fieldDataType:t==null?void 0:t.field.dataType,allowMedian:l})})]}),t&&c.jsx(se,{type:"button",variant:"ghost",size:"icon",className:"h-7 w-7",onClick:h=>{h.stopPropagation(),i()},disabled:u,children:c.jsx(St,{className:"h-3.5 w-3.5"})})]})}const C6=C.forwardRef(function({value:t,onChange:n,onGenerate:r,showGenerate:s,disabled:o},i){return c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("span",{className:"text-sm font-medium",children:"Expression"}),s&&c.jsxs(se,{type:"button",size:"sm",variant:"outline",onClick:r,disabled:o,className:"h-7 gap-2 text-xs",children:[c.jsx(q1,{className:"h-3.5 w-3.5"}),"Generate with AI"]})]}),c.jsx(Yb,{ref:i,value:t,onChange:a=>n(a.target.value),disabled:o,placeholder:"CASE WHEN {Amount} > 100 THEN 'Large' ELSE 'Small' END",className:"min-h-[140px] font-mono text-xs"})]})});function lQe({result:e}){const t=e.errors.length>0;return c.jsxs("div",{className:X("rounded-md border px-3 py-2 text-xs",t?"border-destructive/40 bg-destructive/10 text-destructive":"border-emerald-500/30 bg-emerald-500/10 text-emerald-700"),children:[c.jsx("div",{className:"font-medium",children:t?"Validation Failed":"Validation Passed"}),e.tokens.length>0&&c.jsxs("div",{className:"mt-2 space-y-1",children:[c.jsx("div",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Tokens Found"}),e.tokens.map(n=>c.jsx("div",{children:n.field?`{${n.token}} -> ${n.field.qualifiedFieldName||n.field.name}`:`{${n.token}}`},n.token))]}),e.errors.length>0&&c.jsxs("div",{className:"mt-2 space-y-1",children:[c.jsx("div",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Errors"}),e.errors.map((n,r)=>c.jsxs("div",{children:[n.message,n.suggestion?` (${n.suggestion})`:""]},`${n.code}-${r}`))]}),e.warnings.length>0&&c.jsxs("div",{className:"mt-2 space-y-1",children:[c.jsx("div",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Warnings"}),e.warnings.map((n,r)=>c.jsxs("div",{children:[n.message," ",n.suggestion]},`${n.code}-${r}`))]}),e.inferredDataType&&c.jsxs("div",{className:"mt-2 text-[11px] text-muted-foreground",children:["Inferred Output Type: ",e.inferredDataType]})]})}function S6({onValidate:e,isValidating:t,validationResult:n,fallbackResult:r,error:s,showFallback:o,disabled:i}){return c.jsxs("div",{className:"space-y-2",children:[c.jsx(se,{type:"button",variant:"outline",onClick:e,disabled:t||i,className:"h-8",children:t?"Validating...":"Validate Expression"}),s&&c.jsx("div",{className:"text-xs text-destructive",children:s}),(n||o)&&c.jsx(lQe,{result:n||r})]})}function cQe({scope:e,onChange:t,showDashboardScope:n,showDomainScope:r,error:s,disabled:o}){return c.jsxs("div",{className:"space-y-3 border-t border-border pt-4",children:[c.jsx(ae,{children:"Availability"}),c.jsxs(Qs,{value:e,onValueChange:i=>t(i),className:"space-y-2",disabled:o,children:[c.jsxs("div",{className:"flex items-center space-x-2",children:[c.jsx(bn,{id:"scope-card",value:"card"}),c.jsx(ae,{htmlFor:"scope-card",className:"text-sm font-normal",children:"This card only"})]}),n&&c.jsxs("div",{className:"flex items-center space-x-2",children:[c.jsx(bn,{id:"scope-dashboard",value:"dashboard"}),c.jsx(ae,{htmlFor:"scope-dashboard",className:"text-sm font-normal",children:"All cards in this dashboard"})]}),r&&c.jsxs("div",{className:"flex items-center space-x-2",children:[c.jsx(bn,{id:"scope-domain",value:"domain"}),c.jsx(ae,{htmlFor:"scope-domain",className:"text-sm font-normal",children:"Save to domain"})]})]}),s&&c.jsx("p",{className:"text-xs text-red-500",children:s})]})}function uQe({description:e,tags:t,onDescriptionChange:n,onTagsChange:r,descriptionError:s,disabled:o}){return c.jsxs("div",{className:"space-y-3 rounded-md border border-muted bg-muted/30 p-3",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"domain-description",children:"Description"}),c.jsx(vu,{id:"domain-description",value:e,onChange:i=>n(i.target.value),placeholder:"Explain what this metric represents",className:X("text-sm",s&&"border-red-500"),rows:3,disabled:o}),s&&c.jsx("p",{className:"text-xs text-red-500",children:s})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"domain-tags",children:"Tags (optional)"}),c.jsx(mn,{id:"domain-tags",value:t,onChange:i=>r(i.target.value),placeholder:"profitability, kpi",disabled:o})]}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"This field will be visible to all dashboards using this domain."})]})}function dQe({endpoint:e,availableFields:t,fieldType:n,dialect:r}){const{authToken:s}=Xe(),[o,i]=C.useState(!1),[a,l]=C.useState(null);return{generateExpression:C.useCallback(async d=>{var f;if(!e)return l("AI generation is not available"),null;if(!d.trim())return l("Describe what you want to calculate"),null;i(!0),l(null);try{const h={type:"calculated-field-expression",context:{userQuery:d,availableFields:t.map(p=>({name:p.tokenLabel,dataType:p.dataType})),fieldType:n},options:{dialect:r}},m=await eo(e,(s==null?void 0:s.accessToken)||"",h);if(!m.success||!((f=m.result)!=null&&f.generated))throw new Error(m.error||"No expression generated");return m.result.generated}catch(h){return l((h==null?void 0:h.error)||(h==null?void 0:h.message)||"AI generation failed"),null}finally{i(!1)}},[e,t,n,r,s==null?void 0:s.accessToken]),isGenerating:o,error:a}}function fQe({open:e,onOpenChange:t,availableFields:n,fieldType:r,onExpressionGenerated:s,endpoint:o,dialect:i}){const[a,l]=C.useState(""),[u,d]=C.useState(""),[f,h]=C.useState(""),{generateExpression:m,isGenerating:p,error:g}=dQe({endpoint:o,availableFields:n,fieldType:r,dialect:i}),b=C.useMemo(()=>{const S=f.trim().toLowerCase();return S?n.filter(N=>[N.label,N.baseLabel,N.name,N.tokenLabel,N.entityName,N.qualifiedEntityName].filter(Boolean).join(" ").toLowerCase().includes(S)):n},[n,f]),x=S=>{const E=(S.name||S.baseLabel||S.label||S.tokenLabel||"").trim();return E.includes(".")&&E.split(".").pop()||E},y=S=>{const N=S.entityName||S.qualifiedEntityName||"";return N?N==="SEMAPHOR_CALCULATED_FIELD"?"Calculated":N.includes(".")&&N.split(".").pop()||N:"—"},v=async()=>{const S=await m(a.trim());S&&d(S)},w=()=>{u.trim()&&(s(u.trim()),l(""),d(""),t(!1))},j=()=>{l(""),d(""),h(""),t(!1)};return c.jsx(Gr,{open:e,onOpenChange:S=>{S?t(!0):j()},children:c.jsxs(zr,{className:"max-w-3xl",children:[c.jsxs(Br,{children:[c.jsx(Vr,{children:"Generate Expression with AI"}),c.jsx(is,{children:"Describe what you want to calculate and we will draft a SQL expression."})]}),c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"space-y-3",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"ai-prompt",children:"Describe what you want to calculate"}),c.jsx(Yb,{id:"ai-prompt",value:a,onChange:S=>l(S.target.value),placeholder:"Create a bucket that categorizes orders as 'Large' when amount is greater than 1000",rows:2})]}),c.jsxs("div",{className:"flex items-center justify-between gap-3 text-xs text-muted-foreground",children:[c.jsx("span",{children:"Be specific about conditions, buckets, or math you want to apply."}),c.jsx(se,{size:"sm",onClick:v,disabled:p||!a.trim(),children:p?"Generating...":u?"Regenerate":"Generate"})]}),g&&c.jsx("p",{className:"text-xs text-destructive",children:g})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Available fields"}),c.jsxs("div",{className:"relative",children:[c.jsx(Ko,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),c.jsx(mn,{value:f,onChange:S=>h(S.target.value),placeholder:"Search fields...",className:"pl-9"})]}),c.jsx("div",{className:"overflow-hidden rounded-lg border border-border",children:c.jsx("div",{className:"max-h-48 overflow-y-auto",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{className:"sticky top-0 z-10 border-b bg-muted",children:c.jsxs("tr",{children:[c.jsx("th",{className:"bg-muted/50 px-3 py-2 text-left font-medium",children:"Field"}),c.jsx("th",{className:"bg-muted/50 px-3 py-2 text-left font-medium",children:"Type"}),c.jsx("th",{className:"bg-muted/50 px-3 py-2 text-left font-medium",children:"Category"})]})}),c.jsx("tbody",{className:"divide-y",children:b.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:3,className:"py-6 text-center text-xs text-muted-foreground",children:"No fields match your search."})}):b.map(S=>c.jsxs("tr",{className:"hover:bg-muted/30",children:[c.jsx("td",{className:"px-3 py-1.5 font-mono text-xs",children:x(S)}),c.jsx("td",{className:"px-3 py-1.5",children:c.jsx(Ve,{variant:"secondary",className:"px-1.5 py-0 text-[11px]",children:S.dataType})}),c.jsx("td",{className:"px-3 py-1.5 text-sm text-muted-foreground",children:y(S)})]},S.id))})]})})})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Generated expression"}),c.jsx(Yb,{value:u,readOnly:!0,rows:2,className:"font-mono text-sm"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Review the generated expression before using it."})]})]}),c.jsxs(os,{className:"gap-2",children:[c.jsx(se,{variant:"ghost",onClick:j,children:"Cancel"}),c.jsx(se,{onClick:w,disabled:!u.trim(),children:"Use Expression"})]})]})})}const hQe=/\{([^}]+)\}/g;function ZS(e){return e.trim().toLowerCase()}function _1(e){return Array.from(e.matchAll(hQe)).map(t=>t[1]).filter(Boolean)}function mQe(e){const t=new Set,n=[];return e.forEach(r=>{const s=ZS(r);t.has(s)||(t.add(s),n.push(r))}),n}function VA(e){const t=new Map,n=(r,s)=>{const o=ZS(r),i=t.get(o)||[];i.some(a=>a.id===s.id)||t.set(o,[...i,s])};return e.forEach(r=>{n(r.tokenLabel,r),r.name&&r.name!==r.tokenLabel&&n(r.name,r),r.baseLabel&&r.baseLabel!==r.tokenLabel&&n(r.baseLabel,r)}),t}function tg(e,t){const n=_1(e),r=mQe(n),s=VA(t),o=r.map(a=>{const l=s.get(ZS(a))||[];return l.length===1?l[0]:null}),i=r.filter((a,l)=>!o[l]);return{orderedTokens:r,orderedFields:o,unresolvedTokens:i}}function j6(e,t){return t.reduce((n,r,s)=>{const o=new RegExp(`\\{${pQe(r)}\\}`,"gi");return n.replace(o,`{field_${s}}`)},e)}function pQe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const gQe=e=>e.entityName===Qh||e.entityName===cu?"Calculated Fields":e.qualifiedEntityName?cb(e.entityName||e.qualifiedEntityName):cb(e.entityName||"Other"),bQe=e=>yr(e.dataType||"")==="number";function xQe(e,t,n){const r=new Set((n||[]).map(s=>Nl(s)));return e.filter(s=>{const o=Nl(s.id);return o&&r.has(o)?!1:t==="dimension"?s.role!=="metric":!0})}function yQe(e){const t=new Map,n=new Map;return e.forEach(r=>{let o=r.entityName&&r.entityName!==cu?`${r.entityName}.${r.name}`:r.name;const i=o.toLowerCase(),a=n.get(i)||0;a>0&&(o=`${o} ${a+1}`),n.set(i,a+1),t.set(r.id,o)}),t}function vQe(e,t,n,r){if(t!=="metric")return e.map(o=>({...o,isCompatible:!0}));if(!n)return e.map(o=>({...o,isCompatible:!0}));const s=n==="COUNT"||n==="DISTINCT";return e.map(o=>{const i=s||bQe(o);return{...o,isCompatible:i}}).filter(o=>r)}function wQe(e,t){if(!t)return e;const n=t.toLowerCase();return e.filter(r=>r.name.toLowerCase().includes(n)||r.baseLabel.toLowerCase().includes(n)||r.tokenLabel.toLowerCase().includes(n)||r.dataType.toLowerCase().includes(n)||(r.qualifiedEntityName||r.entityName||"").toLowerCase().includes(n))}function CQe(e){const t=new Map;return e.forEach(n=>{var s;const r=n.qualifiedEntityName||n.entityName||"Other";t.has(r)||t.set(r,{id:r,label:gQe(n),fields:[]}),(s=t.get(r))==null||s.fields.push(n)}),Array.from(t.values())}function SQe({fields:e,mode:t,searchTerm:n,excludeFieldIds:r,selectedAggregate:s,showIncompatible:o}){const i=C.useMemo(()=>xQe(e,t,r),[e,t,r]),a=C.useMemo(()=>yQe(i),[i]),l=C.useMemo(()=>i.map(m=>{const p=m.label||m.name,g=m.role==="metric"&&sc(m)||m.role==="groupby"&&Ux(m);return{...m,baseLabel:p,tokenLabel:a.get(m.id)||p,isCalculated:g,isCompatible:!0}}),[i,a]),u=C.useMemo(()=>VA(l),[l]),d=C.useMemo(()=>vQe(l,t,s,o),[l,t,s,o]),f=C.useMemo(()=>wQe(d,n),[d,n]),h=C.useMemo(()=>CQe(f),[f]);return{allFields:l,filteredFields:f,groups:h,tokenCandidates:u}}const jQe=e=>{let t=0;for(const n of e)if(n==="("&&(t+=1),n===")"&&(t-=1),t<0)return!1;return t===0},NQe=(e,t)=>{const n=e.toLowerCase(),r=t.toLowerCase();if(n===r)return 0;if(!n.length)return r.length;if(!r.length)return n.length;const s=[];for(let o=0;o<=r.length;o+=1)s[o]=[o];for(let o=0;o<=n.length;o+=1)s[0][o]=o;for(let o=1;o<=r.length;o+=1)for(let i=1;i<=n.length;i+=1)r.charAt(o-1)===n.charAt(i-1)?s[o][i]=s[o-1][i-1]:s[o][i]=Math.min(s[o-1][i-1]+1,s[o][i-1]+1,s[o-1][i]+1);return s[r.length][n.length]},kQe=(e,t)=>t.map(r=>({candidate:r,distance:NQe(e,r)})).filter(r=>r.distance>0&&r.distance<=3).sort((r,s)=>r.distance-s.distance).slice(0,3).map(r=>r.candidate),EQe=(e,t)=>{var r;const n=e.trim();if(n){if(/\bDATE_TRUNC\b/i.test(n))return"date";if(/\bTIMESTAMP\b/i.test(n))return"datetime";if(/\bDATE\b/i.test(n)&&!/\bUPDATE\b/i.test(n))return"date";if(/['"]/.test(n))return"string";if(/[+\-*/]/.test(n))return"number";if(t.length===1){const s=((r=t[0])==null?void 0:r.dataType)||"";if(/date|timestamp/i.test(s))return"date";if(/int|decimal|float|double|num|real/i.test(s))return"number";if(/boolean/i.test(s))return"boolean"}return"string"}},_Qe=e=>e.map(t=>({id:t.id,name:t.name,label:t.tokenLabel,dataType:t.dataType,entityName:t.entityName,role:t.role}));function TQe({expression:e,availableFields:t,excludeFieldIds:n,validationEndpoint:r,connectionId:s,dialect:o}){const{authToken:i}=Xe(),[a,l]=C.useState(null),[u,d]=C.useState(!1),[f,h]=C.useState(null),m=C.useMemo(()=>VA(t),[t]),p=C.useMemo(()=>{const x=[],y=[],v=e.trim();v||x.push({code:"SYNTAX_ERROR",message:"Expression is required"}),v&&!jQe(v)&&x.push({code:"SYNTAX_ERROR",message:"Unbalanced parentheses in expression"});const j=_1(e).map(N=>{const E=m.get(ZS(N))||[];if(!E.length){const M=Array.from(m.keys()),T=kQe(N,M),P=T.length?`Did you mean {${T[0]}}?`:void 0;return x.push({code:"UNKNOWN_TOKEN",message:`Unknown field token: {${N}}`,suggestion:P}),{token:N,field:null,error:"Unknown token"}}if(E.length>1)return x.push({code:"UNKNOWN_TOKEN",message:`Token {${N}} matches multiple fields. Use a disambiguated label.`}),{token:N,field:null,error:"Ambiguous token"};const _=E[0];return(n||[]).map(Nl).includes(Nl(_.id))?(x.push({code:"SELF_REFERENCE",message:"Cannot reference the field being edited"}),{token:N,field:null,error:"Self reference"}):{token:N,field:_}});/\bCASE\b/i.test(e)&&!/\bELSE\b/i.test(e)&&y.push({code:"MISSING_ELSE",message:"CASE expression missing ELSE clause",suggestion:"Add an ELSE branch to handle default values."}),/\//.test(e)&&!/NULLIF\s*\(/i.test(e)&&y.push({code:"DIVISION_BY_ZERO",message:"Division may result in divide-by-zero errors",suggestion:"Wrap the denominator in NULLIF(..., 0)."});const S=j.map(N=>N.field).filter(Boolean);return{isValid:x.length===0,tokens:j,errors:x,warnings:y,inferredDataType:EQe(e,S)}},[e,n,m]),g=C.useCallback(async()=>{var v;if(h(null),!r||!p.isValid)return l(p),p;const x=r,y={type:"calculated-field-expression",value:e,context:{availableFields:_Qe(t),connectionId:s,excludeFieldIds:n,dialect:o}};d(!0);try{const w=await eo(x,(i==null?void 0:i.accessToken)||"",y),j=w.errors||[],S=w.warnings||[],N={...p,isValid:w.valid&&j.length===0,errors:j,warnings:S,inferredDataType:((v=w.metadata)==null?void 0:v.inferredType)||p.inferredDataType};return l(N),N}catch(w){return h((w==null?void 0:w.error)||"Validation failed"),l(p),p}finally{d(!1)}},[r,p,e,t,s,n,o,i==null?void 0:i.accessToken]),b=C.useCallback(()=>{l(null),h(null)},[]);return{clientResult:p,validationResult:a,isValidating:u,serverError:f,validateExpression:g,resetValidation:b}}const N6=[{value:"string",label:"String"},{value:"number",label:"Number"},{value:"boolean",label:"Boolean"},{value:"date",label:"Date"},{value:"datetime",label:"Datetime"},{value:"json",label:"JSON"},{value:"geo",label:"Geo"}],G2=e=>{if(!e)return"";const t=e.field.tokenLabel||e.field.label||e.field.name,n=e.aggregate;return n==="DISTINCT"?`COUNT(DISTINCT ${t})`:n==="COUNT"?`COUNT(${t})`:`${n}(${t})`},mte=e=>yr(e.dataType||"")==="number",uh=e=>mte(e)?"SUM":"COUNT",K2=(e,t)=>mte(e)||t==="COUNT"||t==="DISTINCT"?t:uh(e);function Z2(e,t){if(e.role==="metric"){const n=e;return sc(n)?n:{...n,aggregate:t}}return{...e,id:`${e.id}_${t.toLowerCase()}`,role:"metric",aggregate:t,alias:`${(e.alias||e.name).toLowerCase()}_${t.toLowerCase()}`,entityName:e.entityName,entityId:e.entityId,qualifiedEntityName:e.qualifiedEntityName}}function rh(e,t){const n=e.role==="metric"&&sc(e);return{field:e,aggregate:n&&e.aggregate||t,isCalculatedField:n}}function pte({open:e,onOpenChange:t,availableFields:n,existingField:r,existingFieldScope:s,onSave:o,onSaveToDashboard:i,onPromoteMetricToDomain:a,onPromoteDimensionToDomain:l,cardId:u,domainId:d,initialFieldType:f="metric",allowedFieldTypes:h}){var zf;const{tokenProps:m}=Xe(),{selectedConnection:p}=EU(),g=(p==null?void 0:p.dialect)==="bigquery"||(p==null?void 0:p.dialect)==="snowflake",[b,x]=C.useState(f),[y,v]=C.useState(""),[w,j]=C.useState("ratio"),[S,N]=C.useState(null),[E,_]=C.useState(null),[k,M]=C.useState(1),[T,P]=C.useState(""),[O,I]=C.useState(null),[$,V]=C.useState("card"),[W,L]=C.useState(""),[R,z]=C.useState(""),[F,A]=C.useState({}),[H,B]=C.useState("A"),[Y,q]=C.useState(""),[U,G]=C.useState(!1),[Z,Q]=C.useState(null),[K,te]=C.useState(!1),[le,de]=C.useState(!1),[ce,Ce]=C.useState(!1),ge=C.useRef(null),he=C.useRef(!1),me=C.useRef(null),{userContext:oe}=Ps(),{metrics:Ne,dimensions:fe}=tQe(),Me=(oe==null?void 0:oe.type)==="organization",ke=!Me,ie=!!d&&Me,xe=ie&&!!a,Oe=ie&&!!l,be=!!(i||xe||Oe),De=!!i,qe=b==="metric"?xe:Oe,He=(zf=m==null?void 0:m.apiServiceUrl)==null?void 0:zf.replace(/\/$/,""),Fe=He?`${He}/v1/validate`:"/v1/validate",yt=He?`${He}/v1/ai/generate`:"/v1/ai/generate",je=C.useMemo(()=>{var Mt;const Se=[...n];return(((Mt=r==null?void 0:r.calculatedFormula)==null?void 0:Mt.inputFields)||[]).forEach(vn=>{Se.some(qn=>qn.id===vn.id||qn.qualifiedFieldName===vn.qualifiedFieldName||qn.name===vn.name)||Se.push(vn)}),Se},[n,r]),dt=H==="A"?S:E,Ct=b==="metric"&&w!=="custom"?dt==null?void 0:dt.aggregate:void 0,{allFields:Ye,groups:Yt}=SQe({fields:je,mode:b,searchTerm:Y,excludeFieldIds:r?[r.id]:void 0,selectedAggregate:Ct,showIncompatible:!0}),Ge=Ye,{clientResult:et,validationResult:Be,validateExpression:Ke,isValidating:kt,serverError:pe,resetValidation:Re}=TQe({expression:T,availableFields:Ge,excludeFieldIds:r?[r.id]:void 0,validationEndpoint:Fe,connectionId:p==null?void 0:p.id,dialect:p==null?void 0:p.dialect}),re=(Be==null?void 0:Be.inferredDataType)||et.inferredDataType,_e=O||re||"string",We=ix.find(Se=>Se.id===w),it=C.useMemo(()=>{if(!y.trim())return!1;const Se=fl(y),lt=s==="domain"&&(r!=null&&r.name)?fl(r.name):null;return(b==="metric"?Ne:fe).some(vn=>{const Qt=fl(vn.name);return lt&&Qt===lt?!1:Qt===Se})},[fe,Ne,r,s,b,y]),zt=C.useMemo(()=>{if(b==="metric"&&w==="custom"){const{orderedFields:lt}=tg(T,Ge);return lt.filter(Mt=>!!Mt).map(Mt=>Mt.id)}const Se=[];return S!=null&&S.field.id&&Se.push(S.field.id),E!=null&&E.field.id&&Se.push(E.field.id),Se},[Ge,T,b,S,E,w]),un=Se=>{ke||(x(Se),Se==="dimension"&&$==="domain"&&!Oe&&V("card"),Se==="metric"&&$==="domain"&&!xe&&V("card"))},Dn=Se=>{ke||(j(Se),Se==="scale"&&_(null),Se==="custom"&&(N(null),_(null)))},Kr=()=>{v(""),j("ratio"),N(null),_(null),M(1),P(""),I(null),V("card"),L(""),z(""),A({}),q(""),G(!1),Q(null),te(!1),Ce(!1),Re(),t(!1)},Hr=C.useCallback(Se=>je.find(lt=>lt.qualifiedFieldName===Se.qualifiedFieldName||lt.name===Se.name)||Se,[je]),zs=C.useCallback(Se=>{if(!Se.calculatedFormula)return;const lt=Se.calculatedFormula;if(j(lt.operation),P(""),lt.operation==="scale"){const Qt=lt.inputFields[0];Qt&&N(rh(Hr(Qt),Qt.aggregate||"SUM")),M(lt.constant===void 0?1:lt.constant);return}if(lt.operation==="custom"){P(Ni(Se.expression||"",lt.inputFields||[])),N(null),_(null);return}const[Mt,vn]=lt.inputFields;Mt&&N(rh(Hr(Mt),Mt.aggregate||"SUM")),vn&&_(rh(Hr(vn),vn.aggregate||"SUM"))},[Hr]),Ni=C.useCallback((Se,lt)=>Se.replace(/\{field_(\d+)\}/g,(Mt,vn)=>{var Cr;const Qt=lt[Number(vn)];return Qt?`{${((Cr=Ge.find(ki=>ki.id===Qt.id))==null?void 0:Cr.tokenLabel)||Qt.label||Qt.name}}`:Mt}),[Ge]);C.useEffect(()=>{var Mt;if(!e){he.current=!1,me.current=null;return}const Se=r?`${r.role}-${r.id||r.name}`:"new";if(he.current&&me.current===Se)return;if(he.current=!0,me.current=Se,A({}),q(""),Ce(!1),Re(),r){const vn=r.tags||[];if(r.role==="metric"){x("metric"),v(r.label||r.name),V(s||"card"),L(r.description||""),z(vn.join(", ")),zs(r);return}x("dimension");const Qt=r;v(Qt.label||Qt.name),V(s||"card"),P(Ni(Qt.expression||"",((Mt=Qt.calculatedFormula)==null?void 0:Mt.inputFields)||[]));const qn=N6.some(Cr=>Cr.value===Qt.dataType)?Qt.dataType:"string";I(qn),L(Qt.description||""),z(vn.join(", "));return}const lt=h&&h.length>0?h.includes(f)?f:h[0]:f;x(lt),v(""),j("ratio"),N(null),_(null),M(1),P(""),I(null),V("card"),L(""),z("")},[e,r,s,f,h,zs,Ni,Re]);const Fu=Se=>{const lt=`{${Se}}`,Mt=ge.current;if(!Mt){P(Cr=>Cr+lt);return}const vn=Mt.selectionStart||0,Qt=Mt.selectionEnd||0,qn=`${T.slice(0,vn)}${lt}${T.slice(Qt)}`;P(qn),requestAnimationFrame(()=>{Mt.focus();const Cr=vn+lt.length;Mt.setSelectionRange(Cr,Cr)})},JS=Se=>{if(ke)return;if(b==="dimension"||w==="custom"){Fu(Se.tokenLabel||Se.label||Se.name);return}const lt=K2(Se,H==="A"?(S==null?void 0:S.aggregate)||uh(Se):(E==null?void 0:E.aggregate)||uh(Se)),Mt=rh(Se,lt);if(H==="A"){N(Mt),E||B("B");return}_(Mt),S||B("A")},Oy=(Se,lt)=>{if(!ke){if(Se==="A"&&S){N({...S,aggregate:lt});return}Se==="B"&&E&&_({...E,aggregate:lt})}},uc=async()=>{const Se={};if(y.trim()||(Se.name="Name is required"),w==="custom")T.trim()||(Se.expression="Expression is required"),_1(T).length===0&&(Se.expression=Se.expression||"Expression must include field tokens"),tg(T,Ge).unresolvedTokens.length>0&&(Se.expression=Se.expression||"Expression contains unknown or ambiguous tokens"),Se.expression||(await Ke()).isValid||(Se.expression="Fix validation errors before saving");else if(w==="scale")S||(Se.inputA="Please select a metric for input A"),Number.isNaN(k)&&(Se.constant="Please enter a valid multiplication factor");else{if(S||(Se.inputA="Please select a metric for input A"),E||(Se.inputB="Please select a metric for input B"),S&&E){const lt=S.field.id===E.field.id,Mt=S.aggregate===E.aggregate;lt&&Mt&&(Se.inputs="Inputs A and B must be different metrics")}if(r&&r.role==="metric"){const lt=Nl(r.id);(Nl(S==null?void 0:S.field.id)===lt||Nl(E==null?void 0:E.field.id)===lt)&&(Se.inputs="Cannot reference the field being edited")}}return be&&($==="domain"&&!xe&&(Se.scope="You do not have permission to save to domain"),$==="domain"&&!W.trim()&&(Se.description="Description is required for domain fields"),$==="domain"&&it&&(Se.name="A domain field with this name already exists")),A(Se),Object.keys(Se).length===0},ej=async()=>{const Se={};return y.trim()||(Se.name="Name is required"),T.trim()||(Se.expression="Expression is required"),_1(T).length===0&&(Se.expression=Se.expression||"Expression must include field tokens"),tg(T,Ge).unresolvedTokens.length>0&&(Se.expression=Se.expression||"Expression contains unknown or ambiguous tokens"),Se.expression||(await Ke()).isValid||(Se.expression="Fix validation errors before saving"),be&&($==="domain"&&!Oe&&(Se.scope="You do not have permission to save to domain"),$==="domain"&&!W.trim()&&(Se.description="Description is required for domain fields"),$==="domain"&&it&&(Se.name="A domain field with this name already exists")),A(Se),Object.keys(Se).length===0},tj=()=>{const{orderedTokens:Se,orderedFields:lt}=tg(T,Ge),Mt=lt.filter(qn=>!!qn),vn=j6(T,Se),Qt=eQe(y,vn,Mt,_e,u,r==null?void 0:r.id);return r&&r.role==="groupby"?{...r,...Qt}:Qt},nj=()=>{var vn;if(w==="custom"){const{orderedTokens:Qt,orderedFields:qn}=tg(T,Ge),Cr=qn.filter(Ot=>!!Ot),ki=(r==null?void 0:r.role)==="metric"?((vn=r.calculatedFormula)==null?void 0:vn.inputFields)||[]:[],No=new Map;ki.forEach(Ot=>{const dr=Nl(Ot.id);dr&&No.set(dr,Ot),Ot.qualifiedFieldName&&No.set(Ot.qualifiedFieldName,Ot),Ot.name&&No.set(Ot.name,Ot)});const dc=Cr.map(Ot=>{const dr=Nl(Ot.id),Ei=dr&&No.get(dr)||Ot.qualifiedFieldName&&No.get(Ot.qualifiedFieldName)||No.get(Ot.name),oj=((Ei==null?void 0:Ei.role)==="metric"?Ei.aggregate:void 0)||(Ot.role==="metric"?Ot.aggregate:void 0)||uh(Ot);return Z2(Ot,oj)}),Jn=j6(T,Qt),rn=v6(y,w,null,null,{},u,r==null?void 0:r.id,Jn,void 0,dc);return r&&r.role==="metric"?{...r,...rn}:rn}const Se=S?Z2(S.field,S.aggregate):null,lt=E?Z2(E.field,E.aggregate):null,Mt=v6(y,w,Se,lt,{},u,r==null?void 0:r.id,void 0,w==="scale"?k:void 0);return r&&r.role==="metric"?{...r,...Mt}:Mt},Fy=async Se=>{var Mt,vn,Qt;if(b==="dimension"){const qn=tj();if(Se==="dashboard"){if(!i){A(Cr=>({...Cr,scope:"Dashboard scope is not available"}));return}i(qn),Kr();return}if(Se==="domain"){if(!l){A(rn=>({...rn,scope:"Domain scope is not available"}));return}const Cr=((Mt=qn.calculatedFormula)==null?void 0:Mt.inputFields)||[],ki=new Map,No=Cr.map(rn=>{const Ot=fl(rn.label||rn.name),dr=ki.get(Ot)||0;return ki.set(Ot,dr+1),dr===0?Ot:`${Ot}_${dr+1}`}),dc=((vn=qn.expression)==null?void 0:vn.replace(/\{field_(\d+)\}/g,(rn,Ot)=>`{${No[Number(Ot)]||Ot}}`))||"",Jn=No.reduce((rn,Ot,dr)=>{const Ei=Cr[dr];return Ux(Ei)?rn[Ot]={dimension:Ei.name}:rn[Ot]={dataset:Ei.entityName,field:Ei.name},rn},{});try{await l({name:fl(y),label:y.trim(),description:W.trim(),expression:dc,inputs:Jn,dataType:_e,tags:R.split(",").map(rn=>rn.trim()).filter(Boolean),overwrite:s==="domain",previousName:s==="domain"?r==null?void 0:r.name:void 0})}catch(rn){A(Ot=>({...Ot,scope:(rn==null?void 0:rn.message)||"Failed to save to domain"}));return}Kr();return}o(qn),Kr();return}const lt=nj();if(Se==="dashboard"){if(!i){A(qn=>({...qn,scope:"Dashboard scope is not available"}));return}i(lt),Kr();return}if(Se==="domain"){if(!a){A(Jn=>({...Jn,scope:"Domain scope is not available"}));return}if(!lt.calculatedFormula){A(Jn=>({...Jn,scope:"Calculated formula missing"}));return}const qn=lt.calculatedFormula.inputFields,Cr=new Map,ki=qn.map(Jn=>{const rn=fl(Jn.label||Jn.name),Ot=Cr.get(rn)||0;return Cr.set(rn,Ot+1),Ot===0?rn:`${rn}_${Ot+1}`}),No=((Qt=lt.expression)==null?void 0:Qt.replace(/\{field_(\d+)\}/g,(Jn,rn)=>`{${ki[Number(rn)]||rn}}`))||"",dc=ki.reduce((Jn,rn,Ot)=>{const dr=qn[Ot];return dr.role==="metric"?sc(dr)?Jn[rn]={metric:dr.name}:Jn[rn]={dataset:dr.entityName,field:dr.name,aggregate:dr.aggregate}:Jn[rn]={dataset:dr.entityName,field:dr.name},Jn},{});try{await a({name:fl(y),label:y.trim(),description:W.trim(),expression:No,inputs:dc,tags:R.split(",").map(Jn=>Jn.trim()).filter(Boolean),overwrite:s==="domain",previousName:s==="domain"?r==null?void 0:r.name:void 0})}catch(Jn){A(rn=>({...rn,scope:(Jn==null?void 0:Jn.message)||"Failed to save to domain"}));return}Kr();return}o(lt),Kr()},rj=async()=>{if(ke)return;if(A({}),b==="metric"){if(!await uc())return}else if(!await ej())return;const Se=be?$:s||"card";if(b==="metric"&&Se!=="domain"&&it&&!r){Q(Se),te(!0);return}de(!0);try{await Fy(Se)}finally{de(!1)}},sj=C.useMemo(()=>{if(!We||w==="custom")return"";if(w==="scale"){const Se=Number.isFinite(k)?k:1;return`${G2(S)} x ${Se}`}return`${G2(S)||"A"} ${We.symbol} ${G2(E)||"B"}`},[We,w,S,E,k]);return c.jsxs(c.Fragment,{children:[c.jsxs(Gr,{modal:!1,open:e,onOpenChange:Se=>{Se?t(!0):Kr()},children:[e&&c.jsx("div",{className:"pointer-events-none fixed inset-0 z-40 bg-background/80 backdrop-blur-sm"}),c.jsxs(zr,{className:"max-w-5xl max-h-[90vh] overflow-hidden",onInteractOutside:Se=>{Se.preventDefault()},children:[c.jsxs(Br,{children:[c.jsxs(Vr,{children:[r?"Edit":"Create"," Calculated Field"]}),c.jsx(is,{children:"Build calculated metrics and dimensions using expressions."})]}),c.jsxs("div",{className:"grid h-[70vh] min-h-0 grid-cols-[320px_1fr] gap-6",children:[c.jsx(rQe,{groups:Yt,searchTerm:Y,onSearchTermChange:q,onFieldClick:JS,selectedFieldIds:zt,disabled:ke}),c.jsxs("div",{className:"flex h-full min-h-0 flex-col gap-4 overflow-y-auto pr-2",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Field Type"}),c.jsx(nQe,{value:b,onChange:un,disabled:ke||!!r,options:h||["metric","dimension"]})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"calculated-name",children:"Name"}),c.jsx(mn,{id:"calculated-name",value:y,onChange:Se=>v(Se.target.value),placeholder:"e.g., Profit Margin",className:F.name?"border-red-500":"",disabled:ke}),F.name&&c.jsx("p",{className:"text-xs text-red-500",children:F.name})]}),b==="metric"&&c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Operation"}),c.jsx(sQe,{value:w,onChange:Dn,allowCustom:!0,disabled:ke}),F.operation&&c.jsx("p",{className:"text-xs text-red-500",children:F.operation})]}),w==="custom"?c.jsxs("div",{className:"space-y-4",children:[c.jsx(C6,{ref:ge,value:T,onChange:Se=>{P(Se),Ce(!1)},onGenerate:()=>G(!0),showGenerate:!!yt&&!ke,disabled:ke}),c.jsx(S6,{onValidate:async()=>{Ce(!0),await Ke()},isValidating:kt,validationResult:Be,fallbackResult:et,error:pe,showFallback:ce,disabled:ke}),F.expression&&c.jsx("p",{className:"text-xs text-red-500",children:F.expression})]}):c.jsxs("div",{className:"space-y-3",children:[c.jsx(ae,{children:"Inputs"}),c.jsx(w6,{label:"A",input:S,availableFields:Ge,excludeFieldIds:r?[r.id]:void 0,onFieldSelect:Se=>{const lt=K2(Se,(S==null?void 0:S.aggregate)||uh(Se));N(rh(Se,lt))},onAggregateChange:Se=>Oy("A",Se),onRemove:()=>N(null),onActivate:()=>B("A"),allowMedian:g,disabled:ke}),F.inputA&&c.jsx("p",{className:"text-xs text-red-500",children:F.inputA}),w!=="scale"&&c.jsxs(c.Fragment,{children:[c.jsx(w6,{label:"B",input:E,availableFields:Ge,excludeFieldIds:r?[r.id]:void 0,onFieldSelect:Se=>{const lt=K2(Se,(E==null?void 0:E.aggregate)||uh(Se));_(rh(Se,lt))},onAggregateChange:Se=>Oy("B",Se),onRemove:()=>_(null),onActivate:()=>B("B"),allowMedian:g,disabled:ke}),F.inputB&&c.jsx("p",{className:"text-xs text-red-500",children:F.inputB})]}),w==="scale"&&c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"constantFactor",children:"Multiplication Factor"}),c.jsx(mn,{id:"constantFactor",type:"number",step:"any",value:Number.isNaN(k)?"":k,onChange:Se=>M(Se.target.value===""?Number.NaN:Number(Se.target.value)),className:F.constant?"border-red-500":"",placeholder:"e.g., 0.15",disabled:ke}),F.constant&&c.jsx("p",{className:"text-xs text-red-500",children:F.constant})]}),c.jsx("div",{className:"rounded-md border border-border bg-muted/40 p-3 text-sm font-mono",children:sj||"Select inputs to preview formula"}),F.inputs&&c.jsxs(kI,{variant:"destructive",children:[c.jsx(Yl,{className:"h-4 w-4"}),c.jsx(EI,{children:F.inputs})]})]})]}),b==="dimension"&&c.jsxs("div",{className:"space-y-4",children:[c.jsx(C6,{ref:ge,value:T,onChange:Se=>{P(Se),Ce(!1)},onGenerate:()=>G(!0),showGenerate:!!yt&&!ke,disabled:ke}),c.jsx(S6,{onValidate:async()=>{Ce(!0),await Ke()},isValidating:kt,validationResult:Be,fallbackResult:et,error:pe,showFallback:ce,disabled:ke}),F.expression&&c.jsx("p",{className:"text-xs text-red-500",children:F.expression}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Output Type"}),c.jsxs(ot,{value:_e,onValueChange:Se=>I(Se),disabled:ke,children:[c.jsx(nt,{className:"h-9 w-full",children:c.jsx(at,{placeholder:"Select output type"})}),c.jsx(rt,{children:N6.map(Se=>c.jsx(ve,{value:Se.value,children:Se.label},Se.value))})]}),re&&!O&&c.jsxs("p",{className:"text-xs text-muted-foreground",children:["Suggested type: ",re]})]})]}),be&&(De||qe)&&c.jsxs("div",{className:"space-y-3",children:[c.jsx(cQe,{scope:$,onChange:V,showDashboardScope:De,showDomainScope:qe,error:F.scope,disabled:ke}),$==="domain"&&c.jsx(uQe,{description:W,tags:R,onDescriptionChange:L,onTagsChange:z,descriptionError:F.description,disabled:ke})]})]})]}),c.jsxs(os,{children:[c.jsx(se,{variant:"outline",onClick:Kr,children:"Cancel"}),c.jsxs(se,{onClick:rj,disabled:le||ke,children:[r?"Update":"Create"," ",b==="metric"?"Metric":"Dimension"]})]})]})]}),c.jsx(fQe,{open:U,onOpenChange:G,availableFields:Ge,fieldType:b,onExpressionGenerated:async Se=>{P(Se),Ce(!1),Re()},endpoint:yt,dialect:p==null?void 0:p.dialect}),c.jsx(Um,{open:K,onOpenChange:te,children:c.jsxs(Sf,{children:[c.jsxs(jf,{children:[c.jsx(kf,{children:"Name Conflict"}),c.jsxs(Ef,{children:['A domain metric named "',y.trim(),'" already exists. Your local version will override it in this'," ",Z==="dashboard"?"dashboard":"card",". Continue?"]})]}),c.jsxs(Nf,{children:[c.jsx(Tf,{onClick:()=>{Q(null)},children:"Choose Different Name"}),c.jsx(_f,{onClick:async()=>{if(Z){te(!1),de(!0);try{await Fy(Z)}finally{de(!1),Q(null)}}},children:"Continue"})]})]})})]})}function gte({domainId:e}){const{authToken:t,tokenProps:n}=Xe(),[r,s]=C.useState(!1),[o,i]=C.useState(null),a=C.useMemo(()=>{var m;if(!e)return null;const f=(m=n==null?void 0:n.apiServiceUrl)==null?void 0:m.replace(/\/$/,""),h=`/v1/domains/${e}/calculated-metrics`;return f?`${f}${h}`:h},[e,n==null?void 0:n.apiServiceUrl]),l=C.useMemo(()=>{var m;if(!e)return null;const f=(m=n==null?void 0:n.apiServiceUrl)==null?void 0:m.replace(/\/$/,""),h=`/v1/domains/${e}/calculated-dimensions`;return f?`${f}${h}`:h},[e,n==null?void 0:n.apiServiceUrl]),u=C.useCallback(async f=>{if(!a){const h="Domain promotion is not available";throw i(h),new Error(h)}if(!(t!=null&&t.accessToken)){const h="Missing authentication token";throw i(h),new Error(h)}s(!0),i(null);try{return await eo(a,t.accessToken,f)}catch(h){const m=(h==null?void 0:h.error)||(h==null?void 0:h.message)||"Failed to save to domain";throw i(m),new Error(m)}finally{s(!1)}},[a,t==null?void 0:t.accessToken]),d=C.useCallback(async f=>{if(!l){const h="Domain promotion is not available";throw i(h),new Error(h)}if(!(t!=null&&t.accessToken)){const h="Missing authentication token";throw i(h),new Error(h)}s(!0),i(null);try{return await eo(l,t.accessToken,f)}catch(h){const m=(h==null?void 0:h.error)||(h==null?void 0:h.message)||"Failed to save to domain";throw i(m),new Error(m)}finally{s(!1)}},[l,t==null?void 0:t.accessToken]);return{promoteMetric:u,promoteDimension:d,isPromoting:r,error:o}}const bte=C.memo(function({context:t="editor",onFieldSelect:n,inlineFilters:r}={}){var Ke,kt,pe,Re;const[s,o]=C.useState(""),[i,a]=C.useState("all"),[l,u]=C.useState(!1),[d,f]=C.useState(null),[h,m]=C.useState("card"),[p,g]=C.useState("metric");Ae(re=>re.isDevMode);const b=Ae(re=>re.card.dataSource),x=Ae(re=>re.card.config),y=Ae(re=>re.card),v=Ae(re=>re.frame),w=Ae(re=>re.actions.updateCardConfig),j=Ae(re=>re.actions.updateFrame),{userContext:S}=Ps(),{autoJoinMetadata:N}=Ha(y),{columns:E,rawColumnGroups:_,scopedFields:k,dashboardCalculatedFields:M,cardCalculatedFields:T,isLoading:P,error:O,refetch:I}=PA(),$=(b==null?void 0:b.mode)==="semanticDomain"?b.semanticDomainId:void 0,{data:V}=OA($),{promoteMetric:W,promoteDimension:L}=gte({domainId:$}),R=C.useMemo(()=>[...(x==null?void 0:x.groupByColumns)||[],...(x==null?void 0:x.metricColumns)||[],...(x==null?void 0:x.detailColumns)||[]],[x==null?void 0:x.groupByColumns,x==null?void 0:x.metricColumns,x==null?void 0:x.detailColumns]);(kt=(Ke=x==null?void 0:x.joinPlan)==null?void 0:Ke.baseEntity)==null||kt.name,(Re=(pe=N==null?void 0:N.resolvedJoinPlan)==null?void 0:pe.baseEntity)==null||Re.name,Qee();const z=t==="editor",F=(S==null?void 0:S.type)==="organization",A=z?k:E,H=_,B=s.toLowerCase(),Y=(x==null?void 0:x.metricColumns)||[],q=(x==null?void 0:x.groupByColumns)||[],U=C.useCallback(async re=>{await W(re),I()},[W,I]),G=C.useCallback(async re=>{await L(re),I()},[L,I]),Z=re=>re.name.toLowerCase().includes(B)||re.dataType.toLowerCase().includes(B)||re.label&&re.label.toLowerCase().includes(B)||re.qualifiedEntityName&&re.qualifiedEntityName.toLowerCase().includes(B),Q=A.filter(Z),K=re=>{if(re.role==="metric"&&sc(re)||re.role==="groupby"&&re.expression)return"calculated";if(re.dataType==="number"||re.dataType==="integer"||re.dataType==="float"||re.dataType==="decimal"||re.dataType==="currency")return"metrics";const _e=yr(re.dataType);return["date","string","boolean"].includes(_e)?"dimensions":_e==="number"?"metrics":"dimensions"},te=re=>{const _e=re.filter(Z);return i==="all"?_e:_e.filter(We=>K(We)===i)},le=i==="all"?Q:Q.filter(re=>K(re)===i),de=z?[...M,...T]:[],ce=z?te(de):[],ge=te(E).reduce((re,_e)=>{const We=_e.qualifiedEntityName||"Other Fields";return re[We]||(re[We]={label:cb(_e.entityName),fields:[]}),re[We].fields.push(_e),re},{}),he=re=>re.id||`${re.entityName}-${re.qualifiedEntityName}-${re.name}-${re.role||"field"}`,me=C.useMemo(()=>{const re=new Map;return(z?k:E).forEach(We=>{re.set(he(We),ED(We,{joinabilityMap:(V==null?void 0:V.joinabilityMap)||null,selectedFields:R,cardConfig:x,autoJoinMetadata:N}))}),re},[z,k,E,V==null?void 0:V.joinabilityMap,R,x,N]),oe=z?[{key:"scope-calculated",label:"Calculated Fields",fields:ce}].filter(re=>re.fields.length>0):[],fe=[...oe.map(re=>re.key),...Object.keys(ge)],Me=Q.filter(re=>K(re)==="dimensions").length,ke=Q.filter(re=>K(re)==="metrics").length,ie=Q.filter(re=>K(re)==="calculated").length,xe=Q.length>0&&t!=="inline-filter",Oe=t==="inline-filter"?"w-full":"w-[290px]";if(P)return c.jsx("div",{className:X("flex h-full flex-col items-center justify-center py-8",Oe),children:c.jsx(fu,{size:"md",color:"muted","aria-label":"Loading data"})});if(O)return c.jsxs("div",{className:X("flex h-full flex-col items-center justify-center py-8",Oe),children:[c.jsx($l,{className:"mb-4 h-12 w-12 text-red-300"}),c.jsx("p",{className:"mb-2 text-sm text-red-500",children:"Error loading fields"}),c.jsx("p",{className:"px-4 text-center text-xs text-red-400",children:O.message||"Failed to load column data"})]});if(!b||!b.selectedEntities||b.selectedEntities.length===0)return c.jsxs("div",{className:X("flex flex-col items-center justify-center py-8 text-center",Oe),children:[c.jsx($l,{className:"mb-4 h-12 w-12 text-gray-300"}),c.jsx("p",{className:"mb-2 text-sm text-gray-500",children:"No data source selected"}),c.jsx("p",{className:"px-4 text-xs text-gray-400",children:t==="filter"||t==="inline-filter"?"Configure a data source for this card to see available fields":"Select a table, view, or dataset from the data source panel to see available fields"})]});const be=t==="inline-filter"?"px-3 pb-3":"px-6 pb-6",De=t==="inline-filter"?"overflow-hidden":"",qe=re=>re!=null&&re.startsWith("card-source-")?re.replace("card-source-",""):re,He=(re,_e,We)=>{const it=qe(re.id),zt=qe(_e.id);return it&&zt&&it===zt?!0:!it||!zt||We!=null&&We.allowNameFallback?re.name===_e.name&&re.role===_e.role:!1},Fe=(re,_e,We)=>re.findIndex(it=>He(it,_e,We)),yt=re=>{if(!v)return re;const _e=v.calculatedFields||[],We=Fe(_e,re),it=We>=0&&_e[We].id!==re.id?{...re,id:_e[We].id}:re,zt=We>=0?_e.map((un,Dn)=>Dn===We?it:un):[..._e,it];return j({calculatedFields:zt}),it},je=(re,_e,We,it)=>{var un;const zt=Fe(re,We||_e,it);if(zt>=0){const Dn=(un=re[zt])==null?void 0:un.id,Kr=Dn&&Dn!==_e.id?{..._e,id:Dn}:_e;return re.map((Hr,zs)=>zs===zt?Kr:Hr)}return[...re,_e]},dt=re=>{if(re.role==="metric")return Y.find(_e=>He(_e,re));if(re.role==="groupby")return q.find(_e=>He(_e,re))},Ct=re=>{var _e;return(_e=v==null?void 0:v.calculatedFields)==null?void 0:_e.find(We=>He(We,re))},Ye=re=>{if(re.role==="metric"){w(y.id,{metricColumns:Y.filter(_e=>!He(_e,re,{allowNameFallback:re.fieldScope==="dashboard"}))});return}re.role==="groupby"&&w(y.id,{groupByColumns:q.filter(_e=>!He(_e,re,{allowNameFallback:re.fieldScope==="dashboard"}))})},Yt=re=>{if(!v)return;const _e=(v.calculatedFields||[]).filter(We=>!He(We,re));j({calculatedFields:_e})},Ge=re=>{if(!F)return;if(re.fieldScope==="domain"){f(re),m("domain"),g(re.role==="metric"?"metric":"dimension"),u(!0);return}if(re.fieldScope==="dashboard"){const We=Ct(re);if(!We)return;f(We),m("dashboard"),g(We.role==="metric"?"metric":"dimension"),u(!0);return}const _e=dt(re);_e&&(f(_e),m("card"),g(_e.role==="metric"?"metric":"dimension"),u(!0))},et=re=>{if(F&&re.fieldScope!=="domain"){if(re.fieldScope==="dashboard"){Yt(re),Ye(re);return}Ye(re)}},Be=re=>{if(!F)return null;const _e=re.fieldScope==="domain";return c.jsxs(wf,{children:[c.jsx(Cf,{asChild:!0,children:c.jsx(se,{variant:"ghost",size:"icon",className:"h-6 w-6","aria-label":"Calculated field actions",children:c.jsx(f8,{className:"h-4 w-4"})})}),c.jsxs(yu,{align:"end",className:"w-40",children:[c.jsx(po,{onClick:()=>Ge(re),children:"Edit"}),c.jsx(po,{disabled:_e,onClick:()=>et(re),children:"Delete"})]})]})};return c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:X("mt-2 flex h-full w-full grow flex-col gap-2",be,De),children:[c.jsxs("div",{className:"mt-1 flex-shrink-0 space-y-2",children:[A.length>0&&c.jsxs("div",{className:"relative",children:[c.jsx(Ko,{className:"absolute left-3 top-1/2 size-3.5 -translate-y-1/2 transform text-muted-foreground"}),c.jsx(jn,{className:"pl-10 pr-10",type:"text",placeholder:"Search fields...",value:s,onChange:re=>o(re.target.value)}),s&&c.jsx("button",{className:"absolute right-3 top-1/2 -translate-y-1/2 transform text-muted-foreground hover:text-foreground",onClick:()=>o(""),type:"button",children:c.jsx(St,{className:"size-3.5"})})]}),xe&&c.jsx(Os,{defaultValue:"all",value:i,onValueChange:re=>a(re),className:"mb-4",children:c.jsxs(ys,{className:"grid h-9 w-full grid-cols-4",children:[c.jsxs(nn,{value:"all",className:"text-xs",children:["All",c.jsx("span",{className:"ml-2 text-xs font-semibold",children:Q.length})]}),c.jsxs(nn,{value:"dimensions",className:"text-xs",children:[c.jsx(U1,{className:"size-4 shrink-0"}),c.jsx("span",{className:"ml-2 text-xs font-semibold",children:Me})]}),c.jsxs(nn,{value:"metrics",className:"text-xs",children:[c.jsx(Am,{className:"size-4 shrink-0"}),c.jsx("span",{className:"ml-2 text-xs font-semibold",children:ke})]}),c.jsxs(nn,{value:"calculated",className:"text-xs",children:[c.jsx(OT,{className:"size-4 shrink-0"}),c.jsx("span",{className:"ml-2 text-xs font-semibold",children:ie})]})]})}),t==="editor"&&i==="calculated"&&F&&c.jsx("div",{className:"flex items-center justify-end gap-2",children:c.jsxs(se,{size:"sm",variant:"outline",className:"w-full",onClick:()=>{f(null),m("card"),g("dimension"),u(!0)},children:[c.jsx(Tr,{className:"mr-2 h-3.5 w-3.5"}),"Add calculated field"]})})]}),c.jsxs(tl,{className:"min-h-0 flex-1",children:[c.jsxs(BA,{type:"multiple",defaultValue:fe,className:"space-y-2",children:[oe.map(re=>c.jsxs(rx,{value:re.key,className:"border-none",children:[c.jsx(sx,{className:"group rounded-md px-2.5 py-2 text-muted-foreground hover:bg-muted hover:no-underline",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"max-w-[190px] truncate text-ellipsis whitespace-nowrap text-sm font-medium text-primary",children:re.label}),c.jsx(Ve,{variant:"secondary",className:"rounded-full text-xs text-muted-foreground group-hover:bg-background",children:re.fields.length})]})}),c.jsx(ox,{className:"pb-2",children:c.jsx("div",{className:"space-y-1",children:re.fields.map(_e=>{const We=me.get(he(_e)),it=t==="editor"&&i==="calculated";return c.jsx(y6,{field:_e,context:t,fieldState:We,onFieldSelect:n,inlineFilters:t==="inline-filter"?r:void 0,actions:it?Be(_e):void 0},_e.id)})})})]},re.key)),Object.entries(ge).map(([re,_e])=>{const We=H.find(zt=>zt.entityName===re)||{entityName:re,label:_e.label},it=re===Qh?"Domain Calculated Fields":We.label||We.entityName;return c.jsxs(rx,{value:re,className:"border-none",children:[c.jsx(sx,{className:"group rounded-md px-2.5 py-2 text-muted-foreground hover:bg-muted hover:no-underline",children:c.jsxs("div",{title:it,className:"flex items-center gap-2",children:[c.jsx("span",{className:"max-w-[190px] truncate text-ellipsis whitespace-nowrap text-sm font-medium text-primary",children:it}),c.jsx(Ve,{variant:"secondary",className:"rounded-full text-xs text-muted-foreground group-hover:bg-background",children:_e.fields.length})]})}),c.jsx(ox,{className:"pb-2",children:c.jsx("div",{className:"space-y-1",children:_e.fields.map(zt=>{const un=me.get(he(zt));return c.jsx(y6,{field:zt,context:t,fieldState:un,onFieldSelect:n,inlineFilters:t==="inline-filter"?r:void 0},zt.id)})})})]},re)})]}),A.length===0&&c.jsxs("div",{className:"py-8 text-center text-sm text-gray-500",children:[c.jsx("p",{children:"No fields found for selected data source"}),c.jsx("p",{className:"mt-1 text-xs text-gray-400",children:t==="filter"?"The selected data source has no available fields":"Try selecting different data sources"})]}),A.length>0&&le.length===0&&c.jsx("div",{className:"py-4 text-center text-sm text-gray-500",children:"No fields found for this category"}),c.jsx(bi,{orientation:"horizontal"}),c.jsx(bi,{orientation:"vertical"})]})]}),c.jsx(pte,{open:l,onOpenChange:re=>{u(re),re||(f(null),m("card"))},availableFields:k,existingField:d??void 0,existingFieldScope:h,initialFieldType:p,onSave:re=>{if(re.role==="metric"){if(d&&h==="card"){w(y.id,{metricColumns:je(Y,re,d)});return}w(y.id,{metricColumns:je(Y,re)});return}if(d&&h==="card"){w(y.id,{groupByColumns:je(q,re,d)});return}w(y.id,{groupByColumns:je(q,re)})},onSaveToDashboard:re=>{const _e=!!(d&&h==="dashboard"),We=_e?d:void 0;if(re.role==="metric"){const zt=yt(re);w(y.id,{metricColumns:je(Y,zt,We,{allowNameFallback:_e})});return}const it=yt(re);w(y.id,{groupByColumns:je(q,it,We,{allowNameFallback:_e})})},cardId:y.id,onPromoteMetricToDomain:$?U:void 0,onPromoteDimensionToDomain:$?G:void 0,domainId:$})]})}),xte=C.memo(function({context:t="editor"}={}){return c.jsxs("div",{"data-content":"fields-section",className:"flex h-full grow flex-col items-center overflow-hidden",children:[" ",c.jsx(bte,{context:t})," "]})});function yte(){const e=Ae(i=>i.card.dataSource),{setSelectedConnectionId:t,setSelectedDatabaseName:n,setSelectedSchemaName:r,setSelectedTableName:s,setSelectedDatamodelId:o}=cr();C.useEffect(()=>{var m;if(!e)return;const{tableName:i,schemaName:a,databaseName:l,connectionId:u}=FA(e),d=(m=e.selectedEntities)==null?void 0:m[0],h=(d==null?void 0:d.type)==="model"&&"id"in d?d.id:"";t(u||""),n(l||""),r(a||""),s(i||""),o(h)},[e,t,n,r,s,o])}function MQe(){yte();const e=J(l=>l.selectedSheetId),t=J(l=>l.selectedFrameId),n=J(l=>l.dashboard),r=J(l=>l.actions.getSelectedFrame),{setSelectedFrameId:s}=Wt(),{setCard:o}=cr(),i=Ae(l=>l.card.dataSource);return C.useEffect(()=>{var u,d;let l=r();if(!l){const f=(u=n==null?void 0:n.sheets)==null?void 0:u.find(m=>m.id===e),h=(d=f==null?void 0:f.frames)==null?void 0:d[0];h&&(s(h.id),l=h)}if(l){const f=l.cards.find(h=>h.id===l.activeCardId);f&&o(f)}},[r,e,t,n,s,o]),{hasEntities:!!(i!=null&&i.selectedEntities&&i.selectedEntities.length>0)}}function DQe(){const e=J(o=>o.dashboard.filterLayout),{setFilterLayout:t}=Wt(),n=(e==null?void 0:e.displayMode)||"canvas",r=(e==null?void 0:e.toolbarWrap)??!1,s=(e==null?void 0:e.showDownloadButton)??!1;return c.jsxs(ms,{children:[c.jsx(ps,{asChild:!0,children:c.jsx(se,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0","aria-label":"Filter display settings",children:c.jsx(Ll,{className:"h-4 w-4"})})}),c.jsx(gs,{className:"w-[280px]",align:"end",children:c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{children:[c.jsx("h4",{className:"mb-3 text-sm font-medium",children:"Filter Display"}),c.jsxs(Qs,{value:n,onValueChange:o=>t({displayMode:o}),className:"space-y-2",children:[c.jsxs("div",{className:"flex items-start space-x-3",children:[c.jsx(bn,{value:"canvas",id:"canvas",className:"mt-0.5"}),c.jsxs("div",{className:"grid gap-0.5",children:[c.jsx(ae,{htmlFor:"canvas",className:"cursor-pointer font-normal",children:"Canvas Cards"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Filters as draggable, resizable cards on the dashboard"})]})]}),c.jsxs("div",{className:"flex items-start space-x-3",children:[c.jsx(bn,{value:"toolbar",id:"toolbar",className:"mt-0.5"}),c.jsxs("div",{className:"grid gap-0.5",children:[c.jsx(ae,{htmlFor:"toolbar",className:"cursor-pointer font-normal",children:"Toolbar"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Compact horizontal toolbar below dashboard controls"})]})]})]})]}),n==="toolbar"&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"flex items-center space-x-2 border-t pt-4",children:[c.jsx(cn,{id:"wrap",checked:r,onCheckedChange:o=>t({toolbarWrap:o===!0})}),c.jsx(ae,{htmlFor:"wrap",className:"cursor-pointer text-sm font-normal",children:"Wrap filters to multiple lines"})]}),c.jsxs("div",{className:"flex items-center space-x-2 pt-2",children:[c.jsx(cn,{id:"download",checked:s,onCheckedChange:o=>t({showDownloadButton:o===!0})}),c.jsx(ae,{htmlFor:"download",className:"cursor-pointer text-sm font-normal",children:"Show download button"})]})]}),c.jsx("p",{className:"border-t pt-3 text-xs text-muted-foreground",children:"Individual filters can override this setting in their configuration."})]})})]})}function IQe(){const e=J(n=>n.actions.setShowFilters),{hasEntities:t}=MQe();return c.jsxs("section",{className:"relative flex min-w-[320px] grow flex-col overflow-hidden border-l",children:[c.jsxs("div",{className:"mt-4 flex items-center justify-between gap-2 px-4",children:[c.jsx(ae,{className:"px-2 text-base",children:"Dashboard Filters"}),c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx(DQe,{}),c.jsx(se,{onClick:()=>e(!1),className:"h-7 w-7 p-0",variant:"ghost",children:c.jsx(eX,{})})]})]}),!t&&c.jsxs("div",{className:"flex h-full flex-col items-center justify-center px-6 py-12 text-center",children:[c.jsx($l,{className:"mb-4 h-12 w-12 text-muted-foreground/50"}),c.jsx("h3",{className:"mb-2 text-sm font-medium text-foreground",children:"No fields configured"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Please configure a data source for this card to enable filtering"})]}),t&&c.jsx("div",{className:"flex grow overflow-y-auto",children:c.jsx(Ny,{collisionDetection:Cy,children:c.jsx(ky,{items:[],strategy:WR,children:c.jsx(xte,{context:"filter"})})})})]})}function RQe(){const e=J(r=>r.dashboard.filters),t=J(r=>r.theme),n=e==null?void 0:e.filter(r=>r.hide);return n!=null&&n.length?c.jsx("div",{className:X("mb-1 flex items-center gap-2 border-y px-0.5 pb-0.5",{"bg-[repeating-linear-gradient(45deg,_#ffffff_0_3px,_#f3f3f3_3px_6px)]":t==="light","bg-[repeating-linear-gradient(45deg,_#18171d_0_3px,_#272729_3px_6px)]":t==="dark"}),children:n==null?void 0:n.map(r=>c.jsxs("div",{className:"flex min-w-[250px] max-w-fit flex-col gap-1 p-2",children:[c.jsx($R,{filter:r}),c.jsx(Sp,{filter:r})]},r.id))}):null}function AQe(){const e=J(r=>r.showFilters),t=J(r=>r.isVisualEditing),n=J(r=>r.isDashboardEditing);return c.jsxs("div",{role:"dashboard-plus-main",className:X("",{"max-h-0 overflow-hidden":t,"flex grow overflow-hidden":!t}),children:[c.jsxs("section",{className:"flex grow flex-col overflow-y-auto",children:[n&&c.jsx(RQe,{}),c.jsx(Wee,{})]}),e&&c.jsx("div",{role:"filter-aside-container",className:"flex overflow-hidden",children:c.jsx(IQe,{})})]})}const PQe=C.lazy(()=>Promise.resolve().then(()=>require("./dashboard-controls-DZ3RdkPp.js"))),OQe=C.lazy(()=>Promise.resolve().then(()=>require("./edit-dashboard-visual-DyvG8L5y.js"))),FQe=C.lazy(()=>Promise.resolve().then(()=>require("./dashboard-json-CBLwtP5m.js"))),$Qe=C.lazy(()=>Promise.resolve().then(()=>require("./resource-management-panel-DNffk7G6.js")).then(e=>({default:e.ResourceManagementPanel})));function LQe({showControls:e=!1,showFooter:t=!0,...n}){const r=J(l=>l.isDashboardPanelOpen),s=J(l=>l.isVisualEditing),o=J(l=>l.showDashboardJSON),i=J(l=>l.actions.setIsDashboardPanelOpen),{preferences:a}=n;return c.jsx(rl,{FallbackComponent:gS,children:c.jsxs(PT,{dashboardProps:n,children:[c.jsx(tde,{}),c.jsx(AA,{componentType:"surfboard",componentId:n.id}),c.jsx(RA,{children:c.jsxs(qee,{preferences:a,children:[o&&c.jsx(C.Suspense,{fallback:null,children:c.jsx(FQe,{})}),c.jsxs("main",{className:"relative flex h-full w-full flex-col overflow-hidden",children:[e&&c.jsx(C.Suspense,{fallback:null,children:c.jsx(PQe,{})}),c.jsxs("div",{className:"flex grow overflow-hidden",children:[r&&c.jsx(C.Suspense,{fallback:null,children:c.jsx($Qe,{isOpen:r,onClose:()=>i(!1),variant:"inline"})}),c.jsx("div",{className:"flex min-w-0 flex-1",children:c.jsxs(JD,{...n,type:"dashboard",children:[s&&c.jsx(C.Suspense,{fallback:null,children:c.jsx(OQe,{})}),c.jsx(AQe,{})]})})]})]})]})})]})})}var zQe=Object.defineProperty,BQe=(e,t,n)=>t in e?zQe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,fv=(e,t,n)=>BQe(e,typeof t!="symbol"?t+"":t,n);const VQe={stringify:e=>e?"true":"false",parse:e=>/^[ty1-9]/i.test(e)},HQe={stringify:e=>e.name,parse:(e,t,n)=>{const r=(()=>{if(typeof window<"u"&&e in window)return window[e];if(typeof global<"u"&&e in global)return global[e]})();return typeof r=="function"?r.bind(n):void 0}},UQe={stringify:e=>JSON.stringify(e),parse:e=>JSON.parse(e)};function WQe(e){return e.replace(/([a-z0-9])([A-Z])/g,(t,n,r)=>`${n}-${r.toLowerCase()}`)}function vte(e){return e.replace(/[-:]([a-z])/g,(t,n)=>`${n.toUpperCase()}`)}const qQe={stringify:e=>e.name,parse:(e,t,n)=>{const r=(()=>{const s=vte(t);if(typeof n<"u"&&s in n.container)return n.container[s]})();return typeof r=="function"?r.bind(n):void 0}},YQe={stringify:e=>`${e}`,parse:e=>parseFloat(e)},GQe={stringify:e=>e,parse:e=>e},X2={string:GQe,number:YQe,boolean:VQe,function:HQe,method:qQe,json:UQe},ng=Symbol.for("r2wc.render"),hv=Symbol.for("r2wc.connected"),Ku=Symbol.for("r2wc.context"),To=Symbol.for("r2wc.props");function KQe(e,t,n){var r,s,o;t.props||(t.props=e.propTypes?Object.keys(e.propTypes):[]),t.events||(t.events=[]);const i=Array.isArray(t.props)?t.props.slice():Object.keys(t.props),a=Array.isArray(t.events)?t.events.slice():Object.keys(t.events),l={},u={},d={},f={};for(const m of i){l[m]=Array.isArray(t.props)?"string":t.props[m];const p=WQe(m);d[m]=p,f[p]=m}for(const m of a)u[m]=Array.isArray(t.events)?{}:t.events[m];class h extends HTMLElement{constructor(){super(),fv(this,o,!0),fv(this,s),fv(this,r,{}),fv(this,"container"),t.shadow?this.container=this.attachShadow({mode:t.shadow}):this.container=this,this[To].container=this.container;for(const p of i){const g=d[p],b=this.getAttribute(g),x=l[p],y=x?X2[x]:null;if(x==="method"){const v=vte(g);Object.defineProperty(this[To].container,v,{enumerable:!0,configurable:!0,get(){return this[To][v]},set(w){this[To][v]=w,this[ng]()}}),this[To][p]=y.parse(b,g,this)}y!=null&&y.parse&&b&&(this[To][p]=y.parse(b,g,this))}for(const p of a)this[To][p]=g=>{const b=p.replace(/^on/,"").toLowerCase();this.dispatchEvent(new CustomEvent(b,{detail:g,...u[p]}))}}static get observedAttributes(){return Object.keys(f)}connectedCallback(){this[hv]=!0,this[ng]()}disconnectedCallback(){this[hv]=!1,this[Ku]&&n.unmount(this[Ku]),delete this[Ku]}attributeChangedCallback(p,g,b){const x=f[p],y=l[x],v=y?X2[y]:null;x in l&&v!=null&&v.parse&&b&&(this[To][x]=v.parse(b,p,this),this[ng]())}[(o=hv,s=Ku,r=To,ng)](){this[hv]&&(this[Ku]?n.update(this[Ku],this[To]):this[Ku]=n.mount(this.container,e,this[To]))}}for(const m of i){const p=d[m],g=l[m];Object.defineProperty(h.prototype,m,{enumerable:!0,configurable:!0,get(){return this[To][m]},set(b){this[To][m]=b;const x=g?X2[g]:null;if(x!=null&&x.stringify){const y=x.stringify(b,p,this);this.getAttribute(p)!==y&&this.setAttribute(p,y)}else this[ng]()}})}return h}function ZQe(e,t,n){const r=vne.createRoot(e),s=C.createElement(t,n);return r.render(s),{root:r,ReactComponent:t}}function XQe({root:e,ReactComponent:t},n){const r=C.createElement(t,n);e.render(r)}function QQe({root:e}){e.unmount()}function JQe(e,t={}){return KQe(e,t,{mount:ZQe,update:XQe,unmount:QQe})}const eJe={id:"string",version:"string",authToken:"json",placeholders:"json",defaultFilterValues:"json",currentTheme:"string",customCards:"json",customStyle:"json",onChartElementClicked:"function",onFilterValuesChange:"function",onEvent:"function",onSave:"function",LoadingComponent:"function",ErrorComponent:"function",showAssistant:"boolean",selectedSheetId:"string",eventHandlers:"json",preferences:"json"},tJe=JQe(Yee,{props:eJe});function k6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function nJe(e){if(Array.isArray(e))return e}function rJe(e,t,n){return(t=uJe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function sJe(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,s,o,i,a=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(d){u=!0,s=d}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw s}}return a}}function oJe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
1078
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function E6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function _6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?E6(Object(n),!0).forEach(function(r){
|
|
1077
|
+
`)}})}});var AZe=EKe(()=>wee(vi([ir({type:Lt("text-start"),id:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("text-delta"),id:ft(),delta:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("text-end"),id:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("error"),errorText:ft()}),ir({type:Lt("tool-input-start"),toolCallId:ft(),toolName:ft(),providerExecuted:co().optional(),dynamic:co().optional()}),ir({type:Lt("tool-input-delta"),toolCallId:ft(),inputTextDelta:ft()}),ir({type:Lt("tool-input-available"),toolCallId:ft(),toolName:ft(),input:ya(),providerExecuted:co().optional(),providerMetadata:Sr.optional(),dynamic:co().optional()}),ir({type:Lt("tool-input-error"),toolCallId:ft(),toolName:ft(),input:ya(),providerExecuted:co().optional(),providerMetadata:Sr.optional(),dynamic:co().optional(),errorText:ft()}),ir({type:Lt("tool-output-available"),toolCallId:ft(),output:ya(),providerExecuted:co().optional(),dynamic:co().optional(),preliminary:co().optional()}),ir({type:Lt("tool-output-error"),toolCallId:ft(),errorText:ft(),providerExecuted:co().optional(),dynamic:co().optional()}),ir({type:Lt("reasoning-start"),id:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("reasoning-delta"),id:ft(),delta:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("reasoning-end"),id:ft(),providerMetadata:Sr.optional()}),ir({type:Lt("source-url"),sourceId:ft(),url:ft(),title:ft().optional(),providerMetadata:Sr.optional()}),ir({type:Lt("source-document"),sourceId:ft(),mediaType:ft(),title:ft(),filename:ft().optional(),providerMetadata:Sr.optional()}),ir({type:Lt("file"),url:ft(),mediaType:ft(),providerMetadata:Sr.optional()}),ir({type:gee(e=>typeof e=="string"&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:ft().optional(),data:ya(),transient:co().optional()}),ir({type:Lt("start-step")}),ir({type:Lt("finish-step")}),ir({type:Lt("start"),messageId:ft().optional(),messageMetadata:ya().optional()}),ir({type:Lt("finish"),finishReason:hee(["stop","length","content-filter","tool-calls","error","other","unknown"]).optional(),messageMetadata:ya().optional()}),ir({type:Lt("abort")}),ir({type:Lt("message-metadata"),messageMetadata:ya()})])));function PZe(e){return e.type.startsWith("data-")}function Tee(e,t){if(e===void 0&&t===void 0)return;if(e===void 0)return t;if(t===void 0)return e;const n={...e};for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)){const s=t[r];if(s===void 0)continue;const o=r in e?e[r]:void 0,i=s!==null&&typeof s=="object"&&!Array.isArray(s)&&!(s instanceof Date)&&!(s instanceof RegExp),a=o!=null&&typeof o=="object"&&!Array.isArray(o)&&!(o instanceof Date)&&!(o instanceof RegExp);i&&a?n[r]=Tee(o,s):n[r]=s}return n}function OZe(e){const t=["ROOT"];let n=-1,r=null;function s(l,u,d){switch(l){case'"':{n=u,t.pop(),t.push(d),t.push("INSIDE_STRING");break}case"f":case"t":case"n":{n=u,r=u,t.pop(),t.push(d),t.push("INSIDE_LITERAL");break}case"-":{t.pop(),t.push(d),t.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{n=u,t.pop(),t.push(d),t.push("INSIDE_NUMBER");break}case"{":{n=u,t.pop(),t.push(d),t.push("INSIDE_OBJECT_START");break}case"[":{n=u,t.pop(),t.push(d),t.push("INSIDE_ARRAY_START");break}}}function o(l,u){switch(l){case",":{t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{n=u,t.pop();break}}}function i(l,u){switch(l){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{n=u,t.pop();break}}}for(let l=0;l<e.length;l++){const u=e[l];switch(t[t.length-1]){case"ROOT":s(u,l,"FINISH");break;case"INSIDE_OBJECT_START":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}case"}":{n=l,t.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(u){case":":{t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{s(u,l,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{o(u,l);break}case"INSIDE_STRING":{switch(u){case'"':{t.pop(),n=l;break}case"\\":{t.push("INSIDE_STRING_ESCAPE");break}default:n=l}break}case"INSIDE_ARRAY_START":{switch(u){case"]":{n=l,t.pop();break}default:{n=l,s(u,l,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(u){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{n=l,t.pop();break}default:{n=l;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{s(u,l,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{t.pop(),n=l;break}case"INSIDE_NUMBER":{switch(u){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{n=l;break}case"e":case"E":case"-":case".":break;case",":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&o(u,l);break}case"}":{t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&o(u,l);break}case"]":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l);break}default:{t.pop();break}}break}case"INSIDE_LITERAL":{const f=e.substring(r,l+1);!"false".startsWith(f)&&!"true".startsWith(f)&&!"null".startsWith(f)?(t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?o(u,l):t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l)):n=l;break}}}let a=e.slice(0,n+1);for(let l=t.length-1;l>=0;l--)switch(t[l]){case"INSIDE_STRING":{a+='"';break}case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":{a+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{a+="]";break}case"INSIDE_LITERAL":{const d=e.substring(r,e.length);"true".startsWith(d)?a+="true".slice(d.length):"false".startsWith(d)?a+="false".slice(d.length):"null".startsWith(d)&&(a+="null".slice(d.length))}}return a}async function Mee(e){if(e===void 0)return{value:void 0,state:"undefined-input"};let t=await j1({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await j1({text:OZe(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}function $v(e){return e.type.startsWith("tool-")}function FZe(e){return e.type==="dynamic-tool"}function J_(e){return $v(e)||FZe(e)}function h6(e){return e.type.split("-").slice(1).join("-")}function $Ze({lastMessage:e,messageId:t}){return{message:(e==null?void 0:e.role)==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function LZe({stream:e,messageMetadataSchema:t,dataPartSchemas:n,runUpdateMessageJob:r,onError:s,onToolCall:o,onData:i}){return e.pipeThrough(new TransformStream({async transform(a,l){await r(async({state:u,write:d})=>{var f,h,m,p;function g(w){const S=u.message.parts.filter($v).find(N=>N.toolCallId===w);if(S==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return S}function b(w){const S=u.message.parts.filter(N=>N.type==="dynamic-tool").find(N=>N.toolCallId===w);if(S==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return S}function x(w){var j;const S=u.message.parts.find(_=>$v(_)&&_.toolCallId===w.toolCallId),N=w,E=S;S!=null?(S.state=w.state,E.input=N.input,E.output=N.output,E.errorText=N.errorText,E.rawInput=N.rawInput,E.preliminary=N.preliminary,E.providerExecuted=(j=N.providerExecuted)!=null?j:S.providerExecuted,N.providerMetadata!=null&&S.state==="input-available"&&(S.callProviderMetadata=N.providerMetadata)):u.message.parts.push({type:`tool-${w.toolName}`,toolCallId:w.toolCallId,state:w.state,input:N.input,output:N.output,rawInput:N.rawInput,errorText:N.errorText,providerExecuted:N.providerExecuted,preliminary:N.preliminary,...N.providerMetadata!=null?{callProviderMetadata:N.providerMetadata}:{}})}function y(w){var j,S;const N=u.message.parts.find(k=>k.type==="dynamic-tool"&&k.toolCallId===w.toolCallId),E=w,_=N;N!=null?(N.state=w.state,_.toolName=w.toolName,_.input=E.input,_.output=E.output,_.errorText=E.errorText,_.rawInput=(j=E.rawInput)!=null?j:_.rawInput,_.preliminary=E.preliminary,_.providerExecuted=(S=E.providerExecuted)!=null?S:N.providerExecuted,E.providerMetadata!=null&&N.state==="input-available"&&(N.callProviderMetadata=E.providerMetadata)):u.message.parts.push({type:"dynamic-tool",toolName:w.toolName,toolCallId:w.toolCallId,state:w.state,input:E.input,output:E.output,errorText:E.errorText,preliminary:E.preliminary,providerExecuted:E.providerExecuted,...E.providerMetadata!=null?{callProviderMetadata:E.providerMetadata}:{}})}async function v(w){if(w!=null){const j=u.message.metadata!=null?Tee(u.message.metadata,w):w;t!=null&&await l6({value:j,schema:t}),u.message.metadata=j}}switch(a.type){case"text-start":{const w={type:"text",text:"",providerMetadata:a.providerMetadata,state:"streaming"};u.activeTextParts[a.id]=w,u.message.parts.push(w),d();break}case"text-delta":{const w=u.activeTextParts[a.id];w.text+=a.delta,w.providerMetadata=(f=a.providerMetadata)!=null?f:w.providerMetadata,d();break}case"text-end":{const w=u.activeTextParts[a.id];w.state="done",w.providerMetadata=(h=a.providerMetadata)!=null?h:w.providerMetadata,delete u.activeTextParts[a.id],d();break}case"reasoning-start":{const w={type:"reasoning",text:"",providerMetadata:a.providerMetadata,state:"streaming"};u.activeReasoningParts[a.id]=w,u.message.parts.push(w),d();break}case"reasoning-delta":{const w=u.activeReasoningParts[a.id];w.text+=a.delta,w.providerMetadata=(m=a.providerMetadata)!=null?m:w.providerMetadata,d();break}case"reasoning-end":{const w=u.activeReasoningParts[a.id];w.providerMetadata=(p=a.providerMetadata)!=null?p:w.providerMetadata,w.state="done",delete u.activeReasoningParts[a.id],d();break}case"file":{u.message.parts.push({type:"file",mediaType:a.mediaType,url:a.url}),d();break}case"source-url":{u.message.parts.push({type:"source-url",sourceId:a.sourceId,url:a.url,title:a.title,providerMetadata:a.providerMetadata}),d();break}case"source-document":{u.message.parts.push({type:"source-document",sourceId:a.sourceId,mediaType:a.mediaType,title:a.title,filename:a.filename,providerMetadata:a.providerMetadata}),d();break}case"tool-input-start":{const w=u.message.parts.filter($v);u.partialToolCalls[a.toolCallId]={text:"",toolName:a.toolName,index:w.length,dynamic:a.dynamic},a.dynamic?y({toolCallId:a.toolCallId,toolName:a.toolName,state:"input-streaming",input:void 0,providerExecuted:a.providerExecuted}):x({toolCallId:a.toolCallId,toolName:a.toolName,state:"input-streaming",input:void 0,providerExecuted:a.providerExecuted}),d();break}case"tool-input-delta":{const w=u.partialToolCalls[a.toolCallId];w.text+=a.inputTextDelta;const{value:j}=await Mee(w.text);w.dynamic?y({toolCallId:a.toolCallId,toolName:w.toolName,state:"input-streaming",input:j}):x({toolCallId:a.toolCallId,toolName:w.toolName,state:"input-streaming",input:j}),d();break}case"tool-input-available":{a.dynamic?y({toolCallId:a.toolCallId,toolName:a.toolName,state:"input-available",input:a.input,providerExecuted:a.providerExecuted,providerMetadata:a.providerMetadata}):x({toolCallId:a.toolCallId,toolName:a.toolName,state:"input-available",input:a.input,providerExecuted:a.providerExecuted,providerMetadata:a.providerMetadata}),d(),o&&!a.providerExecuted&&await o({toolCall:a});break}case"tool-input-error":{a.dynamic?y({toolCallId:a.toolCallId,toolName:a.toolName,state:"output-error",input:a.input,errorText:a.errorText,providerExecuted:a.providerExecuted,providerMetadata:a.providerMetadata}):x({toolCallId:a.toolCallId,toolName:a.toolName,state:"output-error",input:void 0,rawInput:a.input,errorText:a.errorText,providerExecuted:a.providerExecuted,providerMetadata:a.providerMetadata}),d();break}case"tool-output-available":{if(a.dynamic){const w=b(a.toolCallId);y({toolCallId:a.toolCallId,toolName:w.toolName,state:"output-available",input:w.input,output:a.output,preliminary:a.preliminary})}else{const w=g(a.toolCallId);x({toolCallId:a.toolCallId,toolName:h6(w),state:"output-available",input:w.input,output:a.output,providerExecuted:a.providerExecuted,preliminary:a.preliminary})}d();break}case"tool-output-error":{if(a.dynamic){const w=b(a.toolCallId);y({toolCallId:a.toolCallId,toolName:w.toolName,state:"output-error",input:w.input,errorText:a.errorText,providerExecuted:a.providerExecuted})}else{const w=g(a.toolCallId);x({toolCallId:a.toolCallId,toolName:h6(w),state:"output-error",input:w.input,rawInput:w.rawInput,errorText:a.errorText,providerExecuted:a.providerExecuted})}d();break}case"start-step":{u.message.parts.push({type:"step-start"});break}case"finish-step":{u.activeTextParts={},u.activeReasoningParts={};break}case"start":{a.messageId!=null&&(u.message.id=a.messageId),await v(a.messageMetadata),(a.messageId!=null||a.messageMetadata!=null)&&d();break}case"finish":{a.finishReason!=null&&(u.finishReason=a.finishReason),await v(a.messageMetadata),a.messageMetadata!=null&&d();break}case"message-metadata":{await v(a.messageMetadata),a.messageMetadata!=null&&d();break}case"error":{s==null||s(new Error(a.errorText));break}default:if(PZe(a)){(n==null?void 0:n[a.type])!=null&&await l6({value:a.data,schema:n[a.type]});const w=a;if(w.transient){i==null||i(w);break}const j=w.id!=null?u.message.parts.find(S=>w.type===S.type&&w.id===S.id):void 0;j!=null?j.data=w.data:u.message.parts.push(w),i==null||i(w),d()}}l.enqueue(a)})}}))}async function zZe({stream:e,onError:t}){const n=e.getReader();try{for(;;){const{done:r}=await n.read();if(r)break}}catch(r){t==null||t(r)}finally{n.releaseLock()}}Ay({prefix:"aitxt",size:24});Ay({prefix:"aiobj",size:24});var BZe=class{constructor(){this.queue=[],this.isProcessing=!1}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;)await this.queue[0](),this.queue.shift();this.isProcessing=!1}}async run(e){return new Promise((t,n)=>{this.queue.push(async()=>{try{await e(),t()}catch(r){n(r)}}),this.processQueue()})}};Ay({prefix:"aiobj",size:24});var VZe={};jZe(VZe,{object:()=>UZe,text:()=>HZe});var HZe=()=>({type:"text",responseFormat:{type:"text"},async parsePartial({text:e}){return{partial:e}},async parseOutput({text:e}){return e}}),UZe=({schema:e})=>{const t=CZe(e);return{type:"object",responseFormat:{type:"json",schema:t.jsonSchema},async parsePartial({text:n}){const r=await Mee(n);switch(r.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:r.value};default:{const s=r.state;throw new Error(`Unsupported parse state: ${s}`)}}},async parseOutput({text:n},r){const s=await j1({text:n});if(!s.success)throw new d6({message:"No object generated: could not parse the response.",cause:s.error,text:n,response:r.response,usage:r.usage,finishReason:r.finishReason});const o=await _A({value:s.value,schema:t});if(!o.success)throw new d6({message:"No object generated: response did not match schema.",cause:o.error,text:n,response:r.response,usage:r.usage,finishReason:r.finishReason});return o.value}}};async function WZe(e){if(e==null)return[];if(!globalThis.FileList||!(e instanceof globalThis.FileList))throw new Error("FileList is not supported in the current environment");return Promise.all(Array.from(e).map(async t=>{const{name:n,type:r}=t,s=await new Promise((o,i)=>{const a=new FileReader;a.onload=l=>{var u;o((u=l.target)==null?void 0:u.result)},a.onerror=l=>i(l),a.readAsDataURL(t)});return{type:"file",mediaType:r,filename:n,url:s}}))}var qZe=class{constructor({api:e="/api/chat",credentials:t,headers:n,body:r,fetch:s,prepareSendMessagesRequest:o,prepareReconnectToStreamRequest:i}){this.api=e,this.credentials=t,this.headers=n,this.body=r,this.fetch=s,this.prepareSendMessagesRequest=o,this.prepareReconnectToStreamRequest=i}async sendMessages({abortSignal:e,...t}){var n,r,s,o,i;const a=await nh(this.body),l=await nh(this.headers),u=await nh(this.credentials),d={...ed(l),...ed(t.headers)},f=await((n=this.prepareSendMessagesRequest)==null?void 0:n.call(this,{api:this.api,id:t.chatId,messages:t.messages,body:{...a,...t.body},headers:d,credentials:u,requestMetadata:t.metadata,trigger:t.trigger,messageId:t.messageId})),h=(r=f==null?void 0:f.api)!=null?r:this.api,m=(f==null?void 0:f.headers)!==void 0?ed(f.headers):d,p=(f==null?void 0:f.body)!==void 0?f.body:{...a,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},g=(s=f==null?void 0:f.credentials)!=null?s:u,x=await((o=this.fetch)!=null?o:globalThis.fetch)(h,{method:"POST",headers:i6({"Content-Type":"application/json",...m},`ai-sdk/${f6}`,o6()),body:JSON.stringify(p),credentials:g,signal:e});if(!x.ok)throw new Error((i=await x.text())!=null?i:"Failed to fetch the chat response.");if(!x.body)throw new Error("The response body is empty.");return this.processResponseStream(x.body)}async reconnectToStream(e){var t,n,r,s,o;const i=await nh(this.body),a=await nh(this.headers),l=await nh(this.credentials),u={...ed(a),...ed(e.headers)},d=await((t=this.prepareReconnectToStreamRequest)==null?void 0:t.call(this,{api:this.api,id:e.chatId,body:{...i,...e.body},headers:u,credentials:l,requestMetadata:e.metadata})),f=(n=d==null?void 0:d.api)!=null?n:`${this.api}/${e.chatId}/stream`,h=(d==null?void 0:d.headers)!==void 0?ed(d.headers):u,m=(r=d==null?void 0:d.credentials)!=null?r:l,g=await((s=this.fetch)!=null?s:globalThis.fetch)(f,{method:"GET",headers:i6(h,`ai-sdk/${f6}`,o6()),credentials:m});if(g.status===204)return null;if(!g.ok)throw new Error((o=await g.text())!=null?o:"Failed to fetch the chat response.");if(!g.body)throw new Error("The response body is empty.");return this.processResponseStream(g.body)}},MA=class extends qZe{constructor(e={}){super(e)}processResponseStream(e){return MKe({stream:e,schema:AZe}).pipeThrough(new TransformStream({async transform(t,n){if(!t.success)throw t.error;n.enqueue(t.value)}}))}},YZe=class{constructor({generateId:e=vKe,id:t=e(),transport:n=new MA,messageMetadataSchema:r,dataPartSchemas:s,state:o,onError:i,onToolCall:a,onFinish:l,onData:u,sendAutomaticallyWhen:d}){this.activeResponse=void 0,this.jobExecutor=new BZe,this.sendMessage=async(f,h)=>{var m,p,g,b;if(f==null){await this.makeRequest({trigger:"submit-message",messageId:(m=this.lastMessage)==null?void 0:m.id,...h});return}let x;if("text"in f||"files"in f?x={parts:[...Array.isArray(f.files)?f.files:await WZe(f.files),..."text"in f&&f.text!=null?[{type:"text",text:f.text}]:[]]}:x=f,f.messageId!=null){const y=this.state.messages.findIndex(v=>v.id===f.messageId);if(y===-1)throw new Error(`message with id ${f.messageId} not found`);if(this.state.messages[y].role!=="user")throw new Error(`message with id ${f.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,y+1),this.state.replaceMessage(y,{...x,id:f.messageId,role:(p=x.role)!=null?p:"user",metadata:f.metadata})}else this.state.pushMessage({...x,id:(g=x.id)!=null?g:this.generateId(),role:(b=x.role)!=null?b:"user",metadata:f.metadata});await this.makeRequest({trigger:"submit-message",messageId:f.messageId,...h})},this.regenerate=async({messageId:f,...h}={})=>{const m=f==null?this.state.messages.length-1:this.state.messages.findIndex(p=>p.id===f);if(m===-1)throw new Error(`message ${f} not found`);this.state.messages=this.state.messages.slice(0,this.messages[m].role==="assistant"?m:m+1),await this.makeRequest({trigger:"regenerate-message",messageId:f,...h})},this.resumeStream=async(f={})=>{await this.makeRequest({trigger:"resume-stream",...f})},this.clearError=()=>{this.status==="error"&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolOutput=async({state:f="output-available",tool:h,toolCallId:m,output:p,errorText:g})=>this.jobExecutor.run(async()=>{var b,x;const y=this.state.messages,v=y[y.length-1];this.state.replaceMessage(y.length-1,{...v,parts:v.parts.map(w=>J_(w)&&w.toolCallId===m?{...w,state:f,output:p,errorText:g}:w)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(w=>J_(w)&&w.toolCallId===m?{...w,state:f,output:p,errorText:g}:w)),this.status!=="streaming"&&this.status!=="submitted"&&((b=this.sendAutomaticallyWhen)!=null&&b.call(this,{messages:this.state.messages}))&&this.makeRequest({trigger:"submit-message",messageId:(x=this.lastMessage)==null?void 0:x.id})}),this.addToolResult=this.addToolOutput,this.stop=async()=>{var f;this.status!=="streaming"&&this.status!=="submitted"||(f=this.activeResponse)!=null&&f.abortController&&this.activeResponse.abortController.abort()},this.id=t,this.transport=n,this.generateId=e,this.messageMetadataSchema=r,this.dataPartSchemas=s,this.state=o,this.onError=i,this.onToolCall=a,this.onFinish=l,this.onData=u,this.sendAutomaticallyWhen=d}get status(){return this.state.status}setStatus({status:e,error:t}){this.status!==e&&(this.state.status=e,this.state.error=t)}get error(){return this.state.error}get messages(){return this.state.messages}get lastMessage(){return this.state.messages[this.state.messages.length-1]}set messages(e){this.state.messages=e}async makeRequest({trigger:e,metadata:t,headers:n,body:r,messageId:s}){var o,i,a,l;this.setStatus({status:"submitted",error:void 0});const u=this.lastMessage;let d=!1,f=!1,h=!1;try{const m={state:$Ze({lastMessage:this.state.snapshot(u),messageId:this.generateId()}),abortController:new AbortController};m.abortController.signal.addEventListener("abort",()=>{d=!0}),this.activeResponse=m;let p;if(e==="resume-stream"){const b=await this.transport.reconnectToStream({chatId:this.id,metadata:t,headers:n,body:r});if(b==null){this.setStatus({status:"ready"});return}p=b}else p=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:m.abortController.signal,metadata:t,headers:n,body:r,trigger:e,messageId:s});const g=b=>this.jobExecutor.run(()=>b({state:m.state,write:()=>{var x;this.setStatus({status:"streaming"}),m.state.message.id===((x=this.lastMessage)==null?void 0:x.id)?this.state.replaceMessage(this.state.messages.length-1,m.state.message):this.state.pushMessage(m.state.message)}}));await zZe({stream:LZe({stream:p,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:g,onError:b=>{throw b}}),onError:b=>{throw b}}),this.setStatus({status:"ready"})}catch(m){if(d||m.name==="AbortError")return d=!0,this.setStatus({status:"ready"}),null;h=!0,m instanceof TypeError&&(m.message.toLowerCase().includes("fetch")||m.message.toLowerCase().includes("network"))&&(f=!0),this.onError&&m instanceof Error&&this.onError(m),this.setStatus({status:"error",error:m})}finally{try{(i=this.onFinish)==null||i.call(this,{message:this.activeResponse.state.message,messages:this.state.messages,isAbort:d,isDisconnect:f,isError:h,finishReason:(o=this.activeResponse)==null?void 0:o.state.finishReason})}catch(m){console.error(m)}this.activeResponse=void 0}(a=this.sendAutomaticallyWhen)!=null&&a.call(this,{messages:this.state.messages})&&!h&&await this.makeRequest({trigger:"submit-message",messageId:(l=this.lastMessage)==null?void 0:l.id,metadata:t,headers:n,body:r})}};function GZe({messages:e}){const t=e[e.length-1];if(!t||t.role!=="assistant")return!1;const n=t.parts.reduce((s,o,i)=>o.type==="step-start"?i:s,-1),r=t.parts.slice(n+1).filter(J_).filter(s=>!s.providerExecuted);return r.length>0&&r.every(s=>s.state==="output-available"||s.state==="output-error")}function KZe(e,t){if(typeof e!="function")throw new TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let n,r=0;return function(...o){clearTimeout(n);const i=Date.now(),a=i-r,l=t-a;l<=0?(r=i,e.apply(this,o)):n=setTimeout(()=>{r=Date.now(),e.apply(this,o)},l)}}var ZZe=KZe;const XZe=hf(ZZe);var Dee=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},Gn=(e,t,n)=>(Dee(e,t,"read from private field"),n?n.call(e):t.get(e)),ma=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},vc=(e,t,n,r)=>(Dee(e,t,"write to private field"),t.set(e,n),n);function QZe(e,t){return t!=null?XZe(e,t):e}var Qo,Lv,zv,kg,Eg,_g,lh,eT,tT,JZe=class{constructor(e=[]){ma(this,Qo,void 0),ma(this,Lv,"ready"),ma(this,zv,void 0),ma(this,kg,new Set),ma(this,Eg,new Set),ma(this,_g,new Set),this.pushMessage=t=>{vc(this,Qo,Gn(this,Qo).concat(t)),Gn(this,lh).call(this)},this.popMessage=()=>{vc(this,Qo,Gn(this,Qo).slice(0,-1)),Gn(this,lh).call(this)},this.replaceMessage=(t,n)=>{vc(this,Qo,[...Gn(this,Qo).slice(0,t),this.snapshot(n),...Gn(this,Qo).slice(t+1)]),Gn(this,lh).call(this)},this.snapshot=t=>structuredClone(t),this["~registerMessagesCallback"]=(t,n)=>{const r=n?QZe(t,n):t;return Gn(this,kg).add(r),()=>{Gn(this,kg).delete(r)}},this["~registerStatusCallback"]=t=>(Gn(this,Eg).add(t),()=>{Gn(this,Eg).delete(t)}),this["~registerErrorCallback"]=t=>(Gn(this,_g).add(t),()=>{Gn(this,_g).delete(t)}),ma(this,lh,()=>{Gn(this,kg).forEach(t=>t())}),ma(this,eT,()=>{Gn(this,Eg).forEach(t=>t())}),ma(this,tT,()=>{Gn(this,_g).forEach(t=>t())}),vc(this,Qo,e)}get status(){return Gn(this,Lv)}set status(e){vc(this,Lv,e),Gn(this,eT).call(this)}get error(){return Gn(this,zv)}set error(e){vc(this,zv,e),Gn(this,tT).call(this)}get messages(){return Gn(this,Qo)}set messages(e){vc(this,Qo,[...e]),Gn(this,lh).call(this)}};Qo=new WeakMap;Lv=new WeakMap;zv=new WeakMap;kg=new WeakMap;Eg=new WeakMap;_g=new WeakMap;lh=new WeakMap;eT=new WeakMap;tT=new WeakMap;var ch,m6=class extends YZe{constructor({messages:e,...t}){const n=new JZe(e);super({...t,state:n}),ma(this,ch,void 0),this["~registerMessagesCallback"]=(r,s)=>Gn(this,ch)["~registerMessagesCallback"](r,s),this["~registerStatusCallback"]=r=>Gn(this,ch)["~registerStatusCallback"](r),this["~registerErrorCallback"]=r=>Gn(this,ch)["~registerErrorCallback"](r),vc(this,ch,n)}};ch=new WeakMap;function Iee({experimental_throttle:e,resume:t=!1,...n}={}){const r=C.useRef("chat"in n?n.chat:new m6(n));("chat"in n&&n.chat!==r.current||"id"in n&&r.current.id!==n.id)&&(r.current="chat"in n?n.chat:new m6(n));const o="id"in n?n.id:null,i=C.useCallback(f=>r.current["~registerMessagesCallback"](f,e),[e,o]),a=C.useSyncExternalStore(i,()=>r.current.messages,()=>r.current.messages),l=C.useSyncExternalStore(r.current["~registerStatusCallback"],()=>r.current.status,()=>r.current.status),u=C.useSyncExternalStore(r.current["~registerErrorCallback"],()=>r.current.error,()=>r.current.error),d=C.useCallback(f=>{typeof f=="function"&&(f=f(r.current.messages)),r.current.messages=f},[r]);return C.useEffect(()=>{t&&r.current.resumeStream()},[t,r]),{id:r.current.id,messages:a,setMessages:d,sendMessage:r.current.sendMessage,regenerate:r.current.regenerate,clearError:r.current.clearError,stop:r.current.stop,error:u,resumeStream:r.current.resumeStream,status:l,addToolResult:r.current.addToolOutput,addToolOutput:r.current.addToolOutput}}function eXe(e,t){return e.some(n=>n.tableName&&n.tableName===t.tableName||n.datamodelName&&n.datamodelName===t.datamodelName)}function tXe(e){return e.filter((n,r,s)=>r===s.findIndex(o=>o.tableName===n.tableName&&o.datamodelName===n.datamodelName))}function nXe(e,t){return e.filter(n=>!(n.connectionId===t.connectionId&&n.tableName===t.tableName&&n.datamodelName===t.datamodelName))}function rXe(e){return e.toLowerCase()==="clickhouse"?"{database_name}.{table_name}":e.toLowerCase()==="postgres"?"{schema_name}.{table_name}":"{table_name}"}function Ree(e){return e.map(r=>{const s=r.connectionType==="API"||r.connectionType==="S3"||r.connectionType==="S3Tables"?"DuckDb":r.connectionType;return r.datamodelName?{...r,databaseName:"",schemaName:"",tableName:"",connectionType:s,tableReferenceFormat:"dm.{table_name}"}:{...r,connectionType:s,tableReferenceFormat:rXe(s)}}).filter(r=>r.datamodelName?r.connectionId&&r.datamodelName&&r.connectionType:r.connectionId&&r.tableName&&r.connectionType)}function Aee(e){var n,r;if(!e)return"";let t="";try{const s=JSON.parse((e==null?void 0:e.message)||"{}");t=((r=(n=s==null?void 0:s.error)==null?void 0:n.lastError)==null?void 0:r.message)||(s==null?void 0:s.error)||e.message}catch{t=e.message}return t}function sXe(){var b;const{authToken:e,tokenProps:t}=Xe(),n=J(x=>x.dashboard.aiScopeTables),r=(b=L1().data)==null?void 0:b.assistantProfileId,{sendMessage:s,messages:o,setMessages:i,regenerate:a,status:l,addToolResult:u,error:d,stop:f,clearError:h}=Iee({transport:new MA({api:`${t.apiServiceUrl}/v1/assistant`,headers:()=>({Authorization:`Bearer ${e==null?void 0:e.accessToken}`}),body:()=>{const x=la.getState();return{assistantId:"dashboard-assistant",assistantProfileId:r,aiContext:x.currentAIContext,reasoningEffort:x.reasoningEffort,showReasoning:x.showReasoning}},credentials:"omit",prepareSendMessagesRequest:({messages:x,body:y})=>({body:{...y,messages:Dq(x)}})}),onToolCall:m,sendAutomaticallyWhen:GZe,onFinish({isAbort:x,isDisconnect:y,isError:v}){console.log(x?"[Dashboard Assistant] Stream aborted by user":y?"[Dashboard Assistant] Stream disconnected (network error)":v?"[Dashboard Assistant] Stream error occurred":"[Dashboard Assistant] Stream completed successfully")},onError(x){var y;if(x.name==="AbortError"||(y=x.message)!=null&&y.includes("aborted")){console.log("[Dashboard Assistant] Stream aborted (expected)");return}console.error("[Dashboard Assistant] Stream error:",x)}});async function m({toolCall:x}){if(x.toolName==="getCurrentTableScope"&&u({tool:x.toolName,toolCallId:x.toolCallId,output:{tables:Ree(n||[])}}),x.toolName==="getDashboardContext"){const y=J.getState().dashboard;u({tool:x.toolName,toolCallId:x.toolCallId,output:{dashboardContext:y}})}}const p=!["ready","error"].includes(l),g=Aee(d);return{sendMessage:s,regenerate:a,isLoading:p,messages:o,setMessages:i,status:l,stop:f,errorMessage:g,clearError:h}}function Pee(){var u;const{authToken:e,tokenProps:t}=Xe(),n=(u=L1().data)==null?void 0:u.assistantProfileId;function r(){return!(!n||!(e!=null&&e.accessToken))}const{data:s,isLoading:o,isFetching:i,isError:a}=En({queryKey:["assistant-profile",n],queryFn:()=>rr(`${t.apiServiceUrl}/v1/assistant/${n}`,(e==null?void 0:e.accessToken)||""),enabled:r()});return{assistantProfile:s==null?void 0:s.assistantProfile,isLoading:o,isFetching:i,isError:a}}function Oee({seedQuestions:e,handleSeedQuestionClick:t}){return e.length===0?null:c.jsxs("div",{className:"overflow-x-auto rounded-md border bg-muted/40 p-4",children:[c.jsxs("div",{className:"mb-3 flex items-center",children:[c.jsx(c8,{className:"mr-2 h-4 w-4 text-muted-foreground"}),c.jsx("h3",{className:"font-medium",children:"Example Questions"})]}),c.jsx("div",{className:"flex flex-wrap gap-2",children:e.map((n,r)=>c.jsx(se,{variant:"outline",size:"sm",onClick:()=>t(n),className:"text-sm",children:n},r))})]})}function N1(e,t={}){const{size:n="h-4 w-4"}=t,r=n;switch(e){case"table":return c.jsx(eM,{className:r});case"view":return c.jsx(tu,{className:r});case"materialized view":return c.jsx(Woe,{className:r});case"model":return c.jsx(U1,{className:r});case"file":return c.jsx(Ji,{className:r});case"dataset":return c.jsx($l,{className:r});case"upload":return c.jsx(sM,{className:r});case"url":return c.jsx(p8,{className:r});default:return c.jsx(Sx,{className:r})}}const Fee=D.forwardRef(({className:e,...t},n)=>c.jsxs("div",{className:"flex items-center px-3","cmdk-input-wrapper":"",children:[c.jsx(Ko,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),c.jsx($s.Input,{ref:n,className:X("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));Fee.displayName=$s.Input.displayName;const uv=e=>e.label||(e==null?void 0:e.name),p6=e=>"description"in e?e.description:`${e.type} from ${e.database||"database"}`;function oXe({isOpen:e,onSelect:t,onDeselect:n,onClose:r,availableEntities:s,selectedEntities:o,onTabComplete:i,onSelectAll:a,onRemoveAll:l,onAddContext:u}){const{tokenProps:d}=Xe(),f=(d==null?void 0:d.type)==="dashboard",[h,m]=C.useState(""),[p,g]=C.useState(""),b=s.filter(S=>{if(!h)return!0;const N=uv(S).toLowerCase(),E=p6(S).toLowerCase(),_=h.toLowerCase();return N.includes(_)||E.includes(_)});C.useEffect(()=>{e||(m(""),g(""))},[e]),C.useEffect(()=>{b.length>0&&!p&&g(uv(b[0]))},[b,p]);const x=()=>{if(!p)return;const S=b.find(N=>uv(N)===p);S&&(o.some(E=>"id"in S&&"id"in E?S.id===E.id:S.name===E.name&&S.connectionId===E.connectionId)||t(S),i(S),r())},y=S=>{(S.key==="Tab"||S.key==="Enter")&&(S.preventDefault(),x())};if(!e)return null;const v=S=>o.some(N=>"id"in S&&"id"in N?S.id===N.id:S.name===N.name&&S.connectionId===N.connectionId),w=o.length===s.length,j=o.length>0;return c.jsx(c.Fragment,{children:c.jsxs(op,{shouldFilter:!1,value:p,onValueChange:g,onKeyDown:y,children:[s.length>0&&c.jsxs("div",{className:"flex items-center justify-between border-b pr-3",children:[c.jsx(Fee,{placeholder:"Search entities...",value:h,onValueChange:m,className:"flex-1 border-0",autoFocus:!0}),!f&&c.jsxs(se,{onClick:S=>{S.preventDefault(),S.stopPropagation(),u==null||u()},onMouseDown:S=>{S.preventDefault(),S.stopPropagation()},variant:"outline",size:"sm",className:"h-7 shrink-0",children:[c.jsx(Tr,{className:"mr-1 h-4 w-4"}),"Add"]})]}),s.length>0&&c.jsxs("div",{className:"flex items-center justify-between border-b px-3 py-2 text-sm",children:[c.jsxs("div",{className:"text-muted-foreground",children:[o.length," ",o.length===1?"entity":"entities"," selected"]}),c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx(se,{onClick:S=>{S.preventDefault(),S.stopPropagation(),a==null||a()},onMouseDown:S=>{S.preventDefault(),S.stopPropagation()},disabled:w,variant:"ghost",size:"sm",className:"h-6 px-2 text-xs",children:"Select All"}),j&&c.jsxs(se,{onClick:S=>{S.preventDefault(),S.stopPropagation(),l==null||l()},onMouseDown:S=>{S.preventDefault(),S.stopPropagation()},variant:"ghost",size:"sm",className:"h-6 gap-1 px-2 text-xs",children:[c.jsx(St,{className:"h-3.5 w-3.5"}),"Clear"]})]})]}),c.jsxs(ip,{className:"min-h-60",children:[c.jsx(ap,{children:c.jsxs("div",{className:"flex flex-col items-center justify-center py-4",children:[c.jsx("p",{className:"mb-3 text-sm text-muted-foreground",children:"No entities found."}),!f&&c.jsxs(se,{onClick:S=>{S.preventDefault(),S.stopPropagation(),u==null||u()},onMouseDown:S=>{S.preventDefault(),S.stopPropagation()},size:"sm",variant:"outline",className:"flex items-center gap-2",children:[c.jsx(Tr,{className:"h-4 w-4"}),"Add Datasets"]})]})}),c.jsx(lp,{children:b.map((S,N)=>{const E=v(S),_="id"in S?S.id:`${S.connectionId}-${S.name}`,k=uv(S);return c.jsxs(cp,{value:k,onSelect:()=>{E?n==null||n(S):t(S)},onMouseDown:M=>{M.preventDefault(),M.stopPropagation()},className:X("flex cursor-pointer items-start gap-2 p-2 hover:bg-gray-100"),children:[c.jsx("div",{className:"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center",children:N1(S.type)}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("div",{className:"truncate font-medium",children:k}),c.jsx("div",{className:"truncate text-xs text-muted-foreground",children:p6(S)})]}),E&&c.jsx("div",{className:"ml-1 flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-foreground/80",children:c.jsx(Ar,{className:"h-3 w-3 text-background"})})]},_)})})]})]})})}const nT=e=>e.name||e.name,iXe=e=>{const t=nT(e),n="description"in e?e.description:"",r=e.database||"",s=e.schema||"";return c.jsxs("div",{className:"space-y-1",children:[c.jsx("div",{className:"font-medium",children:t}),n&&c.jsx("div",{className:"text-sm text-muted-foreground",children:n}),c.jsxs("div",{className:"text-xs text-muted-foreground",children:["Type: ",e.type,r&&` • Database: ${r}`,s&&` • Schema: ${s}`]})]})};function aXe({entities:e,availableEntities:t,onRemoveEntity:n,onRemoveEntities:r}){const[s,o]=C.useState(!1),i=e.length>0;e.length,t.length,e.length<t.length;const a=e.length>=3?e.slice(0,2):e,l=e.length>=3?e.slice(2):[],u=l.length>0;return c.jsx(Ln,{children:c.jsx("div",{className:"space-y-2",children:i&&c.jsxs("div",{className:"flex flex-wrap gap-1",children:[a.map((d,f)=>{const h="id"in d?d.id:`${d.connectionId}-${d.name}`;return c.jsxs(an,{children:[c.jsx(ln,{asChild:!0,children:c.jsxs(Ve,{variant:"secondary",className:"group relative cursor-pointer gap-2 transition-colors hover:border-red-200 hover:bg-red-50 dark:hover:border-red-800 dark:hover:bg-red-950",children:[N1(d.type,{size:"h-3 w-3"}),c.jsx("span",{className:"max-w-24 truncate text-xs",children:nT(d)}),c.jsx("button",{className:"rounded-full p-0.5 transition-opacity hover:bg-red-100 group-hover:opacity-100",onClick:()=>n(d),children:c.jsx(St,{className:"h-3 w-3"})})]})}),c.jsx(dn,{side:"top",className:"max-w-xs",children:iXe(d)})]},h)}),u&&c.jsxs(an,{open:s,onOpenChange:o,children:[c.jsx(ln,{asChild:!0,children:c.jsxs(Ve,{variant:"secondary",className:"flex cursor-pointer items-center gap-1 transition-colors hover:bg-secondary/80",onClick:()=>o(!0),children:[c.jsx(f8,{className:"h-3 w-3"}),c.jsxs("span",{className:"text-xs",children:[l.length," more"]}),c.jsx("button",{className:"rounded-full p-0.5 transition-opacity hover:bg-red-100 group-hover:opacity-100",onClick:()=>r(l),children:c.jsx(St,{className:"h-3 w-3"})})]})}),c.jsx(dn,{side:"top",className:"max-h-60 max-w-xs overflow-y-auto p-2",children:c.jsxs("div",{className:"space-y-2",children:[c.jsx("div",{className:"text-sm font-medium",children:"Additional Datasets"}),c.jsx("div",{className:"space-y-2",children:l.map(d=>{const f="id"in d?d.id:`${d.connectionId}-${d.name}`;return c.jsxs("div",{className:"group flex items-center justify-between gap-2",children:[c.jsxs("div",{className:"flex items-start gap-2",children:[c.jsx("div",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:N1(d.type,{size:"h-3 w-3"})}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("div",{className:"truncate text-sm font-medium",children:nT(d)}),c.jsxs("div",{className:"truncate text-xs text-muted-foreground",children:[d.type," ",d.database?`• ${d.database}`:""]})]})]}),c.jsx(se,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0 opacity-0 group-hover:opacity-100",onClick:()=>{n(d),l.length===1&&o(!1)},children:c.jsx(St,{className:"h-3 w-3"})})]},f)})})]})})]})]})})})}function $ee(e){return e.type==="dataset"&&e.label||e.name}function lXe(e){const t=[];return t.push({label:"Type",value:e.type}),t.push({label:"Name",value:e.name}),e.connectionType&&t.push({label:"Connection",value:e.connectionType}),e.database&&t.push({label:"Database",value:e.database}),e.schema&&t.push({label:"Schema",value:e.schema}),e.type==="dataset"&&e.label&&t.push({label:"Label",value:e.label}),e.type==="dataset"&&e.description&&t.push({label:"Description",value:e.description}),e.type==="model"&&e.label&&t.push({label:"Label",value:e.label}),e.type==="model"&&e.description&&t.push({label:"Description",value:e.description}),t}function cXe({selectedEntities:e,onDeselectEntity:t}){return e.length===0?null:c.jsxs("div",{className:"mb-4 space-y-2",children:[c.jsxs(ae,{className:"mb-2 text-xs font-medium text-muted-foreground",children:["Selected Entities (",e.length,")"]}),c.jsx("div",{className:"max-h-32 overflow-y-auto rounded-md border border-border/50 p-2",children:c.jsx("div",{className:"flex flex-wrap gap-1",children:e.map((n,r)=>c.jsxs(Ve,{variant:"secondary",className:"group relative cursor-pointer pr-6 text-xs transition-colors hover:border-red-200 hover:bg-red-50 dark:hover:border-red-800 dark:hover:bg-red-950",children:[c.jsxs("span",{className:"mr-1 text-gray-500",children:["[",n.type,"]"]}),$ee(n),c.jsx("button",{onClick:s=>{s.stopPropagation(),t(n)},className:"absolute right-1 top-1/2 -translate-y-1/2 rounded-full p-0.5 opacity-0 transition-opacity hover:bg-red-100 group-hover:opacity-100",children:c.jsx(St,{className:"h-2.5 w-2.5 text-red-500"})})]},`${n.type}-${n.name}-${r}`))})})]})}function uXe(e){const{tokenProps:t}=Xe(),n=J(l=>l.authToken)||e;Ae(l=>l.selectedConnectionId),Ae(l=>{var u,d;return(d=(u=l==null?void 0:l.card)==null?void 0:u.dataSource)==null?void 0:d.connectionId});const{refetch:r,isPending:s,data:o,isLoading:i,isError:a}=En({queryKey:["semantic-domains"],queryFn:()=>rr(`${t.apiServiceUrl}/v1/domains`,(n==null?void 0:n.accessToken)||""),enabled:!!(n!=null&&n.accessToken)});return{isPending:s,error:a,semanticDomainsData:o,semanticDomains:(o==null?void 0:o.domains)||[],isSemanticDomainsLoading:i,isSemanticDomainsError:a,refetchSemanticDomains:r}}function dXe(e,t){const{tokenProps:n}=Xe(),r=J(u=>u.authToken)||t,{refetch:s,isPending:o,data:i,isLoading:a,isError:l}=En({queryKey:["datasets",e],queryFn:()=>rr(`${n.apiServiceUrl}/v1/datasets`,(r==null?void 0:r.accessToken)||"",{domainId:e}),enabled:!!(r!=null&&r.accessToken)&&!!e});return{isPending:o,error:l,datasets:(i==null?void 0:i.datasets)||[],isDatasetsLoading:a,isDatasetsError:l,refetchDatasets:s}}function fXe(e){var g,b;const{tokenProps:t}=Xe(),n=J(x=>x.authToken)||e,{connections:r}=Ci(e),s=Ae(x=>{var y,v;return(v=(y=x==null?void 0:x.card)==null?void 0:y.dataSource)==null?void 0:v.connectionId}),o=r==null?void 0:r.find(x=>x.id===s),i=o==null?void 0:o.type,a=o==null?void 0:o.capabilities,l=((g=a==null?void 0:a.labels)==null?void 0:g.database)||"Database";function u(x){return s&&x?!(x==="API"||x==="S3"):!1}const{data:d,isPending:f,error:h,refetch:m}=En({queryKey:["databases",s],queryFn:()=>rr(`${t.apiServiceUrl}/v1/databases`,(n==null?void 0:n.accessToken)||"",{connection_id:s}),enabled:u(i)}),p=(b=d==null?void 0:d.databases)==null?void 0:b.map(x=>({id:x.database_name,name:x.database_name}));return{isPending:f,error:h,databases:p||[],refetch:m,label:l}}function hXe(e){var g;const{tokenProps:t}=Xe(),n=J(b=>b.authToken)||e,{connections:r}=Ci(e),s=Ae(b=>{var x,y;return(y=(x=b==null?void 0:b.card)==null?void 0:x.dataSource)==null?void 0:y.connectionId}),o=Ae(b=>{var x,y,v;return(v=(y=(x=b==null?void 0:b.card)==null?void 0:x.dataSource)==null?void 0:y.dbSelection)==null?void 0:v.database}),i=r==null?void 0:r.find(b=>b.id===s),a=i==null?void 0:i.capabilities,l=((g=a==null?void 0:a.labels)==null?void 0:g.schema)||"Schema";function u(){return!(!s||(i==null?void 0:i.type)==="API"||(i==null?void 0:i.type)==="S3"||!o||!(a!=null&&a.path.includes("schema")))}const{data:d,isPending:f,error:h,refetch:m}=En({queryKey:["schemas",s,o],queryFn:()=>rr(`${t.apiServiceUrl}/v1/schemas`,(n==null?void 0:n.accessToken)||"",{connection_id:s,database_name:o}),enabled:u()}),p=d==null?void 0:d.schemas.map(b=>({id:b.schema_name,name:b.schema_name}));return{isPending:f,error:h,schemas:p||[],refetch:m,label:l}}function Lee(e){const{tokenProps:t}=Xe(),n=J(h=>h.authToken)||e,{connections:r}=Ci(e),s=Ae(h=>{var m,p;return(p=(m=h==null?void 0:h.card)==null?void 0:m.dataSource)==null?void 0:p.connectionId}),o=r.find(h=>h.id===s);function i(){return!(!(n!=null&&n.accessToken)||!s)}const{data:a,isPending:l,error:u,refetch:d}=En({queryKey:["dataModels",s],queryFn:()=>rr(`${t.apiServiceUrl}/v1/datamodels`,(n==null?void 0:n.accessToken)||"",{connection_id:s}),enabled:i()}),f=a==null?void 0:a.datamodels.map(h=>({id:h.id,name:h.name,label:h.label,description:h.description,connectionId:s,dialect:h.dialect,connectionType:o==null?void 0:o.type,type:"model",database:h.database,schema:h.schema}));return{isPending:l,error:u,dataModels:f||[],refetch:d}}function mXe(){var j,S,N;const e=Ae(E=>E.card.dataSource);Ae(E=>E.actions.updateDirectSource);const t=Ae(E=>E.actions.updateDataSource),[n,r]=C.useState(""),{selectedConnection:s,error:o}=Ci(),{databases:i,isPending:a,error:l,label:u}=fXe(),{schemas:d,isPending:f,error:h,label:m}=hXe(),{error:p}=Lee(),g=s==null?void 0:s.capabilities.path.includes("schema"),b=s==null?void 0:s.capabilities.path.includes("database"),x=u==null?void 0:u.toLowerCase(),y=m==null?void 0:m.toLowerCase(),v=E=>{e&&t({...e,dbSelection:{database:E,schema:"",entityType:"table"},selectedEntities:(e==null?void 0:e.selectedEntities)||[]})},w=E=>{var k;if(!((k=e==null?void 0:e.dbSelection)!=null&&k.database))return;const _=e.dbSelection||{database:"",schema:"",entityType:"table"};t({...e,dbSelection:{..._,schema:E},selectedEntities:(e==null?void 0:e.selectedEntities)||[]})};return c.jsxs(c.Fragment,{children:[(o||l||h||p)&&c.jsxs("div",{className:"rounded-md border border-red-200 bg-red-50 p-3",children:[c.jsx("div",{className:"flex items-center",children:c.jsxs("div",{className:"text-sm text-red-800",children:[c.jsx("strong",{children:"Error loading data:"}),c.jsxs("ul",{className:"mt-1 list-inside list-disc",children:[o&&c.jsxs("li",{children:["Connections: ",o]}),l&&c.jsxs("li",{children:[u,": ",l.message]}),h&&c.jsxs("li",{children:[m,": ",h.message]}),p&&c.jsxs("li",{children:["Data Models: ",p.message]})]})]})}),c.jsx(se,{variant:"outline",size:"sm",className:"mt-2",onClick:()=>window.location.reload(),children:"Retry"})]}),c.jsxs("div",{className:"space-y-4",children:[b&&c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium",children:u}),c.jsxs(ot,{value:((j=e==null?void 0:e.dbSelection)==null?void 0:j.database)||"",onValueChange:v,disabled:a,children:[c.jsx(nt,{className:"w-full",children:c.jsxs("div",{className:"flex items-center gap-2",children:[a&&c.jsx(xn,{className:"h-4 w-4 animate-spin"}),c.jsx(at,{placeholder:l?`Error loading ${x}`:a?`Loading ${x}...`:`Select ${x}...`})]})}),c.jsx(rt,{children:i.map(E=>c.jsx(ve,{className:"hover:bg-muted",value:E.id,children:E.name},E.id))})]})]}),((S=e==null?void 0:e.dbSelection)==null?void 0:S.database)&&g&&c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium",children:m}),c.jsxs(ot,{value:((N=e==null?void 0:e.dbSelection)==null?void 0:N.schema)||"",onValueChange:w,disabled:f,children:[c.jsx(nt,{className:"w-full",children:c.jsxs("div",{className:"flex items-center gap-2",children:[f&&c.jsx(xn,{className:"h-4 w-4 animate-spin"}),c.jsx(at,{placeholder:h?`Error loading ${y}`:f?`Loading ${y}...`:`Select ${y}...`})]})}),c.jsx(rt,{children:d.map(E=>c.jsx(ve,{className:"hover:bg-muted",value:E.id,children:E.name},E.id))})]})]})]})]})}function pXe(){const e=Ae(l=>l.card.dataSource),t=Ae(l=>l.actions.updateDataSource),[n,r]=C.useState(!1),s=l=>{if(!l||(e==null?void 0:e.mode)!=="upload")return;const u=Array.from(l).map(f=>({id:`file-${Date.now()}-${Math.random()}`,name:f.name,type:"upload",connectionId:"default",connectionType:"none",label:f.name,description:`Uploaded ${new Date().toLocaleString()}`,originalName:f.name,file:f})),d=(e==null?void 0:e.selectedEntities)||[];t({...e,selectedEntities:[...d,...u]})},o=l=>{if(!e)return;const u=(e.selectedEntities||[]).filter(d=>d.id!==l);t({...e,selectedEntities:u})},i=l=>{if(l===0)return"0 Bytes";const u=1024,d=["Bytes","KB","MB","GB"],f=Math.floor(Math.log(l)/Math.log(u));return Number.parseFloat((l/Math.pow(u,f)).toFixed(2))+" "+d[f]},a=(e==null?void 0:e.selectedEntities)||[];return c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium",children:"Upload Files"}),c.jsxs("div",{className:`rounded-lg border-2 border-dashed p-6 text-center transition-colors ${n?"border-blue-400 bg-blue-50":"border-gray-300 hover:border-gray-400"}`,onDragOver:l=>{l.preventDefault(),r(!0)},onDragLeave:()=>r(!1),onDrop:l=>{l.preventDefault(),r(!1),s(l.dataTransfer.files)},children:[c.jsx(sM,{className:"mx-auto mb-2 h-8 w-8 text-gray-400"}),c.jsx("p",{className:"mb-2 text-sm text-gray-600",children:"Drag and drop files here, or click to select"}),c.jsx("input",{type:"file",multiple:!0,className:"hidden",id:"file-upload",onChange:l=>s(l.target.files),accept:".csv,.json,.xlsx,.xls"}),c.jsx(se,{variant:"outline",size:"sm",onClick:()=>{var l;return(l=document.getElementById("file-upload"))==null?void 0:l.click()},children:"Select Files"}),c.jsx("p",{className:"mt-2 text-xs text-gray-500",children:"Supports CSV, JSON, Excel files"})]})]}),a.length>0&&c.jsxs("div",{className:"space-y-2",children:[c.jsxs(ae,{className:"text-xs text-gray-600",children:["Uploaded Files (",a.length,")"]}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:a.map(l=>c.jsxs("div",{className:"flex items-center justify-between rounded border bg-gray-50 p-2",children:[c.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[c.jsx(Ji,{className:"h-4 w-4 flex-shrink-0 text-gray-500"}),c.jsxs("div",{className:"min-w-0",children:[c.jsx("p",{className:"truncate text-sm text-gray-700",children:l.originalName}),c.jsx("p",{className:"text-xs text-gray-500",children:l.file?i(l.file.size):""})]})]}),c.jsx(se,{variant:"ghost",size:"sm",className:"h-6 w-6 flex-shrink-0 p-0",onClick:()=>o(l.id),children:c.jsx(St,{className:"h-3 w-3"})})]},l.id))})]})]})}function gXe(){const e=Ae(f=>f.card.dataSource),t=Ae(f=>f.actions.updateDataSource),[n,r]=C.useState(""),[s,o]=C.useState(""),[i,a]=C.useState("api"),l=()=>{if(!n.trim()||!s.trim()||!e)return;const f={id:`url-${Date.now()}-${Math.random()}`,name:n.trim(),type:"url",connectionId:"default",connectionType:"none",label:n.trim(),description:`URL source of type ${i}`,url:s.trim(),sourceType:i,originalName:n.trim()},h=(e==null?void 0:e.selectedEntities)||[];t({...e,selectedEntities:[...h,f]}),r(""),o(""),a("api")},u=f=>{if(!e)return;const h=(e.selectedEntities||[]).filter(m=>m.id!==f);t({...e,selectedEntities:h})},d=(e==null?void 0:e.selectedEntities)||[];return c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium text-gray-700",children:"URL Sources"}),c.jsxs("div",{className:"space-y-3 rounded-lg border bg-gray-50 p-3",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-xs text-gray-600",children:"Source Name"}),c.jsx(mn,{placeholder:"e.g., Sales API, Customer Data",value:n,onChange:f=>r(f.target.value),className:"h-8 text-sm"})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-xs text-gray-600",children:"URL"}),c.jsx(mn,{placeholder:"https://api.example.com/data",value:s,onChange:f=>o(f.target.value),className:"h-8 text-sm"})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-xs text-gray-600",children:"Type"}),c.jsxs("select",{value:i,onChange:f=>a(f.target.value),className:"h-8 w-full rounded-md border border-gray-300 px-2 text-sm",children:[c.jsx("option",{value:"api",children:"API Endpoint"}),c.jsx("option",{value:"csv",children:"CSV File"}),c.jsx("option",{value:"json",children:"JSON File"})]})]}),c.jsxs(se,{onClick:l,disabled:!n.trim()||!s.trim(),size:"sm",className:"w-full",children:[c.jsx(Tr,{className:"mr-1 h-3 w-3"}),"Add Source"]})]})]}),d.length>0&&c.jsxs("div",{className:"space-y-2",children:[c.jsxs(ae,{className:"text-xs text-gray-600",children:["Added Sources (",d.length,")"]}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:d.map(f=>c.jsxs("div",{className:"flex items-center justify-between rounded border bg-gray-50 p-2",children:[c.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[c.jsx(Sx,{className:"h-4 w-4 flex-shrink-0 text-gray-500"}),c.jsxs("div",{className:"min-w-0",children:[c.jsx("p",{className:"truncate text-sm text-gray-700",children:f.name}),c.jsx("p",{className:"truncate text-xs text-gray-500",children:f.url})]})]}),c.jsx(se,{variant:"ghost",size:"sm",className:"h-6 w-6 flex-shrink-0 p-0",onClick:()=>u(f.id),children:c.jsx(St,{className:"h-3 w-3"})})]},f.id))})]})]})}function bXe(e,t){var y,v;const{tokenProps:n}=Xe(),r=J(w=>w.authToken)||t,{connections:s}=Ci(t),o=Ae(w=>{var j,S;return(S=(j=w==null?void 0:w.card)==null?void 0:j.dataSource)==null?void 0:S.connectionId}),i=Ae(w=>{var j,S,N;return(N=(S=(j=w==null?void 0:w.card)==null?void 0:j.dataSource)==null?void 0:S.dbSelection)==null?void 0:N.database}),a=Ae(w=>{var j,S,N;return(N=(S=(j=w==null?void 0:w.card)==null?void 0:j.dataSource)==null?void 0:S.dbSelection)==null?void 0:N.schema}),l=s==null?void 0:s.find(w=>w.id===o),u=l==null?void 0:l.capabilities,d=((y=u==null?void 0:u.labels)==null?void 0:y.schema)||"Schema";function f(){return o?(l==null?void 0:l.type)==="API"||(l==null?void 0:l.type)==="S3"?!0:!(!i||u!=null&&u.path.includes("schema")&&!a):!1}const{data:h,isPending:m,isLoading:p,error:g,refetch:b}=En({queryKey:[e,o,i,a],queryFn:()=>rr(`${n.apiServiceUrl}/v1/${e}s`,(r==null?void 0:r.accessToken)||"",{connection_id:o,database_name:i,schema_name:a}),enabled:f()}),x=(v=h==null?void 0:h[`${e}s`])==null?void 0:v.map(w=>{var j;return{connectionId:l==null?void 0:l.id,connectionType:l==null?void 0:l.type,dialect:l==null?void 0:l.dialect,type:e,dbObjectType:(j=w==null?void 0:w.table_type)==null?void 0:j.toLowerCase(),id:w[`${e}_name`],database:i,schema:a,name:w[`${e}_name`]}});return{isPending:m,isLoading:p,error:g,entities:x||[],refetch:b,label:d}}function k1({title:e,message:t}){return c.jsx("div",{className:"rounded-xl border border-destructive/40 bg-destructive/10 p-4 text-destructive shadow-sm",children:c.jsxs("div",{className:"flex items-start gap-4",children:[c.jsx(Yl,{className:"h-6 w-6 flex-shrink-0"}),c.jsxs("div",{className:"flex-1",children:[c.jsx("h4",{className:"text-base font-semibold",children:e}),t&&c.jsx("p",{className:"mt-1 text-sm text-destructive/90",children:t})]})]})})}function xXe({dataSource:e,onSelectionChange:t,selectedEntities:n,onRegisterSelectAll:r}){const{connections:s,isPending:o}=Ci(),[i,a]=C.useState(""),[l,u]=C.useState(""),[d,f]=C.useState("tables"),{updateDataSource:h,setSelectedConnectionId:m}=cr(),{entities:p,isLoading:g,error:b}=bXe("table"),{dataModels:x,isPending:y,error:v}=Lee(),w=k=>{const M=s.find(P=>P.id===k);if(!M)return;const T=M.type==="upload"?"upload":M.type==="url"?"url":"database";h({...e,connectionId:k,connectionType:M.type,mode:T,dbSelection:{database:"",schema:"",entityType:"table"}}),m(k)},j=k=>{var O,I;const M=n||[],T=M.some($=>$.name===k.name&&$.type===k.type);let P;if(T)P=M.filter($=>!($.name===k.name&&$.type===k.type));else{const $={connectionId:e.connectionId,connectionType:e.connectionType,type:k.type,dbObjectType:k.dbObjectType,database:((O=e.dbSelection)==null?void 0:O.database)||"",schema:((I=e.dbSelection)==null?void 0:I.schema)||"",name:k.name,dialect:k.dialect};P=[...M,$]}t==null||t(P)},S=k=>{const M=n||[],T=M.some(O=>O.type==="model"&&O.name===k.name);let P;T?P=M.filter(O=>!(O.type==="model"&&O.name===k.name)):P=[...M,k],t==null||t(P)},N=p.filter(k=>k.name.toLowerCase().includes(i.toLowerCase())),E=x.filter(k=>k.name.toLowerCase().includes(l.toLowerCase())),_=C.useCallback(()=>{if(!t)return;const k=n||[];let M=[...k];if(d==="tables"){const P=N.filter(O=>!k.some(I=>I.name===O.name&&I.type==="table")).map(O=>{var I,$;return{connectionId:e.connectionId,connectionType:e.connectionType,type:"table",dbObjectType:O.dbObjectType,database:((I=e.dbSelection)==null?void 0:I.database)||"",schema:(($=e.dbSelection)==null?void 0:$.schema)||"",name:O.name,dialect:O.dialect}});M=[...k,...P]}else if(d==="datamodels"){const T=E.filter(P=>!k.some(O=>O.name===P.name&&O.type==="model"));M=[...k,...T]}t(M)},[d,N,E,n,e,t]);return C.useEffect(()=>{r&&r(_)},[r,_]),c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"font-medium= text-sm",children:"Connection"}),c.jsxs(ot,{value:(e==null?void 0:e.connectionId)||"",onValueChange:w,disabled:o,children:[c.jsx(nt,{className:"w-full",children:c.jsx(at,{placeholder:o?"Loading connections...":"Select connection..."})}),c.jsx(rt,{children:s.map(k=>c.jsx(ve,{className:"hover:bg-muted",value:k.id,children:c.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[c.jsx($l,{className:"h-4 w-4 flex-shrink-0"}),c.jsx("span",{className:"truncate",children:k.name}),c.jsx(Ve,{variant:"secondary",className:"flex-shrink-0 text-xs",children:k.type})]})},k.id))})]})]}),(e==null?void 0:e.connectionId)&&c.jsxs(c.Fragment,{children:[e.connectionType==="upload"&&c.jsx(pXe,{}),e.connectionType==="url"&&c.jsx(gXe,{}),e.connectionType!=="upload"&&e.connectionType!=="url"&&c.jsxs(c.Fragment,{children:[c.jsx(mXe,{}),c.jsx("div",{className:"space-y-4",children:c.jsx("div",{className:"space-y-2",children:c.jsxs(Os,{defaultValue:"tables",value:d,onValueChange:k=>f(k),className:"w-full",children:[c.jsxs(ys,{className:"grid w-full grid-cols-2",children:[c.jsxs(nn,{value:"tables",children:["Tables & Views (",N.length,")"]}),c.jsxs(nn,{value:"datamodels",children:["Data Models (",E.length,")"]})]}),c.jsxs(pr,{value:"tables",className:"space-y-2",children:[c.jsx(jn,{placeholder:"Search tables and views...",value:i,onChange:k=>a(k.target.value),className:"h-8 text-sm",disabled:g}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:g?c.jsx("div",{className:"py-4 text-center text-sm",children:"Loading tables..."}):b?c.jsx(k1,{title:"Error loading tables",message:b.message||"Failed to load tables. Please try again.",onRetry:()=>window.location.reload()}):N.length===0?c.jsx("div",{className:"py-4 text-center text-sm",children:"No tables or views found"}):N.map(k=>{const M=n.some(T=>T.name===k.name&&T.type==="table");return c.jsxs("div",{className:"group flex cursor-pointer items-center space-x-2 rounded p-2 hover:bg-muted",onClick:()=>j(k),children:[c.jsx(cn,{id:`table-${k.name}`,checked:M,onCheckedChange:()=>j(k),onClick:T=>T.stopPropagation(),disabled:g}),c.jsxs(ae,{className:"flex flex-1 cursor-pointer items-center gap-2",children:[k.name,k.dbObjectType==="view"&&c.jsx(Ve,{variant:"secondary",className:"text-xs group-hover:border-border",children:"View"}),k.dbObjectType==="materialized view"&&c.jsx(Ve,{variant:"secondary",className:"text-xs group-hover:border-border",children:"Materialized View"})]})]},k.name)})})]}),c.jsxs(pr,{value:"datamodels",className:"space-y-2",children:[c.jsx(jn,{placeholder:"Search data models...",value:l,onChange:k=>u(k.target.value),className:"h-8 text-sm",disabled:y}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:y?c.jsx("div",{className:"py-4 text-center text-sm",children:"Loading data models..."}):v?c.jsx(k1,{title:"Error loading data models",message:v.message||"Failed to load data models. Please try again.",onRetry:()=>window.location.reload()}):E.length===0?c.jsx("div",{className:"py-4 text-center text-sm",children:"No data models found"}):E.map(k=>{const M=n.some(T=>T.name===k.name&&T.type==="model");return c.jsxs("div",{className:"flex cursor-pointer items-start space-x-2 rounded p-2 hover:bg-muted",onClick:()=>S(k),children:[c.jsx(cn,{id:`dataModel-${k.name}`,checked:M,onCheckedChange:()=>S(k),onClick:T=>T.stopPropagation(),disabled:y}),c.jsxs("div",{className:"flex flex-1 cursor-pointer flex-col gap-1",children:[c.jsx(ae,{className:"cursor-pointer",children:k.name}),c.jsx("span",{className:"text-xs text-muted-foreground",children:k.description})]})]},k.name)})})]})]})})})]})]})]})}function yXe({dataSource:e,onDataSourceUpdate:t,onSelectionChange:n,selectedEntities:r,allowedDomainIds:s=[],isRestricted:o=!1,autoSelectedDomainId:i,onRegisterSelectAll:a}){var j;const[l,u]=C.useState(""),d=C.useCallback(S=>{const N={...e,connectionId:e.connectionId||"none",connectionType:e.connectionType||"none",mode:"semanticDomain",semanticDomainId:S};t({...N})},[e,t]);C.useEffect(()=>{i&&!(e!=null&&e.semanticDomainId)&&d(i)},[i,e==null?void 0:e.semanticDomainId,d]);const{semanticDomains:f,isPending:h,error:m}=uXe(),p=o?f.filter(S=>s.includes(S.id)):f,{datasets:g,isPending:b,error:x}=dXe(e==null?void 0:e.semanticDomainId),y=S=>{const N=r||[],E=N.some(k=>k.id===S.id&&k.type==="dataset");let _;if(E)_=N.filter(k=>!(k.id===S.id&&k.type==="dataset"));else{const k={id:S.id,datasetType:S.type,name:S.name||S.table,label:S.label,domainId:S.domainId,description:S.description,database:S.database,schema:S.schema,type:"dataset",connectionId:S.connectionId,connectionType:S.connectionType,dialect:S.dialect,datamodelId:S.datamodelId,sql:S.sql};_=[...N,k]}n==null||n(_)},v=g.filter(S=>S.name.toLowerCase().includes(l.toLowerCase())),w=C.useCallback(()=>{if(!n||!(e!=null&&e.semanticDomainId))return;const S=r||[],E=v.filter(k=>!S.some(M=>M.id===k.id&&M.type==="dataset")).map(k=>({id:k.id,datasetType:k.type,name:k.name||k.table,label:k.label,domainId:k.domainId,description:k.description,database:k.database,schema:k.schema,type:"dataset",connectionId:k.connectionId,connectionType:k.connectionType,dialect:k.dialect,datamodelId:k.datamodelId,sql:k.sql})),_=[...S,...E];n(_)},[v,r,e==null?void 0:e.semanticDomainId,n]);return C.useEffect(()=>{a&&a(w)},[a,w]),c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium",children:"Semantic Domain"}),c.jsxs(ot,{value:(e==null?void 0:e.semanticDomainId)||"",onValueChange:d,disabled:h||o&&!!i,children:[c.jsx(nt,{className:"w-full",children:c.jsx(at,{placeholder:h?"Loading semantic domains...":o&&i?"Loading domain...":"Select semantic domain...",children:((j=p.find(S=>S.id===(e==null?void 0:e.semanticDomainId)))==null?void 0:j.label)||"Select semantic domain"})}),c.jsx(rt,{children:p.map(S=>c.jsx(ve,{className:"hover:bg-muted",value:S.id,children:c.jsxs("div",{className:"flex flex-col items-start",children:[c.jsx("span",{className:"font-medium",children:S.label}),c.jsx("span",{className:"text-xs",children:S.description})]})},S.id))})]}),m&&c.jsx(k1,{title:"Error loading semantic models",message:m.message})]}),(e==null?void 0:e.semanticDomainId)&&c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{className:"text-sm font-medium text-gray-700",children:"Datasets"}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(jn,{placeholder:"Search datasets...",value:l,onChange:S=>u(S.target.value),className:"h-8 text-sm",disabled:b}),c.jsx("div",{className:"max-h-40 space-y-1 overflow-y-auto",children:b?c.jsx("div",{className:"py-4 text-center text-sm text-gray-500",children:"Loading datasets..."}):x?c.jsx(k1,{title:"Error loading datasets",message:x.message||"Failed to load datasets. Please try again.",onRetry:()=>window.location.reload()}):v.length===0?c.jsx("div",{className:"py-4 text-center text-sm text-gray-500",children:l?"No datasets match your search":"No datasets available"}):v.map(S=>{const N=r.some(E=>E.id===S.id&&E.type==="dataset");return c.jsxs("div",{className:"flex cursor-pointer items-start space-x-2 rounded p-2 hover:bg-gray-50",onClick:()=>y(S),children:[c.jsx(cn,{id:`dataset-${S.id}`,checked:N,onCheckedChange:()=>y(S),onClick:E=>E.stopPropagation(),disabled:b}),c.jsxs("div",{className:"flex flex-1 flex-col gap-1",children:[c.jsx(ae,{className:"cursor-pointer font-medium",children:S.label||S.name}),c.jsx("span",{className:"text-xs text-gray-500",children:S.description})]})]},S.label||S.name)})})]})]})]})}function DA({open:e,onOpenChange:t,dataSource:n,dialogMode:r,incomingSelectedEntities:s}){const{tokenProps:o}=Xe(),{allowedSemanticDomains:i}=o,[a,l]=C.useState([]),{updateDataSource:u}=cr(),d=J(M=>M.isVisualEditing),f=J(M=>M.dashboard.aiContext),{setAiContext:h}=Wt(),m=C.useRef(null),[p,g]=C.useState(!1),b=i&&i.length>0,x=!b,y=b&&i.length===1?i[0]:void 0,v=C.useCallback(M=>{const T=M;u({...n,connectionId:(n==null?void 0:n.connectionId)||"",connectionType:(n==null?void 0:n.connectionType)||"",mode:T,selectedEntities:(n==null?void 0:n.selectedEntities)||[],...T!=="semanticDomain"&&{semanticDomainId:void 0}})},[n,u]),w=C.useCallback(M=>{u({...n,...M})},[n,u]);C.useEffect(()=>{b&&n.mode!=="semanticDomain"&&v("semanticDomain")},[b,n.mode,v]),C.useEffect(()=>{y&&!n.semanticDomainId&&w({semanticDomainId:y})},[y,n.semanticDomainId,w]),C.useEffect(()=>{e?l(s||[]):(m.current=null,g(!1))},[e,n==null?void 0:n.selectedEntities,r,u,s,n]);const j=M=>{const T=a.filter(P=>!(P.name===M.name&&P.type===M.type));l(T)},S=()=>{l([])},N=C.useCallback(M=>{l(M)},[]),E=C.useCallback(()=>{m.current&&m.current()},[]),_=C.useCallback(M=>{m.current=M,g(!0)},[]);function k(){var M,T;if(r==="aiContext")d&&u(n),h({...f,selectedEntities:a}),t(!1);else if(r==="dataSource"){if(n.mode==="semanticDomain"){const P=(M=a==null?void 0:a[0])==null?void 0:M.connectionId,O=(T=a==null?void 0:a[0])==null?void 0:T.connectionType;u({...n,connectionId:P,connectionType:O,selectedEntities:a})}else u({...n,selectedEntities:a});t(!1)}}return c.jsx(Gr,{open:e,onOpenChange:t,children:c.jsx(zr,{className:"flex max-w-2xl flex-col",children:c.jsxs("div",{children:[c.jsxs(Br,{className:"flex-shrink-0",children:[c.jsx(Vr,{children:r==="aiContext"?"Data Context":"Select Data Source"}),c.jsx(is,{children:r==="aiContext"?"Set the overall data scope for the dashboard":"Select data sets to analyze"})]}),c.jsx("div",{className:"flex-1 grow overflow-y-auto py-4",children:c.jsxs("div",{className:"space-y-4",children:[x&&c.jsx("div",{className:"space-y-2",children:c.jsx(Os,{defaultValue:(n==null?void 0:n.mode)||"database",value:(n==null?void 0:n.mode)||"database",onValueChange:v,className:"w-full",children:c.jsxs(ys,{className:"grid w-full grid-cols-2",children:[c.jsx(nn,{value:"database",children:"Direct Source"}),c.jsx(nn,{value:"semanticDomain",children:"Semantic Domain"})]})})}),(n==null?void 0:n.mode)==="semanticDomain"&&c.jsx(yXe,{dataSource:n,onDataSourceUpdate:w,selectedEntities:a,onSelectionChange:N,allowedDomainIds:i||[],isRestricted:b,autoSelectedDomainId:y,onRegisterSelectAll:_}),(n==null?void 0:n.mode)==="database"&&x&&c.jsx(xXe,{dataSource:n,onDataSourceUpdate:w,selectedEntities:a,onSelectionChange:N,onRegisterSelectAll:_})]})}),c.jsx(cXe,{selectedEntities:a,onDeselectEntity:j}),c.jsx(os,{className:"flex-shrink-0",children:c.jsx("div",{className:"flex w-full justify-between",children:c.jsxs("div",{className:"flex grow justify-end gap-2",children:[c.jsx(se,{variant:"outline",onClick:E,disabled:!p,children:"Select All"}),c.jsx(se,{variant:"outline",onClick:S,disabled:a.length===0,children:"Clear All"}),c.jsxs(se,{variant:"outline",onClick:()=>t(!1),children:[c.jsx(St,{className:"mr-2 h-4 w-4"}),"Close"]}),c.jsxs(se,{onClick:k,children:[c.jsx(Ar,{className:"mr-2 h-4 w-4"}),"Accept"]})]})})})]})})})}function vXe({onFilesSelected:e,disabled:t=!1,currentFileCount:n=0,className:r}){const s=C.useRef(null),o=async a=>{const l=Array.from(a.target.files||[]);if(l.length===0)return;const u=gl-n;if(l.length>u){ze.error(`You can only attach ${gl} files per message. You have ${u} slot(s) remaining.`);return}const{valid:d,errors:f}=SJ(l);if(f.forEach(({file:h,error:m})=>{ze.error(`${h.name}: ${m}`)}),d.length>0)try{const h=await Promise.all(d.map(m=>vA(m)));e(h)}catch(h){console.error("Failed to process files:",h),ze.error("Failed to process one or more files")}s.current&&(s.current.value="")},i=()=>{var a;(a=s.current)==null||a.click()};return c.jsxs(c.Fragment,{children:[c.jsx("input",{ref:s,type:"file",multiple:!0,accept:".png,.jpg,.jpeg,.gif,.webp,.pdf,.txt,.md,.csv,.json,.xml,.js,.jsx,.ts,.tsx,.py,.sql",onChange:o,className:"hidden",disabled:t||n>=gl}),c.jsx(se,{variant:"secondary",size:"sm",className:`h-7 px-2 ${r}`,onClick:i,disabled:t||n>=gl,title:n>=gl?`Maximum ${gl} files allowed`:"Attach files",children:c.jsx(ZT,{className:"h-4 w-4 text-muted-foreground"})})]})}function wXe({children:e,onFilesDropped:t,disabled:n=!1,currentFileCount:r=0,className:s}){const[o,i]=C.useState(!1),a=C.useCallback(f=>{f.preventDefault(),f.stopPropagation(),n||i(!0)},[n]),l=C.useCallback(f=>{f.preventDefault(),f.stopPropagation();const h=f.currentTarget.getBoundingClientRect(),m=f.clientX,p=f.clientY;(m<h.left||m>=h.right||p<h.top||p>=h.bottom)&&i(!1)},[]),u=C.useCallback(f=>{f.preventDefault(),f.stopPropagation()},[]),d=C.useCallback(async f=>{if(f.preventDefault(),f.stopPropagation(),i(!1),n)return;const h=Array.from(f.dataTransfer.files);if(h.length===0)return;const m=gl-r;if(h.length>m){ze.error(`You can only attach ${gl} files per message. You have ${m} slot(s) remaining.`);return}const{valid:p,errors:g}=SJ(h);if(g.forEach(({file:b,error:x})=>{ze.error(`${b.name}: ${x}`)}),p.length>0)try{const b=await Promise.all(p.map(x=>vA(x)));t(b),ze.success(`${b.length} file(s) attached successfully`)}catch(b){console.error("Failed to process files:",b),ze.error("Failed to process one or more files")}},[n,r,t]);return c.jsxs("div",{className:X("relative",s),onDragEnter:a,onDragLeave:l,onDragOver:u,onDrop:d,children:[e,o&&!n&&c.jsx("div",{className:"pointer-events-none absolute inset-0 z-50 flex items-center justify-center rounded-lg border-2 border-dashed border-primary bg-primary/5 backdrop-blur-sm",children:c.jsxs("div",{className:"flex flex-col items-center gap-2",children:[c.jsx(sM,{className:"h-8 w-8 text-primary"}),c.jsx("p",{className:"text-sm font-medium text-primary",children:"Drop files here to upload"}),c.jsxs("p",{className:"text-xs text-muted-foreground",children:[gl-r," slot(s) available"]})]})})]})}const IA=C.forwardRef(({input:e,setInput:t,handleInputChange:n,handleSubmit:r,isLoading:s,stop:o,onFocus:i,status:a,assistantType:l},u)=>{const[d,f]=C.useState(!1),[h,m]=C.useState(!1),[p,g]=C.useState(!1),b=C.useRef(null),x=dp();gje(),pje();const{setCurrentAIContext:y,updateSelectedEntities:v,setReasoningEffort:w,setShowReasoning:j}=WC(),{queueMessage:S}=fp(),{addFileAttachment:N,removeFileAttachment:E,clearFileAttachments:_,getFileAttachments:k}=QD(),M=XD(l),T=Ae(U=>U.card.dataSource),P=J(U=>U.dashboard.aiContext),O=J(U=>{var G;return(G=U.dashboard.aiContext)==null?void 0:G.selectedEntities});C.useEffect(()=>{u&&"current"in u&&(u.current=b.current)},[u]);const I=C.useCallback(()=>{const U=b.current;if(U){if(!e||e.length===0){U.style.height="10px";return}U.style.height="auto";const G=Math.min(Math.max(U.scrollHeight,10),200);U.style.height=`${G}px`}},[e]);C.useEffect(()=>{I()},[I]),C.useEffect(()=>{const U=setTimeout(()=>{I()},0);return()=>clearTimeout(U)},[I]);const $=()=>{const U=e.trim();!U&&M.length===0||(a!=="ready"?(S(l,U,M),t(""),_(l)):r({preventDefault:()=>{}}))},V=U=>{U.key==="Enter"&&!U.shiftKey&&(U.preventDefault(),$()),U.key==="@"&&(q(),f(!0))},W=C.useCallback(U=>{const G=WUe(U.nativeEvent);G.length>0&&(U.preventDefault(),G.forEach(async Z=>{const Q=await vA(Z);N(l,Q)}))},[N,l]),L=C.useCallback(U=>{U.forEach(G=>{N(l,G)})},[N,l]),R=C.useCallback(U=>{U.forEach(G=>{N(l,G)})},[N,l]),z=C.useCallback(U=>{E(l,U)},[E,l]),F=U=>{if(x.selectedEntities.some(Z=>Z.id&&Z.id===U.id||Z.name===U.name)){const Z=x.selectedEntities.filter(Q=>!(Q.id&&Q.id===U.id||Q.name===U.name));y({selectedEntities:Z})}else{const Z=[...x.selectedEntities,U];y({selectedEntities:Z})}},A=U=>{F(U)},H=U=>{var Q;if(!x.selectedEntities.some(K=>K.id&&K.id===U.id||K.name===U.name)){const K=[...x.selectedEntities,U];y({selectedEntities:K})}const Z="label"in U?U.label:U.name;t(e+`@${Z} `),f(!1),(Q=b.current)==null||Q.focus()},B=U=>{const G=x.selectedEntities.filter(K=>!(K.id&&K.id===U.id||K.name===U.name));y({selectedEntities:G});const Q=`@${"label"in U?U.label:U.name}`;e.includes(Q)&&t(e.replace(Q,"").trim())},Y=U=>{const G=new Set(U.map(K=>K.id||K.name)),Z=x.selectedEntities.filter(K=>!G.has(K.id||K.name));y({selectedEntities:Z});let Q=e;U.forEach(K=>{const le=`@${"label"in K?K.label:K.name}`;Q=Q.replace(le,"").trim()}),t(Q)},q=C.useCallback(()=>{x.selectedEntities.length===0&&y({selectedEntities:(P==null?void 0:P.selectedEntities)||[]})},[x.selectedEntities.length,P==null?void 0:P.selectedEntities,y]);return c.jsxs(wXe,{onFilesDropped:L,currentFileCount:M.length,disabled:s,className:"space-y-4",children:[c.jsx(aXe,{entities:x.selectedEntities,availableEntities:O||[],onRemoveEntity:B,onRemoveEntities:Y}),M.length>0&&c.jsx(qUe,{files:M,onRemove:z,showRemove:!s,className:"mb-2"}),c.jsxs("div",{className:"rounded-lg border border-border bg-background shadow-sm focus-within:ring-1 focus-within:ring-foreground/40",children:[c.jsx("textarea",{ref:b,value:e,onChange:n,onKeyDown:V,onPaste:W,onFocus:()=>{I(),i==null||i()},placeholder:"Ask a question...",className:"max-h-[200px] min-h-[40px] w-full resize-none overflow-y-auto border-0 bg-transparent px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground/50 focus:outline-none focus:ring-0",style:{height:"40px",lineHeight:"1.5"}}),c.jsxs("div",{className:"flex items-center justify-between border-foreground/10 px-3 py-2",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[l==="dashboard"&&c.jsxs(ms,{open:d,onOpenChange:U=>{U&&q(),f(U)},children:[c.jsx(ps,{asChild:!0,children:c.jsx(se,{variant:"secondary",size:"sm",className:"h-7 px-2",title:"Add entity",children:c.jsx(zoe,{className:"h-4 w-4 text-muted-foreground"})})}),c.jsx(gs,{className:"w-80 p-0",align:"start",side:"top",sideOffset:8,onOpenAutoFocus:U=>U.preventDefault(),children:c.jsx(oXe,{isOpen:!0,onSelect:F,onDeselect:A,onClose:()=>{var U;f(!1),(U=b.current)==null||U.focus()},availableEntities:O||[],selectedEntities:x.selectedEntities,onTabComplete:H,onSelectAll:()=>{O&&y({selectedEntities:O})},onRemoveAll:()=>{y({selectedEntities:[]})},onAddContext:()=>{f(!1),m(!0)}})})]}),c.jsx(vXe,{onFilesSelected:R,disabled:s,currentFileCount:M.length})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[s&&c.jsx(se,{className:"rounded-full",size:"sm",onClick:o,children:c.jsx(tie,{className:"size-3.5 bg-background"})}),!s&&c.jsx(se,{disabled:!e.trim()&&M.length===0,size:"sm",variant:a!=="ready"?"secondary":"default",onClick:$,title:a!=="ready"?"Message will be queued":void 0,children:c.jsx(w8,{className:"size-4"})})]})]})]}),c.jsx(DA,{incomingSelectedEntities:x.selectedEntities,open:h,onOpenChange:m,dataSource:T||HS,dialogMode:"aiContext"})]})});IA.displayName="ChatInputWithContext";function zee({assistantType:e,className:t}){const n=Iq(e),{removeFromQueue:r}=fp();return n.length===0?null:c.jsxs("div",{className:X("space-y-2",t),children:[c.jsxs("div",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[c.jsx(Gl,{className:"h-3 w-3"}),c.jsxs("span",{children:["Pending messages (",n.length,")"]})]}),c.jsx("div",{className:"space-y-2",children:n.map(s=>c.jsx("div",{className:"group relative rounded-lg border border-dashed border-muted-foreground/30 bg-muted/30 px-3 py-2 text-sm animate-in fade-in-0 slide-in-from-bottom-1",children:c.jsxs("div",{className:"flex items-start justify-between gap-2",children:[c.jsx("div",{className:"flex-1 space-y-1",children:c.jsx("p",{className:"break-words text-foreground/70",children:s.text})}),c.jsx(se,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0 opacity-0 transition-opacity group-hover:opacity-100",onClick:()=>r(e,s.id),title:"Remove from queue",children:c.jsx(St,{className:"h-3 w-3"})})]})},s.id))})]})}function Bee({assistantType:e,status:t,isLoading:n,sendMessage:r}){const s=Iq(e),{dequeueMessage:o}=fp();C.useEffect(()=>{if(t!=="ready"||n||!(s&&s.length>0))return;const a=o(e);a&&r({role:"user",parts:[{type:"text",text:a.text}]})},[t,n,s,o,r,e])}function Vee(e,t={}){const{threshold:n=50,behavior:r="smooth",forceScrollOnStream:s=!0,isStreaming:o=!1}=t,i=C.useRef(null),[a,l]=C.useState(!0),[u,d]=C.useState(!0),[f,h]=C.useState(!1),[m,p]=C.useState(0),g=C.useRef(0),b=C.useRef(!1),x=C.useRef(0),y=C.useRef(a),v=C.useRef(void 0),w=C.useRef({key:null,count:0,length:0}),j=C.useCallback(()=>{const _=i.current;return _?_.scrollHeight-_.scrollTop-_.clientHeight:0},[]),S=C.useCallback((_={})=>{if(!i.current)return;const{force:M=!1,instant:T=!1}=_;if(!M&&!y.current||!a&&!M)return;const P=T||r==="auto"||r==="instant"?"auto":r;v.current&&cancelAnimationFrame(v.current),b.current=!0,v.current=requestAnimationFrame(()=>{if(!M&&!y.current){b.current=!1,v.current=void 0;return}const O=i.current;if(!O){b.current=!1,v.current=void 0;return}const I=O.scrollHeight;P==="smooth"&&"scrollTo"in O?O.scrollTo({top:I,behavior:P}):O.scrollTop=I,g.current=O.scrollTop,d(!0),l(!0),y.current=!0,h(!1),p(0),b.current=!1,v.current=void 0})},[r,a]),N=C.useCallback(()=>{const _=i.current;if(!_)return;const k=g.current,M=_.scrollTop,T=M-k;if(g.current=M,T<-1){v.current&&(cancelAnimationFrame(v.current),v.current=void 0),b.current=!1,y.current=!1,l(!1),d(!1);return}if(b.current)return;const P=j()<=n;d(P),l(P),y.current=P,P&&(h(!1),p(0))},[j,n]),E=C.useCallback(()=>{p(0),h(!1)},[]);return C.useEffect(()=>{y.current=a},[a]),C.useEffect(()=>{const _=i.current;if(!_||!e||e.length===0){h(!1),p(0),w.current={key:null,count:0,length:0},g.current=_?_.scrollTop:0,x.current=_?_.scrollHeight:0;return}g.current=_.scrollTop,x.current=_.scrollHeight;const k=w.current,M=e[e.length-1],T=(M==null?void 0:M.id)??(M==null?void 0:M.messageId)??(M==null?void 0:M.createdAt)??(M==null?void 0:M.timestamp)??e.length,P=Array.isArray(M==null?void 0:M.parts)?M.parts.reduce((L,R)=>R?typeof R=="string"?L+R.length:typeof R.text=="string"?L+R.text.length:typeof R.content=="string"?L+R.content.length:typeof R.value=="string"?L+R.value.length:L:L,0):typeof(M==null?void 0:M.content)=="string"?M.content.length:typeof(M==null?void 0:M.text)=="string"?M.text.length:0,O=e.length>k.count,I=T!==k.key,$=P>k.length,V=s&&(M==null?void 0:M.role)==="assistant"&&!O&&(I||$),W=o||V;if(w.current={key:T,count:e.length,length:P},a&&(O||I||$||W)){S({force:!1,instant:W});return}if(!a&&O){const L=e.length-k.count;L>0&&(h(!0),p(R=>R+L))}else!a&&$&&(h(!0),p(L=>L>0?L:1))},[e,S,a,s,o]),C.useEffect(()=>{S({instant:!0})},[S]),C.useEffect(()=>{if(typeof ResizeObserver>"u")return;const _=i.current;if(!_)return;x.current=_.scrollHeight;const k=new ResizeObserver(()=>{const M=i.current;if(!M)return;const T=x.current,P=M.scrollHeight;x.current=P,!b.current&&y.current&&P>T&&S({force:!1,instant:!0})});return k.observe(_),()=>{k.disconnect()}},[S]),C.useEffect(()=>()=>{v.current&&cancelAnimationFrame(v.current)},[]),{scrollRef:i,isAutoScrollEnabled:a,isAtBottom:u,hasNewMessages:f,newMessageCount:m,scrollToBottom:S,handleScroll:N,resetNewMessageCount:E}}function Hee(e,t={}){const{maxVisibleMessages:n=50,initialLoadCount:r=20,loadMoreCount:s=10}=t,[o,i]=C.useState(r),a=C.useMemo(()=>{if(e.length<=o)return e;const h=Math.max(0,e.length-o);return e.slice(h)},[e,o]),l=e.length>o,u=o>=e.length,d=C.useCallback(()=>{i(h=>Math.min(h+s,n))},[s,n]),f=C.useCallback(()=>{i(r)},[r]);return C.useEffect(()=>{u&&e.length>o&&o<n&&i(Math.min(e.length,n))},[e.length,o,u,n]),{visibleMessages:a,hasMoreMessages:l,totalMessageCount:e.length,loadMoreMessages:d,resetMessageWindow:f,isShowingAll:u}}function Uee(e){var n;if(!e||e.length===0)return{hasActiveTools:!1};const t=e[e.length-1];if(!(t!=null&&t.parts))return{hasActiveTools:!1};for(const r of t.parts){if(r.type==="reasoning"&&"state"in r&&r.state==="streaming")return{hasActiveTools:!0,activeToolText:r.text||"Reasoning...",toolType:"reasoning"};if(((n=r.type)!=null&&n.startsWith("tool-")||r.type==="dynamic-tool")&&"state"in r&&["input-streaming","input-available"].includes(r.state)){const s=r,o=s.state;return{hasActiveTools:!0,activeToolText:jJ(s.type,o),toolType:s.type}}}return{hasActiveTools:!1}}const CXe=[{title:"Show top 3 insights",subtitle:"from this dataset"},{title:"Create a bar chart for",subtitle:"sales by product category"}];function SXe({open:e,setOpen:t,isFullscreen:n,onFullscreenChange:r,fullscreenContainer:s}){const[o,i]=C.useState(!1),[a,l]=C.useState(gT),[u,d]=C.useState(!1),[f,h]=C.useState(!1),[m,p]=C.useState(!1),g=n??m,{isLocalDev:b,isConsoleMode:x}=Hm(),y=C.useRef(null);J(Ye=>Ye.dashboard.aiScopeTables),J(Ye=>Ye.isDashboardEditing);const v=J(Ye=>Ye.selectedSheetId),{setDataSource:w}=cr(),{addFrame:j,setSelectedFrameId:S,setIsDashboardEditing:N}=Wt(),E=dp(),{setCurrentAIContext:_,updateSelectedEntities:k,setReasoningEffort:M,setShowReasoning:T}=WC(),{clearQueue:P}=fp(),{clearFileAttachments:O,getFileAttachments:I}=QD(),$=XD("dashboard"),V=J(Ye=>Ye.dashboard.aiContext),W=Ae(Ye=>Ye.card.dataSource),{assistantProfile:L}=Pee(),R=J(Ye=>Ye.handleOpenAssistantProfile),{sendMessage:z,isLoading:F,messages:A,setMessages:H,status:B,stop:Y,errorMessage:q,clearError:U}=sXe(),G=C.useCallback(Ye=>{r==null||r(Ye),n===void 0&&p(Ye)},[n,r]),Z=C.useCallback(()=>{G(!g)},[g,G]);C.useEffect(()=>{if(!g)return;function Ye(Yt){Yt.key==="Escape"&&G(!1)}return window.addEventListener("keydown",Ye),()=>{window.removeEventListener("keydown",Ye)}},[g,G]);const[Q,K]=C.useState(""),te=Ye=>{K(Ye.target.value)};function le({sql:Ye,cardTitle:Yt,connectionId:Ge,cardType:et,python:Be,cardConfig:Ke,dataSource:kt,customVisualPreferences:pe}){if(!v)return;const Re={id:Rr(),title:Yt||"Title",preferences:{onClickFilter:[{columnIndex:0,expression:""}],chartOptions:{indexAxis:et==="horizontalBar"?"y":"x"}},type:et,sql:Ye,python:Be,dataSource:kt,config:Ke,connectionId:Ge,customCardPreferences:pe?{url:pe.url,componentName:pe.componentName,pluginChartType:pe.pluginChartType,settings:pe.settings,type:"component"}:void 0},re={id:Rr(),cards:[Re],activeCardId:Re.id};N(!0),j(v,re,"end"),S(re.id)}const de=Ye=>{Ye.preventDefault();const Yt=Q.trim();if(!Yt&&$.length===0)return;const Ge=[];Yt&&Ge.push({type:"text",text:Yt}),$.forEach(et=>{et.data&&Ge.push({type:"file",mediaType:et.type,filename:et.name,url:`data:${et.type};base64,${et.data}`})}),z({role:"user",parts:Ge}),K(""),O("dashboard"),ie({force:!0})};C.useEffect(()=>{var Ye;e&&((Ye=y.current)==null||Ye.focus())},[e]),Bee({assistantType:"dashboard",status:B,isLoading:F,sendMessage:z});const{hasActiveTools:ce}=Uee(A),{visibleMessages:Ce,hasMoreMessages:ge,totalMessageCount:he,loadMoreMessages:me,resetMessageWindow:oe}=Hee(A,{maxVisibleMessages:15,initialLoadCount:10,loadMoreCount:5}),{scrollRef:Ne,isAtBottom:fe,hasNewMessages:Me,newMessageCount:ke,scrollToBottom:ie,handleScroll:xe,resetNewMessageCount:Oe}=Vee(Ce,{threshold:50,behavior:"smooth",isStreaming:F});function be(Ye){Fe();const Yt={role:"user",parts:[{type:"text",text:Ye.title+" "+Ye.subtitle}]};z(Yt)}function De(Ye){Fe(),z({role:"user",parts:[{type:"text",text:Ye}]})}function qe(Ye){Fe(),z({role:"user",parts:[{type:"text",text:Ye}]}),ie({force:!0})}const He=C.useCallback(async()=>{const Ye=JSON.stringify(A??[],null,2);try{if(typeof navigator>"u"||!navigator.clipboard)throw new Error("Clipboard API unavailable");await navigator.clipboard.writeText(Ye),ze.success("Conversation copied")}catch(Yt){console.error("Failed to copy conversation",Yt),ze.error("Unable to copy conversation")}},[A]);function Fe(){E.selectedEntities.length===0&&_({selectedEntities:(V==null?void 0:V.selectedEntities)||[]})}const yt=(Q==null?void 0:Q.length)===0&&(A==null?void 0:A.filter(Ye=>Ye.role==="user").length)===0;function je(){return c.jsx("div",{"data-role":"header",children:c.jsx("div",{className:"text-lg font-semibold",children:"Assistant"})})}function dt(){return c.jsxs(wf,{children:[c.jsx(Cf,{asChild:!0,children:c.jsx(Wc,{className:"h-7 p-2 text-muted-foreground hover:text-foreground",children:c.jsx(Pm,{className:"size-3.5"})})}),c.jsxs(yu,{align:"end",children:[c.jsx(Eh,{children:"Options"}),c.jsx(Kd,{}),c.jsx(Mg,{checked:o,onCheckedChange:i,children:"Token Usage"}),c.jsx(Mg,{checked:a,onCheckedChange:l,children:"Tool Invocations"}),c.jsx(Mg,{checked:u,onCheckedChange:d,children:"System Message"})]})]})}const Ct=c.jsxs("div",{"data-role":"dashboard-assistant",className:X("flex h-full grow flex-col justify-between break-words px-6 py-4",g&&"rounded-2xl border border-border/60 bg-background px-8 pb-6 pt-6 shadow-xl"),children:[c.jsxs("div",{"data-role":"header-section",className:"flex items-start justify-between gap-2",children:[je(),R&&c.jsx(se,{variant:"outline",size:"sm",className:"h-7 p-2",onClick:R,children:(L==null?void 0:L.name)||"Default Profile"}),c.jsxs("div",{"data-role":"header-actions",className:"flex items-center",children:[x&&dt(),a&&c.jsx(se,{variant:"ghost",size:"sm",className:"ml-2 h-7 px-2 text-muted-foreground hover:text-foreground",onClick:He,children:"Copy Conversation"}),c.jsx(Wc,{className:"h-7 p-2 text-muted-foreground hover:text-foreground",tooltip:g?"Exit Fullscreen":"Expand",onClick:Z,children:g?c.jsx(KT,{className:"size-4"}):c.jsx(W1,{className:"size-4"})}),c.jsx(Wc,{className:"h-7 p-2 text-muted-foreground hover:text-foreground",tooltip:"New Chat",onClick:()=>{H([]),P("dashboard"),U(),oe()},children:c.jsx(Y1,{className:"size-4"})}),c.jsx(Wc,{className:"h-7 p-2 text-muted-foreground hover:text-foreground",onClick:()=>{t(!1)},children:c.jsx(St,{className:"size-4"})})]})]}),c.jsxs(tl,{"data-role":"dashboard-assistant-scroll-area",ref:Ne,className:"mt-4 flex flex-1 basis-0 flex-col flex-wrap justify-end pr-2",onScroll:xe,children:[c.jsxs("div",{className:"space-y-3 pb-4",children:[ge&&c.jsx("div",{className:"flex justify-center py-2",children:c.jsxs(se,{variant:"outline",size:"sm",onClick:me,className:"text-xs",children:["Load ",Math.min(5,he-Ce.length)," ","more messages (",he-Ce.length," ","hidden)"]})}),c.jsx(kJ,{showTools:a,showSystemMessage:u,messages:Ce,onAddToDashboard:le,onQuickReply:qe,disableQuickReplies:F}),!ce&&c.jsx(NJ,{status:B,errorMessage:q})]}),c.jsx(bi,{orientation:"horizontal"})]}),e&&!fe&&c.jsx("div",{className:"absolute bottom-24 right-8 z-10",children:c.jsxs(se,{onClick:()=>{ie({force:!0}),Oe()},size:"sm",variant:"secondary",className:"rounded-full shadow-lg","aria-label":"Scroll to bottom",children:[c.jsx(kr,{className:"h-4 w-4"}),Me&&ke>0&&c.jsx("span",{className:"ml-1.5 flex h-5 w-5 items-center justify-center rounded-full bg-primary text-xs text-primary-foreground",children:ke>9?"9+":ke})]})}),c.jsxs("div",{className:"space-y-3",children:[!L&&yt&&c.jsx(EJ,{onClick:be,placeholders:CXe}),c.jsx("div",{children:yt&&L&&c.jsx(Oee,{seedQuestions:L.seedQuestions||[],handleSeedQuestionClick:De})}),c.jsx(zee,{assistantType:"dashboard",className:"mb-3"}),c.jsx(IA,{ref:y,setInput:K,stop:Y,input:Q,handleInputChange:te,handleSubmit:Ye=>{Fe(),de(Ye),ie({force:!0})},isLoading:F,status:B,assistantType:"dashboard",onFocus:()=>{}})]}),c.jsx(DA,{incomingSelectedEntities:(V==null?void 0:V.selectedEntities)||[],open:f,onOpenChange:h,dataSource:W||HS,dialogMode:"aiContext"})]});return g&&s?Zn.createPortal(c.jsx("div",{className:"pointer-events-auto absolute inset-0 z-50 flex bg-background px-6 pb-6 pt-[calc(var(--app-header-height,15px)+1rem)]",children:c.jsx("div",{className:"flex h-full w-full",children:Ct})}),s):Ct}function jXe(e){const t=e.current,{getSelectedFrame:n,addFrame:r,setSelectedFrameId:s}=Wt(),o=J(d=>d.dashboard.sheets),a=J(d=>d.selectedSheetId)??(o==null?void 0:o[0].id),l=J(d=>d.isDashboardEditing),u=J(d=>d.isVisualEditing);C.useEffect(()=>{if(!l||u)return;async function d(m){const p=m.ctrlKey||m.metaKey;p&&m.key==="c"?(await f(),ze.success("Card copied to clipboard"),m.preventDefault()):p&&m.key==="v"&&(await h(),m.preventDefault())}async function f(){try{const m=n();m&&await navigator.clipboard.writeText(JSON.stringify(m))}catch(m){console.error("Failed to copy text:",m)}}async function h(){if(!a)return null;try{const m=await navigator.clipboard.readText();try{const p=JSON.parse(m);if(p!=null&&p.id){const g=NR(p),b=g.cards.findIndex(x=>x.id===g.activeCardId);b!==-1&&(g.cards[b].title=`${g.cards[b].title} (Copy)`),r(a,g),s(g.id),ze.success("Card pasted from clipboard")}}catch(p){console.error("Failed to parse clipboard contents: ",p)}return m}catch(m){return console.error("Failed to paste text:",m),null}}return t==null||t.addEventListener("keydown",d),()=>t==null?void 0:t.removeEventListener("keydown",d)},[r,n,s,a,l,u,t])}function NXe(e,t){switch(e.interactionMode){case"drillToDetail":kXe(e,t);break;case"drillThrough":EXe(e,t);break;case"drillToURL":_Xe(e);break;case"inlineDrill":console.warn("Inline drill execution not yet implemented");break;case"clickFilter":case"drillDown":case"dynamicDrill":break;default:console.warn("Unknown interaction mode:",e.interactionMode)}}function kXe(e,t){var l;const{targetInsightId:n,contextMode:r,displayMode:s,filterGroups:o}=e;if(!n){console.warn("drillToDetail event missing targetInsightId");return}const i=r||"full";let a=[];switch(i){case"interactionFilters":a=o.flatMap(u=>u.filters);break;case"full":{const u=((l=t.getCurrentFilters)==null?void 0:l.call(t))||[],d=o.flatMap(f=>f.filters);a=[...u,...d];break}case"none":default:a=[];break}s==="replace-card"?t.replaceCardContent({cardId:e.sourceCardId,insightId:n,filters:a,contextMode:r}):t.openInsightModal({insightId:n,filters:a,contextMode:r})}function EXe(e,t){var u,d;const{targetDashboardId:n,contextMode:r="interactionFilters",filterGroups:s,sourceCardId:o}=e;if(!n){console.warn("[DrillThrough] Event missing targetDashboardId. This interaction needs to be reconfigured with a target dashboard.",e);return}const i=s.flatMap(f=>f.filters),a=((u=t.getCurrentDashboardId)==null?void 0:u.call(t))||"",l=(d=t.getCurrentDashboardTitle)==null?void 0:d.call(t);t.setGlobalDrillContext&&t.setGlobalDrillContext({filters:i,contextMode:r,sourceDashboardId:a,sourceDashboardTitle:l,targetDashboardId:n}),t.setPendingDrillThrough&&t.setPendingDrillThrough({targetDashboardId:n,sourceDashboardId:a,sourceDashboardTitle:l,filters:i,contextMode:r})}function _Xe(e){const{url:t}=e;if(!t){console.warn("drillToURL event missing url");return}try{new URL(t)}catch(n){console.error("Invalid URL:",t,n);return}window.open(t,"_blank","noopener,noreferrer")}function TXe({open:e,onOpenChange:t,insightId:n,filters:r,filterDefinitions:s,contextMode:o,cardTitle:i,cardDescription:a}){return c.jsx(Gr,{open:e,onOpenChange:t,children:c.jsxs(zr,{className:"max-h-[90vh] max-w-[90vw] p-6",children:[c.jsxs(Br,{children:[c.jsx(Vr,{children:i||"Insight Detail"}),c.jsx(is,{children:a||"View detailed insight data with applied filters"})]}),c.jsx(YZ,{filters:r,filterDefinitions:s,contextMode:o}),c.jsx("div",{className:"h-[400px] flex-1 overflow-auto",children:n?c.jsx(XZ,{insightId:n,filters:r,contextMode:o}):c.jsx("div",{className:"flex items-center justify-center p-12 text-muted-foreground",children:"No insight selected"})})]})})}function MXe(){const e=Vt(w=>w.interactionStates),t=Vt(w=>w.setInteractionState),n=Vt(w=>w.clearLastInteractionEvent),r=Vt(w=>w.replaceCardWithInsight),s=Vt(w=>w.setPendingDrillThrough),o=Vt(w=>w.pendingDrillThrough),i=Vt(w=>w.clearPendingDrillThrough),{setSelectedSheetId:a,navigateWithDrill:l}=Wt(),{selectDashboard:u}=Cx(),d=J(w=>w.dashboard),f=J(w=>w.filterValues),{data:h,isLoading:m}=F7((o==null?void 0:o.targetDashboardId)||"",{enabled:!!(o!=null&&o.targetDashboardId)}),[p,g]=C.useState({open:!1,insightId:""}),b=QZ(p.insightId,{enabled:p.open&&!!p.insightId}),x=C.useRef(new Set),y=C.useMemo(()=>({setSelectedSheetId:a,openInsightModal:({insightId:w,filters:j,contextMode:S})=>{g({open:!0,insightId:w,filters:j,filterDefinitions:(d==null?void 0:d.filters)||[],contextMode:S})},replaceCardContent:({cardId:w,insightId:j,filters:S,contextMode:N})=>{r(w,j,S,N)},getCurrentFilters:()=>f||[],navigateWithDrill:l,getCurrentDashboardId:()=>(d==null?void 0:d.id)||"",getCurrentDashboardTitle:()=>d==null?void 0:d.title,setPendingDrillThrough:s,setGlobalDrillContext:({filters:w,contextMode:j,sourceDashboardId:S,sourceDashboardTitle:N,targetDashboardId:E})=>{const k={sourceCardId:Da,interactionMode:"clickFilter",filterGroups:[{filters:w}]},M={...ii(),appliedClickFilters:[k],contextMode:j,sourceDashboardId:S,sourceDashboardTitle:N,targetDashboardId:E};t(Da,M)}}),[a,r,f,l,d,s,t]);C.useEffect(()=>{Object.entries(e).forEach(([w,j])=>{if(j!=null&&j.lastInteractionEvent){const S=j.lastInteractionEvent,N=`${w}-${S.interactionMode}-${S.sourceCardId}-${Date.now()}`;if(x.current.has(N))return;x.current.add(N);try{NXe(S,y)}catch(E){console.error("Error executing interaction event:",E)}finally{n(w),setTimeout(()=>{x.current.delete(N)},5e3)}}})},[e,n,y]),C.useEffect(()=>{if(!(!o||!h||m))try{u(h),l(o.targetDashboardId,o.sourceDashboardId,o.sourceDashboardTitle,o.filters,o.contextMode),i()}catch(w){console.error("[DrillThrough] Error during automatic navigation:",w),i()}},[o,h,m,u,l,i]);const v=()=>{g({open:!1,insightId:""})};return c.jsxs(c.Fragment,{children:[c.jsx(TXe,{open:p.open,onOpenChange:v,insightId:p.insightId,filters:p.filters,filterDefinitions:p.filterDefinitions,contextMode:p.contextMode,cardTitle:b.title,cardDescription:b.description}),o&&m&&c.jsx("div",{className:"fixed inset-0 z-[51] flex items-center justify-center bg-background/80 backdrop-blur-sm",children:c.jsxs("div",{className:"flex flex-col items-center gap-3 rounded-lg border bg-background p-6 shadow-lg",children:[c.jsx(xn,{className:"h-8 w-8 animate-spin text-primary"}),c.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading dashboard..."})]})})]})}function DXe(e){return e.length===0?"":e.map(t=>{const n=t.field.label||t.field.name,r=t.operator,s=IXe(t.value);return r==="="?`${n} = ${s}`:`${n} ${r} ${s}`}).join(", ")}function IXe(e){return e==null?"null":Array.isArray(e)?e.join(", "):typeof e=="object"&&e.toString?e.toString():String(e)}function RXe(e){return e?`Back to ${e}`:"Back"}function AXe(){var x,y,v,w,j;const e=Vt(S=>S.interactionStates[Da]),t=J(S=>S.actions.goBackFromDrill),n=J(S=>S.actions.clearDrillContext),{selectDashboard:r}=Cx(),[s,o]=C.useState({x:16,y:16}),[i,a]=C.useState(!1),l=C.useRef({x:0,y:0});C.useEffect(()=>{if(!i)return;const S=E=>{o({x:E.clientX-l.current.x,y:E.clientY-l.current.y})},N=()=>{a(!1)};return document.addEventListener("mousemove",S),document.addEventListener("mouseup",N),()=>{document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",N)}},[i]);const u=e==null?void 0:e.sourceDashboardId,d=e==null?void 0:e.sourceDashboardTitle,f=((w=(v=(y=(x=e==null?void 0:e.appliedClickFilters)==null?void 0:x[0])==null?void 0:y.filterGroups)==null?void 0:v[0])==null?void 0:w.filters)||[],h=u?{id:u,title:d||"Previous Dashboard",description:"",isPrivate:!1,isPublic:!1,version:"",createdBy:null,createdByTenantUser:"",tenantId:"",projectId:"",createdAt:"",updatedAt:"",lastModified:"",lastModifiedBy:"",createdByUser:null,createdByTenantUserRel:{name:"",email:""},permissions:{canEdit:!0,canShare:!0,canDelete:!0},ownership:{status:"private",isOwner:!0,sharedCount:0,createdBy:{type:"user",userId:"",name:"",email:""}}}:null;if(!e||!((j=e.appliedClickFilters)!=null&&j.length))return null;const m=()=>{if(!h){console.warn("[DrillBack] No source dashboard in context");return}try{t(),r(h)}catch(S){console.error("[DrillBack] Error during back navigation:",S)}},p=()=>{n()},g=S=>{S.target.closest("button")||(a(!0),l.current={x:S.clientX-s.x,y:S.clientY-s.y})};DXe(f);const b=RXe(d);return c.jsx("div",{className:"fixed z-50 max-w-md",style:{left:0,top:0,transform:`translate(${s.x}px, ${s.y}px)`,transition:i?"none":void 0},children:c.jsxs("div",{className:"select-none rounded-lg border bg-background/95 p-3 shadow-lg backdrop-blur-sm",onMouseDown:g,style:{cursor:i?"grabbing":"grab"},children:[c.jsxs("div",{className:"mb-3 flex items-start justify-between gap-2",children:[c.jsxs("div",{className:"flex flex-col gap-2",children:[c.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Viewing:"}),c.jsx("div",{className:"flex flex-wrap gap-2",children:f.map((S,N)=>{const E=S.field.label||S.field.name,_=String(S.value);return c.jsxs(Ve,{variant:"secondary",className:"pointer-events-none text-xs",children:[E," = ",_]},N)})})]}),c.jsx(se,{variant:"ghost",size:"sm",onClick:p,className:"h-6 w-6 cursor-pointer p-0",title:"Clear drill context",children:c.jsx(St,{className:"h-3 w-3"})})]}),c.jsx("div",{className:"flex items-center gap-2 border-t pt-2",children:c.jsxs(se,{variant:"secondary",size:"sm",onClick:m,disabled:!h,className:"w-full cursor-pointer",children:[c.jsx(t8,{className:"mr-2 h-4 w-4"}),b]})})]})})}function Wee(){var ge;const{showAssistant:e,tokenProps:t}=Xe(),{preferences:n,isConsoleMode:r}=Hm(),s=((ge=n==null?void 0:n.cardDisplay)==null?void 0:ge.mode)==="print",o=C.useRef(null),i=C.useRef(null),[a,l]=C.useState(!1),{handleDragStart:u,isDraggingRef:d,getStyle:f,getPositionClasses:h}=L6e({initialPosition:"bottom-right"}),m=Od(he=>he.setFullscreen),p=Od(he=>he.setPanelOpen),g=Od(he=>he.setContainer),b=_q("dashboard"),x=Tq(),y=Mq("dashboard"),v=b.isOpen,w=x==="dashboard",j=J(he=>he.isVisualEditing),S=J(he=>he.themeStyle),N=J(he=>{var me;return(me=he.dashboard)==null?void 0:me.sheets}),E=J(he=>he.showFilters),_=J(he=>he.isDashboardEditing),k=J(he=>he.selectedSheetId),M=J(he=>{var me;return(me=he.dashboard)==null?void 0:me.id}),T=J(he=>he.isDashboardPanelOpen),P=J(he=>he.actions.setIsDashboardPanelOpen),{getDefaultSheetId:O,setDefaultSheetId:I,clearDefaultSheetId:$}=Zz(M),[V,W]=C.useState(null);iC(Ut.DASHBOARD);const{setSelectedSheetId:L,setSheetTitle:R,addSheet:z,setSheets:F}=Wt();jXe(i);const{setActiveAssistantType:A}=WC();C.useEffect(()=>{if(M){const he=O();W(he)}},[M,O]),C.useEffect(()=>{v?A("dashboard"):x==="dashboard"&&m(null)},[v,A,x,m]),C.useEffect(()=>{var he;v||(he=o.current)==null||he.resize(0)},[v]);function H(he){var me,oe;he?((me=o.current)==null||me.resize(40),p("dashboard",!0),A("dashboard")):(p("dashboard",!1),m(null),(oe=o.current)==null||oe.resize(0),A(null))}function B(){const he={id:Rr(),title:"New Sheet"};z(he),L(he.id)}function Y(he,me){if(!M)return;V===he?($(),W(null),ze.success("Default sheet cleared")):(I(he),W(he),ze.success(`"${me}" set as default sheet`))}function q(he){var me;he<1?(p("dashboard",!1),m(null),A(null),(me=o.current)==null||me.resize(0)):(v||p("dashboard",!0),A("dashboard"))}function U(){return(S==null?void 0:S.canvasTheme)==="muted"||!(S!=null&&S.canvasTheme)?"hsl(var(--semaphor-muted))":(S==null?void 0:S.canvasTheme)==="clear"?"":S==null?void 0:S.canvasTheme}const G=(he,me)=>{he.dataTransfer.setData("tabIndex",me.toString())},Z=he=>{he.preventDefault()},Q=(he,me)=>{const oe=he.dataTransfer.getData("tabIndex");if(oe===me.toString())return;const Ne=Array.from(N||[]),[fe]=Ne.splice(parseInt(oe),1);Ne.splice(me,0,fe),F(Ne)},K=t.orgUserId||t.tenantId&&t.endUserId&&t.endUserEmail,te=e===!0&&!s&&!v&&!j&&!E;function le(){var he,me;if(N&&N.length>1||_)return c.jsxs(ys,{role:"tab-list",className:"flex h-12 w-0 min-w-full items-center justify-start gap-2 overflow-x-auto rounded-none border-b border-b-muted bg-transparent px-3",children:[r&&K&&c.jsx(se,{style:{borderRadius:S==null?void 0:S.controlInputRadius},variant:"outline","aria-label":"Manage Dashboards and Visuals",onClick:()=>{P(!T)},className:"h-8 shrink-0 p-2",children:T?c.jsx(i8,{className:"h-4 w-4"}):c.jsx(a8,{className:"h-4 w-4"})}),N==null?void 0:N.map((oe,Ne)=>{const fe=k===oe.id,Me=V===oe.id;return c.jsxs(nn,{draggable:!0,onDragStart:ke=>G(ke,Ne),onDragOver:Z,onDrop:ke=>Q(ke,Ne),style:{borderRadius:S==null?void 0:S.controlInputRadius},onClick:()=>L(oe.id),className:"flex shrink-0 items-center gap-1 border px-2 py-1",value:oe.id,children:[c.jsx(Vb,{enabled:_&&fe,text:oe.title,onSave:ke=>R(oe.id,ke),children:oe.title},oe.id),!_&&fe&&c.jsx("div",{title:Me?"Clear default sheet":"Set as default sheet",children:c.jsx(JT,{className:X("ml-1 size-3 cursor-pointer transition-all",Me?"fill-yellow-500 text-yellow-500":"text-muted-foreground hover:text-foreground"),onClick:ke=>{ke.stopPropagation(),Y(oe.id,oe.title||"Sheet")}})}),_&&fe&&N.length>1&&c.jsx(St,{className:"ml-1 size-3",onClick:()=>l(!0)})]},oe.id)}),_&&c.jsx("div",{style:{borderRadius:(me=(he=S==null?void 0:S.chart)==null?void 0:he.options)==null?void 0:me.borderRadius},className:"flex h-7 shrink-0 items-center justify-center border-none bg-muted p-2 hover:cursor-pointer dark:border-l-background",onClick:B,children:c.jsx(Tr,{className:"size-3"})})]})}function de(){return c.jsx("div",{ref:i,style:{},className:"grow",children:N==null?void 0:N.map(he=>c.jsx(pr,{style:{backgroundColor:U()},className:X("mt-0",{}),value:he.id,children:c.jsx(c6e,{sheet:he})},he.id))})}function ce(){var he;return c.jsxs(Os,{"data-role":"dashboard-tabs-container",className:X("relative flex h-full flex-col",S==null?void 0:S.dashboardTabsContainer),onValueChange:me=>{L(me)},value:k||((he=N==null?void 0:N[0])==null?void 0:he.id),children:[le(),c.jsx(tl,{"data-role":"dashboard-tabs-content",className:"flex-1 grow basis-0 overflow-y-auto",children:de()}),c.jsx(z6e,{open:a,setOpen:l})]})}const Ce=C.useCallback(he=>{g("dashboard",he)},[g]);return N?c.jsxs(c.Fragment,{children:[c.jsx(MXe,{}),c.jsx(AXe,{}),c.jsxs("div",{className:"relative flex-1 basis-0 overflow-hidden",children:[c.jsxs(aQ,{className:X("flex-1 basis-0 overflow-y-auto transition-opacity",w&&"pointer-events-none opacity-0"),direction:"horizontal",children:[c.jsx(I_,{children:ce()}),e===!0&&c.jsxs(c.Fragment,{children:[c.jsx($6e,{open:v,onTabClick:H,withHandle:!0,disabled:!v}),c.jsx(I_,{className:"flex grow","data-role":"dashboard-assistant-panel",onResize:q,defaultSize:v?40:0,ref:o,children:c.jsx("div",{className:"grow overflow-y-auto",children:c.jsx(SXe,{open:v,setOpen:H,isFullscreen:w,onFullscreenChange:he=>m(he?"dashboard":null),fullscreenContainer:y})})})]})]}),c.jsx("div",{ref:Ce,className:X("absolute inset-0",!w&&"pointer-events-none")}),te&&c.jsx("div",{className:X("absolute z-50 transition-all duration-300 ease-in-out",h().horizontal,h().vertical),style:f(),children:c.jsx(se,{size:"sm",variant:"outline",className:"h-12 w-12 cursor-grab rounded-full border-border bg-background p-0 shadow-lg hover:bg-muted active:cursor-grabbing",onClick:()=>{d.current||H(!0)},onMouseDown:u,onTouchStart:u,title:"Open Assistant (drag to move)",children:c.jsx(q1,{className:"h-5 w-5"})})})]})]}):null}function RA({children:e}){return c.jsx(Za,{style:{height:"100%",width:"100%"},children:c.jsx(eoe,{defaultTheme:"system",storageKey:"vite-ui-theme",children:c.jsx(Ln,{delayDuration:0,children:e})})})}function qee({children:e,preferences:t}){const{currentUser:n}=Ps(),r=C.useMemo(()=>{var s,o;return{preferences:t||{},isLocalDev:((s=t==null?void 0:t.uiMode)==null?void 0:s.developer)||!1,isConsoleMode:((o=t==null?void 0:t.uiMode)==null?void 0:o.console)||!1}},[t]);return c.jsx(m7.Provider,{value:r,children:c.jsx(AR,{displayPreferences:t==null?void 0:t.cardDisplay,currentUser:n,children:e})})}function PXe(e=2e3,t=500){const n=Toe(),[r,s]=C.useState(!1),[o,i]=C.useState(!1),a=C.useRef(null);return C.useEffect(()=>{const l=setTimeout(()=>s(!0),e);return()=>clearTimeout(l)},[e]),C.useEffect(()=>{if(r){if(n>0){i(!1),a.current&&(clearTimeout(a.current),a.current=null);return}return a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{i(!0)},t),()=>{a.current&&clearTimeout(a.current)}}},[r,n,t]),o}function AA({delayMs:e=2e3,quietMs:t=500,componentType:n,componentId:r}){const s=PXe(e,t);return C.useEffect(()=>(s&&(window.__SEMAPHOR_READY__={ready:!0,type:n,componentId:r||null,timestamp:Date.now()}),()=>{window.__SEMAPHOR_READY__={ready:!1,type:n,componentId:r||null,timestamp:Date.now()}}),[s,n,r]),c.jsx("div",{id:"idle-check","aria-hidden":"true",style:{position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0},children:s?"ready":""})}function Yee(e){if(typeof window>"u")return null;const{preferences:t}=e;return c.jsx(rl,{FallbackComponent:gS,children:c.jsxs(PT,{dashboardProps:e,children:[c.jsx(AA,{componentType:"dashboard",componentId:e.id}),c.jsx(RA,{children:c.jsx(qee,{preferences:t,children:c.jsx("main",{className:"flex h-full flex-col",children:c.jsx(JD,{...e,type:"dashboard",children:c.jsx(Wee,{})})})})})]})})}function g6(e,t){return e.map(n=>({...n,fieldScope:t}))}function OXe(e){const t=new Map;return e.forEach(n=>{const r=`${n.name}-${n.role||"unknown"}`;t.has(r)||t.set(r,n)}),Array.from(t.values())}function b6(e){if(sc(e)||Ux(e))return e.expression}function PA(){const{columns:e,columnGroups:t,isLoading:n,hasError:r,error:s,refetch:o}=kD(),i=Ae(g=>g.frame.calculatedFields),a=Ae(g=>g.card.config),l=C.useMemo(()=>e.filter(g=>g.fieldScope==="domain"),[e]),u=C.useMemo(()=>e.filter(g=>g.fieldScope!=="domain"),[e]),d=C.useMemo(()=>i!=null&&i.length?g6(i,"dashboard"):[],[i]),f=C.useMemo(()=>{const g=new Map;return d.forEach(b=>{const x=`${b.name}-${b.role||"unknown"}`;g.set(x,b)}),g},[d]),h=C.useMemo(()=>{const g=((a==null?void 0:a.metricColumns)||[]).filter(sc),b=((a==null?void 0:a.groupByColumns)||[]).filter(Ux),y=OXe([...g,...b]).filter(v=>{const w=`${v.name}-${v.role||"unknown"}`,j=f.get(w);if(!j)return!0;const S=b6(v),N=b6(j);return S&&N?S!==N:!0});return g6(y,"card").map(v=>({...v,id:`card-source-${v.id}`}))},[a==null?void 0:a.groupByColumns,a==null?void 0:a.metricColumns,f]),m=C.useMemo(()=>[...l,...d,...h,...u],[h,u,d,l]),p=C.useMemo(()=>t.filter(g=>g.entityId!==pz),[t]);return{columns:e,columnGroups:p,rawColumnGroups:t,columnFields:u,domainCalculatedFields:l,dashboardCalculatedFields:d,cardCalculatedFields:h,scopedFields:m,isLoading:n,hasError:r,error:s,refetch:o}}function OA(e){const{tokenProps:t,authToken:n}=Xe(),r=t==null?void 0:t.apiServiceUrl;return En({queryKey:["joinability-map",e],queryFn:async()=>{if(!e||!(n!=null&&n.accessToken))return null;const s=`${r}/v1/domains/${e}/joinability`;return rr(s,n.accessToken)},enabled:!!e&&!!(n!=null&&n.accessToken)&&!!r,staleTime:5*60*1e3,gcTime:10*60*1e3,retry:2,retryDelay:s=>Math.min(1e3*2**s,3e4)})}function Gee(e,t,n){if(t==="source")return{isValid:!0};const r=yr(e.dataType);if(n==="detailTable"&&t!=="detailColumns"&&t!=="sortBy")return{isValid:!1,reason:"Detail tables only accept columns"};if(n==="kpi"){if(t==="groupBy"&&r!=="date")return{isValid:!1,reason:"KPI Trend By only accepts date fields"};if(t==="metrics"&&r==="date")return{isValid:!1,reason:"KPI metrics cannot be date fields"}}return{isValid:!0}}function Kee(e,t,n,r,s){if(e!=="kpi"||s.length<3)return;const o=(t==null?void 0:t.groupByColumns)&&t.groupByColumns.length>0,i=(t==null?void 0:t.comparisonType)==="none";!o&&i||n(r,{groupByColumns:[],comparisonType:"none"})}function FXe(e,t){return(e||[]).map(n=>({...n,id:t(n),label:n.label!==void 0?n.label:n.name}))}const Zee=e=>{var O;const t=(O=e==null?void 0:e.dataSource)==null?void 0:O.semanticDomainId,{data:n}=OA(t),{updateCardConfig:r,updateGroupByColumn:s,updateMetricColumn:o,updatePivotByColumn:i,updateSortByColumn:a,removeGroupByColumn:l,removeMetricColumn:u,removePivotByColumn:d,removeSortByColumn:f}=cr(),h=Ae(I=>I.card.type),m=e==null?void 0:e.id,p=(I,$)=>{if(I.id)return I.id;const V=I.qualifiedEntityName||I.entityName||$;return`${$}-${V}-${I.name}`},g=C.useCallback(I=>{if(!(e!=null&&e.config))return[];switch(I){case"groupBy":return(e.config.groupByColumns||[]).map($=>({...$,id:p($,"groupBy"),label:$.label!==void 0?$.label:$.name}));case"metrics":return(e.config.metricColumns||[]).map($=>({...$,id:p($,"metrics"),label:$.label!==void 0?$.label:$.name}));case"pivotBy":return(e.config.pivotByColumns||[]).map($=>({id:p($,"pivotBy"),name:$.name,dataType:$.dataType,label:$.label!==void 0?$.label:$.name,qualifiedEntityName:$.qualifiedEntityName,entityId:$.entityId,entityName:$.entityName,entityType:$.entityType}));case"sortBy":return(e.config.sortByColumns||[]).map($=>({id:p($,"sortBy"),name:$.name,dataType:$.dataType,label:$.label!==void 0?$.label:$.name,qualifiedEntityName:$.qualifiedEntityName,entityId:$.entityId,entityName:$.entityName,entityType:$.entityType,direction:$.direction}));case"detailColumns":return FXe(e.config.detailColumns,$=>p($,"detailColumns"));case"source":return[];default:return[]}},[e]),b=C.useCallback((I,$)=>{if(m)switch(I){case"groupBy":{r(m,{groupByColumns:$});break}case"metrics":{r(m,{metricColumns:$});break}case"pivotBy":{r(m,{pivotByColumns:$});break}case"sortBy":{r(m,{sortByColumns:$});break}case"detailColumns":{r(m,{detailColumns:$});break}}},[m,r]),x=C.useCallback((I,$,V)=>{if(!m)return;const W=g(I),L=W[$];if(L)switch(I){case"groupBy":s(m,L.id,{label:V});break;case"metrics":o(m,L.id,{label:V});break;case"pivotBy":i(m,L.id,{label:V});break;case"sortBy":a(m,L.id,{label:V});break;case"detailColumns":{const R=W.map((z,F)=>F===$?{...z,label:V}:z);r(m,{detailColumns:R});break}}},[m,g,s,o,i,a,r]),y=C.useCallback((I,$)=>{if(!m)return;const W=g("metrics")[I];W&&o(m,W.id,{aggregate:$,label:IU(W.name,$)})},[m,g,o]),v=C.useCallback((I,$,V,W="groupBy")=>{if(!m)return;const L=g(W),R=L[I];if(!R)return;const z={dateFormat:$,customFormat:$==="custom"&&V?V:void 0};if(W==="detailColumns"){const F=L.map((A,H)=>H===I?{...A,...z}:A);r(m,{detailColumns:F});return}s(m,R.id,z)},[m,g,r,s]),w=C.useCallback((I,$)=>{if(!m)return;const W=g("groupBy")[I];W&&s(m,W.id,{granularity:$})},[m,g,s]),j=C.useCallback((I,$)=>{if(!m)return;const W=g("metrics")[I];W&&o(m,W.id,{aliasTemplate:$})},[m,g,o]),S=C.useCallback((I,$)=>{if(console.log("handleValueAliasesChange",I,$),!m)return;console.log("handleValueAliasesChange",I,$);const W=g("metrics")[I];W&&(console.log("handleValueAliasesChange",$),o(m,W.id,{valueAliases:$}))},[m,g,o]),N=C.useCallback(I=>{if(!m)return;if(g("metrics").length===0){ze.error("Add Metric First",{description:"Please add a metric field before selecting a comparison type",position:"top-center",duration:3e3});return}r(m,{comparisonType:I})},[m,r,g]),E=C.useCallback(I=>{m&&r(m,{showTrendline:I})},[m,r]),_=C.useCallback(I=>{m&&r(m,{trendlineWindow:I})},[m,r]),k=C.useCallback(I=>{m&&r(m,{trendlineGranularity:I})},[m,r]),M=C.useCallback(I=>{m&&r(m,{targetValue:I})},[m,r]),T=C.useCallback(async I=>{var A;if(!m)return;const $=[...g("groupBy"),...g("pivotBy"),...g("metrics"),...g("sortBy"),...g("detailColumns")],V=I,W=G1e(V,$,{joinPlan:(A=e==null?void 0:e.config)==null?void 0:A.joinPlan,joinabilityMap:n==null?void 0:n.joinabilityMap,semanticDomainId:t});if(!W.isValid){W.showError&&TU();return}const L=X1e(V,$,h);if(!L){ze.error("Invalid Field",{description:"This field cannot be added to any container",position:"top-center",duration:3e3});return}const R=Gee(V,L,h);if(!R.isValid){ze.error("Invalid Field Type",{description:R.reason,position:"top-center",duration:3e3});return}const z=g(L);if(MU(V,z))return;const F=RU(V,L,z);if(F){const H=[...z,F];b(L,H),L==="metrics"&&Kee(h,e==null?void 0:e.config,r,m,H)}},[m,e==null?void 0:e.config,g,b,t,n,h,r]),P=C.useCallback((I,$)=>{if(!m)return;const W=g(I)[$];if(W){if(I!=="sortBy"){const L=g("sortBy"),R=L.filter(z=>!(z.name===W.name&&z.qualifiedEntityName===W.qualifiedEntityName));R.length!==L.length&&r(m,{sortByColumns:R})}switch(I){case"groupBy":l(m,W.id);break;case"metrics":u(m,W.id);break;case"pivotBy":d(m,W.id);break;case"sortBy":f(m,W.id);break;case"detailColumns":{r(m,{detailColumns:(g("detailColumns")||[]).filter((L,R)=>R!==$)});break}}}},[m,g,l,u,d,f,r]);return{getFieldsForContainer:g,setFieldsForContainer:b,updateLabel:x,handleAggregationChange:y,handleDateFormatChange:v,handleGranularityChange:w,handleAliasTemplateChange:j,handleValueAliasesChange:S,removeField:P,handleFieldClick:T,handleKpiComparisonTypeChange:N,handleKpiShowTrendlineChange:E,handleKpiTrendlineWindowChange:_,handleKpiTrendlineGranularityChange:k,handleKpiTargetValueChange:M,cardType:h}};function YS(e,t){var De,qe,He,Fe,yt;const{tokenProps:n}=Xe(),r=so(),s=Xe().authToken||e,o=Ae(je=>je.selectedConnectionId),i=Ae(je=>je.card),{queryKey:a}=phe(i),l=Ae(je=>je.selectedDatamodelId),u=Ae(je=>je.isDevMode),d=Ae(je=>je.selectedDatabaseName),f=Ae(je=>je.selectedSchemaName),h=Ae(je=>je.selectedTableName),m=Ae(je=>je.actions.setSelectedConnectionId),p=Ae(je=>je.actions.setSelectedDatamodelId),g=Ae(je=>je.actions.setSelectedDatabaseName),b=Ae(je=>je.actions.setSelectedSchemaName),x=Ae(je=>je.actions.setSelectedTableName);Ae(je=>je.actions.setCardSql);const{setQueryConfig:y}=cr();function v(je){var Ct;return o&&je==="API"?!1:o&&je==="S3"?!0:!(!o||!d||d==="NA"||((Ct=_==null?void 0:_.capabilities)==null?void 0:Ct.path.includes("schema"))&&!f)}function w(je){return o&&je?!(je==="API"||je==="S3"):!1}const{refetchConnections:j,connectionsData:S,isConnectionsLoading:N,isConnectionsError:E,selectedConnection:_}=Ci(e),{refetch:k,data:M,isLoading:T,isError:P}=En({queryKey:["models",o],queryFn:()=>rr(`${n.apiServiceUrl}/v1/datamodels`,(s==null?void 0:s.accessToken)||"",{connection_id:o}),enabled:!!(s!=null&&s.accessToken)&&!!o}),O=_==null?void 0:_.type,I=(_==null?void 0:_.type)==="API"||(_==null?void 0:_.type)==="S3",{data:$,isLoading:V,isFetching:W,isError:L,refetch:R}=En({queryKey:["databases",o],queryFn:()=>rr(`${n.apiServiceUrl}/v1/databases`,(s==null?void 0:s.accessToken)||"",{connection_id:o}),enabled:w(O)}),{data:z,isLoading:F,isFetching:A,isError:H,refetch:B}=En({queryKey:["schemas",o,d],queryFn:()=>rr(`${n.apiServiceUrl}/v1/schemas`,(s==null?void 0:s.accessToken)||"",{connection_id:o,database_name:d}),enabled:!!o&&!!d&&!I&&d!=="NA"}),{data:Y,isLoading:q,isFetching:U,isError:G,refetch:Z}=En({queryKey:["tables",o,d,f],queryFn:()=>rr(`${n.apiServiceUrl}/v1/tables`,(s==null?void 0:s.accessToken)||"",{connection_id:o,database_name:d,schema_name:f}),enabled:v(O)}),{columns:Q,isColumnsLoading:K,isColumnsFetching:te,isColumnsError:le,refetchColumns:de}=AU(e);C.useEffect(()=>{(O==="S3"||O==="API")&&(g(""),b(""),p(""),O==="API"&&x("api"))},[O,x,g,b,p]);const ce=(_==null?void 0:_.type)==="API"?(De=_==null?void 0:_.type)==null?void 0:De.toLowerCase():h||"",Ce=I?"":f||"";function ge(je){x(je),y(void 0),u||(r.setQueryData(a,null),r.removeQueries({queryKey:a,exact:!0}))}function he(je){b(je),x("")}function me(je){g(je==="none"?"":je),b(""),x(""),je!=="none"&&je!==""&&p("")}function oe(je){m(je)}function Ne(je){p(je==="none"?"":je),je!=="none"&&je!==""&&g("")}$&&((qe=$==null?void 0:$.databases)==null?void 0:qe.length)>0,z&&((He=z==null?void 0:z.schemas)==null?void 0:He.length)>0;const fe=S==null?void 0:S.connections.map(je=>({id:je.id,name:je.name,type:je.type})),Me=(Fe=M==null?void 0:M.datamodels)==null?void 0:Fe.map(je=>({id:je.id,name:je.name})),ke=$==null?void 0:$.databases.map(je=>({id:je.database_name,name:je.database_name})),ie=z==null?void 0:z.schemas.map(je=>({id:je.schema_name,name:je.schema_name})),xe=Y==null?void 0:Y.tables.map(je=>({id:je.table_name,name:je.table_name})),Oe=(yt=M==null?void 0:M.datamodels.find(je=>je.id===l))==null?void 0:yt.name,be=_!=null&&_.capabilities?qv({schemaName:Ce,tableName:ce,modelName:Oe,databaseName:d||"",capabilities:_.capabilities}):ce;return{connectionItems:fe,selectedConnectionId:o,selectedConnection:_,isConnectionsLoading:N,isConnectionsError:E,modelItems:Me,selectedDatamodelId:l,selectedDatamodelName:Oe,isModelsLoading:T,isModelsError:P,selectedDatabaseName:d,databaseItems:ke,isDatabasesLoadingOrFetching:V||W,isDatabaseError:L,schemaItems:ie,selectedSchemaName:f,isSchemaLoadingOrFetching:F||A,isSchemaError:H,tableItems:xe,selectedTableName:h,isTableLoadingOrFetching:q||U,isTableError:G,columns:Q,isColumnsLoadingOrFetching:K||te,isColumnsError:le,isNonDbConnection:I,connectionType:O,tableName:ce,formattedTableName:be,schemaName:Ce,refetchConnections:j,refetchModels:k,refetchDatabases:R,refetchSchemas:B,refetchTables:Z,refetchColumns:de,handleConnectionChange:oe,handleDatamodelChange:Ne,handleDatabaseChange:me,handleSchemaChange:he,handleTableChange:ge}}function dv(e){return`${e}-${Rr()}`}function x6(e,t){const n=pi(e.replace(/_/g," "));switch(t){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 $Xe(e,t){const n=pi(e.replace(/_/g," "));switch(t){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 FA(e){if(!e||!e.selectedEntities||e.selectedEntities.length===0)return{tableName:void 0,schemaName:void 0,databaseName:void 0,connectionId:e==null?void 0:e.connectionId,connectionType:e==null?void 0:e.connectionType};const t=e.selectedEntities[0];return{tableName:t==null?void 0:t.name,schemaName:t==null?void 0:t.schema,databaseName:t==null?void 0:t.database,connectionId:e.connectionId,connectionType:e.connectionType}}function Xee(e){if(!e||!e.selectedEntities||e.selectedEntities.length===0)return!1;const t=e.selectedEntities[0];return!!(t!=null&&t.name)}function Qee(){const e=Ae(N=>N.sqlGen),t=Ae(N=>N.isDevMode),n=Ae(N=>N.card.dataSource),r=Ae(N=>{var E,_;return(_=(E=N.card)==null?void 0:E.queryConfig)==null?void 0:_.metricColumns}),{tableName:s,schemaName:o,databaseName:i}=FA(n),a=Xee(n),l=Ae(N=>N.selectedDatamodelId),{addColumnToMetricColumns:u,addColumnToGroupBy:d,setCardSql:f,setRunSql:h,setSqlGen:m,setIsShowingVisual:p}=cr(),{modelItems:g,selectedDatamodelName:b}=YS(),{selectedConnection:x}=Ci(),y=x==null?void 0:x.capabilities,v=N=>({column_name:N.name,data_type:N.dataType,label:N.label,description:N.description});return{handleDevModeFieldClick:N=>{var _;if(!t)return;const E=v(N);if(t&&a&&s&&y){const k=CT(E,e);m(k);const M=(_=g==null?void 0:g.find(P=>P.id===l))==null?void 0:_.name,T=wT(k,o||"",s,M||"",i||"",y,N.qualifiedEntityName);T&&(f(T),h(!0))}else if(!t){if(yx(E.data_type))if(r&&r.length>0){const k={...E,role:"groupby",id:dv(E.column_name),name:E.column_name,type:E.data_type};d(k)}else{const k={...E,role:"metric",id:dv(E.column_name),name:E.column_name,label:x6(E.column_name,"COUNT"),type:E.data_type,aggregate:"COUNT"};u(k)}if(Ki(E.data_type)){const k={...E,role:"groupby",id:dv(E.column_name),name:E.column_name,type:E.data_type,label:$Xe(E.column_name,"month"),granularity:"month"};d(k)}if(Gi(E.data_type)){const k={...E,role:"metric",id:dv(E.column_name),name:E.column_name,label:x6(E.column_name,"SUM"),type:E.data_type,aggregate:"SUM"};u(k)}}},handleShowSample:()=>{if(!a||!s||!y){console.warn("Cannot generate SQL: missing table metadata or capabilities");return}const N=qv({schemaName:o||"",tableName:s,modelName:b,databaseName:i||"",capabilities:y});p(!1);const _=(x==null?void 0:x.type)==="MSSQL"?`SELECT top 10 * FROM ${N}`:`SELECT * FROM ${N} LIMIT 10`;f(_),h(!0)},handleShowCount:()=>{if(!a||!s||!y){console.warn("Cannot generate SQL: missing table metadata or capabilities");return}const N=qv({schemaName:o||"",tableName:s,modelName:b,databaseName:i||"",capabilities:y});f(`SELECT COUNT(*) as count FROM ${N}`),h(!0)},isNumberField:N=>Gi(N.dataType)}}function LXe(e){const t=e.qualifiedFieldName,r=(e.qualifiedEntityName||e.qualifiedFieldName.split(".").slice(0,-1).join(".")).split(".").map(o=>ab(o)).join("."),s=ab(e.name);return{qualifiedColumnName:t,qualifiedTableName:r,formattedColumnName:s}}function Jee(){const e=J(a=>a.dashboard.filters)||[],t=J(a=>a.selectedSheetId),n=J(a=>a.actions.addFilter),r=J(a=>a.actions.removeFilter),{removeFilterValues:s}=Wt(),{selectedConnection:o}=Ci();function i(a,l="sheet"){const{qualifiedColumnName:u,qualifiedTableName:d,formattedColumnName:f}=LXe(a);let h;if(l==="sheet"&&t?h=oke(e,u,d,t):h=e==null?void 0:e.find(m=>wm(m.column)===wm(u)),h)s(h.id),r(h.id);else{const m=Rr(),p=l==="sheet"&&t?[t]:void 0;return n({id:m,location:l,column:u,title:a.label||a.name,dataType:a.dataType,qualifiedTableName:d,connectionId:(o==null?void 0:o.id)||"",operation:"in",applyToSheetIds:p,sql:wK(a.dataType,d,f)}),m}}return{assignFilter:i}}function zXe({column:e}){const[t,n]=C.useState(!1),r=Ae(y=>y.card.dataSource),{tableName:s,schemaName:o,databaseName:i}=FA(r),a=Ae(y=>y.selectedDatamodelId),l=Ae(y=>y.sqlGen),{modelItems:u,selectedConnection:d}=YS(),f=d==null?void 0:d.capabilities,h=Ae(y=>y.actions.setSqlGen),m=Ae(y=>y.actions.setCardSql),p=Ae(y=>y.actions.setRunSql),g=Xee(r);function b(y,v){var E,_;if(!g||!s){console.warn("Cannot generate SQL: missing table metadata");return}const w=CT(y,l,v),j=(E=u==null?void 0:u.find(k=>k.id===a))==null?void 0:E.name;if(h(w),!f){console.warn("Cannot generate SQL: missing connection capabilities");return}const S=(_=y.qualifiedFieldName)==null?void 0:_.split(".").slice(0,-1).join("."),N=wT(w,o||"",s,j||"",i||"",f,S);N&&(m(N),p(!0)),n(!1)}function x(){return c.jsxs("ul",{className:"text-xs",children:[c.jsx("li",{onClick:()=>b(e,"COUNT"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Count"}),c.jsx("li",{onClick:()=>b(e,"AVG"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Avg"}),c.jsx("li",{onClick:()=>b(e,"SUM"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Sum"}),c.jsx("li",{onClick:()=>b(e,"MAX"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Max"}),c.jsx("li",{onClick:()=>b(e,"MIN"),className:"cursor-pointer p-1 px-3 transition-colors hover:bg-muted",children:"Min"})]})}return g?c.jsxs(Wm,{openDelay:0,open:t,onOpenChange:n,children:[c.jsx(qm,{asChild:!0,children:c.jsx(Pm,{className:"invisible size-3.5 cursor-pointer text-foreground/40 group-hover/container:visible"})}),c.jsx(Mf,{align:"center",className:"w-20 rounded-md p-0 shadow-none",children:x()})]}):null}function BXe({field:e,fieldState:t}){return c.jsxs("div",{className:"w-64 bg-background p-0",children:[c.jsxs("div",{className:"mb-2 flex items-start justify-between gap-2",children:[c.jsx("h3",{className:"text-sm font-medium text-foreground",children:e.label||e.name}),c.jsx("span",{className:"rounded bg-muted px-2 py-0.5 font-mono text-xs text-muted-foreground",children:e.dataType})]}),e.description&&c.jsx("p",{className:"mb-3 text-xs text-muted-foreground",children:e.description}),t&&t.tooltip&&c.jsx("div",{className:"mb-2 rounded bg-muted/50 p-2",children:c.jsx("p",{className:"text-xs text-muted-foreground",children:t.tooltip})}),c.jsx("div",{className:"overflow-x-auto border-t border-border pb-2 pt-2",children:c.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:e.name})})]})}function y6({field:e,context:t="editor",fieldState:n,onFieldSelect:r,inlineFilters:s,actions:o}){const i=Ae(K=>K.isDevMode),a=t==="filter"||t==="inline-filter",l=i||a||(n==null?void 0:n.state)==="unreachable"&&!a,u=J(K=>K.dashboard.filters),d=J(K=>K.selectedSheetId),f=J(K=>K.actions.removeFilter),{removeFilterValues:h}=Wt(),{assignFilter:m}=Jee(),p=t==="filter"?oc(u,d):u,g=t==="filter"?p==null?void 0:p.find(K=>{if(K.title===e.name)return!0;const te=wm(K.column||""),le=wm(e.name);return te.endsWith(`.${le}`)||te===le}):void 0,b=!!g,x=t==="inline-filter"&&(s==null?void 0:s.some(K=>K.column===e.qualifiedFieldName||K.column===e.name)),y=b||x,v=g&&a?u==null?void 0:u.find(K=>K.id===g.id):void 0,w=v&&(v.applyToSheetIds&&v.applyToSheetIds.length>1||v.excludeSheetIds&&v.excludeSheetIds.length>0||!v.applyToSheetIds&&!v.excludeSheetIds&&!v.sheetId);a&&y&&console.log("[SourceField Debug]",{fieldName:e.name,hasActiveFilter:y,activeFilterOnSheet:g?{id:g.id,title:g.title,column:g.column,applyToSheetIds:g.applyToSheetIds,excludeSheetIds:g.excludeSheetIds}:null,activeFilterForField:v?{id:v.id,title:v.title,column:v.column,applyToSheetIds:v.applyToSheetIds,excludeSheetIds:v.excludeSheetIds}:null,isMultiSheetFilter:w,selectedSheetId:d});const[j,S]=C.useState(!1),[N,E]=C.useState(null),{attributes:_,listeners:k,setNodeRef:M,transform:T,transition:P,isDragging:O}=Ey({id:e.id,disabled:l}),[I,$]=C.useState(!1),V=Ae(K=>K.card),{handleFieldClick:W}=Zee(V),{handleDevModeFieldClick:L,isNumberField:R}=Qee(),z=()=>{v&&(console.log("[SourceField] Removing multi-sheet filter:",v.id),h(v.id),f(v.id)),E(null),S(!1)},F=()=>{if(t==="inline-filter"&&r){r(e);return}t==="filter"?y&&w?(E(e),S(!0)):m(e,"sheet"):i?L(e):W(e)},A={column_name:e.name,data_type:e.dataType,label:e.label,description:e.description},H={transform:yi.Transform.toString(T),transition:P},B=()=>{if(!n||a)return{};const te={base:{hoverBorderColor:"hover:border-blue-500/40",hoverBgColor:"hover:bg-blue-50/50 dark:hover:bg-blue-950/20"},draggable:{hoverBorderColor:"hover:border-green-500/40",hoverBgColor:"hover:bg-green-50/30 dark:hover:bg-green-950/20"},indirect:{hoverBorderColor:"hover:border-yellow-500/40",hoverBgColor:"hover:bg-yellow-50/30 dark:hover:bg-yellow-950/20"},unreachable:{borderColor:"border-gray-300/40 dark:border-gray-700/40",bgColor:"bg-gray-50/30 dark:bg-gray-900/20",hoverBgColor:"hover:bg-gray-100/30 dark:hover:bg-gray-800/20",opacity:"opacity-50",cursor:"cursor-not-allowed"}}[n.state]||{};return n.isSelected&&{base:{borderColor:"border-blue-300/30 dark:border-blue-700/30",bgColor:"bg-blue-50/20 dark:bg-blue-950/10",...te},draggable:{borderColor:"border-green-300/30 dark:border-green-700/30",bgColor:"bg-green-50/20 dark:bg-green-950/10",...te},indirect:{borderColor:"border-yellow-300/30 dark:border-yellow-700/30",bgColor:"bg-yellow-50/20 dark:bg-yellow-950/10",...te}}[n.state]||te};function Y(K){return K==="domain"?{label:"Domain",Icon:Sx,className:"border-border bg-muted text-foreground"}:K==="dashboard"?{label:"Dashboard",Icon:qT,className:"border-border bg-muted/70 text-foreground"}:{label:"Card",Icon:S8,className:"border-border bg-muted/40 text-foreground"}}const q=B(),U=e.fieldScope,G=U?Y(U):null,Z=Pw(e),Q=Z&&sc(e);return c.jsxs("div",{ref:M,style:H,...l?{}:_,...l?{}:k,className:X("group/container max-w-[265px] overflow-hidden rounded-lg transition-all",O&&"scale-95 opacity-50",!O&&"border",q.borderColor||"border-transparent",q.bgColor||"",q.hoverBorderColor,q.hoverBgColor||"hover:bg-muted",q.opacity,q.cursor,b&&"border-accent-foreground/20 bg-accent",x&&"border-primary/20 bg-primary/10",{"cursor-pointer":i||a,"cursor-grab active:cursor-grabbing":!l&&!i&&!a}),title:n==null?void 0:n.tooltip,children:[c.jsxs("div",{className:"flex min-w-0 items-center gap-3 p-2",onClick:F,children:[c.jsxs("div",{className:"relative shrink-0",children:[_m(e.dataType),Z&&c.jsx("span",{className:X("absolute bottom-0 right-0 translate-x-[30%] translate-y-[35%] rounded-[3px] px-0.5 py-0.5 text-[7px] font-semibold uppercase italic leading-none shadow-sm",Q?"bg-emerald-500/90 text-white":"bg-blue-500/90 text-white"),children:"fx"})]}),c.jsx(Ln,{children:c.jsxs(an,{children:[c.jsx(ln,{asChild:!0,children:c.jsx("div",{className:"min-w-0 flex-1 overflow-hidden",children:c.jsx("span",{className:`block text-sm text-foreground/80 hover:text-foreground dark:text-muted-foreground ${I?"whitespace-normal break-words":"truncate"}`,children:e.label||e.name})})}),c.jsx(dn,{side:"bottom",align:"start",className:"ml-5 max-w-xs px-4 pb-2 pt-4",children:c.jsx(BXe,{field:e,fieldState:n})})]})}),t==="editor"&&G&&c.jsx("span",{title:G.label,className:X("shrink-0 rounded-full border p-1",G.className),children:c.jsx(G.Icon,{className:"h-3.5 w-3.5"})}),i&&!a&&R(e)&&c.jsx("div",{onClick:K=>K.stopPropagation(),children:c.jsx(zXe,{column:A})}),o&&c.jsx("div",{className:"ml-auto flex items-center",onClick:K=>K.stopPropagation(),onPointerDown:K=>K.stopPropagation(),children:o})]}),I&&c.jsx("div",{className:"text-muted-foreground-700 px-2 pb-3 text-sm",children:c.jsx(Uo,{className:"",children:c.jsxs(Qi,{className:"space-y-2 p-3",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(j8,{className:"h-4 w-4 text-muted-foreground"}),c.jsx("span",{className:"break-all",children:e.label||e.name})]}),c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(iie,{className:"h-4 w-4 text-muted-foreground"}),c.jsx("span",{className:"break-all",children:e.name})]}),c.jsx(Ve,{variant:"outline",className:"mt-2 text-xs",children:e.dataType})]})})}),c.jsx(Um,{open:j,onOpenChange:S,children:c.jsxs(Sf,{children:[c.jsxs(jf,{children:[c.jsx(kf,{children:"Remove Filter from Multiple Sheets?"}),c.jsx(Ef,{children:"This filter is currently applied to multiple sheets. Removing it will affect all sheets where it's applied."})]}),c.jsxs(Nf,{children:[c.jsx(Tf,{children:"Cancel"}),c.jsx(_f,{onClick:z,children:"Remove Filter"})]})]})})]})}var da="Accordion",VXe=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[$A,HXe,UXe]=Ex(da),[GS]=Lr(da,[UXe,gW]),LA=gW(),ete=C.forwardRef((e,t)=>{const{type:n,...r}=e,s=r,o=r;return c.jsx($A.Provider,{scope:e.__scopeAccordion,children:n==="multiple"?c.jsx(GXe,{...o,ref:t}):c.jsx(YXe,{...s,ref:t})})});ete.displayName=da;var[tte,WXe]=GS(da),[nte,qXe]=GS(da,{collapsible:!1}),YXe=C.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:s=()=>{},collapsible:o=!1,...i}=e,[a,l]=ss({prop:n,defaultProp:r??"",onChange:s,caller:da});return c.jsx(tte,{scope:e.__scopeAccordion,value:C.useMemo(()=>a?[a]:[],[a]),onItemOpen:l,onItemClose:C.useCallback(()=>o&&l(""),[o,l]),children:c.jsx(nte,{scope:e.__scopeAccordion,collapsible:o,children:c.jsx(rte,{...i,ref:t})})})}),GXe=C.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:s=()=>{},...o}=e,[i,a]=ss({prop:n,defaultProp:r??[],onChange:s,caller:da}),l=C.useCallback(d=>a((f=[])=>[...f,d]),[a]),u=C.useCallback(d=>a((f=[])=>f.filter(h=>h!==d)),[a]);return c.jsx(tte,{scope:e.__scopeAccordion,value:i,onItemOpen:l,onItemClose:u,children:c.jsx(nte,{scope:e.__scopeAccordion,collapsible:!0,children:c.jsx(rte,{...o,ref:t})})})}),[KXe,KS]=GS(da),rte=C.forwardRef((e,t)=>{const{__scopeAccordion:n,disabled:r,dir:s,orientation:o="vertical",...i}=e,a=C.useRef(null),l=ut(a,t),u=HXe(n),f=bu(s)==="ltr",h=Ie(e.onKeyDown,m=>{var E;if(!VXe.includes(m.key))return;const p=m.target,g=u().filter(_=>{var k;return!((k=_.ref.current)!=null&&k.disabled)}),b=g.findIndex(_=>_.ref.current===p),x=g.length;if(b===-1)return;m.preventDefault();let y=b;const v=0,w=x-1,j=()=>{y=b+1,y>w&&(y=v)},S=()=>{y=b-1,y<v&&(y=w)};switch(m.key){case"Home":y=v;break;case"End":y=w;break;case"ArrowRight":o==="horizontal"&&(f?j():S());break;case"ArrowDown":o==="vertical"&&j();break;case"ArrowLeft":o==="horizontal"&&(f?S():j());break;case"ArrowUp":o==="vertical"&&S();break}const N=y%x;(E=g[N].ref.current)==null||E.focus()});return c.jsx(KXe,{scope:n,disabled:r,direction:s,orientation:o,children:c.jsx($A.Slot,{scope:n,children:c.jsx(Ze.div,{...i,"data-orientation":o,ref:l,onKeyDown:r?void 0:h})})})}),E1="AccordionItem",[ZXe,zA]=GS(E1),ste=C.forwardRef((e,t)=>{const{__scopeAccordion:n,value:r,...s}=e,o=KS(E1,n),i=WXe(E1,n),a=LA(n),l=xr(),u=r&&i.value.includes(r)||!1,d=o.disabled||e.disabled;return c.jsx(ZXe,{scope:n,open:u,disabled:d,triggerId:l,children:c.jsx(yW,{"data-orientation":o.orientation,"data-state":ute(u),...a,...s,ref:t,disabled:d,open:u,onOpenChange:f=>{f?i.onItemOpen(r):i.onItemClose(r)}})})});ste.displayName=E1;var ote="AccordionHeader",ite=C.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=KS(da,n),o=zA(ote,n);return c.jsx(Ze.h3,{"data-orientation":s.orientation,"data-state":ute(o.open),"data-disabled":o.disabled?"":void 0,...r,ref:t})});ite.displayName=ote;var rT="AccordionTrigger",ate=C.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=KS(da,n),o=zA(rT,n),i=qXe(rT,n),a=LA(n);return c.jsx($A.ItemSlot,{scope:n,children:c.jsx(aSe,{"aria-disabled":o.open&&!i.collapsible||void 0,"data-orientation":s.orientation,id:o.triggerId,...a,...r,ref:t})})});ate.displayName=rT;var lte="AccordionContent",cte=C.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,s=KS(da,n),o=zA(lte,n),i=LA(n);return c.jsx(lSe,{role:"region","aria-labelledby":o.triggerId,"data-orientation":s.orientation,...i,...r,ref:t,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});cte.displayName=lte;function ute(e){return e?"open":"closed"}var XXe=ete,QXe=ste,JXe=ite,dte=ate,fte=cte;const BA=XXe,rx=D.forwardRef(({className:e,...t},n)=>c.jsx(QXe,{ref:n,className:X("border-b",e),...t}));rx.displayName="AccordionItem";const sx=D.forwardRef(({className:e,children:t,...n},r)=>c.jsx(JXe,{className:"flex",children:c.jsxs(dte,{ref:r,className:X("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",e),...n,children:[t,c.jsx(kr,{className:"h-4 w-4 shrink-0 transition-transform duration-200"})]})}));sx.displayName=dte.displayName;const ox=D.forwardRef(({className:e,children:t,...n},r)=>c.jsx(fte,{ref:r,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...n,children:c.jsx("div",{className:X("pb-4 pt-0",e),children:t})}));ox.displayName=fte.displayName;let hte=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,n)=>(n&=63,n<36?t+=n.toString(36):n<62?t+=(n-26).toString(36).toUpperCase():n>62?t+="-":t+="_",t),"");const ix=[{id:"sum",label:"Sum",symbol:"+",description:"Add two metrics together",template:()=>"({field_0} + {field_1})",requiresTwoInputs:!0},{id:"difference",label:"Difference",symbol:"−",description:"Subtract one metric from another",template:()=>"({field_0} - {field_1})",requiresTwoInputs:!0},{id:"product",label:"Product (Multiplication)",symbol:"×",description:"Multiply two metrics",template:()=>"({field_0} * {field_1})",requiresTwoInputs:!0},{id:"ratio",label:"Ratio",symbol:"÷",description:"Divide one metric by another",template:()=>"({field_0} / NULLIF({field_1}, 0))",requiresTwoInputs:!0},{id:"change",label:"Change",symbol:"Δ",description:"Calculate percentage change from A to B",template:()=>"(({field_1} - {field_0}) / NULLIF({field_0}, 0))",requiresTwoInputs:!0},{id:"percentage",label:"Percentage",symbol:"%",description:"Calculate (A / B) × 100",template:()=>"(({field_0} / NULLIF({field_1}, 0)) * 100)",requiresTwoInputs:!0},{id:"scale",label:"Scale (Multiply by Factor)",symbol:"×n",description:"Multiply a metric by a constant factor",template:()=>"({field_0} * {constant})",requiresTwoInputs:!1},{id:"custom",label:"Custom Expression",symbol:"{}",description:"Drag fields to create custom expression with tokens",requiresTwoInputs:!1,allowsCustomExpression:!0}],fl=e=>e.trim().toLowerCase().replace(/\s+/g,"_"),Nl=e=>e!=null&&e.startsWith("card-source-")?e.replace("card-source-",""):e;function v6(e,t,n,r,s,o,i,a,l,u){const d=ix.find(x=>x.id===t);if(!d)throw new Error(`Unknown operation: ${t}`);let f,h=[],m;if(t==="custom"){if(!(a!=null&&a.trim()))throw new Error("Custom expression is required");f=a.trim(),h=u||[]}else if(t==="scale"){if(!n)throw new Error("Metric A is required for scale operation");if(l===void 0||Number.isNaN(l))throw new Error("Constant factor is required for scale operation");f=d.template().replace("{constant}",String(l)),h=[n],m=l}else{if(!n||!r)throw new Error("Metrics A and B are required for standard operations");f=d.template(),h=[n,r]}const p={operation:t,inputFields:h,...m!==void 0&&{constant:m}},g=fl(e);return{id:i||`calc_${hte(10)}`,name:g,label:e,alias:g,qualifiedFieldName:g,dataType:"number",role:"metric",aggregate:"SUM",expression:f,calculatedFormula:p,entityId:o,entityName:cu,entityType:"table",description:`Calculated field: ${e}`}}function eQe(e){var r,s;const t=ix.find(o=>o.id===e.operation);if(!t)return"Unknown operation";if(e.operation==="custom")return"Custom expression";if(e.operation==="scale"){const o=((r=e.inputFields[0])==null?void 0:r.label)||((s=e.inputFields[0])==null?void 0:s.name)||"A",i=e.constant??1;return`${o} × ${i}`}return e.inputFields.map(o=>o.label||o.name).join(` ${t.symbol} `)}function tQe(e,t,n,r,s,o){const i=fl(e);return{id:o||`calc_dim_${hte(10)}`,name:i,label:e.trim(),alias:i,qualifiedFieldName:i,dataType:r,role:"groupby",expression:t.trim(),calculatedFormula:{operation:"custom",inputFields:n.map(a=>a.role==="metric"?{...a,role:"metric"}:{...a,role:"groupby"})},entityId:s,entityName:cu,entityType:"table",description:`Calculated field: ${e.trim()}`}}function nQe(){const{domainCalculatedFields:e}=PA(),t=C.useMemo(()=>e.filter(r=>r.role==="metric"),[e]),n=C.useMemo(()=>e.filter(r=>r.role==="groupby"),[e]);return{fields:e,metrics:t,dimensions:n}}function rQe({value:e,onChange:t,disabled:n,options:r=["dimension","metric"]}){const s=r.length>0?r:["dimension","metric"],o=["dimension","metric"].filter(l=>s.includes(l)),i=n||o.length<=1,a=o.includes(e)?e:o[0];return c.jsx(Os,{value:a,onValueChange:l=>t(l),className:"w-full",children:c.jsx(ys,{className:"grid h-9 w-full",style:{gridTemplateColumns:`repeat(${o.length}, minmax(0, 1fr))`},children:o.map(l=>c.jsx(nn,{value:l,disabled:i,className:"text-xs",children:l==="metric"?"Calculated Metric":"Calculated Dimension"},l))})})}function sQe({groups:e,searchTerm:t,onSearchTermChange:n,onFieldClick:r,selectedFieldIds:s,disabled:o}){const i=new Set(s||[]),a=e.length>0||t.length>0,l=e.map(f=>f.id),u=(f,h)=>{if(!h)return f;const m=f.toLowerCase(),p=h.toLowerCase();return m.startsWith(`${p}.`)?f.slice(h.length+1):f},d=(f,h)=>{const p=(f.name||f.baseLabel||f.label||f.tokenLabel||"").trim(),g=[h,f.qualifiedEntityName,f.entityName].filter(Boolean);for(const b of g){const x=u(p,b);if(x!==p)return x}return p.includes(".")&&p.split(".").pop()||p};return c.jsxs("div",{className:"flex h-full min-h-0 flex-col gap-3 border-r border-border pr-4",children:[a&&c.jsxs("div",{className:"relative",children:[c.jsx(Ko,{className:"absolute left-3 top-1/2 size-3.5 -translate-y-1/2 transform text-muted-foreground"}),c.jsx(jn,{value:t,onChange:f=>n(f.target.value),placeholder:"Search fields...",className:"pl-10 pr-10"}),t&&c.jsx("button",{type:"button",onClick:()=>n(""),className:"absolute right-3 top-1/2 -translate-y-1/2 transform text-muted-foreground hover:text-foreground",children:c.jsx(St,{className:"size-3.5"})})]}),c.jsx(tl,{className:"min-h-0 flex-1",children:e.length===0?c.jsx("div",{className:"rounded-md border border-dashed border-muted px-3 py-6 text-center text-xs text-muted-foreground",children:"No fields match your search."}):c.jsx(BA,{type:"multiple",defaultValue:l,className:"space-y-2",children:e.map(f=>c.jsxs(rx,{value:f.id,className:"border-none",children:[c.jsx(sx,{className:"group rounded-md px-2.5 py-2 text-muted-foreground hover:bg-muted hover:no-underline",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"max-w-[190px] truncate text-ellipsis whitespace-nowrap text-sm font-medium text-primary",children:f.label}),c.jsx(Ve,{variant:"secondary",className:"rounded-full text-xs text-muted-foreground group-hover:bg-background",children:f.fields.length})]})}),c.jsx(ox,{className:"pb-2",children:c.jsx("div",{className:"space-y-1",children:f.fields.map(h=>{const m=i.has(h.id),p=!h.isCompatible||o,g=h.isCalculated&&h.role==="metric",b=d(h,f.label);return c.jsxs("button",{type:"button",onClick:()=>h.isCompatible&&!o&&r(h),className:X("group/container flex w-full items-center gap-3 rounded-lg border border-transparent px-2 py-2 text-left transition-all",p?"cursor-not-allowed opacity-50":"hover:bg-muted",m&&"border-border bg-muted"),disabled:p,children:[c.jsxs("div",{className:"relative shrink-0",children:[_m(h.dataType),h.isCalculated&&c.jsx("span",{className:X("absolute bottom-0 right-0 translate-x-[30%] translate-y-[35%] rounded-[3px] px-0.5 py-0.5 text-[7px] font-semibold uppercase italic leading-none shadow-sm",g?"bg-emerald-500/90 text-white":"bg-blue-500/90 text-white"),children:"fx"})]}),c.jsx("div",{className:"min-w-0 flex-1 overflow-hidden",children:c.jsx("span",{className:X("block truncate text-sm text-foreground/80",!p&&"group-hover/container:text-foreground"),children:b})}),m&&c.jsx(Ve,{variant:"secondary",className:"shrink-0 text-[10px]",children:"Selected"})]},h.id)})})})]},f.id))})})]})}function oQe({value:e,onChange:t,allowCustom:n,disabled:r}){const s=ix.filter(l=>n?!0:l.id!=="custom"),i=!s.some(l=>l.id==="custom")&&e==="custom"?[...s,ix.find(l=>l.id==="custom")]:s,a=i.find(l=>l.id===e);return c.jsxs("div",{className:"space-y-2",children:[c.jsxs(ot,{value:e,onValueChange:l=>t(l),disabled:r,children:[c.jsx(nt,{children:c.jsx(at,{})}),c.jsx(rt,{children:c.jsxs(WD,{children:[c.jsx(BC,{children:"OPERATIONS"}),i.map(l=>c.jsx(ve,{value:l.id,children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"font-mono text-sm",children:l.symbol}),c.jsx("span",{children:l.label})]})},l.id))]})})]}),a&&c.jsx("p",{className:"text-xs text-muted-foreground",children:a.description})]})}const iQe={COUNT:"Count",DISTINCT:"Count Distinct",SUM:"Sum",AVG:"Average",MIN:"Minimum",MAX:"Maximum",MEDIAN:"Median"};function aQe({value:e,onChange:t,disabled:n,fieldDataType:r,allowMedian:s}){const i=(r?yr(r):"number")==="number",a=["SUM","AVG","COUNT","DISTINCT","MIN","MAX"],l=i?s?[...a,"MEDIAN"]:a:["COUNT","DISTINCT"];return c.jsxs(ot,{value:e,onValueChange:u=>t(u),disabled:n,children:[c.jsx(nt,{className:"h-9",children:c.jsx(at,{})}),c.jsx(rt,{children:l.map(u=>c.jsx(ve,{value:u,children:iQe[u]},u))})]})}const lQe=e=>{const n=(e.name||e.baseLabel||e.label||e.tokenLabel||"").trim();return n.includes(".")&&n.split(".").pop()||n};function w6({label:e,input:t,availableFields:n,excludeFieldIds:r,onFieldSelect:s,onAggregateChange:o,onRemove:i,onActivate:a,allowMedian:l,disabled:u}){const d=(t==null?void 0:t.field.id)||"",f=r!=null&&r.length?n.filter(h=>!r.includes(h.id)):n;return c.jsxs("div",{className:X("flex items-center gap-2 rounded-md border border-border px-2 py-2",a&&!u&&"cursor-pointer",u&&"opacity-60"),onClick:u?void 0:a,children:[c.jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded bg-muted font-mono text-xs font-semibold",children:e}),c.jsxs("div",{className:"flex flex-1 gap-2",children:[c.jsxs(ot,{value:d,onValueChange:h=>{const m=f.find(p=>p.id===h);m&&s(m)},disabled:u,children:[c.jsx(nt,{className:"h-9 flex-1",children:c.jsx(at,{placeholder:"Select field"})}),c.jsx(rt,{children:f.map(h=>c.jsx(ve,{value:h.id,children:lQe(h)},h.id))})]}),c.jsx("div",{className:"w-36",children:c.jsx(aQe,{value:(t==null?void 0:t.aggregate)||"SUM",onChange:o,disabled:u||(t==null?void 0:t.isCalculatedField),fieldDataType:t==null?void 0:t.field.dataType,allowMedian:l})})]}),t&&c.jsx(se,{type:"button",variant:"ghost",size:"icon",className:"h-7 w-7",onClick:h=>{h.stopPropagation(),i()},disabled:u,children:c.jsx(St,{className:"h-3.5 w-3.5"})})]})}const C6=C.forwardRef(function({value:t,onChange:n,onGenerate:r,showGenerate:s,disabled:o},i){return c.jsxs("div",{className:"space-y-2",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("span",{className:"text-sm font-medium",children:"Expression"}),s&&c.jsxs(se,{type:"button",size:"sm",variant:"outline",onClick:r,disabled:o,className:"h-7 gap-2 text-xs",children:[c.jsx(q1,{className:"h-3.5 w-3.5"}),"Generate with AI"]})]}),c.jsx(Yb,{ref:i,value:t,onChange:a=>n(a.target.value),disabled:o,placeholder:"CASE WHEN {Amount} > 100 THEN 'Large' ELSE 'Small' END",className:"min-h-[140px] font-mono text-xs"})]})});function cQe({result:e}){const t=e.errors.length>0;return c.jsxs("div",{className:X("rounded-md border px-3 py-2 text-xs",t?"border-destructive/40 bg-destructive/10 text-destructive":"border-emerald-500/30 bg-emerald-500/10 text-emerald-700"),children:[c.jsx("div",{className:"font-medium",children:t?"Validation Failed":"Validation Passed"}),e.tokens.length>0&&c.jsxs("div",{className:"mt-2 space-y-1",children:[c.jsx("div",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Tokens Found"}),e.tokens.map(n=>c.jsx("div",{children:n.field?`{${n.token}} -> ${n.field.qualifiedFieldName||n.field.name}`:`{${n.token}}`},n.token))]}),e.errors.length>0&&c.jsxs("div",{className:"mt-2 space-y-1",children:[c.jsx("div",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Errors"}),e.errors.map((n,r)=>c.jsxs("div",{children:[n.message,n.suggestion?` (${n.suggestion})`:""]},`${n.code}-${r}`))]}),e.warnings.length>0&&c.jsxs("div",{className:"mt-2 space-y-1",children:[c.jsx("div",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Warnings"}),e.warnings.map((n,r)=>c.jsxs("div",{children:[n.message," ",n.suggestion]},`${n.code}-${r}`))]}),e.inferredDataType&&c.jsxs("div",{className:"mt-2 text-[11px] text-muted-foreground",children:["Inferred Output Type: ",e.inferredDataType]})]})}function S6({onValidate:e,isValidating:t,validationResult:n,fallbackResult:r,error:s,showFallback:o,disabled:i}){return c.jsxs("div",{className:"space-y-2",children:[c.jsx(se,{type:"button",variant:"outline",onClick:e,disabled:t||i,className:"h-8",children:t?"Validating...":"Validate Expression"}),s&&c.jsx("div",{className:"text-xs text-destructive",children:s}),(n||o)&&c.jsx(cQe,{result:n||r})]})}function uQe({scope:e,onChange:t,showDashboardScope:n,showDomainScope:r,error:s,disabled:o}){return c.jsxs("div",{className:"space-y-3 border-t border-border pt-4",children:[c.jsx(ae,{children:"Availability"}),c.jsxs(Qs,{value:e,onValueChange:i=>t(i),className:"space-y-2",disabled:o,children:[c.jsxs("div",{className:"flex items-center space-x-2",children:[c.jsx(bn,{id:"scope-card",value:"card"}),c.jsx(ae,{htmlFor:"scope-card",className:"text-sm font-normal",children:"This card only"})]}),n&&c.jsxs("div",{className:"flex items-center space-x-2",children:[c.jsx(bn,{id:"scope-dashboard",value:"dashboard"}),c.jsx(ae,{htmlFor:"scope-dashboard",className:"text-sm font-normal",children:"All cards in this dashboard"})]}),r&&c.jsxs("div",{className:"flex items-center space-x-2",children:[c.jsx(bn,{id:"scope-domain",value:"domain"}),c.jsx(ae,{htmlFor:"scope-domain",className:"text-sm font-normal",children:"Save to domain"})]})]}),s&&c.jsx("p",{className:"text-xs text-red-500",children:s})]})}function dQe({description:e,tags:t,onDescriptionChange:n,onTagsChange:r,descriptionError:s,disabled:o}){return c.jsxs("div",{className:"space-y-3 rounded-md border border-muted bg-muted/30 p-3",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"domain-description",children:"Description"}),c.jsx(vu,{id:"domain-description",value:e,onChange:i=>n(i.target.value),placeholder:"Explain what this metric represents",className:X("text-sm",s&&"border-red-500"),rows:3,disabled:o}),s&&c.jsx("p",{className:"text-xs text-red-500",children:s})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"domain-tags",children:"Tags (optional)"}),c.jsx(mn,{id:"domain-tags",value:t,onChange:i=>r(i.target.value),placeholder:"profitability, kpi",disabled:o})]}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"This field will be visible to all dashboards using this domain."})]})}function fQe({endpoint:e,availableFields:t,fieldType:n,dialect:r}){const{authToken:s}=Xe(),[o,i]=C.useState(!1),[a,l]=C.useState(null);return{generateExpression:C.useCallback(async d=>{var f;if(!e)return l("AI generation is not available"),null;if(!d.trim())return l("Describe what you want to calculate"),null;i(!0),l(null);try{const h={type:"calculated-field-expression",context:{userQuery:d,availableFields:t.map(p=>({name:p.tokenLabel,dataType:p.dataType})),fieldType:n},options:{dialect:r}},m=await eo(e,(s==null?void 0:s.accessToken)||"",h);if(!m.success||!((f=m.result)!=null&&f.generated))throw new Error(m.error||"No expression generated");return m.result.generated}catch(h){return l((h==null?void 0:h.error)||(h==null?void 0:h.message)||"AI generation failed"),null}finally{i(!1)}},[e,t,n,r,s==null?void 0:s.accessToken]),isGenerating:o,error:a}}function hQe({open:e,onOpenChange:t,availableFields:n,fieldType:r,onExpressionGenerated:s,endpoint:o,dialect:i}){const[a,l]=C.useState(""),[u,d]=C.useState(""),[f,h]=C.useState(""),{generateExpression:m,isGenerating:p,error:g}=fQe({endpoint:o,availableFields:n,fieldType:r,dialect:i}),b=C.useMemo(()=>{const S=f.trim().toLowerCase();return S?n.filter(N=>[N.label,N.baseLabel,N.name,N.tokenLabel,N.entityName,N.qualifiedEntityName].filter(Boolean).join(" ").toLowerCase().includes(S)):n},[n,f]),x=S=>{const E=(S.name||S.baseLabel||S.label||S.tokenLabel||"").trim();return E.includes(".")&&E.split(".").pop()||E},y=S=>{const N=S.entityName||S.qualifiedEntityName||"";return N?N==="SEMAPHOR_CALCULATED_FIELD"?"Calculated":N.includes(".")&&N.split(".").pop()||N:"—"},v=async()=>{const S=await m(a.trim());S&&d(S)},w=()=>{u.trim()&&(s(u.trim()),l(""),d(""),t(!1))},j=()=>{l(""),d(""),h(""),t(!1)};return c.jsx(Gr,{open:e,onOpenChange:S=>{S?t(!0):j()},children:c.jsxs(zr,{className:"max-w-3xl",children:[c.jsxs(Br,{children:[c.jsx(Vr,{children:"Generate Expression with AI"}),c.jsx(is,{children:"Describe what you want to calculate and we will draft a SQL expression."})]}),c.jsxs("div",{className:"space-y-6",children:[c.jsxs("div",{className:"space-y-3",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"ai-prompt",children:"Describe what you want to calculate"}),c.jsx(Yb,{id:"ai-prompt",value:a,onChange:S=>l(S.target.value),placeholder:"Create a bucket that categorizes orders as 'Large' when amount is greater than 1000",rows:2})]}),c.jsxs("div",{className:"flex items-center justify-between gap-3 text-xs text-muted-foreground",children:[c.jsx("span",{children:"Be specific about conditions, buckets, or math you want to apply."}),c.jsx(se,{size:"sm",onClick:v,disabled:p||!a.trim(),children:p?"Generating...":u?"Regenerate":"Generate"})]}),g&&c.jsx("p",{className:"text-xs text-destructive",children:g})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Available fields"}),c.jsxs("div",{className:"relative",children:[c.jsx(Ko,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),c.jsx(mn,{value:f,onChange:S=>h(S.target.value),placeholder:"Search fields...",className:"pl-9"})]}),c.jsx("div",{className:"overflow-hidden rounded-lg border border-border",children:c.jsx("div",{className:"max-h-48 overflow-y-auto",children:c.jsxs("table",{className:"w-full text-sm",children:[c.jsx("thead",{className:"sticky top-0 z-10 border-b bg-muted",children:c.jsxs("tr",{children:[c.jsx("th",{className:"bg-muted/50 px-3 py-2 text-left font-medium",children:"Field"}),c.jsx("th",{className:"bg-muted/50 px-3 py-2 text-left font-medium",children:"Type"}),c.jsx("th",{className:"bg-muted/50 px-3 py-2 text-left font-medium",children:"Category"})]})}),c.jsx("tbody",{className:"divide-y",children:b.length===0?c.jsx("tr",{children:c.jsx("td",{colSpan:3,className:"py-6 text-center text-xs text-muted-foreground",children:"No fields match your search."})}):b.map(S=>c.jsxs("tr",{className:"hover:bg-muted/30",children:[c.jsx("td",{className:"px-3 py-1.5 font-mono text-xs",children:x(S)}),c.jsx("td",{className:"px-3 py-1.5",children:c.jsx(Ve,{variant:"secondary",className:"px-1.5 py-0 text-[11px]",children:S.dataType})}),c.jsx("td",{className:"px-3 py-1.5 text-sm text-muted-foreground",children:y(S)})]},S.id))})]})})})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Generated expression"}),c.jsx(Yb,{value:u,readOnly:!0,rows:2,className:"font-mono text-sm"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Review the generated expression before using it."})]})]}),c.jsxs(os,{className:"gap-2",children:[c.jsx(se,{variant:"ghost",onClick:j,children:"Cancel"}),c.jsx(se,{onClick:w,disabled:!u.trim(),children:"Use Expression"})]})]})})}const mQe=/\{([^}]+)\}/g;function ZS(e){return e.trim().toLowerCase()}function _1(e){return Array.from(e.matchAll(mQe)).map(t=>t[1]).filter(Boolean)}function pQe(e){const t=new Set,n=[];return e.forEach(r=>{const s=ZS(r);t.has(s)||(t.add(s),n.push(r))}),n}function VA(e){const t=new Map,n=(r,s)=>{const o=ZS(r),i=t.get(o)||[];i.some(a=>a.id===s.id)||t.set(o,[...i,s])};return e.forEach(r=>{n(r.tokenLabel,r),r.name&&r.name!==r.tokenLabel&&n(r.name,r),r.baseLabel&&r.baseLabel!==r.tokenLabel&&n(r.baseLabel,r)}),t}function tg(e,t){const n=_1(e),r=pQe(n),s=VA(t),o=r.map(a=>{const l=s.get(ZS(a))||[];return l.length===1?l[0]:null}),i=r.filter((a,l)=>!o[l]);return{orderedTokens:r,orderedFields:o,unresolvedTokens:i}}function j6(e,t){return t.reduce((n,r,s)=>{const o=new RegExp(`\\{${gQe(r)}\\}`,"gi");return n.replace(o,`{field_${s}}`)},e)}function gQe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const bQe=e=>e.entityName===Qh||e.entityName===cu?"Calculated Fields":e.qualifiedEntityName?cb(e.entityName||e.qualifiedEntityName):cb(e.entityName||"Other"),xQe=e=>yr(e.dataType||"")==="number";function yQe(e,t,n){const r=new Set((n||[]).map(s=>Nl(s)));return e.filter(s=>{const o=Nl(s.id);return o&&r.has(o)?!1:t==="dimension"?s.role!=="metric":!0})}function vQe(e){const t=new Map,n=new Map;return e.forEach(r=>{let o=r.entityName&&r.entityName!==cu?`${r.entityName}.${r.name}`:r.name;const i=o.toLowerCase(),a=n.get(i)||0;a>0&&(o=`${o} ${a+1}`),n.set(i,a+1),t.set(r.id,o)}),t}function wQe(e,t,n,r){if(t!=="metric")return e.map(o=>({...o,isCompatible:!0}));if(!n)return e.map(o=>({...o,isCompatible:!0}));const s=n==="COUNT"||n==="DISTINCT";return e.map(o=>{const i=s||xQe(o);return{...o,isCompatible:i}}).filter(o=>r)}function CQe(e,t){if(!t)return e;const n=t.toLowerCase();return e.filter(r=>r.name.toLowerCase().includes(n)||r.baseLabel.toLowerCase().includes(n)||r.tokenLabel.toLowerCase().includes(n)||r.dataType.toLowerCase().includes(n)||(r.qualifiedEntityName||r.entityName||"").toLowerCase().includes(n))}function SQe(e){const t=new Map;return e.forEach(n=>{var s;const r=n.qualifiedEntityName||n.entityName||"Other";t.has(r)||t.set(r,{id:r,label:bQe(n),fields:[]}),(s=t.get(r))==null||s.fields.push(n)}),Array.from(t.values())}function jQe({fields:e,mode:t,searchTerm:n,excludeFieldIds:r,selectedAggregate:s,showIncompatible:o}){const i=C.useMemo(()=>yQe(e,t,r),[e,t,r]),a=C.useMemo(()=>vQe(i),[i]),l=C.useMemo(()=>i.map(m=>{const p=m.label||m.name,g=m.role==="metric"&&sc(m)||m.role==="groupby"&&Ux(m);return{...m,baseLabel:p,tokenLabel:a.get(m.id)||p,isCalculated:g,isCompatible:!0}}),[i,a]),u=C.useMemo(()=>VA(l),[l]),d=C.useMemo(()=>wQe(l,t,s,o),[l,t,s,o]),f=C.useMemo(()=>CQe(d,n),[d,n]),h=C.useMemo(()=>SQe(f),[f]);return{allFields:l,filteredFields:f,groups:h,tokenCandidates:u}}const NQe=e=>{let t=0;for(const n of e)if(n==="("&&(t+=1),n===")"&&(t-=1),t<0)return!1;return t===0},kQe=(e,t)=>{const n=e.toLowerCase(),r=t.toLowerCase();if(n===r)return 0;if(!n.length)return r.length;if(!r.length)return n.length;const s=[];for(let o=0;o<=r.length;o+=1)s[o]=[o];for(let o=0;o<=n.length;o+=1)s[0][o]=o;for(let o=1;o<=r.length;o+=1)for(let i=1;i<=n.length;i+=1)r.charAt(o-1)===n.charAt(i-1)?s[o][i]=s[o-1][i-1]:s[o][i]=Math.min(s[o-1][i-1]+1,s[o][i-1]+1,s[o-1][i]+1);return s[r.length][n.length]},EQe=(e,t)=>t.map(r=>({candidate:r,distance:kQe(e,r)})).filter(r=>r.distance>0&&r.distance<=3).sort((r,s)=>r.distance-s.distance).slice(0,3).map(r=>r.candidate),_Qe=(e,t)=>{var r;const n=e.trim();if(n){if(/\bDATE_TRUNC\b/i.test(n))return"date";if(/\bTIMESTAMP\b/i.test(n))return"datetime";if(/\bDATE\b/i.test(n)&&!/\bUPDATE\b/i.test(n))return"date";if(/['"]/.test(n))return"string";if(/[+\-*/]/.test(n))return"number";if(t.length===1){const s=((r=t[0])==null?void 0:r.dataType)||"";if(/date|timestamp/i.test(s))return"date";if(/int|decimal|float|double|num|real/i.test(s))return"number";if(/boolean/i.test(s))return"boolean"}return"string"}},TQe=e=>e.map(t=>({id:t.id,name:t.name,label:t.tokenLabel,dataType:t.dataType,entityName:t.entityName,role:t.role}));function MQe({expression:e,availableFields:t,excludeFieldIds:n,validationEndpoint:r,connectionId:s,dialect:o}){const{authToken:i}=Xe(),[a,l]=C.useState(null),[u,d]=C.useState(!1),[f,h]=C.useState(null),m=C.useMemo(()=>VA(t),[t]),p=C.useMemo(()=>{const x=[],y=[],v=e.trim();v||x.push({code:"SYNTAX_ERROR",message:"Expression is required"}),v&&!NQe(v)&&x.push({code:"SYNTAX_ERROR",message:"Unbalanced parentheses in expression"});const j=_1(e).map(N=>{const E=m.get(ZS(N))||[];if(!E.length){const M=Array.from(m.keys()),T=EQe(N,M),P=T.length?`Did you mean {${T[0]}}?`:void 0;return x.push({code:"UNKNOWN_TOKEN",message:`Unknown field token: {${N}}`,suggestion:P}),{token:N,field:null,error:"Unknown token"}}if(E.length>1)return x.push({code:"UNKNOWN_TOKEN",message:`Token {${N}} matches multiple fields. Use a disambiguated label.`}),{token:N,field:null,error:"Ambiguous token"};const _=E[0];return(n||[]).map(Nl).includes(Nl(_.id))?(x.push({code:"SELF_REFERENCE",message:"Cannot reference the field being edited"}),{token:N,field:null,error:"Self reference"}):{token:N,field:_}});/\bCASE\b/i.test(e)&&!/\bELSE\b/i.test(e)&&y.push({code:"MISSING_ELSE",message:"CASE expression missing ELSE clause",suggestion:"Add an ELSE branch to handle default values."}),/\//.test(e)&&!/NULLIF\s*\(/i.test(e)&&y.push({code:"DIVISION_BY_ZERO",message:"Division may result in divide-by-zero errors",suggestion:"Wrap the denominator in NULLIF(..., 0)."});const S=j.map(N=>N.field).filter(Boolean);return{isValid:x.length===0,tokens:j,errors:x,warnings:y,inferredDataType:_Qe(e,S)}},[e,n,m]),g=C.useCallback(async()=>{var v;if(h(null),!r||!p.isValid)return l(p),p;const x=r,y={type:"calculated-field-expression",value:e,context:{availableFields:TQe(t),connectionId:s,excludeFieldIds:n,dialect:o}};d(!0);try{const w=await eo(x,(i==null?void 0:i.accessToken)||"",y),j=w.errors||[],S=w.warnings||[],N={...p,isValid:w.valid&&j.length===0,errors:j,warnings:S,inferredDataType:((v=w.metadata)==null?void 0:v.inferredType)||p.inferredDataType};return l(N),N}catch(w){return h((w==null?void 0:w.error)||"Validation failed"),l(p),p}finally{d(!1)}},[r,p,e,t,s,n,o,i==null?void 0:i.accessToken]),b=C.useCallback(()=>{l(null),h(null)},[]);return{clientResult:p,validationResult:a,isValidating:u,serverError:f,validateExpression:g,resetValidation:b}}const N6=[{value:"string",label:"String"},{value:"number",label:"Number"},{value:"boolean",label:"Boolean"},{value:"date",label:"Date"},{value:"datetime",label:"Datetime"},{value:"json",label:"JSON"},{value:"geo",label:"Geo"}],G2=e=>{if(!e)return"";const t=e.field.tokenLabel||e.field.label||e.field.name,n=e.aggregate;return n==="DISTINCT"?`COUNT(DISTINCT ${t})`:n==="COUNT"?`COUNT(${t})`:`${n}(${t})`},mte=e=>yr(e.dataType||"")==="number",uh=e=>mte(e)?"SUM":"COUNT",K2=(e,t)=>mte(e)||t==="COUNT"||t==="DISTINCT"?t:uh(e);function Z2(e,t){if(e.role==="metric"){const n=e;return sc(n)?n:{...n,aggregate:t}}return{...e,id:`${e.id}_${t.toLowerCase()}`,role:"metric",aggregate:t,alias:`${(e.alias||e.name).toLowerCase()}_${t.toLowerCase()}`,entityName:e.entityName,entityId:e.entityId,qualifiedEntityName:e.qualifiedEntityName}}function rh(e,t){const n=e.role==="metric"&&sc(e);return{field:e,aggregate:n&&e.aggregate||t,isCalculatedField:n}}function pte({open:e,onOpenChange:t,availableFields:n,existingField:r,existingFieldScope:s,onSave:o,onSaveToDashboard:i,onPromoteMetricToDomain:a,onPromoteDimensionToDomain:l,cardId:u,domainId:d,initialFieldType:f="metric",allowedFieldTypes:h}){var zf;const{tokenProps:m}=Xe(),{selectedConnection:p}=EU(),g=(p==null?void 0:p.dialect)==="bigquery"||(p==null?void 0:p.dialect)==="snowflake",[b,x]=C.useState(f),[y,v]=C.useState(""),[w,j]=C.useState("ratio"),[S,N]=C.useState(null),[E,_]=C.useState(null),[k,M]=C.useState(1),[T,P]=C.useState(""),[O,I]=C.useState(null),[$,V]=C.useState("card"),[W,L]=C.useState(""),[R,z]=C.useState(""),[F,A]=C.useState({}),[H,B]=C.useState("A"),[Y,q]=C.useState(""),[U,G]=C.useState(!1),[Z,Q]=C.useState(null),[K,te]=C.useState(!1),[le,de]=C.useState(!1),[ce,Ce]=C.useState(!1),ge=C.useRef(null),he=C.useRef(!1),me=C.useRef(null),{userContext:oe}=Ps(),{metrics:Ne,dimensions:fe}=nQe(),Me=(oe==null?void 0:oe.type)==="organization",ke=!Me,ie=!!d&&Me,xe=ie&&!!a,Oe=ie&&!!l,be=!!(i||xe||Oe),De=!!i,qe=b==="metric"?xe:Oe,He=(zf=m==null?void 0:m.apiServiceUrl)==null?void 0:zf.replace(/\/$/,""),Fe=He?`${He}/v1/validate`:"/v1/validate",yt=He?`${He}/v1/ai/generate`:"/v1/ai/generate",je=C.useMemo(()=>{var Mt;const Se=[...n];return(((Mt=r==null?void 0:r.calculatedFormula)==null?void 0:Mt.inputFields)||[]).forEach(vn=>{Se.some(qn=>qn.id===vn.id||qn.qualifiedFieldName===vn.qualifiedFieldName||qn.name===vn.name)||Se.push(vn)}),Se},[n,r]),dt=H==="A"?S:E,Ct=b==="metric"&&w!=="custom"?dt==null?void 0:dt.aggregate:void 0,{allFields:Ye,groups:Yt}=jQe({fields:je,mode:b,searchTerm:Y,excludeFieldIds:r?[r.id]:void 0,selectedAggregate:Ct,showIncompatible:!0}),Ge=Ye,{clientResult:et,validationResult:Be,validateExpression:Ke,isValidating:kt,serverError:pe,resetValidation:Re}=MQe({expression:T,availableFields:Ge,excludeFieldIds:r?[r.id]:void 0,validationEndpoint:Fe,connectionId:p==null?void 0:p.id,dialect:p==null?void 0:p.dialect}),re=(Be==null?void 0:Be.inferredDataType)||et.inferredDataType,_e=O||re||"string",We=ix.find(Se=>Se.id===w),it=C.useMemo(()=>{if(!y.trim())return!1;const Se=fl(y),lt=s==="domain"&&(r!=null&&r.name)?fl(r.name):null;return(b==="metric"?Ne:fe).some(vn=>{const Qt=fl(vn.name);return lt&&Qt===lt?!1:Qt===Se})},[fe,Ne,r,s,b,y]),zt=C.useMemo(()=>{if(b==="metric"&&w==="custom"){const{orderedFields:lt}=tg(T,Ge);return lt.filter(Mt=>!!Mt).map(Mt=>Mt.id)}const Se=[];return S!=null&&S.field.id&&Se.push(S.field.id),E!=null&&E.field.id&&Se.push(E.field.id),Se},[Ge,T,b,S,E,w]),un=Se=>{ke||(x(Se),Se==="dimension"&&$==="domain"&&!Oe&&V("card"),Se==="metric"&&$==="domain"&&!xe&&V("card"))},Dn=Se=>{ke||(j(Se),Se==="scale"&&_(null),Se==="custom"&&(N(null),_(null)))},Kr=()=>{v(""),j("ratio"),N(null),_(null),M(1),P(""),I(null),V("card"),L(""),z(""),A({}),q(""),G(!1),Q(null),te(!1),Ce(!1),Re(),t(!1)},Hr=C.useCallback(Se=>je.find(lt=>lt.qualifiedFieldName===Se.qualifiedFieldName||lt.name===Se.name)||Se,[je]),zs=C.useCallback(Se=>{if(!Se.calculatedFormula)return;const lt=Se.calculatedFormula;if(j(lt.operation),P(""),lt.operation==="scale"){const Qt=lt.inputFields[0];Qt&&N(rh(Hr(Qt),Qt.aggregate||"SUM")),M(lt.constant===void 0?1:lt.constant);return}if(lt.operation==="custom"){P(Ni(Se.expression||"",lt.inputFields||[])),N(null),_(null);return}const[Mt,vn]=lt.inputFields;Mt&&N(rh(Hr(Mt),Mt.aggregate||"SUM")),vn&&_(rh(Hr(vn),vn.aggregate||"SUM"))},[Hr]),Ni=C.useCallback((Se,lt)=>Se.replace(/\{field_(\d+)\}/g,(Mt,vn)=>{var Cr;const Qt=lt[Number(vn)];return Qt?`{${((Cr=Ge.find(ki=>ki.id===Qt.id))==null?void 0:Cr.tokenLabel)||Qt.label||Qt.name}}`:Mt}),[Ge]);C.useEffect(()=>{var Mt;if(!e){he.current=!1,me.current=null;return}const Se=r?`${r.role}-${r.id||r.name}`:"new";if(he.current&&me.current===Se)return;if(he.current=!0,me.current=Se,A({}),q(""),Ce(!1),Re(),r){const vn=r.tags||[];if(r.role==="metric"){x("metric"),v(r.label||r.name),V(s||"card"),L(r.description||""),z(vn.join(", ")),zs(r);return}x("dimension");const Qt=r;v(Qt.label||Qt.name),V(s||"card"),P(Ni(Qt.expression||"",((Mt=Qt.calculatedFormula)==null?void 0:Mt.inputFields)||[]));const qn=N6.some(Cr=>Cr.value===Qt.dataType)?Qt.dataType:"string";I(qn),L(Qt.description||""),z(vn.join(", "));return}const lt=h&&h.length>0?h.includes(f)?f:h[0]:f;x(lt),v(""),j("ratio"),N(null),_(null),M(1),P(""),I(null),V("card"),L(""),z("")},[e,r,s,f,h,zs,Ni,Re]);const Fu=Se=>{const lt=`{${Se}}`,Mt=ge.current;if(!Mt){P(Cr=>Cr+lt);return}const vn=Mt.selectionStart||0,Qt=Mt.selectionEnd||0,qn=`${T.slice(0,vn)}${lt}${T.slice(Qt)}`;P(qn),requestAnimationFrame(()=>{Mt.focus();const Cr=vn+lt.length;Mt.setSelectionRange(Cr,Cr)})},JS=Se=>{if(ke)return;if(b==="dimension"||w==="custom"){Fu(Se.tokenLabel||Se.label||Se.name);return}const lt=K2(Se,H==="A"?(S==null?void 0:S.aggregate)||uh(Se):(E==null?void 0:E.aggregate)||uh(Se)),Mt=rh(Se,lt);if(H==="A"){N(Mt),E||B("B");return}_(Mt),S||B("A")},Oy=(Se,lt)=>{if(!ke){if(Se==="A"&&S){N({...S,aggregate:lt});return}Se==="B"&&E&&_({...E,aggregate:lt})}},uc=async()=>{const Se={};if(y.trim()||(Se.name="Name is required"),w==="custom")T.trim()||(Se.expression="Expression is required"),_1(T).length===0&&(Se.expression=Se.expression||"Expression must include field tokens"),tg(T,Ge).unresolvedTokens.length>0&&(Se.expression=Se.expression||"Expression contains unknown or ambiguous tokens"),Se.expression||(await Ke()).isValid||(Se.expression="Fix validation errors before saving");else if(w==="scale")S||(Se.inputA="Please select a metric for input A"),Number.isNaN(k)&&(Se.constant="Please enter a valid multiplication factor");else{if(S||(Se.inputA="Please select a metric for input A"),E||(Se.inputB="Please select a metric for input B"),S&&E){const lt=S.field.id===E.field.id,Mt=S.aggregate===E.aggregate;lt&&Mt&&(Se.inputs="Inputs A and B must be different metrics")}if(r&&r.role==="metric"){const lt=Nl(r.id);(Nl(S==null?void 0:S.field.id)===lt||Nl(E==null?void 0:E.field.id)===lt)&&(Se.inputs="Cannot reference the field being edited")}}return be&&($==="domain"&&!xe&&(Se.scope="You do not have permission to save to domain"),$==="domain"&&!W.trim()&&(Se.description="Description is required for domain fields"),$==="domain"&&it&&(Se.name="A domain field with this name already exists")),A(Se),Object.keys(Se).length===0},ej=async()=>{const Se={};return y.trim()||(Se.name="Name is required"),T.trim()||(Se.expression="Expression is required"),_1(T).length===0&&(Se.expression=Se.expression||"Expression must include field tokens"),tg(T,Ge).unresolvedTokens.length>0&&(Se.expression=Se.expression||"Expression contains unknown or ambiguous tokens"),Se.expression||(await Ke()).isValid||(Se.expression="Fix validation errors before saving"),be&&($==="domain"&&!Oe&&(Se.scope="You do not have permission to save to domain"),$==="domain"&&!W.trim()&&(Se.description="Description is required for domain fields"),$==="domain"&&it&&(Se.name="A domain field with this name already exists")),A(Se),Object.keys(Se).length===0},tj=()=>{const{orderedTokens:Se,orderedFields:lt}=tg(T,Ge),Mt=lt.filter(qn=>!!qn),vn=j6(T,Se),Qt=tQe(y,vn,Mt,_e,u,r==null?void 0:r.id);return r&&r.role==="groupby"?{...r,...Qt}:Qt},nj=()=>{var vn;if(w==="custom"){const{orderedTokens:Qt,orderedFields:qn}=tg(T,Ge),Cr=qn.filter(Ot=>!!Ot),ki=(r==null?void 0:r.role)==="metric"?((vn=r.calculatedFormula)==null?void 0:vn.inputFields)||[]:[],No=new Map;ki.forEach(Ot=>{const dr=Nl(Ot.id);dr&&No.set(dr,Ot),Ot.qualifiedFieldName&&No.set(Ot.qualifiedFieldName,Ot),Ot.name&&No.set(Ot.name,Ot)});const dc=Cr.map(Ot=>{const dr=Nl(Ot.id),Ei=dr&&No.get(dr)||Ot.qualifiedFieldName&&No.get(Ot.qualifiedFieldName)||No.get(Ot.name),oj=((Ei==null?void 0:Ei.role)==="metric"?Ei.aggregate:void 0)||(Ot.role==="metric"?Ot.aggregate:void 0)||uh(Ot);return Z2(Ot,oj)}),Jn=j6(T,Qt),rn=v6(y,w,null,null,{},u,r==null?void 0:r.id,Jn,void 0,dc);return r&&r.role==="metric"?{...r,...rn}:rn}const Se=S?Z2(S.field,S.aggregate):null,lt=E?Z2(E.field,E.aggregate):null,Mt=v6(y,w,Se,lt,{},u,r==null?void 0:r.id,void 0,w==="scale"?k:void 0);return r&&r.role==="metric"?{...r,...Mt}:Mt},Fy=async Se=>{var Mt,vn,Qt;if(b==="dimension"){const qn=tj();if(Se==="dashboard"){if(!i){A(Cr=>({...Cr,scope:"Dashboard scope is not available"}));return}i(qn),Kr();return}if(Se==="domain"){if(!l){A(rn=>({...rn,scope:"Domain scope is not available"}));return}const Cr=((Mt=qn.calculatedFormula)==null?void 0:Mt.inputFields)||[],ki=new Map,No=Cr.map(rn=>{const Ot=fl(rn.label||rn.name),dr=ki.get(Ot)||0;return ki.set(Ot,dr+1),dr===0?Ot:`${Ot}_${dr+1}`}),dc=((vn=qn.expression)==null?void 0:vn.replace(/\{field_(\d+)\}/g,(rn,Ot)=>`{${No[Number(Ot)]||Ot}}`))||"",Jn=No.reduce((rn,Ot,dr)=>{const Ei=Cr[dr];return Ux(Ei)?rn[Ot]={dimension:Ei.name}:rn[Ot]={dataset:Ei.entityName,field:Ei.name},rn},{});try{await l({name:fl(y),label:y.trim(),description:W.trim(),expression:dc,inputs:Jn,dataType:_e,tags:R.split(",").map(rn=>rn.trim()).filter(Boolean),overwrite:s==="domain",previousName:s==="domain"?r==null?void 0:r.name:void 0})}catch(rn){A(Ot=>({...Ot,scope:(rn==null?void 0:rn.message)||"Failed to save to domain"}));return}Kr();return}o(qn),Kr();return}const lt=nj();if(Se==="dashboard"){if(!i){A(qn=>({...qn,scope:"Dashboard scope is not available"}));return}i(lt),Kr();return}if(Se==="domain"){if(!a){A(Jn=>({...Jn,scope:"Domain scope is not available"}));return}if(!lt.calculatedFormula){A(Jn=>({...Jn,scope:"Calculated formula missing"}));return}const qn=lt.calculatedFormula.inputFields,Cr=new Map,ki=qn.map(Jn=>{const rn=fl(Jn.label||Jn.name),Ot=Cr.get(rn)||0;return Cr.set(rn,Ot+1),Ot===0?rn:`${rn}_${Ot+1}`}),No=((Qt=lt.expression)==null?void 0:Qt.replace(/\{field_(\d+)\}/g,(Jn,rn)=>`{${ki[Number(rn)]||rn}}`))||"",dc=ki.reduce((Jn,rn,Ot)=>{const dr=qn[Ot];return dr.role==="metric"?sc(dr)?Jn[rn]={metric:dr.name}:Jn[rn]={dataset:dr.entityName,field:dr.name,aggregate:dr.aggregate}:Jn[rn]={dataset:dr.entityName,field:dr.name},Jn},{});try{await a({name:fl(y),label:y.trim(),description:W.trim(),expression:No,inputs:dc,tags:R.split(",").map(Jn=>Jn.trim()).filter(Boolean),overwrite:s==="domain",previousName:s==="domain"?r==null?void 0:r.name:void 0})}catch(Jn){A(rn=>({...rn,scope:(Jn==null?void 0:Jn.message)||"Failed to save to domain"}));return}Kr();return}o(lt),Kr()},rj=async()=>{if(ke)return;if(A({}),b==="metric"){if(!await uc())return}else if(!await ej())return;const Se=be?$:s||"card";if(b==="metric"&&Se!=="domain"&&it&&!r){Q(Se),te(!0);return}de(!0);try{await Fy(Se)}finally{de(!1)}},sj=C.useMemo(()=>{if(!We||w==="custom")return"";if(w==="scale"){const Se=Number.isFinite(k)?k:1;return`${G2(S)} x ${Se}`}return`${G2(S)||"A"} ${We.symbol} ${G2(E)||"B"}`},[We,w,S,E,k]);return c.jsxs(c.Fragment,{children:[c.jsxs(Gr,{modal:!1,open:e,onOpenChange:Se=>{Se?t(!0):Kr()},children:[e&&c.jsx("div",{className:"pointer-events-none fixed inset-0 z-40 bg-background/80 backdrop-blur-sm"}),c.jsxs(zr,{className:"max-w-5xl max-h-[90vh] overflow-hidden",onInteractOutside:Se=>{Se.preventDefault()},children:[c.jsxs(Br,{children:[c.jsxs(Vr,{children:[r?"Edit":"Create"," Calculated Field"]}),c.jsx(is,{children:"Build calculated metrics and dimensions using expressions."})]}),c.jsxs("div",{className:"grid h-[70vh] min-h-0 grid-cols-[320px_1fr] gap-6",children:[c.jsx(sQe,{groups:Yt,searchTerm:Y,onSearchTermChange:q,onFieldClick:JS,selectedFieldIds:zt,disabled:ke}),c.jsxs("div",{className:"flex h-full min-h-0 flex-col gap-4 overflow-y-auto pr-2",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Field Type"}),c.jsx(rQe,{value:b,onChange:un,disabled:ke||!!r,options:h||["metric","dimension"]})]}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"calculated-name",children:"Name"}),c.jsx(mn,{id:"calculated-name",value:y,onChange:Se=>v(Se.target.value),placeholder:"e.g., Profit Margin",className:F.name?"border-red-500":"",disabled:ke}),F.name&&c.jsx("p",{className:"text-xs text-red-500",children:F.name})]}),b==="metric"&&c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Operation"}),c.jsx(oQe,{value:w,onChange:Dn,allowCustom:!0,disabled:ke}),F.operation&&c.jsx("p",{className:"text-xs text-red-500",children:F.operation})]}),w==="custom"?c.jsxs("div",{className:"space-y-4",children:[c.jsx(C6,{ref:ge,value:T,onChange:Se=>{P(Se),Ce(!1)},onGenerate:()=>G(!0),showGenerate:!!yt&&!ke,disabled:ke}),c.jsx(S6,{onValidate:async()=>{Ce(!0),await Ke()},isValidating:kt,validationResult:Be,fallbackResult:et,error:pe,showFallback:ce,disabled:ke}),F.expression&&c.jsx("p",{className:"text-xs text-red-500",children:F.expression})]}):c.jsxs("div",{className:"space-y-3",children:[c.jsx(ae,{children:"Inputs"}),c.jsx(w6,{label:"A",input:S,availableFields:Ge,excludeFieldIds:r?[r.id]:void 0,onFieldSelect:Se=>{const lt=K2(Se,(S==null?void 0:S.aggregate)||uh(Se));N(rh(Se,lt))},onAggregateChange:Se=>Oy("A",Se),onRemove:()=>N(null),onActivate:()=>B("A"),allowMedian:g,disabled:ke}),F.inputA&&c.jsx("p",{className:"text-xs text-red-500",children:F.inputA}),w!=="scale"&&c.jsxs(c.Fragment,{children:[c.jsx(w6,{label:"B",input:E,availableFields:Ge,excludeFieldIds:r?[r.id]:void 0,onFieldSelect:Se=>{const lt=K2(Se,(E==null?void 0:E.aggregate)||uh(Se));_(rh(Se,lt))},onAggregateChange:Se=>Oy("B",Se),onRemove:()=>_(null),onActivate:()=>B("B"),allowMedian:g,disabled:ke}),F.inputB&&c.jsx("p",{className:"text-xs text-red-500",children:F.inputB})]}),w==="scale"&&c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{htmlFor:"constantFactor",children:"Multiplication Factor"}),c.jsx(mn,{id:"constantFactor",type:"number",step:"any",value:Number.isNaN(k)?"":k,onChange:Se=>M(Se.target.value===""?Number.NaN:Number(Se.target.value)),className:F.constant?"border-red-500":"",placeholder:"e.g., 0.15",disabled:ke}),F.constant&&c.jsx("p",{className:"text-xs text-red-500",children:F.constant})]}),c.jsx("div",{className:"rounded-md border border-border bg-muted/40 p-3 text-sm font-mono",children:sj||"Select inputs to preview formula"}),F.inputs&&c.jsxs(kI,{variant:"destructive",children:[c.jsx(Yl,{className:"h-4 w-4"}),c.jsx(EI,{children:F.inputs})]})]})]}),b==="dimension"&&c.jsxs("div",{className:"space-y-4",children:[c.jsx(C6,{ref:ge,value:T,onChange:Se=>{P(Se),Ce(!1)},onGenerate:()=>G(!0),showGenerate:!!yt&&!ke,disabled:ke}),c.jsx(S6,{onValidate:async()=>{Ce(!0),await Ke()},isValidating:kt,validationResult:Be,fallbackResult:et,error:pe,showFallback:ce,disabled:ke}),F.expression&&c.jsx("p",{className:"text-xs text-red-500",children:F.expression}),c.jsxs("div",{className:"space-y-2",children:[c.jsx(ae,{children:"Output Type"}),c.jsxs(ot,{value:_e,onValueChange:Se=>I(Se),disabled:ke,children:[c.jsx(nt,{className:"h-9 w-full",children:c.jsx(at,{placeholder:"Select output type"})}),c.jsx(rt,{children:N6.map(Se=>c.jsx(ve,{value:Se.value,children:Se.label},Se.value))})]}),re&&!O&&c.jsxs("p",{className:"text-xs text-muted-foreground",children:["Suggested type: ",re]})]})]}),be&&(De||qe)&&c.jsxs("div",{className:"space-y-3",children:[c.jsx(uQe,{scope:$,onChange:V,showDashboardScope:De,showDomainScope:qe,error:F.scope,disabled:ke}),$==="domain"&&c.jsx(dQe,{description:W,tags:R,onDescriptionChange:L,onTagsChange:z,descriptionError:F.description,disabled:ke})]})]})]}),c.jsxs(os,{children:[c.jsx(se,{variant:"outline",onClick:Kr,children:"Cancel"}),c.jsxs(se,{onClick:rj,disabled:le||ke,children:[r?"Update":"Create"," ",b==="metric"?"Metric":"Dimension"]})]})]})]}),c.jsx(hQe,{open:U,onOpenChange:G,availableFields:Ge,fieldType:b,onExpressionGenerated:async Se=>{P(Se),Ce(!1),Re()},endpoint:yt,dialect:p==null?void 0:p.dialect}),c.jsx(Um,{open:K,onOpenChange:te,children:c.jsxs(Sf,{children:[c.jsxs(jf,{children:[c.jsx(kf,{children:"Name Conflict"}),c.jsxs(Ef,{children:['A domain metric named "',y.trim(),'" already exists. Your local version will override it in this'," ",Z==="dashboard"?"dashboard":"card",". Continue?"]})]}),c.jsxs(Nf,{children:[c.jsx(Tf,{onClick:()=>{Q(null)},children:"Choose Different Name"}),c.jsx(_f,{onClick:async()=>{if(Z){te(!1),de(!0);try{await Fy(Z)}finally{de(!1),Q(null)}}},children:"Continue"})]})]})})]})}function gte({domainId:e}){const{authToken:t,tokenProps:n}=Xe(),[r,s]=C.useState(!1),[o,i]=C.useState(null),a=C.useMemo(()=>{var m;if(!e)return null;const f=(m=n==null?void 0:n.apiServiceUrl)==null?void 0:m.replace(/\/$/,""),h=`/v1/domains/${e}/calculated-metrics`;return f?`${f}${h}`:h},[e,n==null?void 0:n.apiServiceUrl]),l=C.useMemo(()=>{var m;if(!e)return null;const f=(m=n==null?void 0:n.apiServiceUrl)==null?void 0:m.replace(/\/$/,""),h=`/v1/domains/${e}/calculated-dimensions`;return f?`${f}${h}`:h},[e,n==null?void 0:n.apiServiceUrl]),u=C.useCallback(async f=>{if(!a){const h="Domain promotion is not available";throw i(h),new Error(h)}if(!(t!=null&&t.accessToken)){const h="Missing authentication token";throw i(h),new Error(h)}s(!0),i(null);try{return await eo(a,t.accessToken,f)}catch(h){const m=(h==null?void 0:h.error)||(h==null?void 0:h.message)||"Failed to save to domain";throw i(m),new Error(m)}finally{s(!1)}},[a,t==null?void 0:t.accessToken]),d=C.useCallback(async f=>{if(!l){const h="Domain promotion is not available";throw i(h),new Error(h)}if(!(t!=null&&t.accessToken)){const h="Missing authentication token";throw i(h),new Error(h)}s(!0),i(null);try{return await eo(l,t.accessToken,f)}catch(h){const m=(h==null?void 0:h.error)||(h==null?void 0:h.message)||"Failed to save to domain";throw i(m),new Error(m)}finally{s(!1)}},[l,t==null?void 0:t.accessToken]);return{promoteMetric:u,promoteDimension:d,isPromoting:r,error:o}}const bte=C.memo(function({context:t="editor",onFieldSelect:n,inlineFilters:r}={}){var Ke,kt,pe,Re;const[s,o]=C.useState(""),[i,a]=C.useState("all"),[l,u]=C.useState(!1),[d,f]=C.useState(null),[h,m]=C.useState("card"),[p,g]=C.useState("metric");Ae(re=>re.isDevMode);const b=Ae(re=>re.card.dataSource),x=Ae(re=>re.card.config),y=Ae(re=>re.card),v=Ae(re=>re.frame),w=Ae(re=>re.actions.updateCardConfig),j=Ae(re=>re.actions.updateFrame),{userContext:S}=Ps(),{autoJoinMetadata:N}=Ha(y),{columns:E,rawColumnGroups:_,scopedFields:k,dashboardCalculatedFields:M,cardCalculatedFields:T,isLoading:P,error:O,refetch:I}=PA(),$=(b==null?void 0:b.mode)==="semanticDomain"?b.semanticDomainId:void 0,{data:V}=OA($),{promoteMetric:W,promoteDimension:L}=gte({domainId:$}),R=C.useMemo(()=>[...(x==null?void 0:x.groupByColumns)||[],...(x==null?void 0:x.metricColumns)||[],...(x==null?void 0:x.detailColumns)||[]],[x==null?void 0:x.groupByColumns,x==null?void 0:x.metricColumns,x==null?void 0:x.detailColumns]);(kt=(Ke=x==null?void 0:x.joinPlan)==null?void 0:Ke.baseEntity)==null||kt.name,(Re=(pe=N==null?void 0:N.resolvedJoinPlan)==null?void 0:pe.baseEntity)==null||Re.name,Qee();const z=t==="editor",F=(S==null?void 0:S.type)==="organization",A=z?k:E,H=_,B=s.toLowerCase(),Y=(x==null?void 0:x.metricColumns)||[],q=(x==null?void 0:x.groupByColumns)||[],U=C.useCallback(async re=>{await W(re),I()},[W,I]),G=C.useCallback(async re=>{await L(re),I()},[L,I]),Z=re=>re.name.toLowerCase().includes(B)||re.dataType.toLowerCase().includes(B)||re.label&&re.label.toLowerCase().includes(B)||re.qualifiedEntityName&&re.qualifiedEntityName.toLowerCase().includes(B),Q=A.filter(Z),K=re=>{if(re.role==="metric"&&sc(re)||re.role==="groupby"&&re.expression)return"calculated";if(re.dataType==="number"||re.dataType==="integer"||re.dataType==="float"||re.dataType==="decimal"||re.dataType==="currency")return"metrics";const _e=yr(re.dataType);return["date","string","boolean"].includes(_e)?"dimensions":_e==="number"?"metrics":"dimensions"},te=re=>{const _e=re.filter(Z);return i==="all"?_e:_e.filter(We=>K(We)===i)},le=i==="all"?Q:Q.filter(re=>K(re)===i),de=z?[...M,...T]:[],ce=z?te(de):[],ge=te(E).reduce((re,_e)=>{const We=_e.qualifiedEntityName||"Other Fields";return re[We]||(re[We]={label:cb(_e.entityName),fields:[]}),re[We].fields.push(_e),re},{}),he=re=>re.id||`${re.entityName}-${re.qualifiedEntityName}-${re.name}-${re.role||"field"}`,me=C.useMemo(()=>{const re=new Map;return(z?k:E).forEach(We=>{re.set(he(We),ED(We,{joinabilityMap:(V==null?void 0:V.joinabilityMap)||null,selectedFields:R,cardConfig:x,autoJoinMetadata:N}))}),re},[z,k,E,V==null?void 0:V.joinabilityMap,R,x,N]),oe=z?[{key:"scope-calculated",label:"Calculated Fields",fields:ce}].filter(re=>re.fields.length>0):[],fe=[...oe.map(re=>re.key),...Object.keys(ge)],Me=Q.filter(re=>K(re)==="dimensions").length,ke=Q.filter(re=>K(re)==="metrics").length,ie=Q.filter(re=>K(re)==="calculated").length,xe=Q.length>0&&t!=="inline-filter",Oe=t==="inline-filter"?"w-full":"w-[290px]";if(P)return c.jsx("div",{className:X("flex h-full flex-col items-center justify-center py-8",Oe),children:c.jsx(fu,{size:"md",color:"muted","aria-label":"Loading data"})});if(O)return c.jsxs("div",{className:X("flex h-full flex-col items-center justify-center py-8",Oe),children:[c.jsx($l,{className:"mb-4 h-12 w-12 text-red-300"}),c.jsx("p",{className:"mb-2 text-sm text-red-500",children:"Error loading fields"}),c.jsx("p",{className:"px-4 text-center text-xs text-red-400",children:O.message||"Failed to load column data"})]});if(!b||!b.selectedEntities||b.selectedEntities.length===0)return c.jsxs("div",{className:X("flex flex-col items-center justify-center py-8 text-center",Oe),children:[c.jsx($l,{className:"mb-4 h-12 w-12 text-gray-300"}),c.jsx("p",{className:"mb-2 text-sm text-gray-500",children:"No data source selected"}),c.jsx("p",{className:"px-4 text-xs text-gray-400",children:t==="filter"||t==="inline-filter"?"Configure a data source for this card to see available fields":"Select a table, view, or dataset from the data source panel to see available fields"})]});const be=t==="inline-filter"?"px-3 pb-3":"px-6 pb-6",De=t==="inline-filter"?"overflow-hidden":"",qe=re=>re!=null&&re.startsWith("card-source-")?re.replace("card-source-",""):re,He=(re,_e,We)=>{const it=qe(re.id),zt=qe(_e.id);return it&&zt&&it===zt?!0:!it||!zt||We!=null&&We.allowNameFallback?re.name===_e.name&&re.role===_e.role:!1},Fe=(re,_e,We)=>re.findIndex(it=>He(it,_e,We)),yt=re=>{if(!v)return re;const _e=v.calculatedFields||[],We=Fe(_e,re),it=We>=0&&_e[We].id!==re.id?{...re,id:_e[We].id}:re,zt=We>=0?_e.map((un,Dn)=>Dn===We?it:un):[..._e,it];return j({calculatedFields:zt}),it},je=(re,_e,We,it)=>{var un;const zt=Fe(re,We||_e,it);if(zt>=0){const Dn=(un=re[zt])==null?void 0:un.id,Kr=Dn&&Dn!==_e.id?{..._e,id:Dn}:_e;return re.map((Hr,zs)=>zs===zt?Kr:Hr)}return[...re,_e]},dt=re=>{if(re.role==="metric")return Y.find(_e=>He(_e,re));if(re.role==="groupby")return q.find(_e=>He(_e,re))},Ct=re=>{var _e;return(_e=v==null?void 0:v.calculatedFields)==null?void 0:_e.find(We=>He(We,re))},Ye=re=>{if(re.role==="metric"){w(y.id,{metricColumns:Y.filter(_e=>!He(_e,re,{allowNameFallback:re.fieldScope==="dashboard"}))});return}re.role==="groupby"&&w(y.id,{groupByColumns:q.filter(_e=>!He(_e,re,{allowNameFallback:re.fieldScope==="dashboard"}))})},Yt=re=>{if(!v)return;const _e=(v.calculatedFields||[]).filter(We=>!He(We,re));j({calculatedFields:_e})},Ge=re=>{if(!F)return;if(re.fieldScope==="domain"){f(re),m("domain"),g(re.role==="metric"?"metric":"dimension"),u(!0);return}if(re.fieldScope==="dashboard"){const We=Ct(re);if(!We)return;f(We),m("dashboard"),g(We.role==="metric"?"metric":"dimension"),u(!0);return}const _e=dt(re);_e&&(f(_e),m("card"),g(_e.role==="metric"?"metric":"dimension"),u(!0))},et=re=>{if(F&&re.fieldScope!=="domain"){if(re.fieldScope==="dashboard"){Yt(re),Ye(re);return}Ye(re)}},Be=re=>{if(!F)return null;const _e=re.fieldScope==="domain";return c.jsxs(wf,{children:[c.jsx(Cf,{asChild:!0,children:c.jsx(se,{variant:"ghost",size:"icon",className:"h-6 w-6","aria-label":"Calculated field actions",children:c.jsx(f8,{className:"h-4 w-4"})})}),c.jsxs(yu,{align:"end",className:"w-40",children:[c.jsx(po,{onClick:()=>Ge(re),children:"Edit"}),c.jsx(po,{disabled:_e,onClick:()=>et(re),children:"Delete"})]})]})};return c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:X("mt-2 flex h-full w-full grow flex-col gap-2",be,De),children:[c.jsxs("div",{className:"mt-1 flex-shrink-0 space-y-2",children:[A.length>0&&c.jsxs("div",{className:"relative",children:[c.jsx(Ko,{className:"absolute left-3 top-1/2 size-3.5 -translate-y-1/2 transform text-muted-foreground"}),c.jsx(jn,{className:"pl-10 pr-10",type:"text",placeholder:"Search fields...",value:s,onChange:re=>o(re.target.value)}),s&&c.jsx("button",{className:"absolute right-3 top-1/2 -translate-y-1/2 transform text-muted-foreground hover:text-foreground",onClick:()=>o(""),type:"button",children:c.jsx(St,{className:"size-3.5"})})]}),xe&&c.jsx(Os,{defaultValue:"all",value:i,onValueChange:re=>a(re),className:"mb-4",children:c.jsxs(ys,{className:"grid h-9 w-full grid-cols-4",children:[c.jsxs(nn,{value:"all",className:"text-xs",children:["All",c.jsx("span",{className:"ml-2 text-xs font-semibold",children:Q.length})]}),c.jsxs(nn,{value:"dimensions",className:"text-xs",children:[c.jsx(U1,{className:"size-4 shrink-0"}),c.jsx("span",{className:"ml-2 text-xs font-semibold",children:Me})]}),c.jsxs(nn,{value:"metrics",className:"text-xs",children:[c.jsx(Am,{className:"size-4 shrink-0"}),c.jsx("span",{className:"ml-2 text-xs font-semibold",children:ke})]}),c.jsxs(nn,{value:"calculated",className:"text-xs",children:[c.jsx(OT,{className:"size-4 shrink-0"}),c.jsx("span",{className:"ml-2 text-xs font-semibold",children:ie})]})]})}),t==="editor"&&i==="calculated"&&F&&c.jsx("div",{className:"flex items-center justify-end gap-2",children:c.jsxs(se,{size:"sm",variant:"outline",className:"w-full",onClick:()=>{f(null),m("card"),g("dimension"),u(!0)},children:[c.jsx(Tr,{className:"mr-2 h-3.5 w-3.5"}),"Add calculated field"]})})]}),c.jsxs(tl,{className:"min-h-0 flex-1",children:[c.jsxs(BA,{type:"multiple",defaultValue:fe,className:"space-y-2",children:[oe.map(re=>c.jsxs(rx,{value:re.key,className:"border-none",children:[c.jsx(sx,{className:"group rounded-md px-2.5 py-2 text-muted-foreground hover:bg-muted hover:no-underline",children:c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"max-w-[190px] truncate text-ellipsis whitespace-nowrap text-sm font-medium text-primary",children:re.label}),c.jsx(Ve,{variant:"secondary",className:"rounded-full text-xs text-muted-foreground group-hover:bg-background",children:re.fields.length})]})}),c.jsx(ox,{className:"pb-2",children:c.jsx("div",{className:"space-y-1",children:re.fields.map(_e=>{const We=me.get(he(_e)),it=t==="editor"&&i==="calculated";return c.jsx(y6,{field:_e,context:t,fieldState:We,onFieldSelect:n,inlineFilters:t==="inline-filter"?r:void 0,actions:it?Be(_e):void 0},_e.id)})})})]},re.key)),Object.entries(ge).map(([re,_e])=>{const We=H.find(zt=>zt.entityName===re)||{entityName:re,label:_e.label},it=re===Qh?"Domain Calculated Fields":We.label||We.entityName;return c.jsxs(rx,{value:re,className:"border-none",children:[c.jsx(sx,{className:"group rounded-md px-2.5 py-2 text-muted-foreground hover:bg-muted hover:no-underline",children:c.jsxs("div",{title:it,className:"flex items-center gap-2",children:[c.jsx("span",{className:"max-w-[190px] truncate text-ellipsis whitespace-nowrap text-sm font-medium text-primary",children:it}),c.jsx(Ve,{variant:"secondary",className:"rounded-full text-xs text-muted-foreground group-hover:bg-background",children:_e.fields.length})]})}),c.jsx(ox,{className:"pb-2",children:c.jsx("div",{className:"space-y-1",children:_e.fields.map(zt=>{const un=me.get(he(zt));return c.jsx(y6,{field:zt,context:t,fieldState:un,onFieldSelect:n,inlineFilters:t==="inline-filter"?r:void 0},zt.id)})})})]},re)})]}),A.length===0&&c.jsxs("div",{className:"py-8 text-center text-sm text-gray-500",children:[c.jsx("p",{children:"No fields found for selected data source"}),c.jsx("p",{className:"mt-1 text-xs text-gray-400",children:t==="filter"?"The selected data source has no available fields":"Try selecting different data sources"})]}),A.length>0&&le.length===0&&c.jsx("div",{className:"py-4 text-center text-sm text-gray-500",children:"No fields found for this category"}),c.jsx(bi,{orientation:"horizontal"}),c.jsx(bi,{orientation:"vertical"})]})]}),c.jsx(pte,{open:l,onOpenChange:re=>{u(re),re||(f(null),m("card"))},availableFields:k,existingField:d??void 0,existingFieldScope:h,initialFieldType:p,onSave:re=>{if(re.role==="metric"){if(d&&h==="card"){w(y.id,{metricColumns:je(Y,re,d)});return}w(y.id,{metricColumns:je(Y,re)});return}if(d&&h==="card"){w(y.id,{groupByColumns:je(q,re,d)});return}w(y.id,{groupByColumns:je(q,re)})},onSaveToDashboard:re=>{const _e=!!(d&&h==="dashboard"),We=_e?d:void 0;if(re.role==="metric"){const zt=yt(re);w(y.id,{metricColumns:je(Y,zt,We,{allowNameFallback:_e})});return}const it=yt(re);w(y.id,{groupByColumns:je(q,it,We,{allowNameFallback:_e})})},cardId:y.id,onPromoteMetricToDomain:$?U:void 0,onPromoteDimensionToDomain:$?G:void 0,domainId:$})]})}),xte=C.memo(function({context:t="editor"}={}){return c.jsxs("div",{"data-content":"fields-section",className:"flex h-full grow flex-col items-center overflow-hidden",children:[" ",c.jsx(bte,{context:t})," "]})});function yte(){const e=Ae(i=>i.card.dataSource),{setSelectedConnectionId:t,setSelectedDatabaseName:n,setSelectedSchemaName:r,setSelectedTableName:s,setSelectedDatamodelId:o}=cr();C.useEffect(()=>{var m;if(!e)return;const{tableName:i,schemaName:a,databaseName:l,connectionId:u}=FA(e),d=(m=e.selectedEntities)==null?void 0:m[0],h=(d==null?void 0:d.type)==="model"&&"id"in d?d.id:"";t(u||""),n(l||""),r(a||""),s(i||""),o(h)},[e,t,n,r,s,o])}function DQe(){yte();const e=J(l=>l.selectedSheetId),t=J(l=>l.selectedFrameId),n=J(l=>l.dashboard),r=J(l=>l.actions.getSelectedFrame),{setSelectedFrameId:s}=Wt(),{setCard:o}=cr(),i=Ae(l=>l.card.dataSource);return C.useEffect(()=>{var u,d;let l=r();if(!l){const f=(u=n==null?void 0:n.sheets)==null?void 0:u.find(m=>m.id===e),h=(d=f==null?void 0:f.frames)==null?void 0:d[0];h&&(s(h.id),l=h)}if(l){const f=l.cards.find(h=>h.id===l.activeCardId);f&&o(f)}},[r,e,t,n,s,o]),{hasEntities:!!(i!=null&&i.selectedEntities&&i.selectedEntities.length>0)}}function IQe(){const e=J(o=>o.dashboard.filterLayout),{setFilterLayout:t}=Wt(),n=(e==null?void 0:e.displayMode)||"canvas",r=(e==null?void 0:e.toolbarWrap)??!1,s=(e==null?void 0:e.showDownloadButton)??!1;return c.jsxs(ms,{children:[c.jsx(ps,{asChild:!0,children:c.jsx(se,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0","aria-label":"Filter display settings",children:c.jsx(Ll,{className:"h-4 w-4"})})}),c.jsx(gs,{className:"w-[280px]",align:"end",children:c.jsxs("div",{className:"space-y-4",children:[c.jsxs("div",{children:[c.jsx("h4",{className:"mb-3 text-sm font-medium",children:"Filter Display"}),c.jsxs(Qs,{value:n,onValueChange:o=>t({displayMode:o}),className:"space-y-2",children:[c.jsxs("div",{className:"flex items-start space-x-3",children:[c.jsx(bn,{value:"canvas",id:"canvas",className:"mt-0.5"}),c.jsxs("div",{className:"grid gap-0.5",children:[c.jsx(ae,{htmlFor:"canvas",className:"cursor-pointer font-normal",children:"Canvas Cards"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Filters as draggable, resizable cards on the dashboard"})]})]}),c.jsxs("div",{className:"flex items-start space-x-3",children:[c.jsx(bn,{value:"toolbar",id:"toolbar",className:"mt-0.5"}),c.jsxs("div",{className:"grid gap-0.5",children:[c.jsx(ae,{htmlFor:"toolbar",className:"cursor-pointer font-normal",children:"Toolbar"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Compact horizontal toolbar below dashboard controls"})]})]})]})]}),n==="toolbar"&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"flex items-center space-x-2 border-t pt-4",children:[c.jsx(cn,{id:"wrap",checked:r,onCheckedChange:o=>t({toolbarWrap:o===!0})}),c.jsx(ae,{htmlFor:"wrap",className:"cursor-pointer text-sm font-normal",children:"Wrap filters to multiple lines"})]}),c.jsxs("div",{className:"flex items-center space-x-2 pt-2",children:[c.jsx(cn,{id:"download",checked:s,onCheckedChange:o=>t({showDownloadButton:o===!0})}),c.jsx(ae,{htmlFor:"download",className:"cursor-pointer text-sm font-normal",children:"Show download button"})]})]}),c.jsx("p",{className:"border-t pt-3 text-xs text-muted-foreground",children:"Individual filters can override this setting in their configuration."})]})})]})}function RQe(){const e=J(n=>n.actions.setShowFilters),{hasEntities:t}=DQe();return c.jsxs("section",{className:"relative flex min-w-[320px] grow flex-col overflow-hidden border-l",children:[c.jsxs("div",{className:"mt-4 flex items-center justify-between gap-2 px-4",children:[c.jsx(ae,{className:"px-2 text-base",children:"Dashboard Filters"}),c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx(IQe,{}),c.jsx(se,{onClick:()=>e(!1),className:"h-7 w-7 p-0",variant:"ghost",children:c.jsx(eX,{})})]})]}),!t&&c.jsxs("div",{className:"flex h-full flex-col items-center justify-center px-6 py-12 text-center",children:[c.jsx($l,{className:"mb-4 h-12 w-12 text-muted-foreground/50"}),c.jsx("h3",{className:"mb-2 text-sm font-medium text-foreground",children:"No fields configured"}),c.jsx("p",{className:"text-xs text-muted-foreground",children:"Please configure a data source for this card to enable filtering"})]}),t&&c.jsx("div",{className:"flex grow overflow-y-auto",children:c.jsx(Ny,{collisionDetection:Cy,children:c.jsx(ky,{items:[],strategy:WR,children:c.jsx(xte,{context:"filter"})})})})]})}function AQe(){const e=J(r=>r.dashboard.filters),t=J(r=>r.theme),n=e==null?void 0:e.filter(r=>r.hide);return n!=null&&n.length?c.jsx("div",{className:X("mb-1 flex items-center gap-2 border-y px-0.5 pb-0.5",{"bg-[repeating-linear-gradient(45deg,_#ffffff_0_3px,_#f3f3f3_3px_6px)]":t==="light","bg-[repeating-linear-gradient(45deg,_#18171d_0_3px,_#272729_3px_6px)]":t==="dark"}),children:n==null?void 0:n.map(r=>c.jsxs("div",{className:"flex min-w-[250px] max-w-fit flex-col gap-1 p-2",children:[c.jsx($R,{filter:r}),c.jsx(Sp,{filter:r})]},r.id))}):null}function PQe(){const e=J(r=>r.showFilters),t=J(r=>r.isVisualEditing),n=J(r=>r.isDashboardEditing);return c.jsxs("div",{role:"dashboard-plus-main",className:X("",{"max-h-0 overflow-hidden":t,"flex grow overflow-hidden":!t}),children:[c.jsxs("section",{className:"flex grow flex-col overflow-y-auto",children:[n&&c.jsx(AQe,{}),c.jsx(Wee,{})]}),e&&c.jsx("div",{role:"filter-aside-container",className:"flex overflow-hidden",children:c.jsx(RQe,{})})]})}const OQe=C.lazy(()=>Promise.resolve().then(()=>require("./dashboard-controls-ehLCW0nC.js"))),FQe=C.lazy(()=>Promise.resolve().then(()=>require("./edit-dashboard-visual-_s5p9j5B.js"))),$Qe=C.lazy(()=>Promise.resolve().then(()=>require("./dashboard-json-BlY0uqcf.js"))),LQe=C.lazy(()=>Promise.resolve().then(()=>require("./resource-management-panel-XB3llD7A.js")).then(e=>({default:e.ResourceManagementPanel})));function zQe({showControls:e=!1,showFooter:t=!0,...n}){const r=J(l=>l.isDashboardPanelOpen),s=J(l=>l.isVisualEditing),o=J(l=>l.showDashboardJSON),i=J(l=>l.actions.setIsDashboardPanelOpen),{preferences:a}=n;return c.jsx(rl,{FallbackComponent:gS,children:c.jsxs(PT,{dashboardProps:n,children:[c.jsx(tde,{}),c.jsx(AA,{componentType:"surfboard",componentId:n.id}),c.jsx(RA,{children:c.jsxs(qee,{preferences:a,children:[o&&c.jsx(C.Suspense,{fallback:null,children:c.jsx($Qe,{})}),c.jsxs("main",{className:"relative flex h-full w-full flex-col overflow-hidden",children:[e&&c.jsx(C.Suspense,{fallback:null,children:c.jsx(OQe,{})}),c.jsxs("div",{className:"flex grow overflow-hidden",children:[r&&c.jsx(C.Suspense,{fallback:null,children:c.jsx(LQe,{isOpen:r,onClose:()=>i(!1),variant:"inline"})}),c.jsx("div",{className:"flex min-w-0 flex-1",children:c.jsxs(JD,{...n,type:"dashboard",children:[s&&c.jsx(C.Suspense,{fallback:null,children:c.jsx(FQe,{})}),c.jsx(PQe,{})]})})]})]})]})})]})})}var BQe=Object.defineProperty,VQe=(e,t,n)=>t in e?BQe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,fv=(e,t,n)=>VQe(e,typeof t!="symbol"?t+"":t,n);const HQe={stringify:e=>e?"true":"false",parse:e=>/^[ty1-9]/i.test(e)},UQe={stringify:e=>e.name,parse:(e,t,n)=>{const r=(()=>{if(typeof window<"u"&&e in window)return window[e];if(typeof global<"u"&&e in global)return global[e]})();return typeof r=="function"?r.bind(n):void 0}},WQe={stringify:e=>JSON.stringify(e),parse:e=>JSON.parse(e)};function qQe(e){return e.replace(/([a-z0-9])([A-Z])/g,(t,n,r)=>`${n}-${r.toLowerCase()}`)}function vte(e){return e.replace(/[-:]([a-z])/g,(t,n)=>`${n.toUpperCase()}`)}const YQe={stringify:e=>e.name,parse:(e,t,n)=>{const r=(()=>{const s=vte(t);if(typeof n<"u"&&s in n.container)return n.container[s]})();return typeof r=="function"?r.bind(n):void 0}},GQe={stringify:e=>`${e}`,parse:e=>parseFloat(e)},KQe={stringify:e=>e,parse:e=>e},X2={string:KQe,number:GQe,boolean:HQe,function:UQe,method:YQe,json:WQe},ng=Symbol.for("r2wc.render"),hv=Symbol.for("r2wc.connected"),Ku=Symbol.for("r2wc.context"),To=Symbol.for("r2wc.props");function ZQe(e,t,n){var r,s,o;t.props||(t.props=e.propTypes?Object.keys(e.propTypes):[]),t.events||(t.events=[]);const i=Array.isArray(t.props)?t.props.slice():Object.keys(t.props),a=Array.isArray(t.events)?t.events.slice():Object.keys(t.events),l={},u={},d={},f={};for(const m of i){l[m]=Array.isArray(t.props)?"string":t.props[m];const p=qQe(m);d[m]=p,f[p]=m}for(const m of a)u[m]=Array.isArray(t.events)?{}:t.events[m];class h extends HTMLElement{constructor(){super(),fv(this,o,!0),fv(this,s),fv(this,r,{}),fv(this,"container"),t.shadow?this.container=this.attachShadow({mode:t.shadow}):this.container=this,this[To].container=this.container;for(const p of i){const g=d[p],b=this.getAttribute(g),x=l[p],y=x?X2[x]:null;if(x==="method"){const v=vte(g);Object.defineProperty(this[To].container,v,{enumerable:!0,configurable:!0,get(){return this[To][v]},set(w){this[To][v]=w,this[ng]()}}),this[To][p]=y.parse(b,g,this)}y!=null&&y.parse&&b&&(this[To][p]=y.parse(b,g,this))}for(const p of a)this[To][p]=g=>{const b=p.replace(/^on/,"").toLowerCase();this.dispatchEvent(new CustomEvent(b,{detail:g,...u[p]}))}}static get observedAttributes(){return Object.keys(f)}connectedCallback(){this[hv]=!0,this[ng]()}disconnectedCallback(){this[hv]=!1,this[Ku]&&n.unmount(this[Ku]),delete this[Ku]}attributeChangedCallback(p,g,b){const x=f[p],y=l[x],v=y?X2[y]:null;x in l&&v!=null&&v.parse&&b&&(this[To][x]=v.parse(b,p,this),this[ng]())}[(o=hv,s=Ku,r=To,ng)](){this[hv]&&(this[Ku]?n.update(this[Ku],this[To]):this[Ku]=n.mount(this.container,e,this[To]))}}for(const m of i){const p=d[m],g=l[m];Object.defineProperty(h.prototype,m,{enumerable:!0,configurable:!0,get(){return this[To][m]},set(b){this[To][m]=b;const x=g?X2[g]:null;if(x!=null&&x.stringify){const y=x.stringify(b,p,this);this.getAttribute(p)!==y&&this.setAttribute(p,y)}else this[ng]()}})}return h}function XQe(e,t,n){const r=vne.createRoot(e),s=C.createElement(t,n);return r.render(s),{root:r,ReactComponent:t}}function QQe({root:e,ReactComponent:t},n){const r=C.createElement(t,n);e.render(r)}function JQe({root:e}){e.unmount()}function eJe(e,t={}){return ZQe(e,t,{mount:XQe,update:QQe,unmount:JQe})}const tJe={id:"string",version:"string",authToken:"json",placeholders:"json",defaultFilterValues:"json",currentTheme:"string",customCards:"json",customStyle:"json",onChartElementClicked:"function",onFilterValuesChange:"function",onEvent:"function",onSave:"function",LoadingComponent:"function",ErrorComponent:"function",showAssistant:"boolean",selectedSheetId:"string",eventHandlers:"json",preferences:"json"},nJe=eJe(Yee,{props:tJe});function k6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function rJe(e){if(Array.isArray(e))return e}function sJe(e,t,n){return(t=dJe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oJe(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,s,o,i,a=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(d){u=!0,s=d}finally{try{if(!l&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw s}}return a}}function iJe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
1078
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function E6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function _6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?E6(Object(n),!0).forEach(function(r){sJe(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):E6(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function aJe(e,t){if(e==null)return{};var n,r,s=lJe(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function lJe(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function cJe(e,t){return rJe(e)||oJe(e,t)||fJe(e,t)||iJe()}function uJe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function dJe(e){var t=uJe(e,"string");return typeof t=="symbol"?t:t+""}function fJe(e,t){if(e){if(typeof e=="string")return k6(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k6(e,t):void 0}}function hJe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function M6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?T6(Object(n),!0).forEach(function(r){hJe(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):T6(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function mJe(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(r){return t.reduceRight(function(s,o){return o(s)},r)}}function Tg(e){return function t(){for(var n=this,r=arguments.length,s=new Array(r),o=0;o<r;o++)s[o]=arguments[o];return s.length>=e.length?e.apply(this,s):function(){for(var i=arguments.length,a=new Array(i),l=0;l<i;l++)a[l]=arguments[l];return t.apply(n,[].concat(s,a))}}}function T1(e){return{}.toString.call(e).includes("Object")}function pJe(e){return!Object.keys(e).length}function ax(e){return typeof e=="function"}function gJe(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function bJe(e,t){return T1(t)||eu("changeType"),Object.keys(t).some(function(n){return!gJe(e,n)})&&eu("changeField"),t}function xJe(e){ax(e)||eu("selectorType")}function yJe(e){ax(e)||T1(e)||eu("handlerType"),T1(e)&&Object.values(e).some(function(t){return!ax(t)})&&eu("handlersType")}function vJe(e){e||eu("initialIsRequired"),T1(e)||eu("initialType"),pJe(e)&&eu("initialContent")}function wJe(e,t){throw new Error(e[t]||e.default)}var CJe={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},eu=Tg(wJe)(CJe),mv={changes:bJe,selector:xJe,handler:yJe,initial:vJe};function SJe(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};mv.initial(e),mv.handler(t);var n={current:e},r=Tg(kJe)(n,t),s=Tg(NJe)(n),o=Tg(mv.changes)(e),i=Tg(jJe)(n);function a(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(d){return d};return mv.selector(u),u(n.current)}function l(u){mJe(r,s,o,i)(u)}return[a,l]}function jJe(e,t){return ax(t)?t(e.current):t}function NJe(e,t){return e.current=M6(M6({},e.current),t),t}function kJe(e,t,n){return ax(t)?t(e.current):Object.keys(n).forEach(function(r){var s;return(s=t[r])===null||s===void 0?void 0:s.call(t,e.current[r])}),n}var EJe={create:SJe},_Je={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs"}};function TJe(e){return function t(){for(var n=this,r=arguments.length,s=new Array(r),o=0;o<r;o++)s[o]=arguments[o];return s.length>=e.length?e.apply(this,s):function(){for(var i=arguments.length,a=new Array(i),l=0;l<i;l++)a[l]=arguments[l];return t.apply(n,[].concat(s,a))}}}function MJe(e){return{}.toString.call(e).includes("Object")}function DJe(e){return e||D6("configIsRequired"),MJe(e)||D6("configType"),e.urls?(IJe(),{paths:{vs:e.urls.monacoBase}}):e}function IJe(){console.warn(wte.deprecation)}function RJe(e,t){throw new Error(e[t]||e.default)}var wte={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
|
|
1079
1079
|
You are using deprecated way of configuration.
|
|
1080
1080
|
|
|
1081
1081
|
Instead of using
|
|
@@ -1084,4 +1084,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
1084
1084
|
monaco.config({ paths: { vs: '...' } })
|
|
1085
1085
|
|
|
1086
1086
|
For more please check the link https://github.com/suren-atoyan/monaco-loader#config
|
|
1087
|
-
`},D6=_Je(IJe)(wte),RJe={config:MJe},AJe=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(s){return n.reduceRight(function(o,i){return i(o)},s)}};function Cte(e,t){return Object.keys(t).forEach(function(n){t[n]instanceof Object&&e[n]&&Object.assign(t[n],Cte(e[n],t[n]))}),_6(_6({},e),t)}var PJe={type:"cancelation",msg:"operation is manually canceled"};function Q2(e){var t=!1,n=new Promise(function(r,s){e.then(function(o){return t?s(PJe):r(o)}),e.catch(s)});return n.cancel=function(){return t=!0},n}var OJe=["monaco"],FJe=kJe.create({config:EJe,isInitialized:!1,resolve:null,reject:null,monaco:null}),Ste=lJe(FJe,2),Py=Ste[0],XS=Ste[1];function $Je(e){var t=RJe.config(e),n=t.monaco,r=iJe(t,OJe);XS(function(s){return{config:Cte(s.config,r),monaco:n}})}function LJe(){var e=Py(function(t){var n=t.monaco,r=t.isInitialized,s=t.resolve;return{monaco:n,isInitialized:r,resolve:s}});if(!e.isInitialized){if(XS({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),Q2(J2);if(window.monaco&&window.monaco.editor)return jte(window.monaco),e.resolve(window.monaco),Q2(J2);AJe(zJe,VJe)(HJe)}return Q2(J2)}function zJe(e){return document.body.appendChild(e)}function BJe(e){var t=document.createElement("script");return e&&(t.src=e),t}function VJe(e){var t=Py(function(r){var s=r.config,o=r.reject;return{config:s,reject:o}}),n=BJe("".concat(t.config.paths.vs,"/loader.js"));return n.onload=function(){return e()},n.onerror=t.reject,n}function HJe(){var e=Py(function(n){var r=n.config,s=n.resolve,o=n.reject;return{config:r,resolve:s,reject:o}}),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],function(n){var r=n.m||n;jte(r),e.resolve(r)},function(n){e.reject(n)})}function jte(e){Py().monaco||XS({monaco:e})}function UJe(){return Py(function(e){var t=e.monaco;return t})}var J2=new Promise(function(e,t){return XS({resolve:e,reject:t})}),M1={config:$Je,init:LJe,__getMonacoInstance:UJe},WJe={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},ek=WJe,qJe={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},YJe=qJe;function GJe({children:e}){return C.createElement("div",{style:YJe.container},e)}var KJe=GJe,ZJe=KJe;function XJe({width:e,height:t,isEditorReady:n,loading:r,_ref:s,className:o,wrapperProps:i}){return C.createElement("section",{style:{...ek.wrapper,width:e,height:t},...i},!n&&C.createElement(ZJe,null,r),C.createElement("div",{ref:s,style:{...ek.fullWidth,...!n&&ek.hide},className:o}))}var QJe=XJe,Nte=C.memo(QJe);function JJe(e){C.useEffect(e,[])}var HA=JJe;function eet(e,t,n=!0){let r=C.useRef(!0);C.useEffect(r.current||!n?()=>{r.current=!1}:e,t)}var Fo=eet;function eb(){}function vh(e,t,n,r){return tet(e,r)||net(e,t,n,r)}function tet(e,t){return e.editor.getModel(kte(e,t))}function net(e,t,n,r){return e.editor.createModel(t,n,r?kte(e,r):void 0)}function kte(e,t){return e.Uri.parse(t)}function ret({original:e,modified:t,language:n,originalLanguage:r,modifiedLanguage:s,originalModelPath:o,modifiedModelPath:i,keepCurrentOriginalModel:a=!1,keepCurrentModifiedModel:l=!1,theme:u="light",loading:d="Loading...",options:f={},height:h="100%",width:m="100%",className:p,wrapperProps:g={},beforeMount:b=eb,onMount:x=eb}){let[y,v]=C.useState(!1),[w,j]=C.useState(!0),S=C.useRef(null),N=C.useRef(null),E=C.useRef(null),_=C.useRef(x),k=C.useRef(b),M=C.useRef(!1);HA(()=>{let I=M1.init();return I.then($=>(N.current=$)&&j(!1)).catch($=>($==null?void 0:$.type)!=="cancelation"&&console.error("Monaco initialization: error:",$)),()=>S.current?O():I.cancel()}),Fo(()=>{if(S.current&&N.current){let I=S.current.getOriginalEditor(),$=vh(N.current,e||"",r||n||"text",o||"");$!==I.getModel()&&I.setModel($)}},[o],y),Fo(()=>{if(S.current&&N.current){let I=S.current.getModifiedEditor(),$=vh(N.current,t||"",s||n||"text",i||"");$!==I.getModel()&&I.setModel($)}},[i],y),Fo(()=>{let I=S.current.getModifiedEditor();I.getOption(N.current.editor.EditorOption.readOnly)?I.setValue(t||""):t!==I.getValue()&&(I.executeEdits("",[{range:I.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),I.pushUndoStop())},[t],y),Fo(()=>{var I,$;($=(I=S.current)==null?void 0:I.getModel())==null||$.original.setValue(e||"")},[e],y),Fo(()=>{let{original:I,modified:$}=S.current.getModel();N.current.editor.setModelLanguage(I,r||n||"text"),N.current.editor.setModelLanguage($,s||n||"text")},[n,r,s],y),Fo(()=>{var I;(I=N.current)==null||I.editor.setTheme(u)},[u],y),Fo(()=>{var I;(I=S.current)==null||I.updateOptions(f)},[f],y);let T=C.useCallback(()=>{var V;if(!N.current)return;k.current(N.current);let I=vh(N.current,e||"",r||n||"text",o||""),$=vh(N.current,t||"",s||n||"text",i||"");(V=S.current)==null||V.setModel({original:I,modified:$})},[n,t,s,e,r,o,i]),P=C.useCallback(()=>{var I;!M.current&&E.current&&(S.current=N.current.editor.createDiffEditor(E.current,{automaticLayout:!0,...f}),T(),(I=N.current)==null||I.editor.setTheme(u),v(!0),M.current=!0)},[f,u,T]);C.useEffect(()=>{y&&_.current(S.current,N.current)},[y]),C.useEffect(()=>{!w&&!y&&P()},[w,y,P]);function O(){var $,V,W,L;let I=($=S.current)==null?void 0:$.getModel();a||((V=I==null?void 0:I.original)==null||V.dispose()),l||((W=I==null?void 0:I.modified)==null||W.dispose()),(L=S.current)==null||L.dispose()}return C.createElement(Nte,{width:m,height:h,isEditorReady:y,loading:d,_ref:E,className:p,wrapperProps:g})}var set=ret;C.memo(set);function oet(){let[e,t]=C.useState(M1.__getMonacoInstance());return HA(()=>{let n;return e||(n=M1.init(),n.then(r=>{t(r)})),()=>n==null?void 0:n.cancel()}),e}var iet=oet;function aet(e){let t=C.useRef();return C.useEffect(()=>{t.current=e},[e]),t.current}var cet=aet,pv=new Map;function uet({defaultValue:e,defaultLanguage:t,defaultPath:n,value:r,language:s,path:o,theme:i="light",line:a,loading:l="Loading...",options:u={},overrideServices:d={},saveViewState:f=!0,keepCurrentModel:h=!1,width:m="100%",height:p="100%",className:g,wrapperProps:b={},beforeMount:x=eb,onMount:y=eb,onChange:v,onValidate:w=eb}){let[j,S]=C.useState(!1),[N,E]=C.useState(!0),_=C.useRef(null),k=C.useRef(null),M=C.useRef(null),T=C.useRef(y),P=C.useRef(x),O=C.useRef(),I=C.useRef(r),$=cet(o),V=C.useRef(!1),W=C.useRef(!1);HA(()=>{let z=M1.init();return z.then(F=>(_.current=F)&&E(!1)).catch(F=>(F==null?void 0:F.type)!=="cancelation"&&console.error("Monaco initialization: error:",F)),()=>k.current?R():z.cancel()}),Fo(()=>{var F,A,H,B;let z=vh(_.current,e||r||"",t||s||"",o||n||"");z!==((F=k.current)==null?void 0:F.getModel())&&(f&&pv.set($,(A=k.current)==null?void 0:A.saveViewState()),(H=k.current)==null||H.setModel(z),f&&((B=k.current)==null||B.restoreViewState(pv.get(o))))},[o],j),Fo(()=>{var z;(z=k.current)==null||z.updateOptions(u)},[u],j),Fo(()=>{!k.current||r===void 0||(k.current.getOption(_.current.editor.EditorOption.readOnly)?k.current.setValue(r):r!==k.current.getValue()&&(W.current=!0,k.current.executeEdits("",[{range:k.current.getModel().getFullModelRange(),text:r,forceMoveMarkers:!0}]),k.current.pushUndoStop(),W.current=!1))},[r],j),Fo(()=>{var F,A;let z=(F=k.current)==null?void 0:F.getModel();z&&s&&((A=_.current)==null||A.editor.setModelLanguage(z,s))},[s],j),Fo(()=>{var z;a!==void 0&&((z=k.current)==null||z.revealLine(a))},[a],j),Fo(()=>{var z;(z=_.current)==null||z.editor.setTheme(i)},[i],j);let L=C.useCallback(()=>{var z;if(!(!M.current||!_.current)&&!V.current){P.current(_.current);let F=o||n,A=vh(_.current,r||e||"",t||s||"",F||"");k.current=(z=_.current)==null?void 0:z.editor.create(M.current,{model:A,automaticLayout:!0,...u},d),f&&k.current.restoreViewState(pv.get(F)),_.current.editor.setTheme(i),a!==void 0&&k.current.revealLine(a),S(!0),V.current=!0}},[e,t,n,r,s,o,u,d,f,i,a]);C.useEffect(()=>{j&&T.current(k.current,_.current)},[j]),C.useEffect(()=>{!N&&!j&&L()},[N,j,L]),I.current=r,C.useEffect(()=>{var z,F;j&&v&&((z=O.current)==null||z.dispose(),O.current=(F=k.current)==null?void 0:F.onDidChangeModelContent(A=>{W.current||v(k.current.getValue(),A)}))},[j,v]),C.useEffect(()=>{if(j){let z=_.current.editor.onDidChangeMarkers(F=>{var H;let A=(H=k.current.getModel())==null?void 0:H.uri;if(A&&F.find(B=>B.path===A.path)){let B=_.current.editor.getModelMarkers({resource:A});w==null||w(B)}});return()=>{z==null||z.dispose()}}return()=>{}},[j,w]);function R(){var z,F;(z=O.current)==null||z.dispose(),h?f&&pv.set(o,k.current.saveViewState()):(F=k.current.getModel())==null||F.dispose(),k.current.dispose()}return C.createElement(Nte,{width:m,height:p,isEditorReady:j,loading:l,_ref:M,className:g,wrapperProps:b})}var det=uet,Ete=C.memo(det),fet=Ete;function het({card:e}){var O,I,$,V,W,L,R,z,F,A,H;const[t,n]=C.useState(!1),[r,s]=C.useState([]),{authToken:o}=Xe(),{theme:i}=Rm(),a=_z(o==null?void 0:o.accessToken),l=J(B=>B.themeStyle),u={mode:i||"system",colors:((I=(O=l==null?void 0:l.chart)==null?void 0:O.dataset)==null?void 0:I.backgroundColor)||[]};($=e.customCardPreferences)!=null&&$.inputData;const{getCard:d}=ly(((V=e.customCardPreferences)==null?void 0:V.url)||""),f=((W=e.customCardPreferences)==null?void 0:W.visualType)||"single",h=Ae(B=>B.frame),{setCustomCardPreferences:m}=cr(),{data:p}=Ha(e),g=Vt(B=>B.interactionStates),b=J(B=>{var Y;return(Y=B.dashboard)==null?void 0:Y.id}),x=J(B=>B.dashboard.filters),y=J(B=>B.filterValues),v=J(B=>B.selectedSheetId),w=J(B=>B.inlineFilterValuesMap[e.id]),j=C.useMemo(()=>SZ({card:e,sheetId:v||"",inlineFilterValues:w}),[e,v,w]),{cardFilters:S,cardFilterValues:N,shouldApplyDashboardFilters:E,contextMode:_}=C.useMemo(()=>HM({card:e,interactionStates:g,currentDashboardId:b,filters:x,filterValues:y,selectedSheetId:v}),[e,g,b,x,y,v]),k=C.useCallback((B,Y)=>{s(q=>({...q,[B]:Y}))},[]);if(!((L=e.customCardPreferences)!=null&&L.componentName))return null;const M=d((R=e.customCardPreferences)==null?void 0:R.componentName);function T(B){n(B)}const P=Object.keys(((z=e.customCardPreferences)==null?void 0:z.dataInputCardIds)||{}).map(B=>{var U,G,Z;const Y=(G=(U=e.customCardPreferences)==null?void 0:U.dataInputCardIds)==null?void 0:G[B].cardId,q=(Z=h==null?void 0:h.cards)==null?void 0:Z.find(Q=>Q.id===Y);return q||null});return c.jsx("div",{className:"semaphor-custom mb-3 flex grow basis-0 flex-col space-y-2 overflow-y-auto",children:c.jsxs(C.Suspense,{fallback:c.jsx(c.Fragment,{}),children:[M&&f==="single"&&c.jsx(M,{editing:!0,params:a,theme:u,settings:(F=e.customCardPreferences)==null?void 0:F.settings,onDataChange:k,data:(p==null?void 0:p.records)||[],filters:S,filterValues:[...N||[],...w||[]],inlineFilters:j}),M&&f==="multiple"&&c.jsxs(c.Fragment,{children:[Object.keys(((A=e.customCardPreferences)==null?void 0:A.dataInputCardIds)||{}).map(B=>{var U,G,Z;const Y=(G=(U=e.customCardPreferences)==null?void 0:U.dataInputCardIds)==null?void 0:G[B].cardId,q=(Z=h==null?void 0:h.cards)==null?void 0:Z.find(Q=>Q.id===Y);if(q)return c.jsx(KG,{onLoadingStatus:T,onDataChange:k,dataInputIndex:B,card:q},q.id+B)}),c.jsx("div",{className:"flex flex-col gap-2",children:c.jsx(M,{theme:u,onDataChange:k,settings:P.map(B=>{var Y;return(Y=B==null?void 0:B.customCardPreferences)==null?void 0:Y.settings}),data:P.map(B=>B!=null&&B.id?r==null?void 0:r[B.id]:[]),filters:S,filterValues:[...N||[],...w||[]],inlineFilters:j})})]})]},(H=e.customCardPreferences)==null?void 0:H.componentName)})}const met=C.memo(het,(e,t)=>{var n,r,s,o,i,a;return e.card.id===t.card.id&&e.card.inlineFilters===t.card.inlineFilters&&((n=e.card.customCardPreferences)==null?void 0:n.settings)===((r=t.card.customCardPreferences)==null?void 0:r.settings)&&((s=e.card.customCardPreferences)==null?void 0:s.url)===((o=t.card.customCardPreferences)==null?void 0:o.url)&&((i=e.card.customCardPreferences)==null?void 0:i.componentName)===((a=t.card.customCardPreferences)==null?void 0:a.componentName)});function _te(e){let t=0;for(let r=0;r<e.length;r++)t=e.charCodeAt(r)+((t<<5)-t);return`hsl(${Math.abs(t%360)}, 65%, 45%)`}function Tte(e){const t=e.trim().split(/\s+/);return t.length>1?(t[0][0]+t[1][0]).toUpperCase():e.slice(0,2).toUpperCase()}function Mte({chartType:e,chartName:t,isCustom:n=!1,className:r="h-6 w-6"}){if(!n&&e)return TR(e,r);const s=_R(t);if(s)return C.cloneElement(s,{className:r});const o=Tte(t),i=_te(t);return c.jsx("div",{className:X("flex items-center justify-center rounded text-white font-semibold text-xs",r),style:{backgroundColor:i},children:o})}function pet({chartType:e,className:t="h-4 w-4",customIcon:n,componentName:r}){if(e==="custom"){if(r){const s=_R(r);if(s)return C.cloneElement(s,{className:t});const o=Tte(r),i=_te(r);return c.jsx("div",{className:X("flex items-center justify-center rounded text-white font-semibold text-[10px]",t),style:{backgroundColor:i},children:o})}return c.jsx(C8,{className:t})}return TR(e,t)}const Dte=oa()(nz((e,t)=>({starredCharts:[],isStarred:(n,r)=>t().starredCharts.some(s=>s.type===n&&s.id===r),toggleStar:n=>{e(r=>{const s=r.starredCharts.findIndex(o=>o.type===n.type&&o.id===n.id);return s>=0?{starredCharts:r.starredCharts.filter((o,i)=>i!==s)}:{starredCharts:[...r.starredCharts,n]}})},getStarredChart:(n,r)=>t().starredCharts.find(s=>s.type===n&&s.id===r)}),{name:"semaphor-starred-charts"})),Ite=D.forwardRef(({className:e,...t},n)=>c.jsx(_y,{className:X("peer inline-flex h-[22px] w-[36px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:n,children:c.jsx(YR,{className:X("pointer-events-none block size-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));Ite.displayName=_y.displayName;var Rte=["PageUp","PageDown"],Ate=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],Pte={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},Ip="Slider",[sT,get,bet]=Ex(Ip),[Ote]=Lr(Ip,[bet]),[xet,QS]=Ote(Ip),Fte=D.forwardRef((e,t)=>{const{name:n,min:r=0,max:s=100,step:o=1,orientation:i="horizontal",disabled:a=!1,minStepsBetweenThumbs:l=0,defaultValue:u=[r],value:d,onValueChange:f=()=>{},onValueCommit:h=()=>{},inverted:m=!1,form:p,...g}=e,b=D.useRef(new Set),x=D.useRef(0),v=i==="horizontal"?yet:vet,[w=[],j]=ss({prop:d,defaultProp:u,onChange:M=>{var P;(P=[...b.current][x.current])==null||P.focus(),f(M)}}),S=D.useRef(w);function N(M){const T=ket(w,M);k(M,T)}function E(M){k(M,x.current)}function _(){const M=S.current[x.current];w[x.current]!==M&&h(w)}function k(M,T,{commit:P}={commit:!1}){const O=Met(o),I=Det(Math.round((M-r)/o)*o+r,O),$=Ib(I,[r,s]);j((V=[])=>{const W=jet(V,$,T);if(Tet(W,l*o)){x.current=W.indexOf($);const L=String(W)!==String(V);return L&&P&&h(W),L?W:V}else return V})}return c.jsx(xet,{scope:e.__scopeSlider,name:n,disabled:a,min:r,max:s,valueIndexToChangeRef:x,thumbs:b.current,values:w,orientation:i,form:p,children:c.jsx(sT.Provider,{scope:e.__scopeSlider,children:c.jsx(sT.Slot,{scope:e.__scopeSlider,children:c.jsx(v,{"aria-disabled":a,"data-disabled":a?"":void 0,...g,ref:t,onPointerDown:Ie(g.onPointerDown,()=>{a||(S.current=w)}),min:r,max:s,inverted:m,onSlideStart:a?void 0:N,onSlideMove:a?void 0:E,onSlideEnd:a?void 0:_,onHomeKeyDown:()=>!a&&k(r,0,{commit:!0}),onEndKeyDown:()=>!a&&k(s,w.length-1,{commit:!0}),onStepKeyDown:({event:M,direction:T})=>{if(!a){const I=Rte.includes(M.key)||M.shiftKey&&Ate.includes(M.key)?10:1,$=x.current,V=w[$],W=o*I*T;k(V+W,$,{commit:!0})}}})})})})});Fte.displayName=Ip;var[$te,Lte]=Ote(Ip,{startEdge:"left",endEdge:"right",size:"width",direction:1}),yet=D.forwardRef((e,t)=>{const{min:n,max:r,dir:s,inverted:o,onSlideStart:i,onSlideMove:a,onSlideEnd:l,onStepKeyDown:u,...d}=e,[f,h]=D.useState(null),m=ut(t,v=>h(v)),p=D.useRef(void 0),g=bu(s),b=g==="ltr",x=b&&!o||!b&&o;function y(v){const w=p.current||f.getBoundingClientRect(),j=[0,w.width],N=UA(j,x?[n,r]:[r,n]);return p.current=w,N(v-w.left)}return c.jsx($te,{scope:e.__scopeSlider,startEdge:x?"left":"right",endEdge:x?"right":"left",direction:x?1:-1,size:"width",children:c.jsx(zte,{dir:g,"data-orientation":"horizontal",...d,ref:m,style:{...d.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:v=>{const w=y(v.clientX);i==null||i(w)},onSlideMove:v=>{const w=y(v.clientX);a==null||a(w)},onSlideEnd:()=>{p.current=void 0,l==null||l()},onStepKeyDown:v=>{const j=Pte[x?"from-left":"from-right"].includes(v.key);u==null||u({event:v,direction:j?-1:1})}})})}),vet=D.forwardRef((e,t)=>{const{min:n,max:r,inverted:s,onSlideStart:o,onSlideMove:i,onSlideEnd:a,onStepKeyDown:l,...u}=e,d=D.useRef(null),f=ut(t,d),h=D.useRef(void 0),m=!s;function p(g){const b=h.current||d.current.getBoundingClientRect(),x=[0,b.height],v=UA(x,m?[r,n]:[n,r]);return h.current=b,v(g-b.top)}return c.jsx($te,{scope:e.__scopeSlider,startEdge:m?"bottom":"top",endEdge:m?"top":"bottom",size:"height",direction:m?1:-1,children:c.jsx(zte,{"data-orientation":"vertical",...u,ref:f,style:{...u.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:g=>{const b=p(g.clientY);o==null||o(b)},onSlideMove:g=>{const b=p(g.clientY);i==null||i(b)},onSlideEnd:()=>{h.current=void 0,a==null||a()},onStepKeyDown:g=>{const x=Pte[m?"from-bottom":"from-top"].includes(g.key);l==null||l({event:g,direction:x?-1:1})}})})}),zte=D.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:s,onSlideEnd:o,onHomeKeyDown:i,onEndKeyDown:a,onStepKeyDown:l,...u}=e,d=QS(Ip,n);return c.jsx(Ze.span,{...u,ref:t,onKeyDown:Ie(e.onKeyDown,f=>{f.key==="Home"?(i(f),f.preventDefault()):f.key==="End"?(a(f),f.preventDefault()):Rte.concat(Ate).includes(f.key)&&(l(f),f.preventDefault())}),onPointerDown:Ie(e.onPointerDown,f=>{const h=f.target;h.setPointerCapture(f.pointerId),f.preventDefault(),d.thumbs.has(h)?h.focus():r(f)}),onPointerMove:Ie(e.onPointerMove,f=>{f.target.hasPointerCapture(f.pointerId)&&s(f)}),onPointerUp:Ie(e.onPointerUp,f=>{const h=f.target;h.hasPointerCapture(f.pointerId)&&(h.releasePointerCapture(f.pointerId),o(f))})})}),Bte="SliderTrack",Vte=D.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,s=QS(Bte,n);return c.jsx(Ze.span,{"data-disabled":s.disabled?"":void 0,"data-orientation":s.orientation,...r,ref:t})});Vte.displayName=Bte;var oT="SliderRange",Hte=D.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,s=QS(oT,n),o=Lte(oT,n),i=D.useRef(null),a=ut(t,i),l=s.values.length,u=s.values.map(h=>qte(h,s.min,s.max)),d=l>1?Math.min(...u):0,f=100-Math.max(...u);return c.jsx(Ze.span,{"data-orientation":s.orientation,"data-disabled":s.disabled?"":void 0,...r,ref:a,style:{...e.style,[o.startEdge]:d+"%",[o.endEdge]:f+"%"}})});Hte.displayName=oT;var iT="SliderThumb",Ute=D.forwardRef((e,t)=>{const n=get(e.__scopeSlider),[r,s]=D.useState(null),o=ut(t,a=>s(a)),i=D.useMemo(()=>r?n().findIndex(a=>a.ref.current===r):-1,[n,r]);return c.jsx(wet,{...e,ref:o,index:i})}),wet=D.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:s,...o}=e,i=QS(iT,n),a=Lte(iT,n),[l,u]=D.useState(null),d=ut(t,y=>u(y)),f=l?i.form||!!l.closest("form"):!0,h=Tx(l),m=i.values[r],p=m===void 0?0:qte(m,i.min,i.max),g=Net(r,i.values.length),b=h==null?void 0:h[a.size],x=b?Eet(b,p,a.direction):0;return D.useEffect(()=>{if(l)return i.thumbs.add(l),()=>{i.thumbs.delete(l)}},[l,i.thumbs]),c.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[a.startEdge]:`calc(${p}% + ${x}px)`},children:[c.jsx(sT.ItemSlot,{scope:e.__scopeSlider,children:c.jsx(Ze.span,{role:"slider","aria-label":e["aria-label"]||g,"aria-valuemin":i.min,"aria-valuenow":m,"aria-valuemax":i.max,"aria-orientation":i.orientation,"data-orientation":i.orientation,"data-disabled":i.disabled?"":void 0,tabIndex:i.disabled?void 0:0,...o,ref:d,style:m===void 0?{display:"none"}:e.style,onFocus:Ie(e.onFocus,()=>{i.valueIndexToChangeRef.current=r})})}),f&&c.jsx(Wte,{name:s??(i.name?i.name+(i.values.length>1?"[]":""):void 0),form:i.form,value:m},r)]})});Ute.displayName=iT;var Cet="RadioBubbleInput",Wte=D.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const s=D.useRef(null),o=ut(s,r),i=$x(t);return D.useEffect(()=>{const a=s.current;if(!a)return;const l=window.HTMLInputElement.prototype,d=Object.getOwnPropertyDescriptor(l,"value").set;if(i!==t&&d){const f=new Event("input",{bubbles:!0});d.call(a,t),a.dispatchEvent(f)}},[i,t]),c.jsx(Ze.input,{style:{display:"none"},...n,ref:o,defaultValue:t})});Wte.displayName=Cet;function jet(e=[],t,n){const r=[...e];return r[n]=t,r.sort((s,o)=>s-o)}function qte(e,t,n){const o=100/(n-t)*(e-t);return Ib(o,[0,100])}function Net(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function ket(e,t){if(e.length===1)return 0;const n=e.map(s=>Math.abs(s-t)),r=Math.min(...n);return n.indexOf(r)}function Eet(e,t,n){const r=e/2,o=UA([0,50],[0,r]);return(r-o(t)*n)*n}function _et(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Tet(e,t){if(t>0){const n=_et(e);return Math.min(...n)>=t}return!0}function UA(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function Met(e){return(String(e).split(".")[1]||"").length}function Det(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var Yte=Fte,Iet=Vte,Ret=Hte,Aet=Ute;const Gte=D.forwardRef(({className:e,...t},n)=>c.jsxs(Yte,{ref:n,className:X("relative flex w-full touch-none select-none items-center",e),...t,children:[c.jsx(Iet,{className:"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary",children:c.jsx(Ret,{className:"absolute h-full bg-primary"})}),c.jsx(Aet,{className:"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"})]}));Gte.displayName=Yte.displayName;const Pet={table:jh,bar:z1,line:B1,stackedBar:FT,stackedLine:TZ,scatter:zT,bubble:_Z,pie:LT,doughnut:UT,kpi:ER,treemap:bS,bullet:xS,funnel:kR,tornado:tM,heatmap:H1,range:$T,radar:y8,polarArea:EZ,text:r8,map:b8},Kte=[{id:"table",icon:jh,label:"Table"},{id:"bar",icon:z1,label:"Bar Chart"},{id:"line",icon:B1,label:"Line Chart"},{id:"stackedBar",icon:FT,label:"Stacked Bar",requiresPivot:!1},{id:"pie",icon:LT,label:"Pie Chart"},{id:"doughnut",icon:UT,label:"Donut Chart"},{id:"kpi",icon:ER,label:"KPI"},{id:"treemap",icon:bS,label:"Treemap"},{id:"bullet",icon:xS,label:"Bullet Chart"},{id:"funnel",icon:kR,label:"Funnel Chart"},{id:"tornado",icon:tM,label:"Tornado Chart"},{id:"heatmap",icon:H1,label:"Heatmap"},{id:"range",icon:$T,label:"Range Chart"}],Oet=14;Kte.map(e=>e.id);function Fet({selectedChart:e,onChartChange:t,isDropdownExpanded:n,onToggleDropdown:r}){var y,v;const s=Ae(w=>w.card),{setCardType:o,setCardPreferences:i,setIsDevMode:a}=Ae(w=>w.actions),{setCardCustomCfg:l,setCustomCardPreferences:u,setQueryConfig:d}=cr(),f=((y=s==null?void 0:s.config)==null?void 0:y.pivotByColumns)&&s.config.pivotByColumns.length>0,{starredCharts:h,isStarred:m}=Dte(),{data:p=[]}=OR(),g=C.useMemo(()=>{const w=Kte.filter(_=>!(_.requiresPivot&&!f)),j=h.filter(_=>_.type==="default"?!0:p.some(k=>k.name===_.id)),S=new Set(j.map(_=>_.id)),N=w.filter(_=>!S.has(_.id));return[...j.map(_=>({id:_.id,label:_.name,icon:_.type==="default"?Pet[_.id]:void 0,isCustom:_.type==="custom",isStarred:!0,url:_.url})),...N.map(_=>({id:_.id,label:_.label,icon:_.icon,isCustom:!1,isStarred:!1}))].slice(0,Oet-1)},[h,p,f]),b=w=>{if(w.isCustom){const j=p.find(S=>S.name===w.id);j&&(l(null),i({}),o("custom"),u({type:"component",visualType:"single",url:j.url,componentName:j.name,icon:j.icon,pluginChartType:j.chartType}),d(void 0),t("custom"))}else t(w.id)},x=e==="custom"&&((v=s==null?void 0:s.customCardPreferences)==null?void 0:v.componentName);return c.jsxs("div",{className:"grid grid-cols-7 gap-2",children:[g.map(w=>{var N;const j=w.icon,S=w.isCustom?x&&((N=s==null?void 0:s.customCardPreferences)==null?void 0:N.componentName)===w.id:e===w.id;return c.jsxs(an,{children:[c.jsx(ln,{asChild:!0,children:c.jsxs(se,{variant:"ghost",size:"sm",onClick:()=>b(w),className:X("h-8 w-8 p-0",S&&"bg-accent text-accent-foreground"),children:[j?c.jsx(j,{className:"h-4 w-4"}):c.jsx(Mte,{chartName:w.label,isCustom:!0,className:"h-4 w-4"}),c.jsx("span",{className:"sr-only",children:w.label})]})}),c.jsxs(dn,{side:"bottom",className:"border-foreground/20 bg-foreground text-background",children:[c.jsx("p",{children:w.label}),c.jsx(sm,{className:"fill-foreground"})]})]},`${w.isCustom?"custom":"default"}-${w.id}`)}),r&&c.jsxs(an,{children:[c.jsx(ln,{asChild:!0,children:c.jsx(se,{variant:"ghost",size:"sm",onClick:r,className:"h-8 w-8 p-0","aria-label":n?"Hide all charts":"Show all charts",children:n?c.jsx(Ch,{className:"h-4 w-4"}):c.jsx(kr,{className:"h-4 w-4"})})}),c.jsxs(dn,{side:"bottom",className:"border-foreground/20 bg-foreground text-background",children:[c.jsx("p",{children:n?"Hide dropdown":"Show all charts"}),c.jsx(sm,{className:"fill-foreground"})]})]})]})}const Zte=D.forwardRef(({className:e,icon:t,tooltip:n,...r},s)=>{const o=c.jsx(_y,{className:X("peer inline-flex h-8 w-12 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...r,ref:s,children:c.jsx(YR,{className:X("pointer-events-none block h-7 w-7 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"),children:t&&c.jsx("span",{className:"flex h-full items-center justify-center text-primary",children:t})})});return n?c.jsx(Ln,{children:c.jsxs(an,{delayDuration:0,children:[c.jsx(ln,{asChild:!0,children:c.jsx("span",{className:"inline-flex",children:o})}),c.jsxs(dn,{side:"bottom",className:"border-0 bg-foreground text-background shadow-md",children:[c.jsx(sm,{className:"fill-foreground"}),c.jsx("p",{children:n})]})]})}):o});Zte.displayName="DevModeSwitch";exports.Accordion=BA;exports.AccordionContent=ox;exports.AccordionItem=rx;exports.AccordionTrigger=sx;exports.AggregateTable=iS;exports.AlertDialog=Um;exports.AlertDialogAction=_f;exports.AlertDialogCancel=Tf;exports.AlertDialogContent=Sf;exports.AlertDialogDescription=Ef;exports.AlertDialogFooter=Nf;exports.AlertDialogHeader=jf;exports.AlertDialogTitle=kf;exports.ArrowDown=Ea;exports.ArrowRight=n8;exports.ArrowUp=li;exports.ArrowUpDown=jc;exports.AssistantStatus=NJ;exports.AxisConfigurator=Km;exports.Badge=Ve;exports.Bell=xv;exports.BulletChartIcon=xS;exports.Button=se;exports.CALCULATED_FIELDS_GROUP_NAME=Qh;exports.CALCULATED_FIELD_ENTITY_MARKER=cu;exports.COMPARISON_SUPPORTED_CHART_TYPES=iz;exports.CSS=yi;exports.CalculatedFieldEditor=pte;exports.Calculator=OT;exports.Calendar=Rs;exports.Card=Uo;exports.CardContent=Qi;exports.CardHeader=Zi;exports.CardTitle=Xi;exports.CaretSortIcon=g3e;exports.ChartArea=Ak;exports.ChartColumn=Am;exports.ChartColumnIncreasing=z1;exports.ChartIcon=Mte;exports.ChartJsVisual=ay;exports.ChartLine=B1;exports.ChartQuickSelector=Fet;exports.ChartScatter=zT;exports.ChatInputWithContext=IA;exports.Check=Ar;exports.CheckIcon=JZ;exports.Checkbox=cn;exports.ChevronDown=kr;exports.ChevronRight=ns;exports.ChevronUp=Ch;exports.ChevronsUpDown=VT;exports.Circle=HT;exports.CircleAlert=Yl;exports.CircleCheck=l8;exports.CircleHelp=c8;exports.Clock=Gl;exports.Code=u8;exports.CodeHighlighter=Jc;exports.CodeXml=Ok;exports.Collapsible=bo;exports.CollapsibleContent=yo;exports.CollapsibleTrigger=xo;exports.Command=op;exports.CommandEmpty=ap;exports.CommandGroup=lp;exports.CommandInput=ey;exports.CommandItem=cp;exports.CommandList=ip;exports.CommandSeparator=aW;exports.ComparisonMetadataBadge=WZ;exports.Container=JD;exports.Copy=em;exports.CopyButton=Em;exports.CopyPlus=d8;exports.CreateDashboardDialog=lB;exports.Cross2Icon=eX;exports.CustomFilterPopover=FR;exports.CustomScrollArea=tl;exports.DATE_FORMAT_VALUES=V1e;exports.DEFAULT_HEATMAP_CUSTOM_RANGE=CU;exports.Dashboard=Yee;exports.DashboardActionsMenu=p7;exports.DashboardCard=ZZ;exports.DashboardExportDialog=$X;exports.DashboardPlus=LQe;exports.DashboardWC=tJe;exports.DataSourceDialog=DA;exports.Database=$l;exports.DateRangePicker=lR;exports.DefaultChatTransport=MA;exports.DevModeSwitch=Zte;exports.Dialog=Gr;exports.DialogContent=zr;exports.DialogDescription=is;exports.DialogFooter=os;exports.DialogHeader=Br;exports.DialogTitle=Vr;exports.DialogTrigger=rfe;exports.DisplayPreferencesProvider=AR;exports.DndContext=Ny;exports.Download=bf;exports.DownloadPdf=LX;exports.DragOverlay=kX;exports.DropdownMenu=wf;exports.DropdownMenuCheckboxItem=Mg;exports.DropdownMenuContent=yu;exports.DropdownMenuItem=po;exports.DropdownMenuLabel=Eh;exports.DropdownMenuRadioGroup=_ue;exports.DropdownMenuRadioItem=h7;exports.DropdownMenuSeparator=Kd;exports.DropdownMenuSub=f7;exports.DropdownMenuSubContent=NM;exports.DropdownMenuSubTrigger=jM;exports.DropdownMenuTrigger=Cf;exports.EMPTY_DATA_SOURCE=HS;exports.Editable=Vb;exports.EditableText=mi;exports.EditorCustomVisual=met;exports.EllipsisVertical=Pm;exports.EmailScheduleDialog=MZ;exports.ErrorBoundary=rl;exports.ExportError=tp;exports.ExternalLink=fb;exports.Eye=tu;exports.EyeOff=V1;exports.Fallback=gS;exports.FallbackVisual=pS;exports.FeedbackCategory=hu;exports.FeedbackDialog=Qb;exports.FieldsList=bte;exports.FieldsSection=xte;exports.Filter=Yc;exports.FilterComponent=Sp;exports.FilterHeader=$R;exports.FilterInfo=N_;exports.Ft=fet;exports.GenIcon=Pu;exports.Grid3x3=H1;exports.GripVertical=WT;exports.HEATMAP_PRESET_PALETTES=RE;exports.Hash=m8;exports.House=hb;exports.HoverCard=Wm;exports.HoverCardContent=Mf;exports.HoverCardTrigger=qm;exports.IconButton=Wc;exports.Info=nr;exports.InlineFilterBar=KZ;exports.Input=jn;exports.Input$1=mn;exports.KPICard=Hb;exports.KeyboardSensor=Sy;exports.LOCALE_CURRENCY_PAIRS=ese;exports.Label=ae;exports.Layers=U1;exports.Le=iet;exports.Link=p8;exports.List=YT;exports.LoaderCircle=xn;exports.LoadingDots=fu;exports.METADATA_KEYS=xT;exports.Markdown=UQ;exports.Maximize2=W1;exports.MessageSquareWarning=GT;exports.Minimize2=KT;exports.PYTHON_DEFAULT_CODE=bT;exports.PenLine=$k;exports.Pencil=XT;exports.PendingMessagesDisplay=zee;exports.PiFileCsv=Z5e;exports.PivotMarkerEnum=kU;exports.PivotTableTanstack=by;exports.Placeholders=EJ;exports.Play=x8;exports.Plus=Tr;exports.PointerSensor=Ep;exports.Popover=ms;exports.PopoverContent=gs;exports.PopoverTrigger=ps;exports.PortalTooltipContent=DR;exports.PrintMessages=kJ;exports.Progress=wS;exports.RadioGroup=Qs;exports.RadioGroupItem=bn;exports.RefreshCcw=v8;exports.ResizableHandle=F6e;exports.ResizablePanel=I_;exports.ResizablePanelGroup=aQ;exports.ResourceEditDialog=Eq;exports.ResourceType=Ut;exports.ScrollArea=ro;exports.ScrollBar=bi;exports.Search=Ko;exports.SeedQuestions=Oee;exports.Select=ot;exports.SelectContent=rt;exports.SelectGroup=WD;exports.SelectItem=ve;exports.SelectLabel=BC;exports.SelectTrigger=nt;exports.SelectValue=at;exports.SelectedChartIcon=pet;exports.SemaphorContext=wx;exports.SemaphorContextProvider=PT;exports.SemaphorQueryClient=Gz;exports.SemaphorReadyIndicator=AA;exports.Separator=fs;exports.Settings=Om;exports.Settings2=Ll;exports.Shapes=C8;exports.Share2=Sh;exports.ShareDialog=kq;exports.Skeleton=Xs;exports.Slider=Gte;exports.SmallSwitch=Ite;exports.SortableContext=ky;exports.Sparkles=q1;exports.Square=S8;exports.SquarePen=Y1;exports.Star=JT;exports.Table2=jh;exports.TableSkeleton=UZ;exports.TableVisual=lf;exports.Tabs=Os;exports.TabsContent=pr;exports.TabsList=ys;exports.TabsTrigger=nn;exports.Tag=j8;exports.TbChartTreemap=bS;exports.TextCard=Sm;exports.Textarea=vu;exports.Toggle=xy;exports.Tooltip=an;exports.TooltipArrow=sm;exports.TooltipContent=dn;exports.TooltipProvider=Ln;exports.TooltipTrigger=ln;exports.Trash2=ec;exports.TreePalm=nM;exports.TrendingUp=Yd;exports.TriangleAlert=jx;exports.Type=Lk;exports.UXProvider=RA;exports.User=Kl;exports.UserPlus=N8;exports.Users=Pr;exports.X=St;exports.areEntitiesJoined=_U;exports.arrayMove=_p;exports.calculateFieldState=ED;exports.canUserAccessVisuals=s3e;exports.canUserCreateDashboards=r3e;exports.canUserEdit=e3e;exports.canUserManageDashboards=n3e;exports.canUserManageGroups=o3e;exports.canUserUseFilters=t3e;exports.cancelExport=aCe;exports.chartSupportsDataLabels=yH;exports.chartSupportsLegend=bH;exports.chartTypes=yS;exports.cleanupIncompleteMessages=Dq;exports.cleanupKpiMetricComparisonMode=Kee;exports.cloneDeep=qd;exports.cloneFrameWithNewIds=NR;exports.closestCenter=Cy;exports.cn=X;exports.colors=$n;exports.createChartConfig=ND;exports.createEmptyKpiConfig=hhe;exports.createExport=FU;exports.createLucideIcon=we;exports.createSlot=Nx;exports.createSqlGenConfig=CT;exports.de=Ete;exports.dedup=tXe;exports.downloadPdf=jY;exports.emitDashboardLoad=Cre;exports.emitDashboardUnload=Sre;exports.fieldAlreadyExists=MU;exports.fmt=ab;exports.formatDisplayFormula=JXe;exports.formatFileSize=uCe;exports.getAutoDetectedChartIcon=_R;exports.getCacheConfig=O1;exports.getCanvasBackgroundColor=Hi;exports.getChartGridStyle=Ihe;exports.getColorForValue=Zk;exports.getColumnDataType=ise;exports.getContrastColor=wo;exports.getDataType=yr;exports.getDateFormatOptionsForGranularity=IX;exports.getDefaultAxisConfig=Qk;exports.getDefaultChartColors=Df;exports.getDefaultDataLabelsConfig=Vx;exports.getDefaultFilterSql=wK;exports.getDefaultLegendConfig=lD;exports.getDisplayName=$ee;exports.getDownloadUrl=iCe;exports.getEntityDetails=lXe;exports.getEntityIcon=N1;exports.getErrorMessage=Aee;exports.getExportStatus=oCe;exports.getExports=sCe;exports.getFieldIconComponent=_m;exports.getFilterCount=r1;exports.getFilterValueType=zi;exports.getFormattedTableNameForQuery=qv;exports.getKeys=zn;exports.getMetricDisplayLabel=K1e;exports.getNewField=RU;exports.getObjectDiff=Kz;exports.getQualifiedTableName=ST;exports.getRoleBasedDisplayOverrides=GZ;exports.getSql=wT;exports.handleAggregationChange=k_;exports.handleAggregationLabelChange=qZ;exports.hasValidCardConfig=Ql;exports.horizontalListSortingStrategy=UR;exports.hslStringToHex=Rhe;exports.invalidateToken=Kse;exports.isBooleanDataType=vT;exports.isCalculatedDimension=Ux;exports.isCalculatedField=Pw;exports.isCalculatedMetric=sc;exports.isColumnInSqlGen=ase;exports.isDateDataType=Ki;exports.isDefaultColor=whe;exports.isDevEnv=gT;exports.isExportComplete=cCe;exports.isExportInProgress=lCe;exports.isInAiScopeArray=eXe;exports.isNumberDataType=Gi;exports.isObjectEmpty=Wse;exports.isTextDataType=yx;exports.merge=Jh;exports.mergeAxisConfig=Jk;exports.pivotData=Lx;exports.postRequest=Ez;exports.postRequestRegular=eo;exports.prepareFeedbackData=VS;exports.remarkGfm=xJ;exports.removeFromScopeArray=nXe;exports.removeRing=Sc;exports.resolveDataType=jT;exports.resolveDatamodelName=gz;exports.sanitizeAIScope=Ree;exports.setupEditorWithCard=vY;exports.showJoinRequiredNotification=TU;exports.sortByColumnsToSortState=eG;exports.sortStateToSortByColumns=tG;exports.sortableKeyboardCoordinates=qR;exports.titleCase=lb;exports.toTitleCase=pi;exports.ue=ze;exports.useAIActions=WC;exports.useAIInteractionStore=la;exports.useActiveExports=nCe;exports.useActiveToolStatus=Uee;exports.useAddNewFrame=nX;exports.useAssignFilter=Jee;exports.useAssistantContainer=Mq;exports.useAssistantLayoutStore=Od;exports.useAssistantPanel=_q;exports.useAssistantProfile=Pee;exports.useAutoScroll=Vee;exports.useAutoSubmitQueue=Bee;exports.useCallbackRef=qr;exports.useCard=J1e;exports.useCardFilterValues=gC;exports.useChat=Iee;exports.useColumns=kD;exports.useCreateVisualWithFrame=Lde;exports.useCurrentAIContext=dp;exports.useCurrentActiveCard=Sz;exports.useCurrentCardConfig=Nz;exports.useCurrentSheetActiveCards=jz;exports.useCurrentUserInfo=Ps;exports.useCustomVisual=ly;exports.useCustomVisualsQuery=OR;exports.useDashboardActions=Wt;exports.useDashboardById=F7;exports.useDashboardCardQuery=Ha;exports.useDashboardCreation=z7;exports.useDashboardManagement=L7;exports.useDashboardPreferences=Hm;exports.useDashboardQuery=L1;exports.useDashboardStore=J;exports.useDataColumns=AU;exports.useDateFilterHook=UAe;exports.useDebounce=Ih;exports.useDefaultDashboardMutation=g7;exports.useDisplayPreferences=wu;exports.useDroppable=NX;exports.useEditorActions=cr;exports.useEditorAside=YS;exports.useEditorStore=Ae;exports.useEnsureReactGlobals=GG;exports.useExportActions=OU;exports.useExportStore=IC;exports.useFieldManagement=Zee;exports.useFileActions=QD;exports.useFileAttachments=XD;exports.useFullscreenAssistant=Tq;exports.useGroupMembers=hSe;exports.useGroups=HD;exports.useHasDashboardId=Rq;exports.useInProgressExportsCount=rCe;exports.useIsDashboardSelected=Roe;exports.useIsVisualSelected=Aoe;exports.useJoinabilityMap=OA;exports.useLayoutEffect2=Yr;exports.useManagementActions=Cx;exports.useManagementStore=hs;exports.useMessageWindow=Hee;exports.useMutation=ia;exports.usePivotTableConfig=hp;exports.usePluginQuery=tX;exports.usePromoteCalculatedMetricToDomain=gte;exports.useQuery=En;exports.useQueryClient=so;exports.useQueueActions=fp;exports.useResourceManagement=iC;exports.useResourceUpdateState=$7;exports.useScopedFields=PA;exports.useSelectedVisual=Ioe;exports.useSemaphorContext=Xe;exports.useSensor=Tm;exports.useSensors=NS;exports.useSortable=Ey;exports.useStarredChartsStore=Dte;exports.useSyncLegacyEditorState=yte;exports.useTextFilterHook=XAe;exports.useTheme=Rm;exports.useTopoJson=NU;exports.useUnifiedUsers=VD;exports.useUpdateResource=R7;exports.useUpdateVisualMutation=zde;exports.useUserPreferences=cB;exports.useVisualById=TM;exports.useVisualManagement=$de;exports.v4=Rr;exports.validateFieldForChartType=Gee;exports.verticalListSortingStrategy=WR;
|
|
1087
|
+
`},D6=TJe(RJe)(wte),AJe={config:DJe},PJe=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(s){return n.reduceRight(function(o,i){return i(o)},s)}};function Cte(e,t){return Object.keys(t).forEach(function(n){t[n]instanceof Object&&e[n]&&Object.assign(t[n],Cte(e[n],t[n]))}),_6(_6({},e),t)}var OJe={type:"cancelation",msg:"operation is manually canceled"};function Q2(e){var t=!1,n=new Promise(function(r,s){e.then(function(o){return t?s(OJe):r(o)}),e.catch(s)});return n.cancel=function(){return t=!0},n}var FJe=["monaco"],$Je=EJe.create({config:_Je,isInitialized:!1,resolve:null,reject:null,monaco:null}),Ste=cJe($Je,2),Py=Ste[0],XS=Ste[1];function LJe(e){var t=AJe.config(e),n=t.monaco,r=aJe(t,FJe);XS(function(s){return{config:Cte(s.config,r),monaco:n}})}function zJe(){var e=Py(function(t){var n=t.monaco,r=t.isInitialized,s=t.resolve;return{monaco:n,isInitialized:r,resolve:s}});if(!e.isInitialized){if(XS({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),Q2(J2);if(window.monaco&&window.monaco.editor)return jte(window.monaco),e.resolve(window.monaco),Q2(J2);PJe(BJe,HJe)(UJe)}return Q2(J2)}function BJe(e){return document.body.appendChild(e)}function VJe(e){var t=document.createElement("script");return e&&(t.src=e),t}function HJe(e){var t=Py(function(r){var s=r.config,o=r.reject;return{config:s,reject:o}}),n=VJe("".concat(t.config.paths.vs,"/loader.js"));return n.onload=function(){return e()},n.onerror=t.reject,n}function UJe(){var e=Py(function(n){var r=n.config,s=n.resolve,o=n.reject;return{config:r,resolve:s,reject:o}}),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],function(n){var r=n.m||n;jte(r),e.resolve(r)},function(n){e.reject(n)})}function jte(e){Py().monaco||XS({monaco:e})}function WJe(){return Py(function(e){var t=e.monaco;return t})}var J2=new Promise(function(e,t){return XS({resolve:e,reject:t})}),M1={config:LJe,init:zJe,__getMonacoInstance:WJe},qJe={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},ek=qJe,YJe={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},GJe=YJe;function KJe({children:e}){return C.createElement("div",{style:GJe.container},e)}var ZJe=KJe,XJe=ZJe;function QJe({width:e,height:t,isEditorReady:n,loading:r,_ref:s,className:o,wrapperProps:i}){return C.createElement("section",{style:{...ek.wrapper,width:e,height:t},...i},!n&&C.createElement(XJe,null,r),C.createElement("div",{ref:s,style:{...ek.fullWidth,...!n&&ek.hide},className:o}))}var JJe=QJe,Nte=C.memo(JJe);function eet(e){C.useEffect(e,[])}var HA=eet;function tet(e,t,n=!0){let r=C.useRef(!0);C.useEffect(r.current||!n?()=>{r.current=!1}:e,t)}var Fo=tet;function eb(){}function vh(e,t,n,r){return net(e,r)||ret(e,t,n,r)}function net(e,t){return e.editor.getModel(kte(e,t))}function ret(e,t,n,r){return e.editor.createModel(t,n,r?kte(e,r):void 0)}function kte(e,t){return e.Uri.parse(t)}function set({original:e,modified:t,language:n,originalLanguage:r,modifiedLanguage:s,originalModelPath:o,modifiedModelPath:i,keepCurrentOriginalModel:a=!1,keepCurrentModifiedModel:l=!1,theme:u="light",loading:d="Loading...",options:f={},height:h="100%",width:m="100%",className:p,wrapperProps:g={},beforeMount:b=eb,onMount:x=eb}){let[y,v]=C.useState(!1),[w,j]=C.useState(!0),S=C.useRef(null),N=C.useRef(null),E=C.useRef(null),_=C.useRef(x),k=C.useRef(b),M=C.useRef(!1);HA(()=>{let I=M1.init();return I.then($=>(N.current=$)&&j(!1)).catch($=>($==null?void 0:$.type)!=="cancelation"&&console.error("Monaco initialization: error:",$)),()=>S.current?O():I.cancel()}),Fo(()=>{if(S.current&&N.current){let I=S.current.getOriginalEditor(),$=vh(N.current,e||"",r||n||"text",o||"");$!==I.getModel()&&I.setModel($)}},[o],y),Fo(()=>{if(S.current&&N.current){let I=S.current.getModifiedEditor(),$=vh(N.current,t||"",s||n||"text",i||"");$!==I.getModel()&&I.setModel($)}},[i],y),Fo(()=>{let I=S.current.getModifiedEditor();I.getOption(N.current.editor.EditorOption.readOnly)?I.setValue(t||""):t!==I.getValue()&&(I.executeEdits("",[{range:I.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),I.pushUndoStop())},[t],y),Fo(()=>{var I,$;($=(I=S.current)==null?void 0:I.getModel())==null||$.original.setValue(e||"")},[e],y),Fo(()=>{let{original:I,modified:$}=S.current.getModel();N.current.editor.setModelLanguage(I,r||n||"text"),N.current.editor.setModelLanguage($,s||n||"text")},[n,r,s],y),Fo(()=>{var I;(I=N.current)==null||I.editor.setTheme(u)},[u],y),Fo(()=>{var I;(I=S.current)==null||I.updateOptions(f)},[f],y);let T=C.useCallback(()=>{var V;if(!N.current)return;k.current(N.current);let I=vh(N.current,e||"",r||n||"text",o||""),$=vh(N.current,t||"",s||n||"text",i||"");(V=S.current)==null||V.setModel({original:I,modified:$})},[n,t,s,e,r,o,i]),P=C.useCallback(()=>{var I;!M.current&&E.current&&(S.current=N.current.editor.createDiffEditor(E.current,{automaticLayout:!0,...f}),T(),(I=N.current)==null||I.editor.setTheme(u),v(!0),M.current=!0)},[f,u,T]);C.useEffect(()=>{y&&_.current(S.current,N.current)},[y]),C.useEffect(()=>{!w&&!y&&P()},[w,y,P]);function O(){var $,V,W,L;let I=($=S.current)==null?void 0:$.getModel();a||((V=I==null?void 0:I.original)==null||V.dispose()),l||((W=I==null?void 0:I.modified)==null||W.dispose()),(L=S.current)==null||L.dispose()}return C.createElement(Nte,{width:m,height:h,isEditorReady:y,loading:d,_ref:E,className:p,wrapperProps:g})}var oet=set;C.memo(oet);function iet(){let[e,t]=C.useState(M1.__getMonacoInstance());return HA(()=>{let n;return e||(n=M1.init(),n.then(r=>{t(r)})),()=>n==null?void 0:n.cancel()}),e}var aet=iet;function cet(e){let t=C.useRef();return C.useEffect(()=>{t.current=e},[e]),t.current}var uet=cet,pv=new Map;function det({defaultValue:e,defaultLanguage:t,defaultPath:n,value:r,language:s,path:o,theme:i="light",line:a,loading:l="Loading...",options:u={},overrideServices:d={},saveViewState:f=!0,keepCurrentModel:h=!1,width:m="100%",height:p="100%",className:g,wrapperProps:b={},beforeMount:x=eb,onMount:y=eb,onChange:v,onValidate:w=eb}){let[j,S]=C.useState(!1),[N,E]=C.useState(!0),_=C.useRef(null),k=C.useRef(null),M=C.useRef(null),T=C.useRef(y),P=C.useRef(x),O=C.useRef(),I=C.useRef(r),$=uet(o),V=C.useRef(!1),W=C.useRef(!1);HA(()=>{let z=M1.init();return z.then(F=>(_.current=F)&&E(!1)).catch(F=>(F==null?void 0:F.type)!=="cancelation"&&console.error("Monaco initialization: error:",F)),()=>k.current?R():z.cancel()}),Fo(()=>{var F,A,H,B;let z=vh(_.current,e||r||"",t||s||"",o||n||"");z!==((F=k.current)==null?void 0:F.getModel())&&(f&&pv.set($,(A=k.current)==null?void 0:A.saveViewState()),(H=k.current)==null||H.setModel(z),f&&((B=k.current)==null||B.restoreViewState(pv.get(o))))},[o],j),Fo(()=>{var z;(z=k.current)==null||z.updateOptions(u)},[u],j),Fo(()=>{!k.current||r===void 0||(k.current.getOption(_.current.editor.EditorOption.readOnly)?k.current.setValue(r):r!==k.current.getValue()&&(W.current=!0,k.current.executeEdits("",[{range:k.current.getModel().getFullModelRange(),text:r,forceMoveMarkers:!0}]),k.current.pushUndoStop(),W.current=!1))},[r],j),Fo(()=>{var F,A;let z=(F=k.current)==null?void 0:F.getModel();z&&s&&((A=_.current)==null||A.editor.setModelLanguage(z,s))},[s],j),Fo(()=>{var z;a!==void 0&&((z=k.current)==null||z.revealLine(a))},[a],j),Fo(()=>{var z;(z=_.current)==null||z.editor.setTheme(i)},[i],j);let L=C.useCallback(()=>{var z;if(!(!M.current||!_.current)&&!V.current){P.current(_.current);let F=o||n,A=vh(_.current,r||e||"",t||s||"",F||"");k.current=(z=_.current)==null?void 0:z.editor.create(M.current,{model:A,automaticLayout:!0,...u},d),f&&k.current.restoreViewState(pv.get(F)),_.current.editor.setTheme(i),a!==void 0&&k.current.revealLine(a),S(!0),V.current=!0}},[e,t,n,r,s,o,u,d,f,i,a]);C.useEffect(()=>{j&&T.current(k.current,_.current)},[j]),C.useEffect(()=>{!N&&!j&&L()},[N,j,L]),I.current=r,C.useEffect(()=>{var z,F;j&&v&&((z=O.current)==null||z.dispose(),O.current=(F=k.current)==null?void 0:F.onDidChangeModelContent(A=>{W.current||v(k.current.getValue(),A)}))},[j,v]),C.useEffect(()=>{if(j){let z=_.current.editor.onDidChangeMarkers(F=>{var H;let A=(H=k.current.getModel())==null?void 0:H.uri;if(A&&F.find(B=>B.path===A.path)){let B=_.current.editor.getModelMarkers({resource:A});w==null||w(B)}});return()=>{z==null||z.dispose()}}return()=>{}},[j,w]);function R(){var z,F;(z=O.current)==null||z.dispose(),h?f&&pv.set(o,k.current.saveViewState()):(F=k.current.getModel())==null||F.dispose(),k.current.dispose()}return C.createElement(Nte,{width:m,height:p,isEditorReady:j,loading:l,_ref:M,className:g,wrapperProps:b})}var fet=det,Ete=C.memo(fet),het=Ete;function met({card:e}){var O,I,$,V,W,L,R,z,F,A,H;const[t,n]=C.useState(!1),[r,s]=C.useState([]),{authToken:o}=Xe(),{theme:i}=Rm(),a=_z(o==null?void 0:o.accessToken),l=J(B=>B.themeStyle),u={mode:i||"system",colors:((I=(O=l==null?void 0:l.chart)==null?void 0:O.dataset)==null?void 0:I.backgroundColor)||[]};($=e.customCardPreferences)!=null&&$.inputData;const{getCard:d}=ly(((V=e.customCardPreferences)==null?void 0:V.url)||""),f=((W=e.customCardPreferences)==null?void 0:W.visualType)||"single",h=Ae(B=>B.frame),{setCustomCardPreferences:m}=cr(),{data:p}=Ha(e),g=Vt(B=>B.interactionStates),b=J(B=>{var Y;return(Y=B.dashboard)==null?void 0:Y.id}),x=J(B=>B.dashboard.filters),y=J(B=>B.filterValues),v=J(B=>B.selectedSheetId),w=J(B=>B.inlineFilterValuesMap[e.id]),j=C.useMemo(()=>SZ({card:e,sheetId:v||"",inlineFilterValues:w}),[e,v,w]),{cardFilters:S,cardFilterValues:N,shouldApplyDashboardFilters:E,contextMode:_}=C.useMemo(()=>HM({card:e,interactionStates:g,currentDashboardId:b,filters:x,filterValues:y,selectedSheetId:v}),[e,g,b,x,y,v]),k=C.useCallback((B,Y)=>{s(q=>({...q,[B]:Y}))},[]);if(!((L=e.customCardPreferences)!=null&&L.componentName))return null;const M=d((R=e.customCardPreferences)==null?void 0:R.componentName);function T(B){n(B)}const P=Object.keys(((z=e.customCardPreferences)==null?void 0:z.dataInputCardIds)||{}).map(B=>{var U,G,Z;const Y=(G=(U=e.customCardPreferences)==null?void 0:U.dataInputCardIds)==null?void 0:G[B].cardId,q=(Z=h==null?void 0:h.cards)==null?void 0:Z.find(Q=>Q.id===Y);return q||null});return c.jsx("div",{className:"semaphor-custom mb-3 flex grow basis-0 flex-col space-y-2 overflow-y-auto",children:c.jsxs(C.Suspense,{fallback:c.jsx(c.Fragment,{}),children:[M&&f==="single"&&c.jsx(M,{editing:!0,params:a,theme:u,settings:(F=e.customCardPreferences)==null?void 0:F.settings,onDataChange:k,data:(p==null?void 0:p.records)||[],filters:S,filterValues:[...N||[],...w||[]],inlineFilters:j}),M&&f==="multiple"&&c.jsxs(c.Fragment,{children:[Object.keys(((A=e.customCardPreferences)==null?void 0:A.dataInputCardIds)||{}).map(B=>{var U,G,Z;const Y=(G=(U=e.customCardPreferences)==null?void 0:U.dataInputCardIds)==null?void 0:G[B].cardId,q=(Z=h==null?void 0:h.cards)==null?void 0:Z.find(Q=>Q.id===Y);if(q)return c.jsx(KG,{onLoadingStatus:T,onDataChange:k,dataInputIndex:B,card:q},q.id+B)}),c.jsx("div",{className:"flex flex-col gap-2",children:c.jsx(M,{theme:u,onDataChange:k,settings:P.map(B=>{var Y;return(Y=B==null?void 0:B.customCardPreferences)==null?void 0:Y.settings}),data:P.map(B=>B!=null&&B.id?r==null?void 0:r[B.id]:[]),filters:S,filterValues:[...N||[],...w||[]],inlineFilters:j})})]})]},(H=e.customCardPreferences)==null?void 0:H.componentName)})}const pet=C.memo(met,(e,t)=>{var n,r,s,o,i,a;return e.card.id===t.card.id&&e.card.inlineFilters===t.card.inlineFilters&&((n=e.card.customCardPreferences)==null?void 0:n.settings)===((r=t.card.customCardPreferences)==null?void 0:r.settings)&&((s=e.card.customCardPreferences)==null?void 0:s.url)===((o=t.card.customCardPreferences)==null?void 0:o.url)&&((i=e.card.customCardPreferences)==null?void 0:i.componentName)===((a=t.card.customCardPreferences)==null?void 0:a.componentName)});function _te(e){let t=0;for(let r=0;r<e.length;r++)t=e.charCodeAt(r)+((t<<5)-t);return`hsl(${Math.abs(t%360)}, 65%, 45%)`}function Tte(e){const t=e.trim().split(/\s+/);return t.length>1?(t[0][0]+t[1][0]).toUpperCase():e.slice(0,2).toUpperCase()}function Mte({chartType:e,chartName:t,isCustom:n=!1,className:r="h-6 w-6"}){if(!n&&e)return TR(e,r);const s=_R(t);if(s)return C.cloneElement(s,{className:r});const o=Tte(t),i=_te(t);return c.jsx("div",{className:X("flex items-center justify-center rounded text-white font-semibold text-xs",r),style:{backgroundColor:i},children:o})}function get({chartType:e,className:t="h-4 w-4",customIcon:n,componentName:r}){if(e==="custom"){if(r){const s=_R(r);if(s)return C.cloneElement(s,{className:t});const o=Tte(r),i=_te(r);return c.jsx("div",{className:X("flex items-center justify-center rounded text-white font-semibold text-[10px]",t),style:{backgroundColor:i},children:o})}return c.jsx(C8,{className:t})}return TR(e,t)}const Dte=oa()(nz((e,t)=>({starredCharts:[],isStarred:(n,r)=>t().starredCharts.some(s=>s.type===n&&s.id===r),toggleStar:n=>{e(r=>{const s=r.starredCharts.findIndex(o=>o.type===n.type&&o.id===n.id);return s>=0?{starredCharts:r.starredCharts.filter((o,i)=>i!==s)}:{starredCharts:[...r.starredCharts,n]}})},getStarredChart:(n,r)=>t().starredCharts.find(s=>s.type===n&&s.id===r)}),{name:"semaphor-starred-charts"})),Ite=D.forwardRef(({className:e,...t},n)=>c.jsx(_y,{className:X("peer inline-flex h-[22px] w-[36px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:n,children:c.jsx(YR,{className:X("pointer-events-none block size-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));Ite.displayName=_y.displayName;var Rte=["PageUp","PageDown"],Ate=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],Pte={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},Ip="Slider",[sT,bet,xet]=Ex(Ip),[Ote]=Lr(Ip,[xet]),[yet,QS]=Ote(Ip),Fte=D.forwardRef((e,t)=>{const{name:n,min:r=0,max:s=100,step:o=1,orientation:i="horizontal",disabled:a=!1,minStepsBetweenThumbs:l=0,defaultValue:u=[r],value:d,onValueChange:f=()=>{},onValueCommit:h=()=>{},inverted:m=!1,form:p,...g}=e,b=D.useRef(new Set),x=D.useRef(0),v=i==="horizontal"?vet:wet,[w=[],j]=ss({prop:d,defaultProp:u,onChange:M=>{var P;(P=[...b.current][x.current])==null||P.focus(),f(M)}}),S=D.useRef(w);function N(M){const T=Eet(w,M);k(M,T)}function E(M){k(M,x.current)}function _(){const M=S.current[x.current];w[x.current]!==M&&h(w)}function k(M,T,{commit:P}={commit:!1}){const O=Det(o),I=Iet(Math.round((M-r)/o)*o+r,O),$=Ib(I,[r,s]);j((V=[])=>{const W=Net(V,$,T);if(Met(W,l*o)){x.current=W.indexOf($);const L=String(W)!==String(V);return L&&P&&h(W),L?W:V}else return V})}return c.jsx(yet,{scope:e.__scopeSlider,name:n,disabled:a,min:r,max:s,valueIndexToChangeRef:x,thumbs:b.current,values:w,orientation:i,form:p,children:c.jsx(sT.Provider,{scope:e.__scopeSlider,children:c.jsx(sT.Slot,{scope:e.__scopeSlider,children:c.jsx(v,{"aria-disabled":a,"data-disabled":a?"":void 0,...g,ref:t,onPointerDown:Ie(g.onPointerDown,()=>{a||(S.current=w)}),min:r,max:s,inverted:m,onSlideStart:a?void 0:N,onSlideMove:a?void 0:E,onSlideEnd:a?void 0:_,onHomeKeyDown:()=>!a&&k(r,0,{commit:!0}),onEndKeyDown:()=>!a&&k(s,w.length-1,{commit:!0}),onStepKeyDown:({event:M,direction:T})=>{if(!a){const I=Rte.includes(M.key)||M.shiftKey&&Ate.includes(M.key)?10:1,$=x.current,V=w[$],W=o*I*T;k(V+W,$,{commit:!0})}}})})})})});Fte.displayName=Ip;var[$te,Lte]=Ote(Ip,{startEdge:"left",endEdge:"right",size:"width",direction:1}),vet=D.forwardRef((e,t)=>{const{min:n,max:r,dir:s,inverted:o,onSlideStart:i,onSlideMove:a,onSlideEnd:l,onStepKeyDown:u,...d}=e,[f,h]=D.useState(null),m=ut(t,v=>h(v)),p=D.useRef(void 0),g=bu(s),b=g==="ltr",x=b&&!o||!b&&o;function y(v){const w=p.current||f.getBoundingClientRect(),j=[0,w.width],N=UA(j,x?[n,r]:[r,n]);return p.current=w,N(v-w.left)}return c.jsx($te,{scope:e.__scopeSlider,startEdge:x?"left":"right",endEdge:x?"right":"left",direction:x?1:-1,size:"width",children:c.jsx(zte,{dir:g,"data-orientation":"horizontal",...d,ref:m,style:{...d.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:v=>{const w=y(v.clientX);i==null||i(w)},onSlideMove:v=>{const w=y(v.clientX);a==null||a(w)},onSlideEnd:()=>{p.current=void 0,l==null||l()},onStepKeyDown:v=>{const j=Pte[x?"from-left":"from-right"].includes(v.key);u==null||u({event:v,direction:j?-1:1})}})})}),wet=D.forwardRef((e,t)=>{const{min:n,max:r,inverted:s,onSlideStart:o,onSlideMove:i,onSlideEnd:a,onStepKeyDown:l,...u}=e,d=D.useRef(null),f=ut(t,d),h=D.useRef(void 0),m=!s;function p(g){const b=h.current||d.current.getBoundingClientRect(),x=[0,b.height],v=UA(x,m?[r,n]:[n,r]);return h.current=b,v(g-b.top)}return c.jsx($te,{scope:e.__scopeSlider,startEdge:m?"bottom":"top",endEdge:m?"top":"bottom",size:"height",direction:m?1:-1,children:c.jsx(zte,{"data-orientation":"vertical",...u,ref:f,style:{...u.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:g=>{const b=p(g.clientY);o==null||o(b)},onSlideMove:g=>{const b=p(g.clientY);i==null||i(b)},onSlideEnd:()=>{h.current=void 0,a==null||a()},onStepKeyDown:g=>{const x=Pte[m?"from-bottom":"from-top"].includes(g.key);l==null||l({event:g,direction:x?-1:1})}})})}),zte=D.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:s,onSlideEnd:o,onHomeKeyDown:i,onEndKeyDown:a,onStepKeyDown:l,...u}=e,d=QS(Ip,n);return c.jsx(Ze.span,{...u,ref:t,onKeyDown:Ie(e.onKeyDown,f=>{f.key==="Home"?(i(f),f.preventDefault()):f.key==="End"?(a(f),f.preventDefault()):Rte.concat(Ate).includes(f.key)&&(l(f),f.preventDefault())}),onPointerDown:Ie(e.onPointerDown,f=>{const h=f.target;h.setPointerCapture(f.pointerId),f.preventDefault(),d.thumbs.has(h)?h.focus():r(f)}),onPointerMove:Ie(e.onPointerMove,f=>{f.target.hasPointerCapture(f.pointerId)&&s(f)}),onPointerUp:Ie(e.onPointerUp,f=>{const h=f.target;h.hasPointerCapture(f.pointerId)&&(h.releasePointerCapture(f.pointerId),o(f))})})}),Bte="SliderTrack",Vte=D.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,s=QS(Bte,n);return c.jsx(Ze.span,{"data-disabled":s.disabled?"":void 0,"data-orientation":s.orientation,...r,ref:t})});Vte.displayName=Bte;var oT="SliderRange",Hte=D.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,s=QS(oT,n),o=Lte(oT,n),i=D.useRef(null),a=ut(t,i),l=s.values.length,u=s.values.map(h=>qte(h,s.min,s.max)),d=l>1?Math.min(...u):0,f=100-Math.max(...u);return c.jsx(Ze.span,{"data-orientation":s.orientation,"data-disabled":s.disabled?"":void 0,...r,ref:a,style:{...e.style,[o.startEdge]:d+"%",[o.endEdge]:f+"%"}})});Hte.displayName=oT;var iT="SliderThumb",Ute=D.forwardRef((e,t)=>{const n=bet(e.__scopeSlider),[r,s]=D.useState(null),o=ut(t,a=>s(a)),i=D.useMemo(()=>r?n().findIndex(a=>a.ref.current===r):-1,[n,r]);return c.jsx(Cet,{...e,ref:o,index:i})}),Cet=D.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:s,...o}=e,i=QS(iT,n),a=Lte(iT,n),[l,u]=D.useState(null),d=ut(t,y=>u(y)),f=l?i.form||!!l.closest("form"):!0,h=Tx(l),m=i.values[r],p=m===void 0?0:qte(m,i.min,i.max),g=ket(r,i.values.length),b=h==null?void 0:h[a.size],x=b?_et(b,p,a.direction):0;return D.useEffect(()=>{if(l)return i.thumbs.add(l),()=>{i.thumbs.delete(l)}},[l,i.thumbs]),c.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[a.startEdge]:`calc(${p}% + ${x}px)`},children:[c.jsx(sT.ItemSlot,{scope:e.__scopeSlider,children:c.jsx(Ze.span,{role:"slider","aria-label":e["aria-label"]||g,"aria-valuemin":i.min,"aria-valuenow":m,"aria-valuemax":i.max,"aria-orientation":i.orientation,"data-orientation":i.orientation,"data-disabled":i.disabled?"":void 0,tabIndex:i.disabled?void 0:0,...o,ref:d,style:m===void 0?{display:"none"}:e.style,onFocus:Ie(e.onFocus,()=>{i.valueIndexToChangeRef.current=r})})}),f&&c.jsx(Wte,{name:s??(i.name?i.name+(i.values.length>1?"[]":""):void 0),form:i.form,value:m},r)]})});Ute.displayName=iT;var jet="RadioBubbleInput",Wte=D.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const s=D.useRef(null),o=ut(s,r),i=$x(t);return D.useEffect(()=>{const a=s.current;if(!a)return;const l=window.HTMLInputElement.prototype,d=Object.getOwnPropertyDescriptor(l,"value").set;if(i!==t&&d){const f=new Event("input",{bubbles:!0});d.call(a,t),a.dispatchEvent(f)}},[i,t]),c.jsx(Ze.input,{style:{display:"none"},...n,ref:o,defaultValue:t})});Wte.displayName=jet;function Net(e=[],t,n){const r=[...e];return r[n]=t,r.sort((s,o)=>s-o)}function qte(e,t,n){const o=100/(n-t)*(e-t);return Ib(o,[0,100])}function ket(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function Eet(e,t){if(e.length===1)return 0;const n=e.map(s=>Math.abs(s-t)),r=Math.min(...n);return n.indexOf(r)}function _et(e,t,n){const r=e/2,o=UA([0,50],[0,r]);return(r-o(t)*n)*n}function Tet(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Met(e,t){if(t>0){const n=Tet(e);return Math.min(...n)>=t}return!0}function UA(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function Det(e){return(String(e).split(".")[1]||"").length}function Iet(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var Yte=Fte,Ret=Vte,Aet=Hte,Pet=Ute;const Gte=D.forwardRef(({className:e,...t},n)=>c.jsxs(Yte,{ref:n,className:X("relative flex w-full touch-none select-none items-center",e),...t,children:[c.jsx(Ret,{className:"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary",children:c.jsx(Aet,{className:"absolute h-full bg-primary"})}),c.jsx(Pet,{className:"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"})]}));Gte.displayName=Yte.displayName;const Oet={table:jh,bar:z1,line:B1,stackedBar:FT,stackedLine:TZ,scatter:zT,bubble:_Z,pie:LT,doughnut:UT,kpi:ER,treemap:bS,bullet:xS,funnel:kR,tornado:tM,heatmap:H1,range:$T,radar:y8,polarArea:EZ,text:r8,map:b8},Kte=[{id:"table",icon:jh,label:"Table"},{id:"bar",icon:z1,label:"Bar Chart"},{id:"line",icon:B1,label:"Line Chart"},{id:"stackedBar",icon:FT,label:"Stacked Bar",requiresPivot:!1},{id:"pie",icon:LT,label:"Pie Chart"},{id:"doughnut",icon:UT,label:"Donut Chart"},{id:"kpi",icon:ER,label:"KPI"},{id:"treemap",icon:bS,label:"Treemap"},{id:"bullet",icon:xS,label:"Bullet Chart"},{id:"funnel",icon:kR,label:"Funnel Chart"},{id:"tornado",icon:tM,label:"Tornado Chart"},{id:"heatmap",icon:H1,label:"Heatmap"},{id:"range",icon:$T,label:"Range Chart"}],Fet=14;Kte.map(e=>e.id);function $et({selectedChart:e,onChartChange:t,isDropdownExpanded:n,onToggleDropdown:r}){var y,v;const s=Ae(w=>w.card),{setCardType:o,setCardPreferences:i,setIsDevMode:a}=Ae(w=>w.actions),{setCardCustomCfg:l,setCustomCardPreferences:u,setQueryConfig:d}=cr(),f=((y=s==null?void 0:s.config)==null?void 0:y.pivotByColumns)&&s.config.pivotByColumns.length>0,{starredCharts:h,isStarred:m}=Dte(),{data:p=[]}=OR(),g=C.useMemo(()=>{const w=Kte.filter(_=>!(_.requiresPivot&&!f)),j=h.filter(_=>_.type==="default"?!0:p.some(k=>k.name===_.id)),S=new Set(j.map(_=>_.id)),N=w.filter(_=>!S.has(_.id));return[...j.map(_=>({id:_.id,label:_.name,icon:_.type==="default"?Oet[_.id]:void 0,isCustom:_.type==="custom",isStarred:!0,url:_.url})),...N.map(_=>({id:_.id,label:_.label,icon:_.icon,isCustom:!1,isStarred:!1}))].slice(0,Fet-1)},[h,p,f]),b=w=>{if(w.isCustom){const j=p.find(S=>S.name===w.id);j&&(l(null),i({}),o("custom"),u({type:"component",visualType:"single",url:j.url,componentName:j.name,icon:j.icon,pluginChartType:j.chartType}),d(void 0),t("custom"))}else t(w.id)},x=e==="custom"&&((v=s==null?void 0:s.customCardPreferences)==null?void 0:v.componentName);return c.jsxs("div",{className:"grid grid-cols-7 gap-2",children:[g.map(w=>{var N;const j=w.icon,S=w.isCustom?x&&((N=s==null?void 0:s.customCardPreferences)==null?void 0:N.componentName)===w.id:e===w.id;return c.jsxs(an,{children:[c.jsx(ln,{asChild:!0,children:c.jsxs(se,{variant:"ghost",size:"sm",onClick:()=>b(w),className:X("h-8 w-8 p-0",S&&"bg-accent text-accent-foreground"),children:[j?c.jsx(j,{className:"h-4 w-4"}):c.jsx(Mte,{chartName:w.label,isCustom:!0,className:"h-4 w-4"}),c.jsx("span",{className:"sr-only",children:w.label})]})}),c.jsxs(dn,{side:"bottom",className:"border-foreground/20 bg-foreground text-background",children:[c.jsx("p",{children:w.label}),c.jsx(sm,{className:"fill-foreground"})]})]},`${w.isCustom?"custom":"default"}-${w.id}`)}),r&&c.jsxs(an,{children:[c.jsx(ln,{asChild:!0,children:c.jsx(se,{variant:"ghost",size:"sm",onClick:r,className:"h-8 w-8 p-0","aria-label":n?"Hide all charts":"Show all charts",children:n?c.jsx(Ch,{className:"h-4 w-4"}):c.jsx(kr,{className:"h-4 w-4"})})}),c.jsxs(dn,{side:"bottom",className:"border-foreground/20 bg-foreground text-background",children:[c.jsx("p",{children:n?"Hide dropdown":"Show all charts"}),c.jsx(sm,{className:"fill-foreground"})]})]})]})}const Zte=D.forwardRef(({className:e,icon:t,tooltip:n,...r},s)=>{const o=c.jsx(_y,{className:X("peer inline-flex h-8 w-12 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...r,ref:s,children:c.jsx(YR,{className:X("pointer-events-none block h-7 w-7 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"),children:t&&c.jsx("span",{className:"flex h-full items-center justify-center text-primary",children:t})})});return n?c.jsx(Ln,{children:c.jsxs(an,{delayDuration:0,children:[c.jsx(ln,{asChild:!0,children:c.jsx("span",{className:"inline-flex",children:o})}),c.jsxs(dn,{side:"bottom",className:"border-0 bg-foreground text-background shadow-md",children:[c.jsx(sm,{className:"fill-foreground"}),c.jsx("p",{children:n})]})]})}):o});Zte.displayName="DevModeSwitch";exports.Accordion=BA;exports.AccordionContent=ox;exports.AccordionItem=rx;exports.AccordionTrigger=sx;exports.AggregateTable=iS;exports.AlertDialog=Um;exports.AlertDialogAction=_f;exports.AlertDialogCancel=Tf;exports.AlertDialogContent=Sf;exports.AlertDialogDescription=Ef;exports.AlertDialogFooter=Nf;exports.AlertDialogHeader=jf;exports.AlertDialogTitle=kf;exports.ArrowDown=Ea;exports.ArrowRight=n8;exports.ArrowUp=li;exports.ArrowUpDown=jc;exports.AssistantStatus=NJ;exports.AxisConfigurator=Km;exports.Badge=Ve;exports.Bell=xv;exports.BulletChartIcon=xS;exports.Button=se;exports.CALCULATED_FIELDS_GROUP_NAME=Qh;exports.CALCULATED_FIELD_ENTITY_MARKER=cu;exports.COMPARISON_SUPPORTED_CHART_TYPES=iz;exports.CSS=yi;exports.CalculatedFieldEditor=pte;exports.Calculator=OT;exports.Calendar=Rs;exports.Card=Uo;exports.CardContent=Qi;exports.CardHeader=Zi;exports.CardTitle=Xi;exports.CaretSortIcon=g3e;exports.ChartArea=Ak;exports.ChartColumn=Am;exports.ChartColumnIncreasing=z1;exports.ChartIcon=Mte;exports.ChartJsVisual=ay;exports.ChartLine=B1;exports.ChartQuickSelector=$et;exports.ChartScatter=zT;exports.ChatInputWithContext=IA;exports.Check=Ar;exports.CheckIcon=JZ;exports.Checkbox=cn;exports.ChevronDown=kr;exports.ChevronRight=ns;exports.ChevronUp=Ch;exports.ChevronsUpDown=VT;exports.Circle=HT;exports.CircleAlert=Yl;exports.CircleCheck=l8;exports.CircleHelp=c8;exports.Clock=Gl;exports.Code=u8;exports.CodeHighlighter=Jc;exports.CodeXml=Ok;exports.Collapsible=bo;exports.CollapsibleContent=yo;exports.CollapsibleTrigger=xo;exports.Command=op;exports.CommandEmpty=ap;exports.CommandGroup=lp;exports.CommandInput=ey;exports.CommandItem=cp;exports.CommandList=ip;exports.CommandSeparator=aW;exports.ComparisonMetadataBadge=WZ;exports.Container=JD;exports.Copy=em;exports.CopyButton=Em;exports.CopyPlus=d8;exports.CreateDashboardDialog=lB;exports.Cross2Icon=eX;exports.CustomFilterPopover=FR;exports.CustomScrollArea=tl;exports.DATE_FORMAT_VALUES=V1e;exports.DEFAULT_HEATMAP_CUSTOM_RANGE=CU;exports.Dashboard=Yee;exports.DashboardActionsMenu=p7;exports.DashboardCard=ZZ;exports.DashboardExportDialog=$X;exports.DashboardPlus=zQe;exports.DashboardWC=nJe;exports.DataSourceDialog=DA;exports.Database=$l;exports.DateRangePicker=lR;exports.DefaultChatTransport=MA;exports.DevModeSwitch=Zte;exports.Dialog=Gr;exports.DialogContent=zr;exports.DialogDescription=is;exports.DialogFooter=os;exports.DialogHeader=Br;exports.DialogTitle=Vr;exports.DialogTrigger=rfe;exports.DisplayPreferencesProvider=AR;exports.DndContext=Ny;exports.Download=bf;exports.DownloadPdf=LX;exports.DragOverlay=kX;exports.DropdownMenu=wf;exports.DropdownMenuCheckboxItem=Mg;exports.DropdownMenuContent=yu;exports.DropdownMenuItem=po;exports.DropdownMenuLabel=Eh;exports.DropdownMenuRadioGroup=_ue;exports.DropdownMenuRadioItem=h7;exports.DropdownMenuSeparator=Kd;exports.DropdownMenuSub=f7;exports.DropdownMenuSubContent=NM;exports.DropdownMenuSubTrigger=jM;exports.DropdownMenuTrigger=Cf;exports.EMPTY_DATA_SOURCE=HS;exports.Editable=Vb;exports.EditableText=mi;exports.EditorCustomVisual=pet;exports.EllipsisVertical=Pm;exports.EmailScheduleDialog=MZ;exports.ErrorBoundary=rl;exports.ExportError=tp;exports.ExternalLink=fb;exports.Eye=tu;exports.EyeOff=V1;exports.Fallback=gS;exports.FallbackVisual=pS;exports.FeedbackCategory=hu;exports.FeedbackDialog=Qb;exports.FieldsList=bte;exports.FieldsSection=xte;exports.Filter=Yc;exports.FilterComponent=Sp;exports.FilterHeader=$R;exports.FilterInfo=N_;exports.Ft=het;exports.GenIcon=Pu;exports.Grid3x3=H1;exports.GripVertical=WT;exports.HEATMAP_PRESET_PALETTES=RE;exports.Hash=m8;exports.House=hb;exports.HoverCard=Wm;exports.HoverCardContent=Mf;exports.HoverCardTrigger=qm;exports.IconButton=Wc;exports.Info=nr;exports.InlineFilterBar=KZ;exports.Input=jn;exports.Input$1=mn;exports.KPICard=Hb;exports.KeyboardSensor=Sy;exports.LOCALE_CURRENCY_PAIRS=ese;exports.Label=ae;exports.Layers=U1;exports.Le=aet;exports.Link=p8;exports.List=YT;exports.LoaderCircle=xn;exports.LoadingDots=fu;exports.METADATA_KEYS=xT;exports.Markdown=UQ;exports.Maximize2=W1;exports.MessageSquareWarning=GT;exports.Minimize2=KT;exports.PYTHON_DEFAULT_CODE=bT;exports.PenLine=$k;exports.Pencil=XT;exports.PendingMessagesDisplay=zee;exports.PiFileCsv=Z5e;exports.PivotMarkerEnum=kU;exports.PivotTableTanstack=by;exports.Placeholders=EJ;exports.Play=x8;exports.Plus=Tr;exports.PointerSensor=Ep;exports.Popover=ms;exports.PopoverContent=gs;exports.PopoverTrigger=ps;exports.PortalTooltipContent=DR;exports.PrintMessages=kJ;exports.Progress=wS;exports.RadioGroup=Qs;exports.RadioGroupItem=bn;exports.RefreshCcw=v8;exports.ResizableHandle=F6e;exports.ResizablePanel=I_;exports.ResizablePanelGroup=aQ;exports.ResourceEditDialog=Eq;exports.ResourceType=Ut;exports.ScrollArea=ro;exports.ScrollBar=bi;exports.Search=Ko;exports.SeedQuestions=Oee;exports.Select=ot;exports.SelectContent=rt;exports.SelectGroup=WD;exports.SelectItem=ve;exports.SelectLabel=BC;exports.SelectTrigger=nt;exports.SelectValue=at;exports.SelectedChartIcon=get;exports.SemaphorContext=wx;exports.SemaphorContextProvider=PT;exports.SemaphorQueryClient=Gz;exports.SemaphorReadyIndicator=AA;exports.Separator=fs;exports.Settings=Om;exports.Settings2=Ll;exports.Shapes=C8;exports.Share2=Sh;exports.ShareDialog=kq;exports.Skeleton=Xs;exports.Slider=Gte;exports.SmallSwitch=Ite;exports.SortableContext=ky;exports.Sparkles=q1;exports.Square=S8;exports.SquarePen=Y1;exports.Star=JT;exports.Table2=jh;exports.TableSkeleton=UZ;exports.TableVisual=lf;exports.Tabs=Os;exports.TabsContent=pr;exports.TabsList=ys;exports.TabsTrigger=nn;exports.Tag=j8;exports.TbChartTreemap=bS;exports.TextCard=Sm;exports.Textarea=vu;exports.Toggle=xy;exports.Tooltip=an;exports.TooltipArrow=sm;exports.TooltipContent=dn;exports.TooltipProvider=Ln;exports.TooltipTrigger=ln;exports.Trash2=ec;exports.TreePalm=nM;exports.TrendingUp=Yd;exports.TriangleAlert=jx;exports.Type=Lk;exports.UXProvider=RA;exports.User=Kl;exports.UserPlus=N8;exports.Users=Pr;exports.X=St;exports.areEntitiesJoined=_U;exports.arrayMove=_p;exports.calculateFieldState=ED;exports.canUserAccessVisuals=s3e;exports.canUserCreateDashboards=r3e;exports.canUserEdit=e3e;exports.canUserManageDashboards=n3e;exports.canUserManageGroups=o3e;exports.canUserUseFilters=t3e;exports.cancelExport=aCe;exports.chartSupportsDataLabels=yH;exports.chartSupportsLegend=bH;exports.chartTypes=yS;exports.cleanupIncompleteMessages=Dq;exports.cleanupKpiMetricComparisonMode=Kee;exports.cloneDeep=qd;exports.cloneFrameWithNewIds=NR;exports.closestCenter=Cy;exports.cn=X;exports.colors=$n;exports.createChartConfig=ND;exports.createEmptyKpiConfig=hhe;exports.createExport=FU;exports.createLucideIcon=we;exports.createSlot=Nx;exports.createSqlGenConfig=CT;exports.de=Ete;exports.dedup=tXe;exports.downloadPdf=jY;exports.emitDashboardLoad=Cre;exports.emitDashboardUnload=Sre;exports.fieldAlreadyExists=MU;exports.fmt=ab;exports.formatDisplayFormula=eQe;exports.formatFileSize=uCe;exports.getAutoDetectedChartIcon=_R;exports.getCacheConfig=O1;exports.getCanvasBackgroundColor=Hi;exports.getChartGridStyle=Ihe;exports.getColorForValue=Zk;exports.getColumnDataType=ise;exports.getContrastColor=wo;exports.getDataType=yr;exports.getDateFormatOptionsForGranularity=IX;exports.getDefaultAxisConfig=Qk;exports.getDefaultChartColors=Df;exports.getDefaultDataLabelsConfig=Vx;exports.getDefaultFilterSql=wK;exports.getDefaultLegendConfig=lD;exports.getDisplayName=$ee;exports.getDownloadUrl=iCe;exports.getEntityDetails=lXe;exports.getEntityIcon=N1;exports.getErrorMessage=Aee;exports.getExportStatus=oCe;exports.getExports=sCe;exports.getFieldIconComponent=_m;exports.getFilterCount=r1;exports.getFilterValueType=zi;exports.getFormattedTableNameForQuery=qv;exports.getKeys=zn;exports.getMetricDisplayLabel=K1e;exports.getNewField=RU;exports.getObjectDiff=Kz;exports.getQualifiedTableName=ST;exports.getRoleBasedDisplayOverrides=GZ;exports.getSql=wT;exports.handleAggregationChange=k_;exports.handleAggregationLabelChange=qZ;exports.hasValidCardConfig=Ql;exports.horizontalListSortingStrategy=UR;exports.hslStringToHex=Rhe;exports.invalidateToken=Kse;exports.isBooleanDataType=vT;exports.isCalculatedDimension=Ux;exports.isCalculatedField=Pw;exports.isCalculatedMetric=sc;exports.isColumnInSqlGen=ase;exports.isDateDataType=Ki;exports.isDefaultColor=whe;exports.isDevEnv=gT;exports.isExportComplete=cCe;exports.isExportInProgress=lCe;exports.isInAiScopeArray=eXe;exports.isNumberDataType=Gi;exports.isObjectEmpty=Wse;exports.isTextDataType=yx;exports.merge=Jh;exports.mergeAxisConfig=Jk;exports.pivotData=Lx;exports.postRequest=Ez;exports.postRequestRegular=eo;exports.prepareFeedbackData=VS;exports.remarkGfm=xJ;exports.removeFromScopeArray=nXe;exports.removeRing=Sc;exports.resolveDataType=jT;exports.resolveDatamodelName=gz;exports.sanitizeAIScope=Ree;exports.setupEditorWithCard=vY;exports.showJoinRequiredNotification=TU;exports.sortByColumnsToSortState=eG;exports.sortStateToSortByColumns=tG;exports.sortableKeyboardCoordinates=qR;exports.titleCase=lb;exports.toTitleCase=pi;exports.ue=ze;exports.useAIActions=WC;exports.useAIInteractionStore=la;exports.useActiveExports=nCe;exports.useActiveToolStatus=Uee;exports.useAddNewFrame=nX;exports.useAssignFilter=Jee;exports.useAssistantContainer=Mq;exports.useAssistantLayoutStore=Od;exports.useAssistantPanel=_q;exports.useAssistantProfile=Pee;exports.useAutoScroll=Vee;exports.useAutoSubmitQueue=Bee;exports.useCallbackRef=qr;exports.useCard=J1e;exports.useCardFilterValues=gC;exports.useChat=Iee;exports.useColumns=kD;exports.useCreateVisualWithFrame=Lde;exports.useCurrentAIContext=dp;exports.useCurrentActiveCard=Sz;exports.useCurrentCardConfig=Nz;exports.useCurrentSheetActiveCards=jz;exports.useCurrentUserInfo=Ps;exports.useCustomVisual=ly;exports.useCustomVisualsQuery=OR;exports.useDashboardActions=Wt;exports.useDashboardById=F7;exports.useDashboardCardQuery=Ha;exports.useDashboardCreation=z7;exports.useDashboardManagement=L7;exports.useDashboardPreferences=Hm;exports.useDashboardQuery=L1;exports.useDashboardStore=J;exports.useDataColumns=AU;exports.useDateFilterHook=UAe;exports.useDebounce=Ih;exports.useDefaultDashboardMutation=g7;exports.useDisplayPreferences=wu;exports.useDroppable=NX;exports.useEditorActions=cr;exports.useEditorAside=YS;exports.useEditorStore=Ae;exports.useEnsureReactGlobals=GG;exports.useExportActions=OU;exports.useExportStore=IC;exports.useFieldManagement=Zee;exports.useFileActions=QD;exports.useFileAttachments=XD;exports.useFullscreenAssistant=Tq;exports.useGroupMembers=hSe;exports.useGroups=HD;exports.useHasDashboardId=Rq;exports.useInProgressExportsCount=rCe;exports.useIsDashboardSelected=Roe;exports.useIsVisualSelected=Aoe;exports.useJoinabilityMap=OA;exports.useLayoutEffect2=Yr;exports.useManagementActions=Cx;exports.useManagementStore=hs;exports.useMessageWindow=Hee;exports.useMutation=ia;exports.usePivotTableConfig=hp;exports.usePluginQuery=tX;exports.usePromoteCalculatedMetricToDomain=gte;exports.useQuery=En;exports.useQueryClient=so;exports.useQueueActions=fp;exports.useResourceManagement=iC;exports.useResourceUpdateState=$7;exports.useScopedFields=PA;exports.useSelectedVisual=Ioe;exports.useSemaphorContext=Xe;exports.useSensor=Tm;exports.useSensors=NS;exports.useSortable=Ey;exports.useStarredChartsStore=Dte;exports.useSyncLegacyEditorState=yte;exports.useTextFilterHook=XAe;exports.useTheme=Rm;exports.useTopoJson=NU;exports.useUnifiedUsers=VD;exports.useUpdateResource=R7;exports.useUpdateVisualMutation=zde;exports.useUserPreferences=cB;exports.useVisualById=TM;exports.useVisualManagement=$de;exports.v4=Rr;exports.validateFieldForChartType=Gee;exports.verticalListSortingStrategy=WR;
|