react-semaphor 0.1.367 → 0.1.369

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/analytics-protocol/index.cjs +1 -1
  2. package/dist/analytics-protocol/index.js +1 -1
  3. package/dist/brand-studio/index.cjs +5 -5
  4. package/dist/brand-studio/index.js +24 -23
  5. package/dist/chunks/{braces-Cc86y9Ov.js → braces-C3-w6xDL.js} +1 -1
  6. package/dist/chunks/{braces-CXvY9MwQ.js → braces-C8QqW4wu.js} +1 -1
  7. package/dist/chunks/{calendar-preferences-dialog-BOFlzOJg.js → calendar-preferences-dialog-6q51A6XC.js} +3 -3
  8. package/dist/chunks/{calendar-preferences-dialog-ZzwfJv2J.js → calendar-preferences-dialog-CUGzkNcE.js} +1 -1
  9. package/dist/chunks/{chevrons-up-down-CUZL1zaU.js → chevrons-up-down-CnCSGY02.js} +1 -1
  10. package/dist/chunks/{chevrons-up-down-qQMadOWA.js → chevrons-up-down-DSvLu4Ye.js} +1 -1
  11. package/dist/chunks/{dashboard-briefing-launcher-9-PCYMjR.js → dashboard-briefing-launcher-BEZnvIla.js} +1 -1
  12. package/dist/chunks/{dashboard-briefing-launcher-D2lBFqAd.js → dashboard-briefing-launcher-ptERmNJr.js} +176 -177
  13. package/dist/chunks/{dashboard-controls-D4bUHAjX.js → dashboard-controls-CGt6_hMf.js} +11 -11
  14. package/dist/chunks/{dashboard-controls-BIk094Ah.js → dashboard-controls-CqKC5oEk.js} +77 -77
  15. package/dist/chunks/{dashboard-json-DImOf512.js → dashboard-json-6SgPm_QW.js} +13 -14
  16. package/dist/chunks/dashboard-json-CYSbOdmE.js +1 -0
  17. package/dist/chunks/{edit-dashboard-visual-DTxkV6Fl.js → edit-dashboard-visual-ByQx_M2i.js} +8 -9
  18. package/dist/chunks/{edit-dashboard-visual-BHKlcqQR.js → edit-dashboard-visual-w6hKbjlw.js} +1 -1
  19. package/dist/chunks/index-BtqYNH_S.js +1361 -0
  20. package/dist/chunks/{index-BVEIk-rB.js → index-CPyEi9gS.js} +72498 -76193
  21. package/dist/chunks/{palette-DPuAc82h.js → palette-D-f4-82S.js} +1 -1
  22. package/dist/chunks/{palette-C1k347Tb.js → palette-DUGktM-M.js} +1 -1
  23. package/dist/chunks/{resource-management-panel-BeHceP2D.js → resource-management-panel-Bf8-3eUf.js} +1 -1
  24. package/dist/chunks/{resource-management-panel-BOfbSf48.js → resource-management-panel-mJ84NxzC.js} +152 -152
  25. package/dist/chunks/save-D3YYinDz.js +6 -0
  26. package/dist/chunks/save-kkBEBeLg.js +21 -0
  27. package/dist/chunks/{switch-xcWLtWs0.js → switch-Dkx2qEOr.js} +758 -776
  28. package/dist/chunks/{switch-C0S63HAv.js → switch-fIkmwzUt.js} +27 -32
  29. package/dist/chunks/{use-create-flow-overlay-state-B5FygfQL.js → use-create-flow-overlay-state-BfoXDDrd.js} +190 -189
  30. package/dist/chunks/use-create-flow-overlay-state-c6rCm36x.js +26 -0
  31. package/dist/chunks/{use-visual-utils-DxDE8S8M.js → use-visual-utils-C_c-aiqi.js} +1 -1
  32. package/dist/chunks/{use-visual-utils-CszWnFBW.js → use-visual-utils-NN0e3fBP.js} +13 -13
  33. package/dist/chunks/validation-Dsf7PydY.js +1 -0
  34. package/dist/chunks/validation-nOPr0mTk.js +803 -0
  35. package/dist/chunks/{validators-L0xEXtjf.js → validators-CVuWOHYv.js} +225 -158
  36. package/dist/chunks/validators-oc8qtP4q.js +1 -0
  37. package/dist/dashboard/index.cjs +1 -1
  38. package/dist/dashboard/index.js +1 -1
  39. package/dist/dashboard-authoring/index.cjs +1 -1
  40. package/dist/dashboard-authoring/index.js +1 -1
  41. package/dist/data-app-builder/index.cjs +51 -1
  42. package/dist/data-app-builder/index.js +3666 -2
  43. package/dist/data-app-sdk/index.cjs +1 -1
  44. package/dist/data-app-sdk/index.js +585 -383
  45. package/dist/data-app-sdk-validation/index.cjs +1 -1
  46. package/dist/data-app-sdk-validation/index.js +4 -4
  47. package/dist/index.cjs +1 -1
  48. package/dist/index.js +14 -14
  49. package/dist/surfboard/index.cjs +1 -1
  50. package/dist/surfboard/index.js +2 -2
  51. package/dist/types/analytics-protocol.d.ts +21 -1
  52. package/dist/types/dashboard-assistant.d.ts +21 -1
  53. package/dist/types/dashboard-authoring.d.ts +11 -1
  54. package/dist/types/data-app-builder.d.ts +11 -1
  55. package/dist/types/data-app-sdk-validation.d.ts +107 -23
  56. package/dist/types/data-app-sdk.d.ts +168 -35
  57. package/dist/types/main.d.ts +11 -1
  58. package/package.json +1 -1
  59. package/dist/chunks/dashboard-json-Bo1kX6W1.js +0 -1
  60. package/dist/chunks/index-HjDeEytV.js +0 -1411
  61. package/dist/chunks/use-create-flow-overlay-state-DOXTbTcQ.js +0 -26
  62. package/dist/chunks/validation-CrUjNWby.js +0 -689
  63. package/dist/chunks/validation-DGl8wnTt.js +0 -1
  64. package/dist/chunks/validators-Dq5X4mp0.js +0 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../chunks/validation-DGl8wnTt.js"),b=require("../chunks/index-BxM99sFL.js"),u=require("react"),q=require("react/jsx-runtime"),C=require("../chunks/validators-Dq5X4mp0.js"),w=["records","changes","drivers","largestNegativeChanges","largestPositiveChanges","largestNegativeDrivers","largestPositiveDrivers"],M=["records","changes","drivers","largestNegativeChanges","largestPositiveChanges","largestNegativeDrivers","largestPositiveDrivers"];function D(t){if(!t)return{};const e=$(t.executionResult),n=P(t,e),o=_(n);return{...t,...Object.keys(n).length?{resultSets:n}:{},...o&&!t.columns?{columns:o.columns}:{},...o&&!t.records?{records:o.records}:{},...o&&t.rowCount===void 0?{rowCount:o.rowCount}:{}}}function P(t,e){const n={...t.resultSets||{}};for(const r of w){if(n[r]){n[r]=T(n[r]);continue}const s=z(t[r]);if(!s.length)continue;const a=e.length?e:j(s);n[r]={records:k(s,a),columns:a,rowCount:s.length}}const o=K(t.executionResult);return o&&o.records.length>0&&!n.records&&(n.records=o),n}function T(t){var e;return{...t,records:k(t.records||[],t.columns||[]),rowCount:t.rowCount??((e=t.records)==null?void 0:e.length)??0}}function _(t){var e;for(const n of M)if((e=t[n])!=null&&e.records.length)return t[n];return Object.values(t).find(n=>n.records.length)||Object.values(t)[0]}function K(t){const e=t==null?void 0:t.result;if(!(!e||e.kind!=="records"&&e.kind!=="sql"))return{records:k(e.records,e.columns),columns:e.columns,rowCount:e.rowCount??e.records.length}}function $(t){const e=t==null?void 0:t.result;return!e||e.kind!=="records"&&e.kind!=="sql"?[]:e.columns}function z(t){return Array.isArray(t)?t.filter(e=>!!(e&&typeof e=="object"&&!Array.isArray(e))):[]}function k(t,e){return e.length?t.map(n=>{const o={};return e.forEach((r,s)=>{const a=B(n,{name:r.key,label:r.label,fallbackNames:[r.name,Object.keys(n)[s]]});a!==void 0&&(o[r.key]=a)}),Object.keys(o).length?o:n}):t}function j(t){return Array.from(new Set(t.flatMap(n=>Object.keys(n)))).map(n=>({key:n,name:n,label:n}))}function B(t,e){const n=[e.name,e.label,...e.fallbackNames||[]].filter(o=>!!o);for(const o of n)if(Object.prototype.hasOwnProperty.call(t,o))return t[o]}function O(){return{executeAnalysis:(t,e,n)=>y(t,e,n??{}).then(D),executeMetric:(t,e)=>y(t,e),executeRecords:(t,e)=>y(t,e),executeInputOptions:(t,e)=>y(t,e)}}async function y(t,e,n){if(!e.token)throw new Error("SemaphorDataAppProvider needs a token to execute queries.");const o=await fetch(V(e),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e.token}`},body:JSON.stringify({intent:t,activeInputs:e.activeInputs,...n?{analysisOptions:n}:{},resultShape:t.kind})}),r=await N(o);if(!o.ok||r.error)throw new Error(r.error||`Semaphor Data App execution failed with status ${o.status}.`);return r}async function N(t){const e=await t.text().catch(()=>"");if(!e.trim())return t.ok?{error:"Semaphor Data App execution returned an empty response."}:{};try{return JSON.parse(e)}catch{return t.ok?{error:"Semaphor Data App execution returned invalid JSON.",details:e}:{error:U(t,e),details:e}}}function U(t,e){const n=t.statusText?` ${t.statusText}`:"",o=e.replace(/\s+/g," ").trim();return o?`Semaphor Data App execution failed with status ${t.status}${n}: ${o.slice(0,240)}`:`Semaphor Data App execution failed with status ${t.status}${n}.`}function V(t){const e=L(t).replace(/\/+$/,"");return e?e.endsWith("/api")?`${e}/v1/data-app/execute`:`${e}/api/v1/data-app/execute`:"/api/v1/data-app/execute"}function L(t){if(t.apiBaseUrl)return t.apiBaseUrl;if(!t.token)return"";try{return b.jwtDecode(t.token).apiServiceUrl||""}catch{return""}}const R=u.createContext({});function E(){if(!(typeof window>"u"))return window.__SEMAPHOR_DATA_APP_RUNTIME__}function x(){return u.useContext(R)}function Q({token:t,apiBaseUrl:e,executor:n,children:o}){var d;const r=E(),s=((d=r==null?void 0:r.authToken)==null?void 0:d.accessToken)||t,a=(r==null?void 0:r.dataApiBaseUrl)||(r==null?void 0:r.apiBaseUrl)||e,p=u.useMemo(()=>O(),[]),c=n||p,m=u.useMemo(()=>({token:s,apiBaseUrl:a,executor:c}),[a,c,s]);return q.jsx(R.Provider,{value:m,children:o})}const A={value:null},I={},H={records:[]},g={options:[]};function J(t){const e=i.toSemaphorActiveInputSnapshots(t.inputs),n=i.toSemaphorAnalysisQueryOptions(t);try{const o=i.toSemaphorAnalysisIntent(t),r=f(o);return r?{error:r,activeInputs:e,analysisOptions:n,queryKey:l(void 0,e,r,n),idleData:I}:{intent:o,error:null,activeInputs:e,analysisOptions:n,queryKey:l(o,e,void 0,n),idleData:I}}catch(o){const r=S(o);return{error:r,activeInputs:e,analysisOptions:n,queryKey:l(void 0,e,r,n),idleData:I}}}function Y(t){const e=i.toSemaphorActiveInputSnapshots(t.inputs);try{const n=i.toSemaphorMetricIntent(t),o=f(n);return o?{error:o,activeInputs:e,queryKey:l(void 0,e,o),idleData:A}:{intent:n,error:null,activeInputs:e,queryKey:l(n,e),idleData:A}}catch(n){const o=S(n);return{error:o,activeInputs:e,queryKey:l(void 0,e,o),idleData:A}}}function W(t){const e=i.toSemaphorActiveInputSnapshots(t.inputs),n=H;try{const o=i.toSemaphorRecordsIntent(t),r=f(o);return r?{error:r,activeInputs:e,queryKey:l(void 0,e,r),idleData:n}:{intent:o,error:null,activeInputs:e,queryKey:l(o,e),idleData:n}}catch(o){const r=S(o);return{error:r,activeInputs:e,queryKey:l(void 0,e,r),idleData:n}}}function F(t){try{const e=i.toSemaphorInputOptionsIntent(t),n=f(e);return n?{error:n,queryKey:l(void 0,void 0,n),idleData:g}:{intent:e,error:null,queryKey:l(e),idleData:g}}catch(e){const n=S(e);return{error:n,queryKey:l(void 0,void 0,n),idleData:g}}}function S(t){return t instanceof Error?t:new Error(String(t))}function f(t){const e=C.validateSemaphorAnalyticsIntent(t);if(e.ok)return null;const n=e.errors.map(o=>o.path?`${o.code} at ${o.path}: ${o.message}`:`${o.code}: ${o.message}`).join("; ");return new Error(`Invalid Semaphor analytics intent. ${n}`)}function l(t,e,n,o){return JSON.stringify({intent:t,activeInputs:e,analysisOptions:o,error:n==null?void 0:n.message})}function G(t){const[e,n]=u.useState(t.defaultValue),o=Object.prototype.hasOwnProperty.call(t,"value"),r=o?t.value:e,s=u.useMemo(()=>i.normalizeSemaphorInputOptions(t.options),[t.options]),a=u.useCallback(c=>{var d;const m=c;(d=t.onValueChange)==null||d.call(t,m),o||n(m)},[o,t]),p=u.useCallback(()=>a(void 0),[a]);return u.useMemo(()=>{const c=i.toSemaphorInputSpec(t);return{id:t.id,kind:t.kind,label:t.label,field:c.field,operator:c.operator,controlRole:t.kind==="control"?t.role:void 0,value:r,options:s,isActive:i.hasSemaphorInputValue(r),setValue:a,clear:p,toAnalyticsInput:()=>({inputId:c.inputId,field:c.field,kind:t.kind,label:t.label,value:r,isActive:i.hasSemaphorInputValue(r),operator:c.operator,controlRole:t.kind==="control"?t.role:void 0})}},[p,s,a,t,r])}function X(t){const e=u.useMemo(()=>J(t),[t]),n=u.useCallback(s=>{var a,p;return e.intent?(p=(a=s.executor)==null?void 0:a.executeAnalysis)==null?void 0:p.call(a,e.intent,s,e.analysisOptions):void 0},[e.analysisOptions,e.intent]),o=v(e.queryKey,n,e.idleData,e.activeInputs),r=u.useMemo(()=>D(e.error?e.idleData:o.data),[e.error,e.idleData,o.data]);return{id:t.id,intent:e.intent,...r||{},status:e.error?"error":o.status,isLoading:!e.error&&o.status==="loading",error:e.error||o.error}}function Z(t){const e=u.useMemo(()=>Y(t),[t]),n=u.useCallback(s=>{var a;return e.intent?(a=s.executor)==null?void 0:a.executeMetric(e.intent,s):void 0},[e.intent]),o=v(e.queryKey,n,e.idleData,e.activeInputs),r=e.error?e.idleData:o.data;return{id:t.id,intent:e.intent,value:(r==null?void 0:r.value)??null,metrics:r==null?void 0:r.metrics,comparisonValue:r==null?void 0:r.comparisonValue,delta:r==null?void 0:r.delta,deltaPercent:r==null?void 0:r.deltaPercent,records:r==null?void 0:r.records,executionResult:r==null?void 0:r.executionResult,status:e.error?"error":o.status,isLoading:!e.error&&o.status==="loading",error:e.error||o.error}}function ee(t){const e=u.useMemo(()=>W(t),[t]),n=u.useCallback(s=>{var a;return e.intent?(a=s.executor)==null?void 0:a.executeRecords(e.intent,s):void 0},[e.intent]),o=v(e.queryKey,n,e.idleData,e.activeInputs),r=e.error?e.idleData:o.data;return{id:t.id,intent:e.intent,records:(r==null?void 0:r.records)||[],columns:r==null?void 0:r.columns,rowCount:r==null?void 0:r.rowCount,executionResult:r==null?void 0:r.executionResult,status:e.error?"error":o.status,isLoading:!e.error&&o.status==="loading",error:e.error||o.error}}function te(t){const e=u.useMemo(()=>F(t),[t]),n=u.useCallback(s=>{var a;return e.intent?(a=s.executor)==null?void 0:a.executeInputOptions(e.intent,s):void 0},[e.intent]),o=v(e.queryKey,n,e.idleData),r=e.error?e.idleData:o.data;return{id:t.id,intent:e.intent,options:(r==null?void 0:r.options)||[],executionResult:r==null?void 0:r.executionResult,status:e.error?"error":o.status,isLoading:!e.error&&o.status==="loading",error:e.error||o.error}}function v(t,e,n,o){const r=x(),s=u.useRef(e),a=u.useRef(o),[p,c]=u.useState({status:"idle",data:n,error:null});return s.current=e,a.current=o,u.useEffect(()=>{let m;try{m=s.current({...r,activeInputs:a.current})}catch(h){c({status:"error",data:n,error:S(h)});return}if(!m){c({status:"idle",data:n,error:null});return}let d=!1;return c(h=>({status:"loading",data:h.data,error:null})),m.then(h=>{d||c({status:"success",data:h,error:null})}).catch(h=>{d||c({status:"error",data:n,error:S(h)})}),()=>{d=!0}},[n,t,r]),p}exports.hasSemaphorInputValue=i.hasSemaphorInputValue;exports.normalizeSemaphorAnalysisQueryOptions=i.normalizeSemaphorAnalysisQueryOptions;exports.normalizeSemaphorInputOptions=i.normalizeSemaphorInputOptions;exports.toSemaphorActiveInputSnapshots=i.toSemaphorActiveInputSnapshots;exports.toSemaphorAnalysisIntent=i.toSemaphorAnalysisIntent;exports.toSemaphorAnalysisQueryOptions=i.toSemaphorAnalysisQueryOptions;exports.toSemaphorInputBinding=i.toSemaphorInputBinding;exports.toSemaphorInputBindings=i.toSemaphorInputBindings;exports.toSemaphorInputOptionsIntent=i.toSemaphorInputOptionsIntent;exports.toSemaphorInputSnapshots=i.toSemaphorInputSnapshots;exports.toSemaphorInputSpec=i.toSemaphorInputSpec;exports.toSemaphorMetricIntent=i.toSemaphorMetricIntent;exports.toSemaphorRecordsIntent=i.toSemaphorRecordsIntent;exports.validateSemaphorDataAppHookSpecs=i.validateSemaphorDataAppHookSpecs;exports.SemaphorDataAppContext=R;exports.SemaphorDataAppProvider=Q;exports.createSemaphorQueryExecutor=O;exports.normalizeSemaphorAnalysisPayload=D;exports.readWindowRuntime=E;exports.useSemaphorAnalysis=X;exports.useSemaphorDataAppRuntime=x;exports.useSemaphorInput=G;exports.useSemaphorInputOptions=te;exports.useSemaphorMetric=Z;exports.useSemaphorRecords=ee;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../chunks/validation-Dsf7PydY.js"),T=require("../chunks/index-BxM99sFL.js"),d=require("react"),j=require("react/jsx-runtime"),z=require("../chunks/validators-oc8qtP4q.js"),M=["records","changes","drivers","largestNegativeChanges","largestPositiveChanges","largestNegativeDrivers","largestPositiveDrivers"],Q=["records","changes","drivers","largestNegativeChanges","largestPositiveChanges","largestNegativeDrivers","largestPositiveDrivers"];function O(e){if(!e)return{};const t=L(e.executionResult),n=$(e,t),r=U(n);return{...e,...Object.keys(n).length?{resultSets:n}:{},...r?{columns:r.columns,records:r.records,rowCount:r.rowCount}:{}}}function $(e,t){const n=N(e.resultSets);for(const u of M){if(n[u]){n[u]=C(n[u]);continue}const s=J(e[u]);if(!s.length)continue;const a=t.length?t:Y(s);n[u]={records:E(s,a),columns:a,rowCount:s.length}}const r=B(e.executionResult);return r&&r.records.length>0&&!n.records&&(n.records=r),n}function N(e){return Object.fromEntries(Object.entries(e||{}).map(([t,n])=>[t,C(n)]))}function C(e){var t;return{...e,records:E(e.records||[],e.columns||[]),rowCount:e.rowCount??((t=e.records)==null?void 0:t.length)??0}}function U(e){var t;for(const n of Q)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 B(e){const t=e==null?void 0:e.result;if(!(!t||t.kind!=="records"&&t.kind!=="sql"))return{records:E(t.records,t.columns),columns:t.columns,rowCount:t.rowCount??t.records.length}}function L(e){const t=e==null?void 0:e.result;return!t||t.kind!=="records"&&t.kind!=="sql"?[]:t.columns}function J(e){return Array.isArray(e)?e.filter(t=>!!(t&&typeof t=="object"&&!Array.isArray(t))):[]}function E(e,t){return t.length?e.map(n=>{const r={};return t.forEach((u,s)=>{const a=W(n,{name:u.key,label:u.label,fallbackNames:[u.name,Object.keys(n)[s]]});a!==void 0&&(r[u.key]=a)}),Object.keys(r).length?r:n}):e}function Y(e){return Array.from(new Set(e.flatMap(n=>Object.keys(n)))).map(n=>({key:n,name:n,label:n}))}function W(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 H(e){return e}function F(e){return e}const G={filter(e){return{...e,kind:"filter"}},control(e){return{...e,kind:"control"}},sqlParam(e){return{...e,kind:"control",role:"sqlParam"}},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"}}};function P(){return{executeAnalysis:(e,t,n)=>S(e,t,n??{}).then(O),executeMetric:(e,t)=>S(e,t),executeRecords:(e,t)=>S(e,t),executeInputOptions:(e,t)=>S(e,t),executeSql:(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(ee(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})}),u=await X(r);if(!r.ok||u.error)throw new Error(u.error||`Semaphor Data App execution failed with status ${r.status}.`);return u}async function X(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:Z(e,t),details:t}}}function Z(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 ee(e){const t=te(e).replace(/\/+$/,"");return t?t.endsWith("/api")?`${t}/v1/data-app/execute`:`${t}/api/v1/data-app/execute`:"/api/v1/data-app/execute"}function te(e){if(e.apiBaseUrl)return e.apiBaseUrl;if(!e.token)return"";try{return T.jwtDecode(e.token).apiServiceUrl||""}catch{return""}}const R=d.createContext({});function V(){if(!(typeof window>"u"))return window.__SEMAPHOR_DATA_APP_RUNTIME__}function _(){return d.useContext(R)}function re({token:e,apiBaseUrl:t,executor:n,children:r}){var o;const u=V(),s=((o=u==null?void 0:u.authToken)==null?void 0:o.accessToken)||e,a=(u==null?void 0:u.dataApiBaseUrl)||(u==null?void 0:u.apiBaseUrl)||t,m=d.useMemo(()=>P(),[]),c=n||m,l=d.useMemo(()=>({token:s,apiBaseUrl:a,executor:c}),[a,c,s]);return j.jsx(R.Provider,{value:l,children:r})}const I={value:null},g={},ne={records:[]},k={options:[]},oe={records:[]};function ue(e){const t=i.toSemaphorActiveInputSnapshots(e.inputs),n=i.toSemaphorAnalysisQueryOptions(e);try{const r=i.toSemaphorAnalysisIntent(e),u=y(r);return u?{error:u,activeInputs:t,analysisOptions:n,queryKey:h(void 0,t,u,n),idleData:g}:{intent:r,error:null,activeInputs:t,analysisOptions:n,queryKey:h(r,t,void 0,n),idleData:g}}catch(r){const u=f(r);return{error:u,activeInputs:t,analysisOptions:n,queryKey:h(void 0,t,u,n),idleData:g}}}function ie(e){const t=i.toSemaphorActiveInputSnapshots(e.inputs);try{const n=i.toSemaphorMetricIntent(e),r=y(n);return r?{error:r,activeInputs:t,queryKey:h(void 0,t,r),idleData:I}:{intent:n,error:null,activeInputs:t,queryKey:h(n,t),idleData:I}}catch(n){const r=f(n);return{error:r,activeInputs:t,queryKey:h(void 0,t,r),idleData:I}}}function se(e){const t=i.toSemaphorActiveInputSnapshots(e.inputs),n=ne;try{const r=i.toSemaphorRecordsIntent(e),u=y(r);return u?{error:u,activeInputs:t,queryKey:h(void 0,t,u),idleData:n}:{intent:r,error:null,activeInputs:t,queryKey:h(r,t),idleData:n}}catch(r){const u=f(r);return{error:u,activeInputs:t,queryKey:h(void 0,t,u),idleData:n}}}function ae(e){try{const t=i.toSemaphorInputOptionsIntent(e),n=y(t);return n?{error:n,queryKey:h(void 0,void 0,n),idleData:k}:{intent:t,error:null,queryKey:h(t),idleData:k}}catch(t){const n=f(t);return{error:n,queryKey:h(void 0,void 0,n),idleData:k}}}function ce(e){const t=i.toSemaphorActiveInputSnapshots(e.inputs),n=oe;try{const r=i.toSemaphorSqlIntent(e),u=y(r);return u?{error:u,activeInputs:t,queryKey:h(void 0,t,u),idleData:n}:{intent:r,error:null,activeInputs:t,queryKey:h(r,t),idleData:n}}catch(r){const u=f(r);return{error:u,activeInputs:t,queryKey:h(void 0,t,u),idleData:n}}}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 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 h(e,t,n,r){return JSON.stringify({intent:e,activeInputs:t,analysisOptions:r,error:n==null?void 0:n.message})}function le(e){const[t,n]=d.useState(e.defaultValue),r=Object.prototype.hasOwnProperty.call(e,"value"),u=r?e.value:t,s=d.useMemo(()=>i.normalizeSemaphorInputOptions(e.options),[e.options]),a=d.useCallback(c=>{var o;const l=c;(o=e.onValueChange)==null||o.call(e,l),r||n(l)},[r,e]),m=d.useCallback(()=>a(void 0),[a]);return d.useMemo(()=>{const c=i.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:u,options:s,isActive:i.hasSemaphorInputValue(u),setValue:a,clear:m,toAnalyticsInput:()=>({inputId:c.inputId,field:c.field,kind:e.kind,label:e.label,value:u,isActive:i.hasSemaphorInputValue(u),operator:c.operator,controlRole:e.kind==="control"?e.role:void 0})}},[m,s,a,e,u])}function de(e){const[t,n]=d.useState(()=>he(e));return d.useEffect(()=>{n(r=>{let u=r;for(const s of e)!Object.prototype.hasOwnProperty.call(u,s.id)&&s.defaultValue!==void 0&&(u={...u,[s.id]:s.defaultValue});return u})},[e]),d.useMemo(()=>e.map(r=>{const u=Object.prototype.hasOwnProperty.call(r,"value"),s=u?r.value:t[r.id],a=i.normalizeSemaphorInputOptions(r.options),m=o=>{var p;(p=r.onValueChange)==null||p.call(r,o),u||n(v=>({...v,[r.id]:o}))},c=()=>m(void 0),l=i.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:i.hasSemaphorInputValue(s),setValue:m,clear:c,toAnalyticsInput:()=>({inputId:l.inputId,field:l.field,kind:r.kind,label:r.label,value:s,isActive:i.hasSemaphorInputValue(s),operator:l.operator,controlRole:r.kind==="control"?r.role:void 0})}}),[e,t])}function pe(e,t={}){const n=d.useMemo(()=>t.inputs?{...e,inputs:t.inputs}:e,[t.inputs,e]),r=d.useMemo(()=>{switch(n.queryKind){case"metric":return{queryKind:n.queryKind,request:ie(n)};case"analysis":return{queryKind:n.queryKind,request:ue(n)};case"records":return{queryKind:n.queryKind,request:se(n)};case"inputOptions":return{queryKind:n.queryKind,request:ae(n)};case"sql":return{queryKind:n.queryKind,request:ce(n)};default:return D(n)}},[n]),u=d.useCallback(o=>{var v,q,b,K,x,A,w;const p=r.request;if(p.intent)switch(r.queryKind){case"metric":return(v=o.executor)==null?void 0:v.executeMetric(p.intent,o);case"analysis":return(b=(q=o.executor)==null?void 0:q.executeAnalysis)==null?void 0:b.call(q,p.intent,o,p.analysisOptions);case"records":return(K=o.executor)==null?void 0:K.executeRecords(p.intent,o);case"inputOptions":return(x=o.executor)==null?void 0:x.executeInputOptions(p.intent,o);case"sql":return(w=(A=o.executor)==null?void 0:A.executeSql)==null?void 0:w.call(A,p.intent,o);default:return D(r)}},[r]),s=me(r.request.queryKey,u,r.request.idleData,r.request.activeInputs),a=r.request.error?r.request.idleData:s.data,m=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:m,isLoading:c,error:l}}case"analysis":{const o=O(a);return{id:n.id,intent:r.request.intent,...o||{},status:m,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:m,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:m,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:m,isLoading:c,error:l}}default:return D(r)}}function me(e,t,n,r){const u=_(),s=d.useRef(t),a=d.useRef(r),[m,c]=d.useState({status:"idle",data:n,error:null});return s.current=t,a.current=r,d.useEffect(()=>{let l;try{l=s.current({...u,activeInputs:a.current})}catch(p){c({status:"error",data:n,error:f(p)});return}if(!l){c({status:"idle",data:n,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:n,error:f(p)})}),()=>{o=!0}},[n,e,u]),m}function he(e){return Object.fromEntries(e.filter(t=>t.defaultValue!==void 0).map(t=>[t.id,t.defaultValue]))}function D(e){throw new Error(`Unsupported Semaphor query kind: ${JSON.stringify(e)}`)}exports.hasSemaphorInputValue=i.hasSemaphorInputValue;exports.normalizeSemaphorAnalysisQueryOptions=i.normalizeSemaphorAnalysisQueryOptions;exports.normalizeSemaphorInputOptions=i.normalizeSemaphorInputOptions;exports.toSemaphorActiveInputSnapshots=i.toSemaphorActiveInputSnapshots;exports.toSemaphorAnalysisIntent=i.toSemaphorAnalysisIntent;exports.toSemaphorAnalysisQueryOptions=i.toSemaphorAnalysisQueryOptions;exports.toSemaphorInputBinding=i.toSemaphorInputBinding;exports.toSemaphorInputBindings=i.toSemaphorInputBindings;exports.toSemaphorInputOptionsIntent=i.toSemaphorInputOptionsIntent;exports.toSemaphorInputSnapshots=i.toSemaphorInputSnapshots;exports.toSemaphorInputSpec=i.toSemaphorInputSpec;exports.toSemaphorMetricIntent=i.toSemaphorMetricIntent;exports.toSemaphorRecordsIntent=i.toSemaphorRecordsIntent;exports.toSemaphorSqlIntent=i.toSemaphorSqlIntent;exports.validateSemaphorDataAppQuerySpecs=i.validateSemaphorDataAppQuerySpecs;exports.SemaphorDataAppContext=R;exports.SemaphorDataAppProvider=re;exports.createSemaphorQueryExecutor=P;exports.defineSemaphorDataApp=H;exports.defineSemaphorInput=F;exports.normalizeSemaphorAnalysisPayload=O;exports.readWindowRuntime=V;exports.semaphor=G;exports.useSemaphorDataAppRuntime=_;exports.useSemaphorInput=le;exports.useSemaphorInputs=de;exports.useSemaphorQuery=pe;