react-semaphor 0.1.325 → 0.1.326
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/analytics-protocol/index.cjs +1 -1
- package/dist/analytics-protocol/index.js +260 -226
- package/dist/brand-studio/index.cjs +2 -2
- package/dist/brand-studio/index.js +7 -6
- package/dist/chunks/{braces-C7BeIXvM.js → braces-DVaMJoCd.js} +1 -1
- package/dist/chunks/{braces-ZjRH2Kl7.js → braces-dHeaioTd.js} +1 -1
- package/dist/chunks/{calendar-preferences-dialog-DHhT6Sja.js → calendar-preferences-dialog--2jD-eKu.js} +6 -5
- package/dist/chunks/calendar-preferences-dialog-mqU_uOmY.js +1 -0
- package/dist/chunks/{chevrons-up-down-CA-XvN1o.js → chevrons-up-down-CLbzBHoI.js} +1 -1
- package/dist/chunks/{chevrons-up-down-Cuilz9aY.js → chevrons-up-down-DNQE-uEp.js} +1 -1
- package/dist/chunks/{dashboard-briefing-launcher-DZiFMK8I.js → dashboard-briefing-launcher-DguNfFr8.js} +1 -1
- package/dist/chunks/{dashboard-briefing-launcher-BzIxRlzW.js → dashboard-briefing-launcher-DsjXUPFq.js} +29 -28
- package/dist/chunks/{dashboard-controls-DVwsWny9.js → dashboard-controls-DgNkM1yT.js} +10 -9
- package/dist/chunks/{dashboard-controls-BX693lE0.js → dashboard-controls-XCa9PZuU.js} +1 -1
- package/dist/chunks/dashboard-json-DiBd65Xf.js +1 -0
- package/dist/chunks/{dashboard-json-D15C_I9e.js → dashboard-json-DkA6Bf0Y.js} +7 -6
- package/dist/chunks/{edit-dashboard-visual-90_qEgRc.js → edit-dashboard-visual-BC9eOc4U.js} +2 -2
- package/dist/chunks/{edit-dashboard-visual-wQyJEcVH.js → edit-dashboard-visual-Q5hW5MXk.js} +11 -9
- package/dist/chunks/{index-YTk9Hab2.js → index-B1-46PoR.js} +213 -213
- package/dist/chunks/index-BxM99sFL.js +1 -0
- package/dist/chunks/index-CuHybtft.js +51 -0
- package/dist/chunks/{index-CffvIaZO.js → index-DwfDwtv2.js} +20578 -20474
- package/dist/chunks/{palette-CanPG11m.js → palette-DpcvHAiY.js} +1 -1
- package/dist/chunks/{palette-D96DOM7E.js → palette-DtmNws9a.js} +1 -1
- package/dist/chunks/{resource-management-panel-DlnrD0y-.js → resource-management-panel-CGwWKZOP.js} +1 -1
- package/dist/chunks/{resource-management-panel-CLoO2DL3.js → resource-management-panel-D2oAQkKi.js} +6 -5
- package/dist/chunks/{save-DxkSzUTZ.js → save-BY7WF62U.js} +1 -1
- package/dist/chunks/{save-CqrBQKG6.js → save-Cv_XRb94.js} +1 -1
- package/dist/chunks/{switch-BXICAlvS.js → switch-5aQ_jcLH.js} +39 -39
- package/dist/chunks/{switch-Deo2Ltmj.js → switch-j3AThLFk.js} +2580 -2628
- package/dist/chunks/{use-create-flow-overlay-state-DocFanjO.js → use-create-flow-overlay-state-BQPXP0AM.js} +1 -1
- package/dist/chunks/{use-create-flow-overlay-state-DsPoCfMu.js → use-create-flow-overlay-state-CP6GDQAX.js} +29 -28
- package/dist/chunks/{use-visual-utils-BdO22fQZ.js → use-visual-utils-CSXU-96k.js} +2 -2
- package/dist/chunks/{use-visual-utils-DSbXQQD1.js → use-visual-utils-NpOW5uZ1.js} +1 -1
- package/dist/chunks/validators-DJUMR5An.js +2 -0
- package/dist/chunks/validators-DvTxl9i0.js +352 -0
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +1 -1
- package/dist/dashboard-authoring/index.cjs +3 -3
- package/dist/dashboard-authoring/index.js +168 -136
- package/dist/data-app-sdk/index.cjs +1 -0
- package/dist/data-app-sdk/index.js +512 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +141 -140
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +2 -2
- package/dist/types/analytics-protocol.d.ts +325 -2
- package/dist/types/dashboard-authoring.d.ts +23 -1
- package/dist/types/dashboard.d.ts +6 -1
- package/dist/types/data-app-sdk.d.ts +378 -0
- package/dist/types/main.d.ts +117 -2
- package/dist/types/shared.d.ts +1 -0
- package/dist/types/surfboard.d.ts +6 -1
- package/dist/types/types.d.ts +6 -1
- package/package.json +6 -1
- package/dist/chunks/calendar-preferences-dialog-BxeROxyq.js +0 -1
- package/dist/chunks/dashboard-json-DxNEFM-p.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const K=require("../chunks/index-BxM99sFL.js"),T=require("react/jsx-runtime"),u=require("react"),P=require("../chunks/validators-DJUMR5An.js");function q(t){var e;return{version:1,kind:"metric",id:t.id,label:t.label,source:g(t),metric:t.metric,metrics:t.metrics,dateField:t.dateField?d(t.dateField,"date"):void 0,timeGrain:t.timeGrain,dimensions:(e=t.dimensions)==null?void 0:e.map(n=>d(n,"dimension")),comparison:L(t.comparison),inputs:b(t.inputs),limit:t.limit}}function E(t){if("sort"in t)throw new Error("useSemaphorRecords supports orderBy for a single deterministic sort. Multiple sort clauses are not supported by the analytics protocol yet.");if(!F(t))throw new Error("useSemaphorRecords needs at least one field, dimension, or measure.");const e=V(t.fields,t.dimensions,t.measures);return{version:1,kind:"records",id:t.id,label:t.label,source:g(t),fields:e,measures:t.measures,dateField:t.dateField?d(t.dateField,"date"):void 0,timeGrain:t.timeGrain,orderBy:t.orderBy,inputs:b(t.inputs),limit:t.limit}}function R(t){return{version:1,kind:"inputOptions",id:t.id,label:t.label,source:g(t),field:d(t.field,"dimension"),search:t.search,limit:t.limit}}function w(t){if("toAnalyticsInput"in t){const e=t.toAnalyticsInput();return{inputId:e.inputId,field:e.field}}return{inputId:t.inputId,field:t.field}}function _(t){const e=b(t);return e.length>0?e:void 0}function x(t){return(t||[]).map(j)}function A(t){return x(t).filter(e=>e.isActive)}function O(t){return t.kind==="filter"?{inputId:t.id,kind:t.kind,label:t.label,field:d(t.field,"dimension"),operator:t.operator||"in",source:t.source}:{inputId:t.id,kind:t.kind,label:t.label}}function $(t=[]){return t.map(e=>typeof e=="object"?e:{label:String(e),value:e})}function h(t){return t==null?!1:Array.isArray(t)?t.length>0:typeof t=="string"?t.trim().length>0:!0}function j(t){return"toAnalyticsInput"in t?t.toAnalyticsInput():"kind"in t&&"isActive"in t?t:{...t,kind:"filter",isActive:h(t.value),value:t.value}}function g(t){if("source"in t&&t.source)return t.source;const e=t.datasetName||t.dataset;if(!e)throw new Error("Semaphor data app source needs datasetName or dataset.");return{kind:"semantic",domainId:t.domainId,datasetName:e,datasetId:t.datasetId,connectionId:t.connectionId,label:t.sourceLabel}}function F(t){var e,n,r;return!!((e=t.fields)!=null&&e.length||(n=t.dimensions)!=null&&n.length||(r=t.measures)!=null&&r.length)}function N(t){return!!(t!=null&&t.length)}function V(t,e,n){const r=[],o=new Set,a=i=>{const c=`${i.role||""}:${i.name}`;o.has(c)||(o.add(c),r.push(i))};return N(t)&&t.map(i=>d(i)).forEach(a),e==null||e.map(i=>d(i,"dimension")).forEach(a),n==null||n.map(i=>d(i,"measure")).forEach(a),r}function d(t,e){return typeof t=="string"?e?{name:t,role:e}:{name:t}:{...t,role:t.role||e}}function b(t){return(t||[]).map(w)}function L(t){if(!(!t||t==="none"))return typeof t=="object"?t:t==="same_period_last_year"?{kind:"previous_year"}:{kind:t}}function M(){return{executeMetric:(t,e)=>S(t,e),executeRecords:(t,e)=>S(t,e),executeInputOptions:(t,e)=>S(t,e)}}async function S(t,e){if(!e.token)throw new Error("SemaphorDataAppProvider needs a token to execute queries.");const n=await fetch(Q(e),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e.token}`},body:JSON.stringify({intent:t,activeInputs:e.activeInputs,resultShape:t.kind})}),r=await z(n);if(!n.ok||r.error)throw new Error(r.error||`Semaphor Data App query failed with status ${n.status}.`);return r}async function z(t){const e=await t.text().catch(()=>"");if(!e.trim())return t.ok?{error:"Semaphor Data App query returned an empty response."}:{};try{return JSON.parse(e)}catch{return t.ok?{error:"Semaphor Data App query returned invalid JSON.",details:e}:{error:U(t,e),details:e}}}function U(t,e){const n=t.statusText?` ${t.statusText}`:"",r=e.replace(/\s+/g," ").trim();return r?`Semaphor Data App query failed with status ${t.status}${n}: ${r.slice(0,240)}`:`Semaphor Data App query failed with status ${t.status}${n}.`}function Q(t){const e=G(t).replace(/\/+$/,"");return e?e.endsWith("/api")?`${e}/v1/data-app/query`:`${e}/api/v1/data-app/query`:"/api/v1/data-app/query"}function G(t){if(t.apiBaseUrl)return t.apiBaseUrl;if(!t.token)return"";try{return K.jwtDecode(t.token).apiServiceUrl||""}catch{return""}}const C=u.createContext({});function J({token:t,apiBaseUrl:e,executor:n,children:r}){const o=u.useMemo(()=>M(),[]),a=n||o,i=u.useMemo(()=>({token:t,apiBaseUrl:e,executor:a}),[e,a,t]);return T.jsx(C.Provider,{value:i,children:r})}function B(){return u.useContext(C)}const I={value:null},H={records:[]},v={options:[]};function W(t){const e=A(t.inputs);try{const n=q(t),r=k(n);return r?{error:r,activeInputs:e,queryKey:l(void 0,e,r),idleData:I}:{intent:n,error:null,activeInputs:e,queryKey:l(n,e),idleData:I}}catch(n){const r=f(n);return{error:r,activeInputs:e,queryKey:l(void 0,e,r),idleData:I}}}function X(t){const e=A(t.inputs),n=H;try{const r=E(t),o=k(r);return o?{error:o,activeInputs:e,queryKey:l(void 0,e,o),idleData:n}:{intent:r,error:null,activeInputs:e,queryKey:l(r,e),idleData:n}}catch(r){const o=f(r);return{error:o,activeInputs:e,queryKey:l(void 0,e,o),idleData:n}}}function Y(t){try{const e=R(t),n=k(e);return n?{error:n,queryKey:l(void 0,void 0,n),idleData:v}:{intent:e,error:null,queryKey:l(e),idleData:v}}catch(e){const n=f(e);return{error:n,queryKey:l(void 0,void 0,n),idleData:v}}}function f(t){return t instanceof Error?t:new Error(String(t))}function k(t){const e=P.validateSemaphorAnalyticsIntent(t);if(e.ok)return null;const n=e.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 l(t,e,n){return JSON.stringify({intent:t,activeInputs:e,error:n==null?void 0:n.message})}function Z(t){const[e,n]=u.useState(t.defaultValue),r=Object.prototype.hasOwnProperty.call(t,"value"),o=r?t.value:e,a=u.useMemo(()=>$(t.options),[t.options]),i=u.useCallback(s=>{var m;(m=t.onValueChange)==null||m.call(t,s),r||n(s)},[r,t]),c=u.useCallback(()=>i(void 0),[i]);return u.useMemo(()=>{const s=O(t);return{id:t.id,kind:t.kind,label:t.label,field:s.field,operator:s.operator,source:s.source,controlRole:t.kind==="control"?t.role:void 0,value:o,options:a,isActive:h(o),setValue:i,clear:c,toAnalyticsInput:()=>({inputId:s.inputId,field:s.field,kind:t.kind,label:t.label,value:o,isActive:h(o),operator:s.operator,source:s.source,controlRole:t.kind==="control"?t.role:void 0})}},[c,a,i,t,o])}function tt(t){const e=u.useMemo(()=>W(t),[t]),n=u.useCallback(a=>{var i;return e.intent?(i=a.executor)==null?void 0:i.executeMetric(e.intent,a):void 0},[e.intent]),r=D(e.queryKey,n,e.idleData,e.activeInputs),o=e.error?e.idleData:r.data;return{id:t.id,intent:e.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:e.error?"error":r.status,isLoading:!e.error&&r.status==="loading",error:e.error||r.error}}function et(t){const e=u.useMemo(()=>X(t),[t]),n=u.useCallback(a=>{var i;return e.intent?(i=a.executor)==null?void 0:i.executeRecords(e.intent,a):void 0},[e.intent]),r=D(e.queryKey,n,e.idleData,e.activeInputs),o=e.error?e.idleData:r.data;return{id:t.id,intent:e.intent,records:(o==null?void 0:o.records)||[],columns:o==null?void 0:o.columns,rowCount:o==null?void 0:o.rowCount,status:e.error?"error":r.status,isLoading:!e.error&&r.status==="loading",error:e.error||r.error}}function rt(t){const e=u.useMemo(()=>Y(t),[t]),n=u.useCallback(a=>{var i;return e.intent?(i=a.executor)==null?void 0:i.executeInputOptions(e.intent,a):void 0},[e.intent]),r=D(e.queryKey,n,e.idleData),o=e.error?e.idleData:r.data;return{id:t.id,intent:e.intent,options:(o==null?void 0:o.options)||[],status:e.error?"error":r.status,isLoading:!e.error&&r.status==="loading",error:e.error||r.error}}function D(t,e,n,r){const o=B(),a=u.useRef(e),i=u.useRef(r),[c,s]=u.useState({status:"idle",data:n,error:null});return a.current=e,i.current=r,u.useEffect(()=>{let m;try{m=a.current({...o,activeInputs:i.current})}catch(p){s({status:"error",data:n,error:f(p)});return}if(!m){s({status:"idle",data:n,error:null});return}let y=!1;return s(p=>({status:"loading",data:p.data,error:null})),m.then(p=>{y||s({status:"success",data:p,error:null})}).catch(p=>{y||s({status:"error",data:n,error:f(p)})}),()=>{y=!0}},[n,t,o]),c}exports.SemaphorDataAppProvider=J;exports.createSemaphorDataAppExecutor=M;exports.hasSemaphorInputValue=h;exports.normalizeSemaphorInputOptions=$;exports.toSemaphorActiveInputSnapshots=A;exports.toSemaphorInputBinding=w;exports.toSemaphorInputBindings=_;exports.toSemaphorInputOptionsIntent=R;exports.toSemaphorInputSnapshots=x;exports.toSemaphorInputSpec=O;exports.toSemaphorMetricIntent=q;exports.toSemaphorRecordsIntent=E;exports.useSemaphorDataAppRuntime=B;exports.useSemaphorInput=Z;exports.useSemaphorInputOptions=rt;exports.useSemaphorMetric=tt;exports.useSemaphorRecords=et;
|
|
@@ -0,0 +1,512 @@
|
|
|
1
|
+
import { j as x } from "../chunks/index-CuHybtft.js";
|
|
2
|
+
import { jsx as $ } from "react/jsx-runtime";
|
|
3
|
+
import { createContext as O, useMemo as f, useContext as K, useState as q, useCallback as p, useRef as E, useEffect as C } from "react";
|
|
4
|
+
import { v as B } from "../chunks/validators-DvTxl9i0.js";
|
|
5
|
+
function T(t) {
|
|
6
|
+
var r;
|
|
7
|
+
return {
|
|
8
|
+
version: 1,
|
|
9
|
+
kind: "metric",
|
|
10
|
+
id: t.id,
|
|
11
|
+
label: t.label,
|
|
12
|
+
source: g(t),
|
|
13
|
+
metric: t.metric,
|
|
14
|
+
metrics: t.metrics,
|
|
15
|
+
dateField: t.dateField ? d(t.dateField, "date") : void 0,
|
|
16
|
+
timeGrain: t.timeGrain,
|
|
17
|
+
dimensions: (r = t.dimensions) == null ? void 0 : r.map((n) => d(n, "dimension")),
|
|
18
|
+
comparison: Q(t.comparison),
|
|
19
|
+
inputs: D(t.inputs),
|
|
20
|
+
limit: t.limit
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function _(t) {
|
|
24
|
+
if ("sort" in t)
|
|
25
|
+
throw new Error(
|
|
26
|
+
"useSemaphorRecords supports orderBy for a single deterministic sort. Multiple sort clauses are not supported by the analytics protocol yet."
|
|
27
|
+
);
|
|
28
|
+
if (!L(t))
|
|
29
|
+
throw new Error(
|
|
30
|
+
"useSemaphorRecords needs at least one field, dimension, or measure."
|
|
31
|
+
);
|
|
32
|
+
const r = z(
|
|
33
|
+
t.fields,
|
|
34
|
+
t.dimensions,
|
|
35
|
+
t.measures
|
|
36
|
+
);
|
|
37
|
+
return {
|
|
38
|
+
version: 1,
|
|
39
|
+
kind: "records",
|
|
40
|
+
id: t.id,
|
|
41
|
+
label: t.label,
|
|
42
|
+
source: g(t),
|
|
43
|
+
fields: r,
|
|
44
|
+
measures: t.measures,
|
|
45
|
+
dateField: t.dateField ? d(t.dateField, "date") : void 0,
|
|
46
|
+
timeGrain: t.timeGrain,
|
|
47
|
+
orderBy: t.orderBy,
|
|
48
|
+
inputs: D(t.inputs),
|
|
49
|
+
limit: t.limit
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function F(t) {
|
|
53
|
+
return {
|
|
54
|
+
version: 1,
|
|
55
|
+
kind: "inputOptions",
|
|
56
|
+
id: t.id,
|
|
57
|
+
label: t.label,
|
|
58
|
+
source: g(t),
|
|
59
|
+
field: d(t.field, "dimension"),
|
|
60
|
+
search: t.search,
|
|
61
|
+
limit: t.limit
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function M(t) {
|
|
65
|
+
if ("toAnalyticsInput" in t) {
|
|
66
|
+
const r = t.toAnalyticsInput();
|
|
67
|
+
return {
|
|
68
|
+
inputId: r.inputId,
|
|
69
|
+
field: r.field
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
inputId: t.inputId,
|
|
74
|
+
field: t.field
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function ut(t) {
|
|
78
|
+
const r = D(t);
|
|
79
|
+
return r.length > 0 ? r : void 0;
|
|
80
|
+
}
|
|
81
|
+
function N(t) {
|
|
82
|
+
return (t || []).map(V);
|
|
83
|
+
}
|
|
84
|
+
function w(t) {
|
|
85
|
+
return N(t).filter((r) => r.isActive);
|
|
86
|
+
}
|
|
87
|
+
function P(t) {
|
|
88
|
+
return t.kind === "filter" ? {
|
|
89
|
+
inputId: t.id,
|
|
90
|
+
kind: t.kind,
|
|
91
|
+
label: t.label,
|
|
92
|
+
field: d(t.field, "dimension"),
|
|
93
|
+
operator: t.operator || "in",
|
|
94
|
+
source: t.source
|
|
95
|
+
} : {
|
|
96
|
+
inputId: t.id,
|
|
97
|
+
kind: t.kind,
|
|
98
|
+
label: t.label
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
function j(t = []) {
|
|
102
|
+
return t.map(
|
|
103
|
+
(r) => typeof r == "object" ? r : {
|
|
104
|
+
label: String(r),
|
|
105
|
+
value: r
|
|
106
|
+
}
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
function A(t) {
|
|
110
|
+
return t == null ? !1 : Array.isArray(t) ? t.length > 0 : typeof t == "string" ? t.trim().length > 0 : !0;
|
|
111
|
+
}
|
|
112
|
+
function V(t) {
|
|
113
|
+
return "toAnalyticsInput" in t ? t.toAnalyticsInput() : "kind" in t && "isActive" in t ? t : {
|
|
114
|
+
...t,
|
|
115
|
+
kind: "filter",
|
|
116
|
+
isActive: A(
|
|
117
|
+
t.value
|
|
118
|
+
),
|
|
119
|
+
value: t.value
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
function g(t) {
|
|
123
|
+
if ("source" in t && t.source)
|
|
124
|
+
return t.source;
|
|
125
|
+
const r = t.datasetName || t.dataset;
|
|
126
|
+
if (!r)
|
|
127
|
+
throw new Error("Semaphor data app source needs datasetName or dataset.");
|
|
128
|
+
return {
|
|
129
|
+
kind: "semantic",
|
|
130
|
+
domainId: t.domainId,
|
|
131
|
+
datasetName: r,
|
|
132
|
+
datasetId: t.datasetId,
|
|
133
|
+
connectionId: t.connectionId,
|
|
134
|
+
label: t.sourceLabel
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
function L(t) {
|
|
138
|
+
var r, n, e;
|
|
139
|
+
return !!((r = t.fields) != null && r.length || (n = t.dimensions) != null && n.length || (e = t.measures) != null && e.length);
|
|
140
|
+
}
|
|
141
|
+
function U(t) {
|
|
142
|
+
return !!(t != null && t.length);
|
|
143
|
+
}
|
|
144
|
+
function z(t, r, n) {
|
|
145
|
+
const e = [], o = /* @__PURE__ */ new Set(), a = (i) => {
|
|
146
|
+
const l = `${i.role || ""}:${i.name}`;
|
|
147
|
+
o.has(l) || (o.add(l), e.push(i));
|
|
148
|
+
};
|
|
149
|
+
return U(t) && t.map((i) => d(i)).forEach(a), r == null || r.map((i) => d(i, "dimension")).forEach(a), n == null || n.map((i) => d(i, "measure")).forEach(a), e;
|
|
150
|
+
}
|
|
151
|
+
function d(t, r) {
|
|
152
|
+
return typeof t == "string" ? r ? { name: t, role: r } : { name: t } : {
|
|
153
|
+
...t,
|
|
154
|
+
role: t.role || r
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
function D(t) {
|
|
158
|
+
return (t || []).map(M);
|
|
159
|
+
}
|
|
160
|
+
function Q(t) {
|
|
161
|
+
if (!(!t || t === "none"))
|
|
162
|
+
return typeof t == "object" ? t : t === "same_period_last_year" ? { kind: "previous_year" } : { kind: t };
|
|
163
|
+
}
|
|
164
|
+
function G() {
|
|
165
|
+
return {
|
|
166
|
+
executeMetric: (t, r) => v(t, r),
|
|
167
|
+
executeRecords: (t, r) => v(t, r),
|
|
168
|
+
executeInputOptions: (t, r) => v(t, r)
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
async function v(t, r) {
|
|
172
|
+
if (!r.token)
|
|
173
|
+
throw new Error("SemaphorDataAppProvider needs a token to execute queries.");
|
|
174
|
+
const n = await fetch(W(r), {
|
|
175
|
+
method: "POST",
|
|
176
|
+
headers: {
|
|
177
|
+
"Content-Type": "application/json",
|
|
178
|
+
Authorization: `Bearer ${r.token}`
|
|
179
|
+
},
|
|
180
|
+
body: JSON.stringify({
|
|
181
|
+
intent: t,
|
|
182
|
+
activeInputs: r.activeInputs,
|
|
183
|
+
resultShape: t.kind
|
|
184
|
+
})
|
|
185
|
+
}), e = await J(n);
|
|
186
|
+
if (!n.ok || e.error)
|
|
187
|
+
throw new Error(
|
|
188
|
+
e.error || `Semaphor Data App query failed with status ${n.status}.`
|
|
189
|
+
);
|
|
190
|
+
return e;
|
|
191
|
+
}
|
|
192
|
+
async function J(t) {
|
|
193
|
+
const r = await t.text().catch(() => "");
|
|
194
|
+
if (!r.trim())
|
|
195
|
+
return t.ok ? {
|
|
196
|
+
error: "Semaphor Data App query returned an empty response."
|
|
197
|
+
} : {};
|
|
198
|
+
try {
|
|
199
|
+
return JSON.parse(r);
|
|
200
|
+
} catch {
|
|
201
|
+
return t.ok ? {
|
|
202
|
+
error: "Semaphor Data App query returned invalid JSON.",
|
|
203
|
+
details: r
|
|
204
|
+
} : {
|
|
205
|
+
error: H(t, r),
|
|
206
|
+
details: r
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
function H(t, r) {
|
|
211
|
+
const n = t.statusText ? ` ${t.statusText}` : "", e = r.replace(/\s+/g, " ").trim();
|
|
212
|
+
return e ? `Semaphor Data App query failed with status ${t.status}${n}: ${e.slice(0, 240)}` : `Semaphor Data App query failed with status ${t.status}${n}.`;
|
|
213
|
+
}
|
|
214
|
+
function W(t) {
|
|
215
|
+
const r = X(t).replace(/\/+$/, "");
|
|
216
|
+
return r ? r.endsWith("/api") ? `${r}/v1/data-app/query` : `${r}/api/v1/data-app/query` : "/api/v1/data-app/query";
|
|
217
|
+
}
|
|
218
|
+
function X(t) {
|
|
219
|
+
if (t.apiBaseUrl)
|
|
220
|
+
return t.apiBaseUrl;
|
|
221
|
+
if (!t.token)
|
|
222
|
+
return "";
|
|
223
|
+
try {
|
|
224
|
+
return x(t.token).apiServiceUrl || "";
|
|
225
|
+
} catch {
|
|
226
|
+
return "";
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
const R = O({});
|
|
230
|
+
function st({
|
|
231
|
+
token: t,
|
|
232
|
+
apiBaseUrl: r,
|
|
233
|
+
executor: n,
|
|
234
|
+
children: e
|
|
235
|
+
}) {
|
|
236
|
+
const o = f(() => G(), []), a = n || o, i = f(
|
|
237
|
+
() => ({ token: t, apiBaseUrl: r, executor: a }),
|
|
238
|
+
[r, a, t]
|
|
239
|
+
);
|
|
240
|
+
return /* @__PURE__ */ $(R.Provider, { value: i, children: e });
|
|
241
|
+
}
|
|
242
|
+
function Y() {
|
|
243
|
+
return K(R);
|
|
244
|
+
}
|
|
245
|
+
const I = { value: null }, Z = { records: [] }, S = { options: [] };
|
|
246
|
+
function tt(t) {
|
|
247
|
+
const r = w(t.inputs);
|
|
248
|
+
try {
|
|
249
|
+
const n = T(t), e = k(n);
|
|
250
|
+
return e ? {
|
|
251
|
+
error: e,
|
|
252
|
+
activeInputs: r,
|
|
253
|
+
queryKey: s(void 0, r, e),
|
|
254
|
+
idleData: I
|
|
255
|
+
} : {
|
|
256
|
+
intent: n,
|
|
257
|
+
error: null,
|
|
258
|
+
activeInputs: r,
|
|
259
|
+
queryKey: s(n, r),
|
|
260
|
+
idleData: I
|
|
261
|
+
};
|
|
262
|
+
} catch (n) {
|
|
263
|
+
const e = h(n);
|
|
264
|
+
return {
|
|
265
|
+
error: e,
|
|
266
|
+
activeInputs: r,
|
|
267
|
+
queryKey: s(void 0, r, e),
|
|
268
|
+
idleData: I
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
function rt(t) {
|
|
273
|
+
const r = w(t.inputs), n = Z;
|
|
274
|
+
try {
|
|
275
|
+
const e = _(t), o = k(e);
|
|
276
|
+
return o ? {
|
|
277
|
+
error: o,
|
|
278
|
+
activeInputs: r,
|
|
279
|
+
queryKey: s(void 0, r, o),
|
|
280
|
+
idleData: n
|
|
281
|
+
} : {
|
|
282
|
+
intent: e,
|
|
283
|
+
error: null,
|
|
284
|
+
activeInputs: r,
|
|
285
|
+
queryKey: s(e, r),
|
|
286
|
+
idleData: n
|
|
287
|
+
};
|
|
288
|
+
} catch (e) {
|
|
289
|
+
const o = h(e);
|
|
290
|
+
return {
|
|
291
|
+
error: o,
|
|
292
|
+
activeInputs: r,
|
|
293
|
+
queryKey: s(void 0, r, o),
|
|
294
|
+
idleData: n
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
function et(t) {
|
|
299
|
+
try {
|
|
300
|
+
const r = F(t), n = k(r);
|
|
301
|
+
return n ? {
|
|
302
|
+
error: n,
|
|
303
|
+
queryKey: s(void 0, void 0, n),
|
|
304
|
+
idleData: S
|
|
305
|
+
} : {
|
|
306
|
+
intent: r,
|
|
307
|
+
error: null,
|
|
308
|
+
queryKey: s(r),
|
|
309
|
+
idleData: S
|
|
310
|
+
};
|
|
311
|
+
} catch (r) {
|
|
312
|
+
const n = h(r);
|
|
313
|
+
return {
|
|
314
|
+
error: n,
|
|
315
|
+
queryKey: s(void 0, void 0, n),
|
|
316
|
+
idleData: S
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
function h(t) {
|
|
321
|
+
return t instanceof Error ? t : new Error(String(t));
|
|
322
|
+
}
|
|
323
|
+
function k(t) {
|
|
324
|
+
const r = B(t);
|
|
325
|
+
if (r.ok)
|
|
326
|
+
return null;
|
|
327
|
+
const n = r.errors.map(
|
|
328
|
+
(e) => e.path ? `${e.code} at ${e.path}: ${e.message}` : `${e.code}: ${e.message}`
|
|
329
|
+
).join("; ");
|
|
330
|
+
return new Error(`Invalid Semaphor analytics intent. ${n}`);
|
|
331
|
+
}
|
|
332
|
+
function s(t, r, n) {
|
|
333
|
+
return JSON.stringify({
|
|
334
|
+
intent: t,
|
|
335
|
+
activeInputs: r,
|
|
336
|
+
error: n == null ? void 0 : n.message
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
function dt(t) {
|
|
340
|
+
const [r, n] = q(t.defaultValue), e = Object.prototype.hasOwnProperty.call(t, "value"), o = e ? t.value : r, a = f(
|
|
341
|
+
() => j(t.options),
|
|
342
|
+
[t.options]
|
|
343
|
+
), i = p(
|
|
344
|
+
(u) => {
|
|
345
|
+
var m;
|
|
346
|
+
(m = t.onValueChange) == null || m.call(t, u), e || n(u);
|
|
347
|
+
},
|
|
348
|
+
[e, t]
|
|
349
|
+
), l = p(() => i(void 0), [i]);
|
|
350
|
+
return f(() => {
|
|
351
|
+
const u = P(t);
|
|
352
|
+
return {
|
|
353
|
+
id: t.id,
|
|
354
|
+
kind: t.kind,
|
|
355
|
+
label: t.label,
|
|
356
|
+
field: u.field,
|
|
357
|
+
operator: u.operator,
|
|
358
|
+
source: u.source,
|
|
359
|
+
controlRole: t.kind === "control" ? t.role : void 0,
|
|
360
|
+
value: o,
|
|
361
|
+
options: a,
|
|
362
|
+
isActive: A(o),
|
|
363
|
+
setValue: i,
|
|
364
|
+
clear: l,
|
|
365
|
+
toAnalyticsInput: () => ({
|
|
366
|
+
inputId: u.inputId,
|
|
367
|
+
field: u.field,
|
|
368
|
+
kind: t.kind,
|
|
369
|
+
label: t.label,
|
|
370
|
+
value: o,
|
|
371
|
+
isActive: A(o),
|
|
372
|
+
operator: u.operator,
|
|
373
|
+
source: u.source,
|
|
374
|
+
controlRole: t.kind === "control" ? t.role : void 0
|
|
375
|
+
})
|
|
376
|
+
};
|
|
377
|
+
}, [l, a, i, t, o]);
|
|
378
|
+
}
|
|
379
|
+
function lt(t) {
|
|
380
|
+
const r = f(() => tt(t), [t]), n = p(
|
|
381
|
+
(a) => {
|
|
382
|
+
var i;
|
|
383
|
+
return r.intent ? (i = a.executor) == null ? void 0 : i.executeMetric(r.intent, a) : void 0;
|
|
384
|
+
},
|
|
385
|
+
[r.intent]
|
|
386
|
+
), e = b(
|
|
387
|
+
r.queryKey,
|
|
388
|
+
n,
|
|
389
|
+
r.idleData,
|
|
390
|
+
r.activeInputs
|
|
391
|
+
), o = r.error ? r.idleData : e.data;
|
|
392
|
+
return {
|
|
393
|
+
id: t.id,
|
|
394
|
+
intent: r.intent,
|
|
395
|
+
value: (o == null ? void 0 : o.value) ?? null,
|
|
396
|
+
metrics: o == null ? void 0 : o.metrics,
|
|
397
|
+
comparisonValue: o == null ? void 0 : o.comparisonValue,
|
|
398
|
+
delta: o == null ? void 0 : o.delta,
|
|
399
|
+
deltaPercent: o == null ? void 0 : o.deltaPercent,
|
|
400
|
+
records: o == null ? void 0 : o.records,
|
|
401
|
+
status: r.error ? "error" : e.status,
|
|
402
|
+
isLoading: !r.error && e.status === "loading",
|
|
403
|
+
error: r.error || e.error
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
function ct(t) {
|
|
407
|
+
const r = f(() => rt(t), [t]), n = p(
|
|
408
|
+
(a) => {
|
|
409
|
+
var i;
|
|
410
|
+
return r.intent ? (i = a.executor) == null ? void 0 : i.executeRecords(r.intent, a) : void 0;
|
|
411
|
+
},
|
|
412
|
+
[r.intent]
|
|
413
|
+
), e = b(
|
|
414
|
+
r.queryKey,
|
|
415
|
+
n,
|
|
416
|
+
r.idleData,
|
|
417
|
+
r.activeInputs
|
|
418
|
+
), o = r.error ? r.idleData : e.data;
|
|
419
|
+
return {
|
|
420
|
+
id: t.id,
|
|
421
|
+
intent: r.intent,
|
|
422
|
+
records: (o == null ? void 0 : o.records) || [],
|
|
423
|
+
columns: o == null ? void 0 : o.columns,
|
|
424
|
+
rowCount: o == null ? void 0 : o.rowCount,
|
|
425
|
+
status: r.error ? "error" : e.status,
|
|
426
|
+
isLoading: !r.error && e.status === "loading",
|
|
427
|
+
error: r.error || e.error
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
function ft(t) {
|
|
431
|
+
const r = f(() => et(t), [t]), n = p(
|
|
432
|
+
(a) => {
|
|
433
|
+
var i;
|
|
434
|
+
return r.intent ? (i = a.executor) == null ? void 0 : i.executeInputOptions(r.intent, a) : void 0;
|
|
435
|
+
},
|
|
436
|
+
[r.intent]
|
|
437
|
+
), e = b(
|
|
438
|
+
r.queryKey,
|
|
439
|
+
n,
|
|
440
|
+
r.idleData
|
|
441
|
+
), o = r.error ? r.idleData : e.data;
|
|
442
|
+
return {
|
|
443
|
+
id: t.id,
|
|
444
|
+
intent: r.intent,
|
|
445
|
+
options: (o == null ? void 0 : o.options) || [],
|
|
446
|
+
status: r.error ? "error" : e.status,
|
|
447
|
+
isLoading: !r.error && e.status === "loading",
|
|
448
|
+
error: r.error || e.error
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
|
+
function b(t, r, n, e) {
|
|
452
|
+
const o = Y(), a = E(r), i = E(e), [l, u] = q({
|
|
453
|
+
status: "idle",
|
|
454
|
+
data: n,
|
|
455
|
+
error: null
|
|
456
|
+
});
|
|
457
|
+
return a.current = r, i.current = e, C(() => {
|
|
458
|
+
let m;
|
|
459
|
+
try {
|
|
460
|
+
m = a.current({
|
|
461
|
+
...o,
|
|
462
|
+
activeInputs: i.current
|
|
463
|
+
});
|
|
464
|
+
} catch (c) {
|
|
465
|
+
u({
|
|
466
|
+
status: "error",
|
|
467
|
+
data: n,
|
|
468
|
+
error: h(c)
|
|
469
|
+
});
|
|
470
|
+
return;
|
|
471
|
+
}
|
|
472
|
+
if (!m) {
|
|
473
|
+
u({ status: "idle", data: n, error: null });
|
|
474
|
+
return;
|
|
475
|
+
}
|
|
476
|
+
let y = !1;
|
|
477
|
+
return u((c) => ({
|
|
478
|
+
status: "loading",
|
|
479
|
+
data: c.data,
|
|
480
|
+
error: null
|
|
481
|
+
})), m.then((c) => {
|
|
482
|
+
y || u({ status: "success", data: c, error: null });
|
|
483
|
+
}).catch((c) => {
|
|
484
|
+
y || u({
|
|
485
|
+
status: "error",
|
|
486
|
+
data: n,
|
|
487
|
+
error: h(c)
|
|
488
|
+
});
|
|
489
|
+
}), () => {
|
|
490
|
+
y = !0;
|
|
491
|
+
};
|
|
492
|
+
}, [n, t, o]), l;
|
|
493
|
+
}
|
|
494
|
+
export {
|
|
495
|
+
st as SemaphorDataAppProvider,
|
|
496
|
+
G as createSemaphorDataAppExecutor,
|
|
497
|
+
A as hasSemaphorInputValue,
|
|
498
|
+
j as normalizeSemaphorInputOptions,
|
|
499
|
+
w as toSemaphorActiveInputSnapshots,
|
|
500
|
+
M as toSemaphorInputBinding,
|
|
501
|
+
ut as toSemaphorInputBindings,
|
|
502
|
+
F as toSemaphorInputOptionsIntent,
|
|
503
|
+
N as toSemaphorInputSnapshots,
|
|
504
|
+
P as toSemaphorInputSpec,
|
|
505
|
+
T as toSemaphorMetricIntent,
|
|
506
|
+
_ as toSemaphorRecordsIntent,
|
|
507
|
+
Y as useSemaphorDataAppRuntime,
|
|
508
|
+
dt as useSemaphorInput,
|
|
509
|
+
ft as useSemaphorInputOptions,
|
|
510
|
+
lt as useSemaphorMetric,
|
|
511
|
+
ct as useSemaphorRecords
|
|
512
|
+
};
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/index-YTk9Hab2.js"),d=require("./chunks/common-types-C73-Ud1-.js"),P=require("./chunks/calendar-preferences-dialog-BxeROxyq.js"),t=require("react/jsx-runtime"),a=require("./chunks/switch-BXICAlvS.js"),C=require("react"),N=require("./chunks/resource-management-panel-DlnrD0y-.js"),y=require("./types/index.cjs"),_=require("./chunks/use-debounced-dirty-check-XHSwAefL.js");require("react-dom");require("./chunks/index-DRlMUglg.js");const r=require("./chunks/dashboard-briefing-launcher-DZiFMK8I.js"),S=require("./chunks/normalize-dashboard-for-dirty-check-BXRUMVb2.js");function R(o){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const n in o)if(n!=="default"){const u=Object.getOwnPropertyDescriptor(o,n);Object.defineProperty(i,n,u.get?u:{enumerable:!0,get:()=>o[n]})}}return i.default=o,Object.freeze(i)}const h=R(C);function j(o){const{displayPreferences:i,cardId:n,...u}=o,s={...u,id:o.dashboardId};return t.jsx(e.ErrorBoundary,{FallbackComponent:e.Fallback,children:t.jsxs(e.SemaphorContextProvider,{dashboardProps:s,children:[t.jsx(e.SemaphorReadyIndicator,{componentType:"visual",componentId:o.cardId}),t.jsx(e.UXProvider,{appearance:o.appearance,children:t.jsx(e.DisplayPreferencesProvider,{displayPreferences:i,children:t.jsx(e.Container,{type:"visual",cardId:n,...s,children:t.jsx(w,{cardId:n})})})})]})})}function w({cardId:o}){const i=a.useDashboardStore(s=>{var c;return(c=s.dashboard)==null?void 0:c.sheets}),{card:n,frame:u}=C.useMemo(()=>{const s=i==null?void 0:i.flatMap(l=>l.frames),c=s==null?void 0:s.flatMap(l=>l==null?void 0:l.cards),D=c==null?void 0:c.find(l=>(l==null?void 0:l.id)===o),E=s==null?void 0:s.find(l=>{var p;return(p=l==null?void 0:l.cards)==null?void 0:p.find(g=>(g==null?void 0:g.id)===o)});return{card:D,frame:E}},[i,o]);return!n||!u?t.jsx(e.FallbackVisual,{error:new Error("Card not found"),resetErrorBoundary:()=>{},customerFacingMessage:`Card not found with ID: ${o}`}):t.jsx("main",{className:"flex h-full grow flex-col",children:t.jsx(e.ErrorBoundary,{FallbackComponent:({error:s,resetErrorBoundary:c})=>t.jsx(e.FallbackVisual,{error:s,resetErrorBoundary:c,customerFacingMessage:"Error creating visual. Please try again."}),children:t.jsx(e.DashboardCard,{card:n,frame:u})})})}function M(o,i,n,u){C.useEffect(()=>{o&&!n&&i&&u(e.cloneDeep(i))},[o,n,i,u])}function L({name:o,items:i,value:n,onChange:u,isLoading:s,isError:c,refetch:D,className:E,icon:l,showNone:p=!1}){const g=h.useRef(null),[b,T]=h.useState(!1),[B,A]=h.useState("100%"),x=p?[...i||[],{id:"none",name:"None"}]:i;h.useLayoutEffect(()=>{g.current&&A(g.current.offsetWidth)},[]);function F(){var f;return s?"Loading...":c?"Error":n?(f=i==null?void 0:i.find(m=>m.id===n))==null?void 0:f.name:`Select ${o}`}function v(f,m){u(m),T(!1)}return t.jsxs(a.Popover,{open:b,onOpenChange:T,children:[t.jsx(a.PopoverTrigger,{asChild:!0,children:t.jsxs(a.Button,{ref:g,variant:"outline",role:"combobox","aria-expanded":b,className:a.cn("flex h-9 w-full justify-between",E),children:[t.jsxs("div",{className:"flex items-center gap-2",children:[l&&t.jsx("div",{className:"mr-2",children:l}),t.jsx("span",{className:"max-w-[150px] overflow-hidden truncate text-ellipsis whitespace-nowrap",children:F()})]}),t.jsx(a.ChevronDown,{className:"size-4 opacity-50"})]})}),t.jsx(a.PopoverContent,{className:"w-full p-0",style:{minWidth:B},children:t.jsxs(e.Command,{children:[t.jsxs("div",{className:"flex h-9 items-center justify-between border-b pr-1",children:[t.jsx(e.CommandInput,{className:"h-9",placeholder:"Search..."}),t.jsx(e.IconButton,{className:"h-7",onClick:D,children:t.jsx(e.RefreshCw,{className:a.cn("size-3.5 opacity-50",s&&"animate-spin")})})]}),t.jsxs(e.CommandList,{children:[t.jsxs(e.CommandEmpty,{children:["No ",o==null?void 0:o.toLowerCase()," found."]}),t.jsx(e.CommandGroup,{children:x==null?void 0:x.map(f=>t.jsx(e.CommandItem,{className:"overflow-x-auto",value:f.name,onSelect:m=>v(m,f.id),children:t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(a.Check,{className:a.cn("size-4",n===f.id?"opacity-100":"opacity-0")}),t.jsx("div",{title:f.name,children:f.name})]})},f.id))})]})]})})]})}function I(o,i){C.useEffect(()=>(o&&i&&(window.__SEMAPHOR_PRINT_STATE__={...i}),()=>{o&&window.__SEMAPHOR_PRINT_STATE__&&delete window.__SEMAPHOR_PRINT_STATE__}),[o,i])}exports.CardSummary=e.CardSummary;exports.Dashboard=e.Dashboard;exports.DashboardCreateDialogBase=e.DashboardCreateDialogBase;exports.DashboardExportDialog=e.DashboardExportDialog;exports.DashboardWC=e.DashboardWC;exports.ExportError=e.ExportError;exports.ResourceType=e.ResourceType;exports.SemaphorContextProvider=e.SemaphorContextProvider;exports.SemaphorDataProvider=e.SemaphorQueryClient;exports.SemaphorQueryClient=e.SemaphorQueryClient;exports.ShareDialog=e.ShareDialog;exports.SummaryCard=e.SummaryCard;exports.Surfboard=e.DashboardPlus;exports.cancelExport=e.cancelExport;exports.cloneDeep=e.cloneDeep;exports.createExport=e.createExport;exports.downloadDocumentPdf=e.downloadDocumentPdf;exports.downloadPdf=e.downloadPdf;exports.formatFileSize=e.formatFileSize;exports.getDownloadUrl=e.getDownloadUrl;exports.getExportStatus=e.getExportStatus;exports.getExports=e.getExports;exports.isExportComplete=e.isExportComplete;exports.isExportInProgress=e.isExportInProgress;exports.useActiveExports=e.useActiveExports;exports.useAddNewFrame=e.useAddNewFrame;exports.useCard=e.useCard;exports.useCardSummary=e.useCardSummary;exports.useDashboardById=e.useDashboardById;exports.useDashboardQuery=e.useDashboardQuery;exports.useDashboardSummary=e.useDashboardSummary;exports.useDataColumns=e.useDataColumns;exports.useDateFilterHook=e.useDateFilterHook;exports.useEditorAside=e.useEditorAside;exports.useExportActions=e.useExportActions;exports.useExportStore=e.useExportStore;exports.useInProgressExportsCount=e.useInProgressExportsCount;exports.useManagementStore=e.useManagementStore;exports.useResourceManagement=e.useResourceManagement;exports.useTextFilterHook=e.useTextFilterHook;exports.CALCULATED_FIELD_ENTITY_MARKER=d.CALCULATED_FIELD_ENTITY_MARKER;exports.CONTROL_CARD_DEFAULT_VALUE=d.CONTROL_CARD_DEFAULT_VALUE;exports.DATE_FORMAT_VALUES=d.DATE_FORMAT_VALUES;exports.EMPTY_SELECTION=d.EMPTY_SELECTION;exports.PivotMarkerEnum=d.PivotMarkerEnum;exports.getFieldRuntimeColumnName=d.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=d.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=d.hasCalculatedFormulaInputs;exports.isCalculatedDimension=d.isCalculatedDimension;exports.isCalculatedField=d.isCalculatedField;exports.isCalculatedMetric=d.isCalculatedMetric;exports.CalendarPreferencesDialog=P.CalendarPreferencesDialog;exports.createEmptyKpiConfig=a.createEmptyKpiConfig;exports.createSqlGenConfig=a.createSqlGenConfig;exports.emitDashboardLoad=a.emitDashboardLoad;exports.emitDashboardUnload=a.emitDashboardUnload;exports.fmt=a.fmt;exports.getColumnDataType=a.getColumnDataType;exports.getFilterValueType=a.getFilterValueType;exports.getFormattedTableNameForQuery=a.getFormattedTableNameForQuery;exports.getQualifiedTableName=a.getQualifiedTableName;exports.getSql=a.getSql;exports.invalidateToken=a.invalidateToken;exports.isBooleanDataType=a.isBooleanDataType;exports.isColumnInSqlGen=a.isColumnInSqlGen;exports.isDateDataType=a.isDateDataType;exports.isNumberDataType=a.isNumberDataType;exports.isTextDataType=a.isTextDataType;exports.resolveDataType=a.resolveDataType;exports.resolveDatamodelName=a.resolveDatamodelName;exports.useCurrentActiveCard=a.useCurrentActiveCard;exports.useCurrentCardConfig=a.useCurrentCardConfig;exports.useCurrentSheetActiveCards=a.useCurrentSheetActiveCards;exports.useDashboardActions=a.useDashboardActions;exports.useDashboardStore=a.useDashboardStore;exports.useEditorActions=a.useEditorActions;exports.useEditorStore=a.useEditorStore;exports.ResourceManagementPanel=N.ResourceManagementPanel;exports.DEFAULT_CALENDAR_CONTEXT=y.DEFAULT_CALENDAR_CONTEXT;exports.DEFAULT_SEMANTIC_DOMAIN_ACCESS=y.DEFAULT_SEMANTIC_DOMAIN_ACCESS;exports.useDebouncedDirtyCheck=_.useDebouncedDirtyCheck;exports.AdvancedModeToggle=r.AdvancedModeToggle;exports.BriefingAuthor=r.BriefingAuthor;exports.BriefingsApiError=r.BriefingsApiError;exports.DashboardBriefingLauncher=r.DashboardBriefingLauncher;exports.DashboardControlsSettings=r.DashboardControlsSettings;exports.DashboardFilterControlsButton=r.DashboardFilterControlsButton;exports.DashboardFilterControlsLauncher=r.DashboardFilterControlsLauncher;exports.DocumentControlsSettings=r.DocumentControlsSettings;exports.ExportNotificationItem=r.ExportNotificationItem;exports.ExportNotificationList=r.ExportNotificationList;exports.NotificationBell=r.NotificationBell;exports.UnsavedChangesAlert=r.UnsavedChangesAlert;exports.VisualEditingControls=r.VisualEditingControls;exports.WatchDashboardButton=r.WatchDashboardButton;exports.applyBriefingFormPatch=r.applyBriefingFormPatch;exports.briefingFormDraftToCreateRequest=r.briefingFormDraftToCreateRequest;exports.briefingFormDraftToUpdateRequest=r.briefingFormDraftToUpdateRequest;exports.briefingToFormDraft=r.briefingToFormDraft;exports.cancelBriefingRun=r.cancelBriefingRun;exports.createBriefing=r.createBriefing;exports.createBriefingFormDraft=r.createBriefingFormDraft;exports.deleteBriefing=r.deleteBriefing;exports.deleteBriefingRun=r.deleteBriefingRun;exports.getBriefing=r.getBriefing;exports.getBriefingArtifact=r.getBriefingArtifact;exports.getBriefingEvidence=r.getBriefingEvidence;exports.getBriefingPreviewRun=r.getBriefingPreviewRun;exports.getBriefingRun=r.getBriefingRun;exports.listBriefingRuns=r.listBriefingRuns;exports.listBriefingTenantSummaries=r.listBriefingTenantSummaries;exports.listBriefings=r.listBriefings;exports.pauseBriefing=r.pauseBriefing;exports.polishBriefingText=r.polishBriefingText;exports.previewBriefingPlan=r.previewBriefingPlan;exports.resumeBriefing=r.resumeBriefing;exports.runBriefingNow=r.runBriefingNow;exports.runBriefingPreview=r.runBriefingPreview;exports.updateBriefing=r.updateBriefing;exports.useExportPolling=r.useExportPolling;exports.useExportRecovery=r.useExportRecovery;exports.validateBriefingFormDraft=r.validateBriefingFormDraft;exports.normalizeDashboardForDirtyCheck=S.normalizeDashboardForDirtyCheck;exports.serializeDashboardForDirtyCheck=S.serializeDashboardForDirtyCheck;exports.Combobox=L;exports.Visual=j;exports.useExposePrintState=I;exports.usePristineSnapshotInitializer=M;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/index-B1-46PoR.js"),d=require("./chunks/common-types-C73-Ud1-.js"),P=require("./chunks/calendar-preferences-dialog-mqU_uOmY.js"),t=require("react/jsx-runtime"),a=require("./chunks/switch-5aQ_jcLH.js"),C=require("react"),N=require("./chunks/resource-management-panel-CGwWKZOP.js"),y=require("./types/index.cjs"),_=require("./chunks/use-debounced-dirty-check-XHSwAefL.js");require("react-dom");require("./chunks/index-DRlMUglg.js");const r=require("./chunks/dashboard-briefing-launcher-DguNfFr8.js"),S=require("./chunks/normalize-dashboard-for-dirty-check-BXRUMVb2.js");require("./chunks/index-BxM99sFL.js");function R(o){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const n in o)if(n!=="default"){const u=Object.getOwnPropertyDescriptor(o,n);Object.defineProperty(i,n,u.get?u:{enumerable:!0,get:()=>o[n]})}}return i.default=o,Object.freeze(i)}const h=R(C);function j(o){const{displayPreferences:i,cardId:n,...u}=o,s={...u,id:o.dashboardId};return t.jsx(e.ErrorBoundary,{FallbackComponent:e.Fallback,children:t.jsxs(e.SemaphorContextProvider,{dashboardProps:s,children:[t.jsx(e.SemaphorReadyIndicator,{componentType:"visual",componentId:o.cardId}),t.jsx(e.UXProvider,{appearance:o.appearance,children:t.jsx(e.DisplayPreferencesProvider,{displayPreferences:i,children:t.jsx(e.Container,{type:"visual",cardId:n,...s,children:t.jsx(w,{cardId:n})})})})]})})}function w({cardId:o}){const i=a.useDashboardStore(s=>{var c;return(c=s.dashboard)==null?void 0:c.sheets}),{card:n,frame:u}=C.useMemo(()=>{const s=i==null?void 0:i.flatMap(l=>l.frames),c=s==null?void 0:s.flatMap(l=>l==null?void 0:l.cards),D=c==null?void 0:c.find(l=>(l==null?void 0:l.id)===o),E=s==null?void 0:s.find(l=>{var p;return(p=l==null?void 0:l.cards)==null?void 0:p.find(g=>(g==null?void 0:g.id)===o)});return{card:D,frame:E}},[i,o]);return!n||!u?t.jsx(e.FallbackVisual,{error:new Error("Card not found"),resetErrorBoundary:()=>{},customerFacingMessage:`Card not found with ID: ${o}`}):t.jsx("main",{className:"flex h-full grow flex-col",children:t.jsx(e.ErrorBoundary,{FallbackComponent:({error:s,resetErrorBoundary:c})=>t.jsx(e.FallbackVisual,{error:s,resetErrorBoundary:c,customerFacingMessage:"Error creating visual. Please try again."}),children:t.jsx(e.DashboardCard,{card:n,frame:u})})})}function M(o,i,n,u){C.useEffect(()=>{o&&!n&&i&&u(e.cloneDeep(i))},[o,n,i,u])}function L({name:o,items:i,value:n,onChange:u,isLoading:s,isError:c,refetch:D,className:E,icon:l,showNone:p=!1}){const g=h.useRef(null),[b,T]=h.useState(!1),[B,A]=h.useState("100%"),x=p?[...i||[],{id:"none",name:"None"}]:i;h.useLayoutEffect(()=>{g.current&&A(g.current.offsetWidth)},[]);function F(){var f;return s?"Loading...":c?"Error":n?(f=i==null?void 0:i.find(m=>m.id===n))==null?void 0:f.name:`Select ${o}`}function v(f,m){u(m),T(!1)}return t.jsxs(a.Popover,{open:b,onOpenChange:T,children:[t.jsx(a.PopoverTrigger,{asChild:!0,children:t.jsxs(a.Button,{ref:g,variant:"outline",role:"combobox","aria-expanded":b,className:a.cn("flex h-9 w-full justify-between",E),children:[t.jsxs("div",{className:"flex items-center gap-2",children:[l&&t.jsx("div",{className:"mr-2",children:l}),t.jsx("span",{className:"max-w-[150px] overflow-hidden truncate text-ellipsis whitespace-nowrap",children:F()})]}),t.jsx(a.ChevronDown,{className:"size-4 opacity-50"})]})}),t.jsx(a.PopoverContent,{className:"w-full p-0",style:{minWidth:B},children:t.jsxs(e.Command,{children:[t.jsxs("div",{className:"flex h-9 items-center justify-between border-b pr-1",children:[t.jsx(e.CommandInput,{className:"h-9",placeholder:"Search..."}),t.jsx(e.IconButton,{className:"h-7",onClick:D,children:t.jsx(e.RefreshCw,{className:a.cn("size-3.5 opacity-50",s&&"animate-spin")})})]}),t.jsxs(e.CommandList,{children:[t.jsxs(e.CommandEmpty,{children:["No ",o==null?void 0:o.toLowerCase()," found."]}),t.jsx(e.CommandGroup,{children:x==null?void 0:x.map(f=>t.jsx(e.CommandItem,{className:"overflow-x-auto",value:f.name,onSelect:m=>v(m,f.id),children:t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(a.Check,{className:a.cn("size-4",n===f.id?"opacity-100":"opacity-0")}),t.jsx("div",{title:f.name,children:f.name})]})},f.id))})]})]})})]})}function I(o,i){C.useEffect(()=>(o&&i&&(window.__SEMAPHOR_PRINT_STATE__={...i}),()=>{o&&window.__SEMAPHOR_PRINT_STATE__&&delete window.__SEMAPHOR_PRINT_STATE__}),[o,i])}exports.CardSummary=e.CardSummary;exports.Dashboard=e.Dashboard;exports.DashboardCreateDialogBase=e.DashboardCreateDialogBase;exports.DashboardExportDialog=e.DashboardExportDialog;exports.DashboardWC=e.DashboardWC;exports.ExportError=e.ExportError;exports.ResourceType=e.ResourceType;exports.SemaphorContextProvider=e.SemaphorContextProvider;exports.SemaphorDataProvider=e.SemaphorQueryClient;exports.SemaphorQueryClient=e.SemaphorQueryClient;exports.ShareDialog=e.ShareDialog;exports.SummaryCard=e.SummaryCard;exports.Surfboard=e.DashboardPlus;exports.cancelExport=e.cancelExport;exports.cloneDeep=e.cloneDeep;exports.createExport=e.createExport;exports.downloadDocumentPdf=e.downloadDocumentPdf;exports.downloadPdf=e.downloadPdf;exports.formatFileSize=e.formatFileSize;exports.getDownloadUrl=e.getDownloadUrl;exports.getExportStatus=e.getExportStatus;exports.getExports=e.getExports;exports.isExportComplete=e.isExportComplete;exports.isExportInProgress=e.isExportInProgress;exports.useActiveExports=e.useActiveExports;exports.useAddNewFrame=e.useAddNewFrame;exports.useCard=e.useCard;exports.useCardSummary=e.useCardSummary;exports.useDashboardById=e.useDashboardById;exports.useDashboardQuery=e.useDashboardQuery;exports.useDashboardSummary=e.useDashboardSummary;exports.useDataColumns=e.useDataColumns;exports.useDateFilterHook=e.useDateFilterHook;exports.useEditorAside=e.useEditorAside;exports.useExportActions=e.useExportActions;exports.useExportStore=e.useExportStore;exports.useInProgressExportsCount=e.useInProgressExportsCount;exports.useManagementStore=e.useManagementStore;exports.useResourceManagement=e.useResourceManagement;exports.useTextFilterHook=e.useTextFilterHook;exports.CALCULATED_FIELD_ENTITY_MARKER=d.CALCULATED_FIELD_ENTITY_MARKER;exports.CONTROL_CARD_DEFAULT_VALUE=d.CONTROL_CARD_DEFAULT_VALUE;exports.DATE_FORMAT_VALUES=d.DATE_FORMAT_VALUES;exports.EMPTY_SELECTION=d.EMPTY_SELECTION;exports.PivotMarkerEnum=d.PivotMarkerEnum;exports.getFieldRuntimeColumnName=d.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=d.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=d.hasCalculatedFormulaInputs;exports.isCalculatedDimension=d.isCalculatedDimension;exports.isCalculatedField=d.isCalculatedField;exports.isCalculatedMetric=d.isCalculatedMetric;exports.CalendarPreferencesDialog=P.CalendarPreferencesDialog;exports.createEmptyKpiConfig=a.createEmptyKpiConfig;exports.createSqlGenConfig=a.createSqlGenConfig;exports.emitDashboardLoad=a.emitDashboardLoad;exports.emitDashboardUnload=a.emitDashboardUnload;exports.fmt=a.fmt;exports.getColumnDataType=a.getColumnDataType;exports.getFilterValueType=a.getFilterValueType;exports.getFormattedTableNameForQuery=a.getFormattedTableNameForQuery;exports.getQualifiedTableName=a.getQualifiedTableName;exports.getSql=a.getSql;exports.invalidateToken=a.invalidateToken;exports.isBooleanDataType=a.isBooleanDataType;exports.isColumnInSqlGen=a.isColumnInSqlGen;exports.isDateDataType=a.isDateDataType;exports.isNumberDataType=a.isNumberDataType;exports.isTextDataType=a.isTextDataType;exports.resolveDataType=a.resolveDataType;exports.resolveDatamodelName=a.resolveDatamodelName;exports.useCurrentActiveCard=a.useCurrentActiveCard;exports.useCurrentCardConfig=a.useCurrentCardConfig;exports.useCurrentSheetActiveCards=a.useCurrentSheetActiveCards;exports.useDashboardActions=a.useDashboardActions;exports.useDashboardStore=a.useDashboardStore;exports.useEditorActions=a.useEditorActions;exports.useEditorStore=a.useEditorStore;exports.ResourceManagementPanel=N.ResourceManagementPanel;exports.DEFAULT_CALENDAR_CONTEXT=y.DEFAULT_CALENDAR_CONTEXT;exports.DEFAULT_SEMANTIC_DOMAIN_ACCESS=y.DEFAULT_SEMANTIC_DOMAIN_ACCESS;exports.useDebouncedDirtyCheck=_.useDebouncedDirtyCheck;exports.AdvancedModeToggle=r.AdvancedModeToggle;exports.BriefingAuthor=r.BriefingAuthor;exports.BriefingsApiError=r.BriefingsApiError;exports.DashboardBriefingLauncher=r.DashboardBriefingLauncher;exports.DashboardControlsSettings=r.DashboardControlsSettings;exports.DashboardFilterControlsButton=r.DashboardFilterControlsButton;exports.DashboardFilterControlsLauncher=r.DashboardFilterControlsLauncher;exports.DocumentControlsSettings=r.DocumentControlsSettings;exports.ExportNotificationItem=r.ExportNotificationItem;exports.ExportNotificationList=r.ExportNotificationList;exports.NotificationBell=r.NotificationBell;exports.UnsavedChangesAlert=r.UnsavedChangesAlert;exports.VisualEditingControls=r.VisualEditingControls;exports.WatchDashboardButton=r.WatchDashboardButton;exports.applyBriefingFormPatch=r.applyBriefingFormPatch;exports.briefingFormDraftToCreateRequest=r.briefingFormDraftToCreateRequest;exports.briefingFormDraftToUpdateRequest=r.briefingFormDraftToUpdateRequest;exports.briefingToFormDraft=r.briefingToFormDraft;exports.cancelBriefingRun=r.cancelBriefingRun;exports.createBriefing=r.createBriefing;exports.createBriefingFormDraft=r.createBriefingFormDraft;exports.deleteBriefing=r.deleteBriefing;exports.deleteBriefingRun=r.deleteBriefingRun;exports.getBriefing=r.getBriefing;exports.getBriefingArtifact=r.getBriefingArtifact;exports.getBriefingEvidence=r.getBriefingEvidence;exports.getBriefingPreviewRun=r.getBriefingPreviewRun;exports.getBriefingRun=r.getBriefingRun;exports.listBriefingRuns=r.listBriefingRuns;exports.listBriefingTenantSummaries=r.listBriefingTenantSummaries;exports.listBriefings=r.listBriefings;exports.pauseBriefing=r.pauseBriefing;exports.polishBriefingText=r.polishBriefingText;exports.previewBriefingPlan=r.previewBriefingPlan;exports.resumeBriefing=r.resumeBriefing;exports.runBriefingNow=r.runBriefingNow;exports.runBriefingPreview=r.runBriefingPreview;exports.updateBriefing=r.updateBriefing;exports.useExportPolling=r.useExportPolling;exports.useExportRecovery=r.useExportRecovery;exports.validateBriefingFormDraft=r.validateBriefingFormDraft;exports.normalizeDashboardForDirtyCheck=S.normalizeDashboardForDirtyCheck;exports.serializeDashboardForDirtyCheck=S.serializeDashboardForDirtyCheck;exports.Combobox=L;exports.Visual=j;exports.useExposePrintState=I;exports.usePristineSnapshotInitializer=M;
|