react-semaphor 0.1.378 → 0.1.380
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-DZe8Nd-4.js → calendar-preferences-dialog-Dsgs8WDv.js} +1 -1
- package/dist/chunks/{calendar-preferences-dialog-CRvQz4TE.js → calendar-preferences-dialog-iZs8XqyH.js} +1 -1
- package/dist/chunks/dashboard-briefing-launcher-B5vPTl8P.js +80 -0
- package/dist/chunks/{dashboard-briefing-launcher-DURdx5Ox.js → dashboard-briefing-launcher-Coks66cV.js} +2102 -2151
- package/dist/chunks/{dashboard-controls-D5mjF67R.js → dashboard-controls-BfkcnIdy.js} +3 -3
- package/dist/chunks/{dashboard-controls-J71GLAxt.js → dashboard-controls-Dyqye6fh.js} +1 -1
- package/dist/chunks/{dashboard-json-Cv8jXh0X.js → dashboard-json-CV_LnO9x.js} +1 -1
- package/dist/chunks/{dashboard-json-BumvCRuk.js → dashboard-json-DjXi4cI6.js} +1 -1
- package/dist/chunks/{edit-dashboard-visual-eYJMy7aw.js → edit-dashboard-visual-DOW1Ap1N.js} +2 -2
- package/dist/chunks/{edit-dashboard-visual-dvhQzG_h.js → edit-dashboard-visual-yinO0yU-.js} +1 -1
- package/dist/chunks/{index-c_0nwsOM.js → index-CkoRCh3g.js} +1 -1
- package/dist/chunks/{index-hhH5F_tQ.js → index-DlprYjr6.js} +3 -3
- package/dist/chunks/{use-create-flow-overlay-state-D9UKBuCA.js → use-create-flow-overlay-state-NsqFPwdB.js} +1 -1
- package/dist/chunks/{use-create-flow-overlay-state-hlsTNh2b.js → use-create-flow-overlay-state-r5JKyXU8.js} +1 -1
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +1 -1
- package/dist/data-app-builder/index.cjs +1 -1
- package/dist/data-app-builder/index.js +1 -1
- package/dist/data-app-sdk/index.cjs +1 -1
- package/dist/data-app-sdk/index.js +340 -294
- package/dist/index.cjs +1 -1
- package/dist/index.js +53 -52
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +2 -2
- package/dist/types/main.d.ts +7 -0
- package/dist/types/types.d.ts +4 -0
- package/package.json +1 -1
- package/dist/chunks/dashboard-briefing-launcher-BWyHpn2M.js +0 -111
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("../chunks/validation-BVpqRFar.js"),z=require("../chunks/index-BxM99sFL.js"),p=require("react"),Q=require("react/jsx-runtime"),$=require("../chunks/validators-jpoYhpHh.js");require("../chunks/catalog-field-grounding-8L9I0zdg.js");const L=["records","changes","drivers","largestNegativeChanges","largestPositiveChanges","largestNegativeDrivers","largestPositiveDrivers"],N=["records","changes","drivers","largestNegativeChanges","largestPositiveChanges","largestNegativeDrivers","largestPositiveDrivers"];function E(e){if(!e)return{};const t=W(e.executionResult),n=U(e,t),r=J(n);return{...e,...Object.keys(n).length?{resultSets:n}:{},...r?{columns:r.columns,records:r.records,rowCount:r.rowCount}:{}}}function U(e,t){const n=B(e.resultSets);for(const i of L){if(n[i]){n[i]=P(n[i]);continue}const s=F(e[i]);if(!s.length)continue;const a=t.length?t:H(s);n[i]={records:O(s,a),columns:a,rowCount:s.length}}const r=Y(e.executionResult);return r&&r.records.length>0&&!n.records&&(n.records=r),n}function B(e){return Object.fromEntries(Object.entries(e||{}).map(([t,n])=>[t,P(n)]))}function P(e){var t;return{...e,records:O(e.records||[],e.columns||[]),rowCount:e.rowCount??((t=e.records)==null?void 0:t.length)??0}}function J(e){var t;for(const n of N)if((t=e[n])!=null&&t.records.length)return e[n];return Object.values(e).find(n=>n.records.length)||Object.values(e)[0]}function Y(e){const t=e==null?void 0:e.result;if(!(!t||t.kind!=="records"&&t.kind!=="sql"))return{records:O(t.records,t.columns),columns:t.columns,rowCount:t.rowCount??t.records.length}}function W(e){const t=e==null?void 0:e.result;return!t||t.kind!=="records"&&t.kind!=="sql"?[]:t.columns}function F(e){return Array.isArray(e)?e.filter(t=>!!(t&&typeof t=="object"&&!Array.isArray(t))):[]}function O(e,t){return t.length?e.map(n=>{const r={};return t.forEach((i,s)=>{const a=X(n,{name:i.key,label:i.label,fallbackNames:[i.name,Object.keys(n)[s]]});a!==void 0&&(r[i.key]=a)}),Object.keys(r).length?r:n}):e}function H(e){return Array.from(new Set(e.flatMap(n=>Object.keys(n)))).map(n=>({key:n,name:n,label:n}))}function X(e,t){const n=[t.name,t.label,...t.fallbackNames||[]].filter(r=>!!r);for(const r of n)if(Object.prototype.hasOwnProperty.call(e,r))return e[r]}function G(e){return e}function Z(e){return e}const ee={filter(e){return{...e,kind:"filter"}},control(e){return{...e,kind:"control"}},sqlParam(e){return{...e,kind:"control",role:"sqlParam"}},derivedField(e){return{...e,kind:"derived_field",expressionLanguage:e.expressionLanguage||"semaphor_sql_template"}},metric(e){return{...e,queryKind:"metric"}},analysis(e){return{...e,queryKind:"analysis"}},records(e){return{...e,queryKind:"records"}},inputOptions(e){return{...e,queryKind:"inputOptions"}},sql(e){return{...e,queryKind:"sql"}},matrix(e){return{...e,queryKind:"matrix"}}};function T(){return{executeAnalysis:(e,t,n)=>S(e,t,n??{}).then(E),executeMetric:(e,t)=>S(e,t),executeRecords:(e,t)=>S(e,t),executeInputOptions:(e,t)=>S(e,t),executeSql:(e,t)=>S(e,t),executeMatrix:(e,t)=>S(e,t)}}async function S(e,t,n){if(!t.token)throw new Error("SemaphorDataAppProvider needs a token to execute queries.");const r=await fetch(ne(t),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t.token}`},body:JSON.stringify({intent:e,activeInputs:t.activeInputs,...n?{analysisOptions:n}:{},resultShape:e.kind})}),i=await te(r);if(!r.ok||i.error)throw new Error(i.error||`Semaphor Data App execution failed with status ${r.status}.`);return i}async function te(e){const t=await e.text().catch(()=>"");if(!t.trim())return e.ok?{error:"Semaphor Data App execution returned an empty response."}:{};try{return JSON.parse(t)}catch{return e.ok?{error:"Semaphor Data App execution returned invalid JSON.",details:t}:{error:re(e,t),details:t}}}function re(e,t){const n=e.statusText?` ${e.statusText}`:"",r=t.replace(/\s+/g," ").trim();return r?`Semaphor Data App execution failed with status ${e.status}${n}: ${r.slice(0,240)}`:`Semaphor Data App execution failed with status ${e.status}${n}.`}function ne(e){const t=oe(e).replace(/\/+$/,"");return t?t.endsWith("/api")?`${t}/v1/data-app/execute`:`${t}/api/v1/data-app/execute`:"/api/v1/data-app/execute"}function oe(e){if(e.apiBaseUrl)return e.apiBaseUrl;if(!e.token)return"";try{return z.jwtDecode(e.token).apiServiceUrl||""}catch{return""}}const K=p.createContext({});function V(){if(!(typeof window>"u"))return window.__SEMAPHOR_DATA_APP_RUNTIME__}function j(){return p.useContext(K)}function ie({token:e,apiBaseUrl:t,executor:n,children:r}){var o;const i=V(),s=((o=i==null?void 0:i.authToken)==null?void 0:o.accessToken)||e,a=(i==null?void 0:i.dataApiBaseUrl)||(i==null?void 0:i.apiBaseUrl)||t,h=p.useMemo(()=>T(),[]),c=n||h,l=p.useMemo(()=>({token:s,apiBaseUrl:a,executor:c}),[a,c,s]);return Q.jsx(K.Provider,{value:l,children:r})}const g={value:null},x={},ue={records:[]},D={options:[]},se={records:[]},k={};function ae(e){const t=u.toSemaphorActiveInputSnapshots(e.inputs),n=u.toSemaphorAnalysisQueryOptions(e);try{const r=u.toSemaphorAnalysisIntent(e),i=y(r);return i?{error:i,activeInputs:t,analysisOptions:n,queryKey:m(void 0,t,i,n),idleData:x}:{intent:r,error:null,activeInputs:t,analysisOptions:n,queryKey:m(r,t,void 0,n),idleData:x}}catch(r){const i=f(r);return{error:i,activeInputs:t,analysisOptions:n,queryKey:m(void 0,t,i,n),idleData:x}}}function ce(e){const t=u.toSemaphorActiveInputSnapshots(e.inputs);try{const n=u.toSemaphorMetricIntent(e),r=y(n);return r?{error:r,activeInputs:t,queryKey:m(void 0,t,r),idleData:g}:{intent:n,error:null,activeInputs:t,queryKey:m(n,t),idleData:g}}catch(n){const r=f(n);return{error:r,activeInputs:t,queryKey:m(void 0,t,r),idleData:g}}}function le(e){const t=u.toSemaphorActiveInputSnapshots(e.inputs),n=ue;try{const r=u.toSemaphorRecordsIntent(e),i=y(r);return i?{error:i,activeInputs:t,queryKey:m(void 0,t,i),idleData:n}:{intent:r,error:null,activeInputs:t,queryKey:m(r,t),idleData:n}}catch(r){const i=f(r);return{error:i,activeInputs:t,queryKey:m(void 0,t,i),idleData:n}}}function de(e){try{const t=u.toSemaphorInputOptionsIntent(e),n=y(t);return n?{error:n,queryKey:m(void 0,void 0,n),idleData:D}:{intent:t,error:null,queryKey:m(t),idleData:D}}catch(t){const n=f(t);return{error:n,queryKey:m(void 0,void 0,n),idleData:D}}}function pe(e){const t=u.toSemaphorActiveInputSnapshots(e.inputs),n=se;try{const r=u.toSemaphorSqlIntent(e),i=y(r);return i?{error:i,activeInputs:t,queryKey:m(void 0,t,i),idleData:n}:{intent:r,error:null,activeInputs:t,queryKey:m(r,t),idleData:n}}catch(r){const i=f(r);return{error:i,activeInputs:t,queryKey:m(void 0,t,i),idleData:n}}}function me(e){const t=u.toSemaphorActiveInputSnapshots(e.inputs);try{const n=u.toSemaphorMatrixIntent(e),r=y(n);return r?{error:r,activeInputs:t,queryKey:m(void 0,t,r),idleData:k}:{intent:n,error:null,activeInputs:t,queryKey:m(n,t),idleData:k}}catch(n){const r=f(n);return{error:r,activeInputs:t,queryKey:m(void 0,t,r),idleData:k}}}function f(e){return e instanceof Error?e:new Error(String(e))}function y(e){const t=$.validateSemaphorAnalyticsIntent(e);if(t.ok)return null;const n=t.errors.map(r=>r.path?`${r.code} at ${r.path}: ${r.message}`:`${r.code}: ${r.message}`).join("; ");return new Error(`Invalid Semaphor analytics intent. ${n}`)}function m(e,t,n,r){return JSON.stringify({intent:e,activeInputs:t,analysisOptions:r,error:n==null?void 0:n.message})}function he(e){const[t,n]=p.useState(e.defaultValue),r=Object.prototype.hasOwnProperty.call(e,"value"),i=r?e.value:t,s=p.useMemo(()=>u.normalizeSemaphorInputOptions(e.options),[e.options]),a=p.useCallback(c=>{var o;const l=c;(o=e.onValueChange)==null||o.call(e,l),r||n(l)},[r,e]),h=p.useCallback(()=>a(void 0),[a]);return p.useMemo(()=>{const c=u.toSemaphorInputSpec(e);return{id:e.id,kind:e.kind,label:e.label,field:c.field,operator:c.operator,controlRole:e.kind==="control"?e.role:void 0,value:i,options:s,isActive:u.hasSemaphorInputValue(i),setValue:a,clear:h,toAnalyticsInput:()=>({inputId:c.inputId,field:c.field,kind:e.kind,label:e.label,value:i,isActive:u.hasSemaphorInputValue(i),operator:c.operator,controlRole:e.kind==="control"?e.role:void 0})}},[h,s,a,e,i])}function fe(e){const[t,n]=p.useState(()=>ve(e));return p.useEffect(()=>{n(r=>{let i=r;for(const s of e)!Object.prototype.hasOwnProperty.call(i,s.id)&&s.defaultValue!==void 0&&(i={...i,[s.id]:s.defaultValue});return i})},[e]),p.useMemo(()=>e.map(r=>{const i=Object.prototype.hasOwnProperty.call(r,"value"),s=i?r.value:t[r.id],a=u.normalizeSemaphorInputOptions(r.options),h=o=>{var d;(d=r.onValueChange)==null||d.call(r,o),i||n(v=>({...v,[r.id]:o}))},c=()=>h(void 0),l=u.toSemaphorInputSpec(r);return{id:r.id,kind:r.kind,label:r.label,field:l.field,operator:l.operator,controlRole:r.kind==="control"?r.role:void 0,value:s,options:a,isActive:u.hasSemaphorInputValue(s),setValue:h,clear:c,toAnalyticsInput:()=>({inputId:l.inputId,field:l.field,kind:r.kind,label:r.label,value:s,isActive:u.hasSemaphorInputValue(s),operator:l.operator,controlRole:r.kind==="control"?r.role:void 0})}}),[e,t])}function Se(e,t={}){const n=p.useMemo(()=>t.inputs?{...e,inputs:t.inputs}:e,[t.inputs,e]),r=p.useMemo(()=>{switch(n.queryKind){case"metric":return{queryKind:n.queryKind,request:ce(n)};case"analysis":return{queryKind:n.queryKind,request:ae(n)};case"records":return{queryKind:n.queryKind,request:le(n)};case"inputOptions":return{queryKind:n.queryKind,request:de(n)};case"sql":return{queryKind:n.queryKind,request:pe(n)};case"matrix":return{queryKind:n.queryKind,request:me(n)};default:return R(n)}},[n]),i=p.useCallback(o=>{var v,q,b,w,C,I,_,A,M;const d=r.request;if(d.intent)switch(r.queryKind){case"metric":return(v=o.executor)==null?void 0:v.executeMetric(d.intent,o);case"analysis":return(b=(q=o.executor)==null?void 0:q.executeAnalysis)==null?void 0:b.call(q,d.intent,o,d.analysisOptions);case"records":return(w=o.executor)==null?void 0:w.executeRecords(d.intent,o);case"inputOptions":return(C=o.executor)==null?void 0:C.executeInputOptions(d.intent,o);case"sql":return(_=(I=o.executor)==null?void 0:I.executeSql)==null?void 0:_.call(I,d.intent,o);case"matrix":return(M=(A=o.executor)==null?void 0:A.executeMatrix)==null?void 0:M.call(A,d.intent,o);default:return R(r)}},[r]),s=ye(r.request.queryKey,i,r.request.idleData,r.request.activeInputs),a=r.request.error?r.request.idleData:s.data,h=r.request.error?"error":s.status,c=!r.request.error&&s.status==="loading",l=r.request.error||s.error;switch(r.queryKind){case"metric":{const o=a;return{id:n.id,intent:r.request.intent,value:(o==null?void 0:o.value)??null,metrics:o==null?void 0:o.metrics,comparisonValue:o==null?void 0:o.comparisonValue,delta:o==null?void 0:o.delta,deltaPercent:o==null?void 0:o.deltaPercent,records:o==null?void 0:o.records,executionResult:o==null?void 0:o.executionResult,status:h,isLoading:c,error:l}}case"analysis":{const o=E(a);return{id:n.id,intent:r.request.intent,...o||{},status:h,isLoading:c,error:l}}case"records":{const o=a;return{id:n.id,intent:r.request.intent,records:(o==null?void 0:o.records)||[],columns:o==null?void 0:o.columns,rowCount:o==null?void 0:o.rowCount,pagination:o==null?void 0:o.pagination,executionResult:o==null?void 0:o.executionResult,status:h,isLoading:c,error:l}}case"inputOptions":{const o=a;return{id:n.id,intent:r.request.intent,options:(o==null?void 0:o.options)||[],executionResult:o==null?void 0:o.executionResult,status:h,isLoading:c,error:l}}case"sql":{const o=a;return{id:n.id,intent:r.request.intent,records:(o==null?void 0:o.records)||[],columns:o==null?void 0:o.columns,rowCount:o==null?void 0:o.rowCount,pagination:o==null?void 0:o.pagination,output:o==null?void 0:o.output,rowLimitExceeded:o==null?void 0:o.rowLimitExceeded,executionResult:o==null?void 0:o.executionResult,status:h,isLoading:c,error:l}}case"matrix":{const o=a;return{id:n.id,intent:r.request.intent,matrixResult:o==null?void 0:o.matrixResult,grid:o==null?void 0:o.grid,expansion:o==null?void 0:o.expansion,executionResult:o==null?void 0:o.executionResult,status:h,isLoading:c,error:l}}default:return R(r)}}function ye(e,t,n,r){const i=j(),s=p.useRef(t),a=p.useRef(r),[h,c]=p.useState({status:"idle",data:n,error:null});return s.current=t,a.current=r,p.useEffect(()=>{let l;try{l=s.current({...i,activeInputs:a.current})}catch(d){c({status:"error",data:n,error:f(d)});return}if(!l){c({status:"idle",data:n,error:null});return}let o=!1;return c(d=>({status:"loading",data:d.data,error:null})),l.then(d=>{o||c({status:"success",data:d,error:null})}).catch(d=>{o||c({status:"error",data:n,error:f(d)})}),()=>{o=!0}},[n,e,i]),h}function ve(e){return Object.fromEntries(e.filter(t=>t.defaultValue!==void 0).map(t=>[t.id,t.defaultValue]))}function R(e){throw new Error(`Unsupported Semaphor query kind: ${JSON.stringify(e)}`)}exports.hasSemaphorInputValue=u.hasSemaphorInputValue;exports.normalizeSemaphorAnalysisQueryOptions=u.normalizeSemaphorAnalysisQueryOptions;exports.normalizeSemaphorInputOptions=u.normalizeSemaphorInputOptions;exports.toSemaphorActiveInputSnapshots=u.toSemaphorActiveInputSnapshots;exports.toSemaphorAnalysisIntent=u.toSemaphorAnalysisIntent;exports.toSemaphorAnalysisQueryOptions=u.toSemaphorAnalysisQueryOptions;exports.toSemaphorInputBinding=u.toSemaphorInputBinding;exports.toSemaphorInputBindings=u.toSemaphorInputBindings;exports.toSemaphorInputOptionsIntent=u.toSemaphorInputOptionsIntent;exports.toSemaphorInputSnapshots=u.toSemaphorInputSnapshots;exports.toSemaphorInputSpec=u.toSemaphorInputSpec;exports.toSemaphorMatrixIntent=u.toSemaphorMatrixIntent;exports.toSemaphorMetricIntent=u.toSemaphorMetricIntent;exports.toSemaphorRecordsIntent=u.toSemaphorRecordsIntent;exports.toSemaphorSqlIntent=u.toSemaphorSqlIntent;exports.validateSemaphorDataAppQuerySpecs=u.validateSemaphorDataAppQuerySpecs;exports.SemaphorDataAppContext=K;exports.SemaphorDataAppProvider=ie;exports.createSemaphorQueryExecutor=T;exports.defineSemaphorDataApp=G;exports.defineSemaphorInput=Z;exports.normalizeSemaphorAnalysisPayload=E;exports.readWindowRuntime=V;exports.semaphor=ee;exports.useSemaphorDataAppRuntime=j;exports.useSemaphorInput=he;exports.useSemaphorInputs=fe;exports.useSemaphorQuery=Se;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("../chunks/validation-BVpqRFar.js"),V=require("../chunks/index-BxM99sFL.js"),m=require("react"),N=require("react/jsx-runtime"),z=require("../chunks/validators-jpoYhpHh.js");require("../chunks/catalog-field-grounding-8L9I0zdg.js");const Q=["records","changes","drivers","largestNegativeChanges","largestPositiveChanges","largestNegativeDrivers","largestPositiveDrivers"],B=["records","changes","drivers","largestNegativeChanges","largestPositiveChanges","largestNegativeDrivers","largestPositiveDrivers"];function R(e){if(!e)return{};const t=F(e.executionResult),r=L(e,t),n=J(r);return{...e,...Object.keys(r).length?{resultSets:r}:{},...n?{columns:n.columns,records:n.records,rowCount:n.rowCount}:{}}}function L(e,t){const r=U(e.resultSets);for(const i of Q){if(r[i]){r[i]=M(r[i]);continue}const a=W(e[i]);if(!a.length)continue;const s=t.length?t:H(a);r[i]={records:O(a,s),columns:s,rowCount:a.length}}const n=Y(e.executionResult);return n&&n.records.length>0&&!r.records&&(r.records=n),r}function U(e){return Object.fromEntries(Object.entries(e||{}).map(([t,r])=>[t,M(r)]))}function M(e){var t;return{...e,records:O(e.records||[],e.columns||[]),rowCount:e.rowCount??((t=e.records)==null?void 0:t.length)??0}}function J(e){var t;for(const r of B)if((t=e[r])!=null&&t.records.length)return e[r];return Object.values(e).find(r=>r.records.length)||Object.values(e)[0]}function Y(e){const t=e==null?void 0:e.result;if(!(!t||t.kind!=="records"&&t.kind!=="sql"))return{records:O(t.records,t.columns),columns:t.columns,rowCount:t.rowCount??t.records.length}}function F(e){const t=e==null?void 0:e.result;return!t||t.kind!=="records"&&t.kind!=="sql"?[]:t.columns}function W(e){return Array.isArray(e)?e.filter(t=>!!(t&&typeof t=="object"&&!Array.isArray(t))):[]}function O(e,t){return t.length?e.map(r=>{const n={};return t.forEach((i,a)=>{const s=X(r,{name:i.key,label:i.label,fallbackNames:[i.name,Object.keys(r)[a]]});s!==void 0&&(n[i.key]=s)}),Object.keys(n).length?n:r}):e}function H(e){return Array.from(new Set(e.flatMap(r=>Object.keys(r)))).map(r=>({key:r,name:r,label:r}))}function X(e,t){const r=[t.name,t.label,...t.fallbackNames||[]].filter(n=>!!n);for(const n of r)if(Object.prototype.hasOwnProperty.call(e,n))return e[n]}function G(e){return e}function Z(e){return e}const ee={filter(e){return{...e,kind:"filter"}},control(e){return{...e,kind:"control"}},sqlParam(e){return{...e,kind:"control",role:"sqlParam"}},derivedField(e){return{...e,kind:"derived_field",expressionLanguage:e.expressionLanguage||"semaphor_sql_template"}},metric(e){return{...e,queryKind:"metric"}},analysis(e){return{...e,queryKind:"analysis"}},records(e){return{...e,queryKind:"records"}},inputOptions(e){return{...e,queryKind:"inputOptions"}},sql(e){return{...e,queryKind:"sql"}},matrix(e){return{...e,queryKind:"matrix"}}};function P(){return{executeAnalysis:(e,t,r)=>S(e,t,r??{}).then(R),executeMetric:(e,t)=>S(e,t),executeRecords:(e,t)=>S(e,t),executeInputOptions:(e,t)=>S(e,t),executeSql:(e,t)=>S(e,t),executeMatrix:(e,t)=>S(e,t)}}async function S(e,t,r){if(!t.token)throw new Error("SemaphorDataAppProvider needs a token to execute queries.");const n=ue(t),i=te(e,n);let a;try{a=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t.token}`},body:JSON.stringify({intent:e,activeInputs:t.activeInputs,...r?{analysisOptions:r}:{},resultShape:e.kind})})}catch(d){throw new Error(`${i}: ${d instanceof Error?d.message:String(d)}`)}const s=await oe(a);if(!a.ok||s.error)throw new Error(`${i}: ${s.error||`Semaphor Data App execution failed with status ${a.status}.`}`);return s}function te(e,t){return[`Semaphor ${e.kind} query`,e.id?`id=${e.id}`:void 0,e.label?`label=${e.label}`:void 0,re(e),`endpoint=${ne(t)}`].filter(r=>!!r).join(" ")}function re(e){const t="source"in e?e.source:void 0;if(!(!t||typeof t!="object")){if(t.kind==="semantic")return`source=${[t.domainId,t.datasetId||t.datasetName].filter(Boolean).join("/")}`;if(t.kind==="physical")return`source=${[t.connectionId,t.databaseName,t.schemaName,t.tableName].filter(Boolean).join("/")}`;if(t.kind==="sql")return t.connectionId?`source=${t.connectionId}`:void 0}}function ne(e){if(!e)return"/api/v1/data-app/execute";try{return new URL(e,"http://localhost").pathname}catch{return e}}async function oe(e){const t=await e.text().catch(()=>"");if(!t.trim())return e.ok?{error:"Semaphor Data App execution returned an empty response."}:{};try{return JSON.parse(t)}catch{return e.ok?{error:"Semaphor Data App execution returned invalid JSON.",details:t}:{error:ie(e,t),details:t}}}function ie(e,t){const r=e.statusText?` ${e.statusText}`:"",n=t.replace(/\s+/g," ").trim();return n?`Semaphor Data App execution failed with status ${e.status}${r}: ${n.slice(0,240)}`:`Semaphor Data App execution failed with status ${e.status}${r}.`}function ue(e){const t=ae(e).replace(/\/+$/,"");return t?t.endsWith("/api")?`${t}/v1/data-app/execute`:`${t}/api/v1/data-app/execute`:"/api/v1/data-app/execute"}function ae(e){if(e.apiBaseUrl)return e.apiBaseUrl;if(!e.token)return"";try{return V.jwtDecode(e.token).apiServiceUrl||""}catch{return""}}const b=m.createContext({});function j(){if(!(typeof window>"u"))return window.__SEMAPHOR_DATA_APP_RUNTIME__}function T(){return m.useContext(b)}function se({token:e,apiBaseUrl:t,executor:r,children:n}){var o;const i=j(),a=((o=i==null?void 0:i.authToken)==null?void 0:o.accessToken)||e,s=(i==null?void 0:i.dataApiBaseUrl)||(i==null?void 0:i.apiBaseUrl)||t,d=m.useMemo(()=>P(),[]),c=r||d,l=m.useMemo(()=>({token:a,apiBaseUrl:s,executor:c}),[s,c,a]);return N.jsx(b.Provider,{value:l,children:n})}const g={value:null},x={},ce={records:[]},k={options:[]},le={records:[]},D={};function de(e){const t=u.toSemaphorActiveInputSnapshots(e.inputs),r=u.toSemaphorAnalysisQueryOptions(e);try{const n=u.toSemaphorAnalysisIntent(e),i=y(n);return i?{error:i,activeInputs:t,analysisOptions:r,queryKey:h(void 0,t,i,r),idleData:x}:{intent:n,error:null,activeInputs:t,analysisOptions:r,queryKey:h(n,t,void 0,r),idleData:x}}catch(n){const i=f(n);return{error:i,activeInputs:t,analysisOptions:r,queryKey:h(void 0,t,i,r),idleData:x}}}function pe(e){const t=u.toSemaphorActiveInputSnapshots(e.inputs);try{const r=u.toSemaphorMetricIntent(e),n=y(r);return n?{error:n,activeInputs:t,queryKey:h(void 0,t,n),idleData:g}:{intent:r,error:null,activeInputs:t,queryKey:h(r,t),idleData:g}}catch(r){const n=f(r);return{error:n,activeInputs:t,queryKey:h(void 0,t,n),idleData:g}}}function me(e){const t=u.toSemaphorActiveInputSnapshots(e.inputs),r=ce;try{const n=u.toSemaphorRecordsIntent(e),i=y(n);return i?{error:i,activeInputs:t,queryKey:h(void 0,t,i),idleData:r}:{intent:n,error:null,activeInputs:t,queryKey:h(n,t),idleData:r}}catch(n){const i=f(n);return{error:i,activeInputs:t,queryKey:h(void 0,t,i),idleData:r}}}function he(e){try{const t=u.toSemaphorInputOptionsIntent(e),r=y(t);return r?{error:r,queryKey:h(void 0,void 0,r),idleData:k}:{intent:t,error:null,queryKey:h(t),idleData:k}}catch(t){const r=f(t);return{error:r,queryKey:h(void 0,void 0,r),idleData:k}}}function fe(e){const t=u.toSemaphorActiveInputSnapshots(e.inputs),r=le;try{const n=u.toSemaphorSqlIntent(e),i=y(n);return i?{error:i,activeInputs:t,queryKey:h(void 0,t,i),idleData:r}:{intent:n,error:null,activeInputs:t,queryKey:h(n,t),idleData:r}}catch(n){const i=f(n);return{error:i,activeInputs:t,queryKey:h(void 0,t,i),idleData:r}}}function Se(e){const t=u.toSemaphorActiveInputSnapshots(e.inputs);try{const r=u.toSemaphorMatrixIntent(e),n=y(r);return n?{error:n,activeInputs:t,queryKey:h(void 0,t,n),idleData:D}:{intent:r,error:null,activeInputs:t,queryKey:h(r,t),idleData:D}}catch(r){const n=f(r);return{error:n,activeInputs:t,queryKey:h(void 0,t,n),idleData:D}}}function f(e){return e instanceof Error?e:new Error(String(e))}function y(e){const t=z.validateSemaphorAnalyticsIntent(e);if(t.ok)return null;const r=t.errors.map(n=>n.path?`${n.code} at ${n.path}: ${n.message}`:`${n.code}: ${n.message}`).join("; ");return new Error(`Invalid Semaphor analytics intent. ${r}`)}function h(e,t,r,n){return JSON.stringify({intent:e,activeInputs:t,analysisOptions:n,error:r==null?void 0:r.message})}function ye(e){const[t,r]=m.useState(e.defaultValue),n=Object.prototype.hasOwnProperty.call(e,"value"),i=n?e.value:t,a=m.useMemo(()=>u.normalizeSemaphorInputOptions(e.options),[e.options]),s=m.useCallback(c=>{var o;const l=c;(o=e.onValueChange)==null||o.call(e,l),n||r(l)},[n,e]),d=m.useCallback(()=>s(void 0),[s]);return m.useMemo(()=>{const c=u.toSemaphorInputSpec(e);return{id:e.id,kind:e.kind,label:e.label,field:c.field,operator:c.operator,controlRole:e.kind==="control"?e.role:void 0,value:i,options:a,isActive:u.hasSemaphorInputValue(i),setValue:s,clear:d,toAnalyticsInput:()=>({inputId:c.inputId,field:c.field,kind:e.kind,label:e.label,value:i,isActive:u.hasSemaphorInputValue(i),operator:c.operator,controlRole:e.kind==="control"?e.role:void 0})}},[d,a,s,e,i])}function ve(e){const[t,r]=m.useState(()=>Ae(e));return m.useEffect(()=>{r(n=>{let i=n;for(const a of e)!Object.prototype.hasOwnProperty.call(i,a.id)&&a.defaultValue!==void 0&&(i={...i,[a.id]:a.defaultValue});return i})},[e]),m.useMemo(()=>e.map(n=>{const i=Object.prototype.hasOwnProperty.call(n,"value"),a=i?n.value:t[n.id],s=u.normalizeSemaphorInputOptions(n.options),d=o=>{var p;(p=n.onValueChange)==null||p.call(n,o),i||r(v=>({...v,[n.id]:o}))},c=()=>d(void 0),l=u.toSemaphorInputSpec(n);return{id:n.id,kind:n.kind,label:n.label,field:l.field,operator:l.operator,controlRole:n.kind==="control"?n.role:void 0,value:a,options:s,isActive:u.hasSemaphorInputValue(a),setValue:d,clear:c,toAnalyticsInput:()=>({inputId:l.inputId,field:l.field,kind:n.kind,label:n.label,value:a,isActive:u.hasSemaphorInputValue(a),operator:l.operator,controlRole:n.kind==="control"?n.role:void 0})}}),[e,t])}function qe(e,t={}){const r=m.useMemo(()=>t.inputs?{...e,inputs:t.inputs}:e,[t.inputs,e]),n=m.useMemo(()=>{switch(r.queryKind){case"metric":return{queryKind:r.queryKind,request:pe(r)};case"analysis":return{queryKind:r.queryKind,request:de(r)};case"records":return{queryKind:r.queryKind,request:me(r)};case"inputOptions":return{queryKind:r.queryKind,request:he(r)};case"sql":return{queryKind:r.queryKind,request:fe(r)};case"matrix":return{queryKind:r.queryKind,request:Se(r)};default:return E(r)}},[r]),i=m.useCallback(o=>{var v,q,K,w,C,I,$,A,_;const p=n.request;if(p.intent)switch(n.queryKind){case"metric":return(v=o.executor)==null?void 0:v.executeMetric(p.intent,o);case"analysis":return(K=(q=o.executor)==null?void 0:q.executeAnalysis)==null?void 0:K.call(q,p.intent,o,p.analysisOptions);case"records":return(w=o.executor)==null?void 0:w.executeRecords(p.intent,o);case"inputOptions":return(C=o.executor)==null?void 0:C.executeInputOptions(p.intent,o);case"sql":return($=(I=o.executor)==null?void 0:I.executeSql)==null?void 0:$.call(I,p.intent,o);case"matrix":return(_=(A=o.executor)==null?void 0:A.executeMatrix)==null?void 0:_.call(A,p.intent,o);default:return E(n)}},[n]),a=Ie(n.request.queryKey,i,n.request.idleData,n.request.activeInputs),s=n.request.error?n.request.idleData:a.data,d=n.request.error?"error":a.status,c=!n.request.error&&a.status==="loading",l=n.request.error||a.error;switch(n.queryKind){case"metric":{const o=s;return{id:r.id,intent:n.request.intent,value:(o==null?void 0:o.value)??null,metrics:o==null?void 0:o.metrics,comparisonValue:o==null?void 0:o.comparisonValue,delta:o==null?void 0:o.delta,deltaPercent:o==null?void 0:o.deltaPercent,records:o==null?void 0:o.records,executionResult:o==null?void 0:o.executionResult,status:d,isLoading:c,error:l}}case"analysis":{const o=R(s);return{id:r.id,intent:n.request.intent,...o||{},status:d,isLoading:c,error:l}}case"records":{const o=s;return{id:r.id,intent:n.request.intent,records:(o==null?void 0:o.records)||[],columns:o==null?void 0:o.columns,rowCount:o==null?void 0:o.rowCount,pagination:o==null?void 0:o.pagination,executionResult:o==null?void 0:o.executionResult,status:d,isLoading:c,error:l}}case"inputOptions":{const o=s;return{id:r.id,intent:n.request.intent,options:(o==null?void 0:o.options)||[],executionResult:o==null?void 0:o.executionResult,status:d,isLoading:c,error:l}}case"sql":{const o=s;return{id:r.id,intent:n.request.intent,records:(o==null?void 0:o.records)||[],columns:o==null?void 0:o.columns,rowCount:o==null?void 0:o.rowCount,pagination:o==null?void 0:o.pagination,output:o==null?void 0:o.output,rowLimitExceeded:o==null?void 0:o.rowLimitExceeded,executionResult:o==null?void 0:o.executionResult,status:d,isLoading:c,error:l}}case"matrix":{const o=s;return{id:r.id,intent:n.request.intent,matrixResult:o==null?void 0:o.matrixResult,grid:o==null?void 0:o.grid,expansion:o==null?void 0:o.expansion,executionResult:o==null?void 0:o.executionResult,status:d,isLoading:c,error:l}}default:return E(n)}}function Ie(e,t,r,n){const i=T(),a=m.useRef(t),s=m.useRef(n),[d,c]=m.useState({status:"idle",data:r,error:null});return a.current=t,s.current=n,m.useEffect(()=>{let l;try{l=a.current({...i,activeInputs:s.current})}catch(p){c({status:"error",data:r,error:f(p)});return}if(!l){c({status:"idle",data:r,error:null});return}let o=!1;return c(p=>({status:"loading",data:p.data,error:null})),l.then(p=>{o||c({status:"success",data:p,error:null})}).catch(p=>{o||c({status:"error",data:r,error:f(p)})}),()=>{o=!0}},[r,e,i]),d}function Ae(e){return Object.fromEntries(e.filter(t=>t.defaultValue!==void 0).map(t=>[t.id,t.defaultValue]))}function E(e){throw new Error(`Unsupported Semaphor query kind: ${JSON.stringify(e)}`)}exports.hasSemaphorInputValue=u.hasSemaphorInputValue;exports.normalizeSemaphorAnalysisQueryOptions=u.normalizeSemaphorAnalysisQueryOptions;exports.normalizeSemaphorInputOptions=u.normalizeSemaphorInputOptions;exports.toSemaphorActiveInputSnapshots=u.toSemaphorActiveInputSnapshots;exports.toSemaphorAnalysisIntent=u.toSemaphorAnalysisIntent;exports.toSemaphorAnalysisQueryOptions=u.toSemaphorAnalysisQueryOptions;exports.toSemaphorInputBinding=u.toSemaphorInputBinding;exports.toSemaphorInputBindings=u.toSemaphorInputBindings;exports.toSemaphorInputOptionsIntent=u.toSemaphorInputOptionsIntent;exports.toSemaphorInputSnapshots=u.toSemaphorInputSnapshots;exports.toSemaphorInputSpec=u.toSemaphorInputSpec;exports.toSemaphorMatrixIntent=u.toSemaphorMatrixIntent;exports.toSemaphorMetricIntent=u.toSemaphorMetricIntent;exports.toSemaphorRecordsIntent=u.toSemaphorRecordsIntent;exports.toSemaphorSqlIntent=u.toSemaphorSqlIntent;exports.validateSemaphorDataAppQuerySpecs=u.validateSemaphorDataAppQuerySpecs;exports.SemaphorDataAppContext=b;exports.SemaphorDataAppProvider=se;exports.createSemaphorQueryExecutor=P;exports.defineSemaphorDataApp=G;exports.defineSemaphorInput=Z;exports.normalizeSemaphorAnalysisPayload=R;exports.readWindowRuntime=j;exports.semaphor=ee;exports.useSemaphorDataAppRuntime=T;exports.useSemaphorInput=ye;exports.useSemaphorInputs=ve;exports.useSemaphorQuery=qe;
|