react-semaphor 0.1.343 → 0.1.345

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 (43) hide show
  1. package/dist/analytics-protocol/index.cjs +1 -1
  2. package/dist/analytics-protocol/index.js +1 -1
  3. package/dist/chunks/{calendar-preferences-dialog-hS6POgEs.js → calendar-preferences-dialog-AVORk8vl.js} +1 -1
  4. package/dist/chunks/{calendar-preferences-dialog-_u4Xm011.js → calendar-preferences-dialog-CaeYg4gz.js} +1 -1
  5. package/dist/chunks/{dashboard-briefing-launcher-DHzIiaKF.js → dashboard-briefing-launcher-B7hc62UJ.js} +2062 -2062
  6. package/dist/chunks/dashboard-briefing-launcher-GmwoVZDA.js +106 -0
  7. package/dist/chunks/{dashboard-controls-CilLVS_Q.js → dashboard-controls-Bthl3kl3.js} +1 -1
  8. package/dist/chunks/{dashboard-controls-g1OcteYf.js → dashboard-controls-DOwo-4PX.js} +3 -3
  9. package/dist/chunks/{dashboard-json-ClH0kTga.js → dashboard-json-Bjge3tEx.js} +1 -1
  10. package/dist/chunks/{dashboard-json-BjnGSaxC.js → dashboard-json-CqWAmaOX.js} +1 -1
  11. package/dist/chunks/{edit-dashboard-visual-DbVMVMKM.js → edit-dashboard-visual-NXdSdqQS.js} +3 -3
  12. package/dist/chunks/{edit-dashboard-visual-C_3NYnPz.js → edit-dashboard-visual-biDU5oky.js} +1 -1
  13. package/dist/chunks/{index-BNZjkxPH.js → index-D7U5s9Uk.js} +70 -70
  14. package/dist/chunks/{index-CuSvSh86.js → index-DhuiooCy.js} +9167 -9167
  15. package/dist/chunks/{resource-management-panel-DxjN2uw4.js → resource-management-panel-DIt7NxsX.js} +2 -2
  16. package/dist/chunks/{resource-management-panel-N5iUOE89.js → resource-management-panel-MHam0keE.js} +1 -1
  17. package/dist/chunks/{use-create-flow-overlay-state-CSjc7cXZ.js → use-create-flow-overlay-state-DS5aPcKd.js} +1 -1
  18. package/dist/chunks/{use-create-flow-overlay-state-CXPnnXh1.js → use-create-flow-overlay-state-p_i0aUhH.js} +2 -2
  19. package/dist/chunks/{use-visual-utils-C3MRLrHu.js → use-visual-utils-EazVs86Z.js} +1 -1
  20. package/dist/chunks/{use-visual-utils-DsoGoqPF.js → use-visual-utils-PfpWtYcR.js} +1 -1
  21. package/dist/chunks/validators-8R9pr2K9.js +1 -0
  22. package/dist/chunks/{validators-BqEnmlC6.js → validators-yMB7Tm4j.js} +120 -109
  23. package/dist/dashboard/index.cjs +1 -1
  24. package/dist/dashboard/index.js +1 -1
  25. package/dist/dashboard-authoring/index.cjs +1 -1
  26. package/dist/dashboard-authoring/index.js +1 -1
  27. package/dist/data-app-builder/index.cjs +1 -1
  28. package/dist/data-app-builder/index.js +1 -1
  29. package/dist/data-app-sdk/index.cjs +1 -1
  30. package/dist/data-app-sdk/index.js +240 -227
  31. package/dist/index.cjs +1 -1
  32. package/dist/index.js +5 -5
  33. package/dist/surfboard/index.cjs +1 -1
  34. package/dist/surfboard/index.js +2 -2
  35. package/dist/types/dashboard-authoring.d.ts +1 -0
  36. package/dist/types/dashboard.d.ts +1 -0
  37. package/dist/types/main.d.ts +15 -0
  38. package/dist/types/shared.d.ts +1 -0
  39. package/dist/types/surfboard.d.ts +1 -0
  40. package/dist/types/types.d.ts +15 -0
  41. package/package.json +1 -1
  42. package/dist/chunks/dashboard-briefing-launcher-D18qNhwa.js +0 -106
  43. package/dist/chunks/validators-v8WAqhaN.js +0 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-BNZjkxPH.js");exports.DataAppBuilder=e.DataAppBuilder;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-D7U5s9Uk.js");exports.DataAppBuilder=e.DataAppBuilder;
@@ -1,4 +1,4 @@
1
- import { b as r } from "../chunks/index-CuSvSh86.js";
1
+ import { b as r } from "../chunks/index-DhuiooCy.js";
2
2
  export {
3
3
  r as DataAppBuilder
4
4
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("../chunks/validators-v8WAqhaN.js"),K=require("../chunks/index-BxM99sFL.js"),u=require("react"),F=require("react/jsx-runtime");function x(e){var n;const t=z(e);return{version:1,kind:"metric",id:e.id,label:e.label,source:D(e),metrics:t,primaryMetric:U(e,t),dateField:e.dateField?l(e.dateField,"date"):void 0,timeGrain:e.timeGrain,dimensions:(n=e.dimensions)==null?void 0:n.map(o=>l(o,"dimension")),comparison:Q(e.comparison),orderBy:e.orderBy?{field:l(e.orderBy.field),direction:e.orderBy.direction}:void 0,inputs:k(e.inputs),limit:e.limit}}function U(e,t){if(!e.primaryMetric)return t[0]||{name:"",role:"measure"};const n=l(e.primaryMetric,"measure"),o=n.source?t.find(r=>S.semaphorFieldRefsMatch(r,n)):(()=>{const r=t.filter(i=>i.name===n.name);return r.length===1?r[0]:void 0})();return o?E(n,o):n}function z(e){const t=[];for(const n of e.metrics.map(o=>l(o,"measure"))){if(!n.name)continue;const o=t.findIndex(r=>S.semaphorFieldRefsMatch(r,n));if(o===-1){t.push(n);continue}t[o]=E(t[o],n)}return t}function E(e,t){if(e.aggregate&&t.aggregate&&e.aggregate!==t.aggregate)throw new Error(`Metric "${e.name}" was requested with conflicting aggregate semantics: ${e.aggregate} and ${t.aggregate}.`);return{...S.preferSemaphorFieldRefMetadata(e,t),aggregate:e.aggregate||t.aggregate}}function q(e){if("sort"in e)throw new Error("useSemaphorRecords supports orderBy for a single deterministic sort. Multiple sort clauses are not supported by the analytics protocol yet.");if(!L(e))throw new Error("useSemaphorRecords needs at least one field.");const t=V(e.fields);return{version:1,kind:"records",id:e.id,label:e.label,source:D(e),fields:t,dateField:e.dateField?l(e.dateField,"date"):void 0,timeGrain:e.timeGrain,orderBy:e.orderBy?{field:l(e.orderBy.field),direction:e.orderBy.direction}:void 0,inputs:k(e.inputs),limit:e.limit}}function V(e){return e.map(t=>{const n=l(t);if(!n.role)throw new Error(`useSemaphorRecords field "${n.name}" needs an explicit role.`);return n})}function B(e){return{version:1,kind:"inputOptions",id:e.id,label:e.label,source:D(e),field:l(e.field,"dimension"),search:e.search,limit:e.limit}}function w(e){if("toAnalyticsInput"in e){const t=e.toAnalyticsInput();return{inputId:t.inputId,...t.field?{field:t.field}:{}}}return{inputId:e.inputId,...e.field?{field:e.field}:{}}}function j(e){const t=k(e);return t.length>0?t:void 0}function O(e){return(e||[]).map(N)}function A(e){return O(e).filter(t=>t.isActive)}function $(e){return e.kind==="filter"?{inputId:e.id,kind:e.kind,label:e.label,field:l(e.field,"dimension"),operator:e.operator||"in"}:{inputId:e.id,kind:e.kind,label:e.label}}function C(e=[]){return e.map(t=>typeof t=="object"?t:{label:String(t),value:t})}function y(e){return e==null?!1:Array.isArray(e)?e.length>0:typeof e=="string"?e.trim().length>0:!0}function N(e){return"toAnalyticsInput"in e?e.toAnalyticsInput():"kind"in e&&"isActive"in e?e:{...e,kind:"filter",isActive:y(e.value),value:e.value}}function D(e){return e.source}function L(e){var t;return!!((t=e.fields)!=null&&t.length)}function l(e,t){return{...e,role:e.role||t}}function k(e){return(e||[]).map(w)}function Q(e){if(e)return e}function T(){return{executeMetric:(e,t)=>v(e,t),executeRecords:(e,t)=>v(e,t),executeInputOptions:(e,t)=>v(e,t)}}async function v(e,t){if(!t.token)throw new Error("SemaphorDataAppProvider needs a token to execute queries.");const n=await fetch(W(t),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${t.token}`},body:JSON.stringify({intent:e,activeInputs:t.activeInputs,resultShape:e.kind})}),o=await G(n);if(!n.ok||o.error)throw new Error(o.error||`Semaphor Data App execution failed with status ${n.status}.`);return o}async function G(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:J(e,t),details:t}}}function J(e,t){const n=e.statusText?` ${e.statusText}`:"",o=t.replace(/\s+/g," ").trim();return o?`Semaphor Data App execution failed with status ${e.status}${n}: ${o.slice(0,240)}`:`Semaphor Data App execution failed with status ${e.status}${n}.`}function W(e){const t=H(e).replace(/\/+$/,"");return t?t.endsWith("/api")?`${t}/v1/data-app/execute`:`${t}/api/v1/data-app/execute`:"/api/v1/data-app/execute"}function H(e){if(e.apiBaseUrl)return e.apiBaseUrl;if(!e.token)return"";try{return K.jwtDecode(e.token).apiServiceUrl||""}catch{return""}}const R=u.createContext({});function P(){if(!(typeof window>"u"))return window.__SEMAPHOR_DATA_APP_RUNTIME__}function _(){return u.useContext(R)}function X({token:e,apiBaseUrl:t,executor:n,children:o}){var d;const r=P(),i=((d=r==null?void 0:r.authToken)==null?void 0:d.accessToken)||e,a=(r==null?void 0:r.dataApiBaseUrl)||(r==null?void 0:r.apiBaseUrl)||t,m=u.useMemo(()=>T(),[]),s=n||m,p=u.useMemo(()=>({token:i,apiBaseUrl:a,executor:s}),[a,s,i]);return F.jsx(R.Provider,{value:p,children:o})}const g={value:null},Y={records:[]},I={options:[]};function Z(e){const t=A(e.inputs);try{const n=x(e),o=M(n);return o?{error:o,activeInputs:t,queryKey:c(void 0,t,o),idleData:g}:{intent:n,error:null,activeInputs:t,queryKey:c(n,t),idleData:g}}catch(n){const o=h(n);return{error:o,activeInputs:t,queryKey:c(void 0,t,o),idleData:g}}}function ee(e){const t=A(e.inputs),n=Y;try{const o=q(e),r=M(o);return r?{error:r,activeInputs:t,queryKey:c(void 0,t,r),idleData:n}:{intent:o,error:null,activeInputs:t,queryKey:c(o,t),idleData:n}}catch(o){const r=h(o);return{error:r,activeInputs:t,queryKey:c(void 0,t,r),idleData:n}}}function te(e){try{const t=B(e),n=M(t);return n?{error:n,queryKey:c(void 0,void 0,n),idleData:I}:{intent:t,error:null,queryKey:c(t),idleData:I}}catch(t){const n=h(t);return{error:n,queryKey:c(void 0,void 0,n),idleData:I}}}function h(e){return e instanceof Error?e:new Error(String(e))}function M(e){const t=S.validateSemaphorAnalyticsIntent(e);if(t.ok)return null;const n=t.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 c(e,t,n){return JSON.stringify({intent:e,activeInputs:t,error:n==null?void 0:n.message})}function re(e){const[t,n]=u.useState(e.defaultValue),o=Object.prototype.hasOwnProperty.call(e,"value"),r=o?e.value:t,i=u.useMemo(()=>C(e.options),[e.options]),a=u.useCallback(s=>{var d;const p=s;(d=e.onValueChange)==null||d.call(e,p),o||n(p)},[o,e]),m=u.useCallback(()=>a(void 0),[a]);return u.useMemo(()=>{const s=$(e);return{id:e.id,kind:e.kind,label:e.label,field:s.field,operator:s.operator,controlRole:e.kind==="control"?e.role:void 0,value:r,options:i,isActive:y(r),setValue:a,clear:m,toAnalyticsInput:()=>({inputId:s.inputId,field:s.field,kind:e.kind,label:e.label,value:r,isActive:y(r),operator:s.operator,controlRole:e.kind==="control"?e.role:void 0})}},[m,i,a,e,r])}function ne(e){const t=u.useMemo(()=>Z(e),[e]),n=u.useCallback(i=>{var a;return t.intent?(a=i.executor)==null?void 0:a.executeMetric(t.intent,i):void 0},[t.intent]),o=b(t.queryKey,n,t.idleData,t.activeInputs),r=t.error?t.idleData:o.data;return{id:e.id,intent:t.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,status:t.error?"error":o.status,isLoading:!t.error&&o.status==="loading",error:t.error||o.error}}function oe(e){const t=u.useMemo(()=>ee(e),[e]),n=u.useCallback(i=>{var a;return t.intent?(a=i.executor)==null?void 0:a.executeRecords(t.intent,i):void 0},[t.intent]),o=b(t.queryKey,n,t.idleData,t.activeInputs),r=t.error?t.idleData:o.data;return{id:e.id,intent:t.intent,records:(r==null?void 0:r.records)||[],columns:r==null?void 0:r.columns,rowCount:r==null?void 0:r.rowCount,status:t.error?"error":o.status,isLoading:!t.error&&o.status==="loading",error:t.error||o.error}}function ie(e){const t=u.useMemo(()=>te(e),[e]),n=u.useCallback(i=>{var a;return t.intent?(a=i.executor)==null?void 0:a.executeInputOptions(t.intent,i):void 0},[t.intent]),o=b(t.queryKey,n,t.idleData),r=t.error?t.idleData:o.data;return{id:e.id,intent:t.intent,options:(r==null?void 0:r.options)||[],status:t.error?"error":o.status,isLoading:!t.error&&o.status==="loading",error:t.error||o.error}}function b(e,t,n,o){const r=_(),i=u.useRef(t),a=u.useRef(o),[m,s]=u.useState({status:"idle",data:n,error:null});return i.current=t,a.current=o,u.useEffect(()=>{let p;try{p=i.current({...r,activeInputs:a.current})}catch(f){s({status:"error",data:n,error:h(f)});return}if(!p){s({status:"idle",data:n,error:null});return}let d=!1;return s(f=>({status:"loading",data:f.data,error:null})),p.then(f=>{d||s({status:"success",data:f,error:null})}).catch(f=>{d||s({status:"error",data:n,error:h(f)})}),()=>{d=!0}},[n,e,r]),m}exports.SemaphorDataAppContext=R;exports.SemaphorDataAppProvider=X;exports.createSemaphorDataAppExecutor=T;exports.hasSemaphorInputValue=y;exports.normalizeSemaphorInputOptions=C;exports.readWindowRuntime=P;exports.toSemaphorActiveInputSnapshots=A;exports.toSemaphorInputBinding=w;exports.toSemaphorInputBindings=j;exports.toSemaphorInputOptionsIntent=B;exports.toSemaphorInputSnapshots=O;exports.toSemaphorInputSpec=$;exports.toSemaphorMetricIntent=x;exports.toSemaphorRecordsIntent=q;exports.useSemaphorDataAppRuntime=_;exports.useSemaphorInput=re;exports.useSemaphorInputOptions=ie;exports.useSemaphorMetric=ne;exports.useSemaphorRecords=oe;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("../chunks/validators-8R9pr2K9.js"),K=require("../chunks/index-BxM99sFL.js"),a=require("react"),F=require("react/jsx-runtime");function E(e){var r;const t=V(e);return{version:1,kind:"metric",id:e.id,label:e.label,source:D(e),metrics:t,primaryMetric:z(e,t),dateField:e.dateField?l(e.dateField,"date"):void 0,timeGrain:e.timeGrain,dimensions:(r=e.dimensions)==null?void 0:r.map(n=>l(n,"dimension")),comparison:X(e.comparison),orderBy:e.orderBy?{field:l(e.orderBy.field),direction:e.orderBy.direction}:void 0,inputs:k(e.inputs),limit:e.limit}}function z(e,t){if(!e.primaryMetric)return t[0]||{name:"",role:"measure"};const r=l(e.primaryMetric,"measure"),n=Q(r,t),o=n.length===1?n[0]:void 0;return o?B(r,o):r}function V(e){const t=[];for(const r of e.metrics.map(n=>l(n,"measure"))){if(!r.name)continue;const n=t.findIndex(o=>j(o,r));if(n===-1){t.push(r);continue}t[n]=B(t[n],r)}return t}function j(e,t){return S.semaphorFieldRefsMatch(e,t)&&g(e)===g(t)}function N(e,t){return g(t)===g(e)}function L(e,t){return t.name!==e.name||e.source&&!S.semaphorFieldRefsMatch(t,e)?!1:N(e,t)}function Q(e,t){const r=t.filter(n=>L(e,n));return e.aggregate!==void 0,r}function g(e){return(e.aggregate||"SUM").toUpperCase()}function B(e,t){if(e.aggregate&&t.aggregate&&e.aggregate!==t.aggregate)throw new Error(`Metric "${e.name}" was requested with conflicting aggregate semantics: ${e.aggregate} and ${t.aggregate}.`);return{...S.preferSemaphorFieldRefMetadata(e,t),aggregate:e.aggregate||t.aggregate}}function w(e){if("sort"in e)throw new Error("useSemaphorRecords supports orderBy for a single deterministic sort. Multiple sort clauses are not supported by the analytics protocol yet.");if(!W(e))throw new Error("useSemaphorRecords needs at least one field.");const t=G(e.fields);return{version:1,kind:"records",id:e.id,label:e.label,source:D(e),fields:t,dateField:e.dateField?l(e.dateField,"date"):void 0,timeGrain:e.timeGrain,orderBy:e.orderBy?{field:l(e.orderBy.field),direction:e.orderBy.direction}:void 0,inputs:k(e.inputs),limit:e.limit}}function G(e){return e.map(t=>{const r=l(t);if(!r.role)throw new Error(`useSemaphorRecords field "${r.name}" needs an explicit role.`);return r})}function O(e){return{version:1,kind:"inputOptions",id:e.id,label:e.label,source:D(e),field:l(e.field,"dimension"),search:e.search,limit:e.limit}}function $(e){if("toAnalyticsInput"in e){const t=e.toAnalyticsInput();return{inputId:t.inputId,...t.field?{field:t.field}:{}}}return{inputId:e.inputId,...e.field?{field:e.field}:{}}}function J(e){const t=k(e);return t.length>0?t:void 0}function q(e){return(e||[]).map(H)}function M(e){return q(e).filter(t=>t.isActive)}function C(e){return e.kind==="filter"?{inputId:e.id,kind:e.kind,label:e.label,field:l(e.field,"dimension"),operator:e.operator||"in"}:{inputId:e.id,kind:e.kind,label:e.label}}function T(e=[]){return e.map(t=>typeof t=="object"?t:{label:String(t),value:t})}function y(e){return e==null?!1:Array.isArray(e)?e.length>0:typeof e=="string"?e.trim().length>0:!0}function H(e){return"toAnalyticsInput"in e?e.toAnalyticsInput():"kind"in e&&"isActive"in e?e:{...e,kind:"filter",isActive:y(e.value),value:e.value}}function D(e){return e.source}function W(e){var t;return!!((t=e.fields)!=null&&t.length)}function l(e,t){return{...e,role:e.role||t}}function k(e){return(e||[]).map($)}function X(e){if(e)return e}function P(){return{executeMetric:(e,t)=>v(e,t),executeRecords:(e,t)=>v(e,t),executeInputOptions:(e,t)=>v(e,t)}}async function v(e,t){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,resultShape:e.kind})}),n=await Y(r);if(!r.ok||n.error)throw new Error(n.error||`Semaphor Data App execution failed with status ${r.status}.`);return n}async function Y(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 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 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 K.jwtDecode(e.token).apiServiceUrl||""}catch{return""}}const R=a.createContext({});function U(){if(!(typeof window>"u"))return window.__SEMAPHOR_DATA_APP_RUNTIME__}function _(){return a.useContext(R)}function re({token:e,apiBaseUrl:t,executor:r,children:n}){var d;const o=U(),u=((d=o==null?void 0:o.authToken)==null?void 0:d.accessToken)||e,i=(o==null?void 0:o.dataApiBaseUrl)||(o==null?void 0:o.apiBaseUrl)||t,m=a.useMemo(()=>P(),[]),s=r||m,p=a.useMemo(()=>({token:u,apiBaseUrl:i,executor:s}),[i,s,u]);return F.jsx(R.Provider,{value:p,children:n})}const I={value:null},ne={records:[]},A={options:[]};function oe(e){const t=M(e.inputs);try{const r=E(e),n=b(r);return n?{error:n,activeInputs:t,queryKey:c(void 0,t,n),idleData:I}:{intent:r,error:null,activeInputs:t,queryKey:c(r,t),idleData:I}}catch(r){const n=h(r);return{error:n,activeInputs:t,queryKey:c(void 0,t,n),idleData:I}}}function ie(e){const t=M(e.inputs),r=ne;try{const n=w(e),o=b(n);return o?{error:o,activeInputs:t,queryKey:c(void 0,t,o),idleData:r}:{intent:n,error:null,activeInputs:t,queryKey:c(n,t),idleData:r}}catch(n){const o=h(n);return{error:o,activeInputs:t,queryKey:c(void 0,t,o),idleData:r}}}function ae(e){try{const t=O(e),r=b(t);return r?{error:r,queryKey:c(void 0,void 0,r),idleData:A}:{intent:t,error:null,queryKey:c(t),idleData:A}}catch(t){const r=h(t);return{error:r,queryKey:c(void 0,void 0,r),idleData:A}}}function h(e){return e instanceof Error?e:new Error(String(e))}function b(e){const t=S.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 c(e,t,r){return JSON.stringify({intent:e,activeInputs:t,error:r==null?void 0:r.message})}function ue(e){const[t,r]=a.useState(e.defaultValue),n=Object.prototype.hasOwnProperty.call(e,"value"),o=n?e.value:t,u=a.useMemo(()=>T(e.options),[e.options]),i=a.useCallback(s=>{var d;const p=s;(d=e.onValueChange)==null||d.call(e,p),n||r(p)},[n,e]),m=a.useCallback(()=>i(void 0),[i]);return a.useMemo(()=>{const s=C(e);return{id:e.id,kind:e.kind,label:e.label,field:s.field,operator:s.operator,controlRole:e.kind==="control"?e.role:void 0,value:o,options:u,isActive:y(o),setValue:i,clear:m,toAnalyticsInput:()=>({inputId:s.inputId,field:s.field,kind:e.kind,label:e.label,value:o,isActive:y(o),operator:s.operator,controlRole:e.kind==="control"?e.role:void 0})}},[m,u,i,e,o])}function se(e){const t=a.useMemo(()=>oe(e),[e]),r=a.useCallback(u=>{var i;return t.intent?(i=u.executor)==null?void 0:i.executeMetric(t.intent,u):void 0},[t.intent]),n=x(t.queryKey,r,t.idleData,t.activeInputs),o=t.error?t.idleData:n.data;return{id:e.id,intent:t.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,status:t.error?"error":n.status,isLoading:!t.error&&n.status==="loading",error:t.error||n.error}}function le(e){const t=a.useMemo(()=>ie(e),[e]),r=a.useCallback(u=>{var i;return t.intent?(i=u.executor)==null?void 0:i.executeRecords(t.intent,u):void 0},[t.intent]),n=x(t.queryKey,r,t.idleData,t.activeInputs),o=t.error?t.idleData:n.data;return{id:e.id,intent:t.intent,records:(o==null?void 0:o.records)||[],columns:o==null?void 0:o.columns,rowCount:o==null?void 0:o.rowCount,status:t.error?"error":n.status,isLoading:!t.error&&n.status==="loading",error:t.error||n.error}}function de(e){const t=a.useMemo(()=>ae(e),[e]),r=a.useCallback(u=>{var i;return t.intent?(i=u.executor)==null?void 0:i.executeInputOptions(t.intent,u):void 0},[t.intent]),n=x(t.queryKey,r,t.idleData),o=t.error?t.idleData:n.data;return{id:e.id,intent:t.intent,options:(o==null?void 0:o.options)||[],status:t.error?"error":n.status,isLoading:!t.error&&n.status==="loading",error:t.error||n.error}}function x(e,t,r,n){const o=_(),u=a.useRef(t),i=a.useRef(n),[m,s]=a.useState({status:"idle",data:r,error:null});return u.current=t,i.current=n,a.useEffect(()=>{let p;try{p=u.current({...o,activeInputs:i.current})}catch(f){s({status:"error",data:r,error:h(f)});return}if(!p){s({status:"idle",data:r,error:null});return}let d=!1;return s(f=>({status:"loading",data:f.data,error:null})),p.then(f=>{d||s({status:"success",data:f,error:null})}).catch(f=>{d||s({status:"error",data:r,error:h(f)})}),()=>{d=!0}},[r,e,o]),m}exports.SemaphorDataAppContext=R;exports.SemaphorDataAppProvider=re;exports.createSemaphorDataAppExecutor=P;exports.hasSemaphorInputValue=y;exports.normalizeSemaphorInputOptions=T;exports.readWindowRuntime=U;exports.toSemaphorActiveInputSnapshots=M;exports.toSemaphorInputBinding=$;exports.toSemaphorInputBindings=J;exports.toSemaphorInputOptionsIntent=O;exports.toSemaphorInputSnapshots=q;exports.toSemaphorInputSpec=C;exports.toSemaphorMetricIntent=E;exports.toSemaphorRecordsIntent=w;exports.useSemaphorDataAppRuntime=_;exports.useSemaphorInput=ue;exports.useSemaphorInputOptions=de;exports.useSemaphorMetric=se;exports.useSemaphorRecords=le;