react-semaphor 0.1.478 → 0.1.479
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/brand-studio/index.cjs +1 -1
- package/dist/brand-studio/index.js +1 -1
- package/dist/chunks/{dashboard-briefing-launcher-7qAW16mO.cjs → dashboard-briefing-launcher-DWwSdfV7.cjs} +1 -1
- package/dist/chunks/{dashboard-briefing-launcher-DAhtLQPc.js → dashboard-briefing-launcher-Dk4yNOLY.js} +3 -3
- package/dist/chunks/{dashboard-controls-CoVqAeKG.cjs → dashboard-controls-B0Pm_y8L.cjs} +1 -1
- package/dist/chunks/{dashboard-controls-C_CBmEwW.js → dashboard-controls-CIC5_549.js} +5 -5
- package/dist/chunks/{dashboard-filter-value-compatibility-Bco2gN96.cjs → dashboard-filter-value-compatibility-ByT__CYM.cjs} +1 -1
- package/dist/chunks/{dashboard-filter-value-compatibility-BAatYtUS.js → dashboard-filter-value-compatibility-DQkUs41q.js} +72 -67
- package/dist/chunks/{dashboard-json-B3XSl7b_.cjs → dashboard-json-Bk6nEHap.cjs} +1 -1
- package/dist/chunks/{dashboard-json-0w58H39L.js → dashboard-json-YDTb3r4e.js} +2 -2
- package/dist/chunks/{edit-dashboard-visual-BsLRKeuO.cjs → edit-dashboard-visual-B3oH-O0L.cjs} +1 -1
- package/dist/chunks/{edit-dashboard-visual-BsWEU8xf.js → edit-dashboard-visual-q5Yj9dMP.js} +4 -4
- package/dist/chunks/{editor-action-buttons-B3CB5c__.js → editor-action-buttons-BqelO0n9.js} +2 -2
- package/dist/chunks/{editor-action-buttons-DMLDvrJD.cjs → editor-action-buttons-vZ63-lN-.cjs} +1 -1
- package/dist/chunks/{index-DgGcVyUs.js → index-CUCiMVzS.js} +22006 -22002
- package/dist/chunks/{index--0Il-Bpd.cjs → index-DhDfPZUu.cjs} +165 -165
- package/dist/chunks/{report-preferences-dialog-I0Pbn_Yb.cjs → report-preferences-dialog--aV7ITSE.cjs} +1 -1
- package/dist/chunks/{report-preferences-dialog-Bytgubvz.js → report-preferences-dialog-DKq0k5BH.js} +2 -2
- package/dist/chunks/switch-D12C40LN.cjs +138 -0
- package/dist/chunks/{switch-BsGTOjuD.js → switch-LucIPRtD.js} +5249 -4987
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +1 -1
- package/dist/dashboard-authoring/index.cjs +1 -1
- package/dist/dashboard-authoring/index.js +2 -2
- package/dist/data-app-builder/index.cjs +1 -1
- package/dist/data-app-builder/index.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.js +7 -7
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +2 -2
- package/dist/types/briefings.d.ts +8 -2
- package/dist/types/dashboard-authoring.d.ts +9 -3
- package/dist/types/dashboard.d.ts +9 -3
- package/dist/types/main.d.ts +27 -18
- package/dist/types/shared.d.ts +8 -2
- package/dist/types/surfboard.d.ts +9 -3
- package/dist/types/types.d.ts +9 -3
- package/package.json +1 -1
- package/dist/chunks/switch-Cpj3DrCZ.cjs +0 -138
package/dist/dashboard/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../chunks/index
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../chunks/index-DhDfPZUu.cjs"),e=require("../chunks/common-types-BCSbPclk.cjs");exports.Dashboard=o.Dashboard;exports.CONTROL_CARD_DEFAULT_VALUE=e.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=e.EMPTY_SELECTION;
|
package/dist/dashboard/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("../chunks/contracts-CtB2VONT.cjs"),D=require("../chunks/temporal-bucket-authoring-DueSgLJU.cjs"),w=require("../chunks/validators-DqIM0B3C.cjs");require("../chunks/analyze-result-contract-BX_nQmPN.cjs");require("../value-format-preferences/index.cjs");const h=require("../chunks/dashboard-filter-value-compatibility-Bco2gN96.cjs"),Te=require("../chunks/operators-DrTQsJXv.cjs"),X=require("../chunks/canonical-result-keys-Cb96edol.cjs");function S(e){return e&&typeof e=="object"?e:null}function T(e){return typeof e=="string"?e:null}function de(e){var t,r,a;return!!(e&&typeof e=="object")&&(((t=S(e))==null?void 0:t.kind)==="semantic"||((r=S(e))==null?void 0:r.kind)==="physical"||((a=S(e))==null?void 0:a.kind)==="sql")}function M(e){return de(e)?e.kind==="semantic"?!!(e.domainId&&e.datasetName):e.kind==="physical"?!!(e.connectionId&&e.tableName):!1:!1}function Fe(e){return w.semaphorSourceIdentityKey(e)}function Y(e,t){return w.semaphorSourcesReferToSameDataset(e,t)}function ce(e,t){return w.preferSemaphorSourceMetadata(e,t)}function B(e){const t=[];for(const r of e){const a=t.findIndex(o=>Y(o,r));a===-1?t.push(r):t[a]=ce(t[a],r)}return t}function ke(e){return B(e)[0]}function K(e,t){return e.kind!=="semantic"||e.connectionId||(t==null?void 0:t.kind)!=="semantic"||!w.semaphorSourcesReferToSameDataset(e,t)||!t.connectionId?e:{...e,connectionId:t.connectionId}}function U(e){return M(e)?e:void 0}function oe(e,t){if(!(e.kind!=="semantic"||e.connectionId))return t.find(r=>(r==null?void 0:r.kind)==="semantic"&&w.semaphorSourcesReferToSameDataset(e,r)&&!!r.connectionId)}function v(e,t){const r=U(e==null?void 0:e.source);return r?K(r,t):void 0}function le({explicitSource:e,field:t,defaultSource:r,fallbackSources:a}){const o=[r,...a||[]],i=U(e),n=i?K(i,oe(i,o)):void 0;if(n)return n;if(e!==void 0)return;const d=v(t,r),s=d?K(d,oe(d,o)):void 0;if(s)return s;if((t==null?void 0:t.source)===void 0)return U(r)}function xe(e,t){if(!(e!=null&&e.name)||!(t!=null&&t.name)||e.name!==t.name)return!1;const r=v(e),a=v(t);return!r||!a?!0:Y(r,a)}function x(e){var t;return T((t=S(e))==null?void 0:t.kind)}function ue(e){var t,r;return x(e)!=="semantic"?null:((r=T((t=S(e))==null?void 0:t.domainId))==null?void 0:r.trim())||null}function Re(e){var t;return x(e)!=="semantic"?null:T((t=S(e))==null?void 0:t.datasetName)}function Me(e){var t;return x(e)!=="semantic"?null:T((t=S(e))==null?void 0:t.datasetId)}function Ne(e){var t;return x(e)!=="physical"?null:T((t=S(e))==null?void 0:t.connectionId)}function Oe(e){var t;return x(e)!=="physical"?null:T((t=S(e))==null?void 0:t.tableName)}function Be(e){var t;return x(e)!=="physical"?"":T((t=S(e))==null?void 0:t.databaseName)||""}function $e(e){var t;return x(e)!=="physical"?"":T((t=S(e))==null?void 0:t.schemaName)||""}function pe(e){if(e.analyticsIntent&&typeof e.analyticsIntent=="object"&&"source"in e.analyticsIntent)return e.analyticsIntent.source}function fe({datasets:e,requireAtLeastOne:t}){if(t&&e.length<1)return{ok:!1,issue:"invalid_dataset_count"};if(e.length<=1)return{ok:!0};const r=e.map(ue),a=new Set(r.filter(Boolean));return r.some(o=>!o)||a.size!==1?{ok:!1,issue:"invalid_multi_dataset_scope"}:{ok:!0}}function z(e,t){if(!t)return!1;if(t.kind==="semantic"){const r=Me(e);return ue(e)===t.domainId?r&&t.datasetId?r===t.datasetId:Re(e)===t.datasetName:!1}return t.kind==="physical"?Ne(e)===t.connectionId&&Oe(e)===t.tableName&&Be(e)===(t.databaseName||"")&&$e(e)===(t.schemaName||""):!1}function Pe(e,t){return e.find(r=>z(r,t))}function f(e,t,r){return r?{code:e,message:t,cardId:r}:{code:e,message:t}}function E(e){const t=new Set;for(const r of e){if(t.has(r))return r;t.add(r)}return null}function he({card:e,datasets:t,errors:r}){if(e.type==="text")return;const a=pe(e);if(!a){if(t.length<=1)return;r.push(f("missing_card_analytics_source","Multi-dataset dashboard cards must include analytics intent with a source so the materializer can choose the correct dataset.",e.id));return}t.some(o=>z(o,a))||r.push(f("invalid_card_analytics_source","Dashboard cards with an explicit analytics source must use one of the selected datasets.",e.id))}function q(e){return e.map(t=>t==null?void 0:t.source).filter(t=>!!t)}function L(e){return Array.isArray(e)?e.filter(t=>!!(t&&typeof t=="object")):[]}function se(e){return Array.isArray(e)?e.filter(t=>!!(t&&typeof t=="object")):[]}function Ee(e){var r,a;if(!e)return[];const t=[e.source];return e.kind==="metric"?t.push(...q([...L(e.measures),e.primaryMeasure,e.dateField,...L(e.dimensions),...se(e.filters).map(o=>o.field)])):e.kind==="records"?t.push(...q([...L(e.fields),e.dateField,(r=e.orderBy)==null?void 0:r.field,...se(e.filters).map(o=>o.field)])):e.kind==="inputOptions"?(((a=e.population)==null?void 0:a.kind)==="related_population"&&t.push(e.population.baseSource),t.push(...q([e.labelField,e.valueField,e.searchField,...e.disambiguationFields||[]]))):e.kind==="sql"&&t.push(...q(e.fields||[])),t}function me({card:e,datasets:t,errors:r}){if(e.type!=="text"){for(const a of Ee(e.analyticsIntent))if(a&&!t.some(o=>z(o,a))){r.push(f("invalid_card_query_source","Dashboard card query field references must use one of the selected datasets.",e.id));return}}}function be({card:e,errors:t}){if(e.type==="text"||!e.analyticsIntent)return;const r=w.validateSemaphorAnalyticsIntent(e.analyticsIntent);if(!r.ok)for(const a of r.errors)t.push(f(a.code,a.path?`${a.path}: ${a.message}`:a.message,e.id))}function ge({datasets:e,errors:t,requireAtLeastOne:r}){const a=fe({datasets:e,requireAtLeastOne:r});if(!a.ok){if(a.issue==="invalid_dataset_count"){t.push(f("invalid_dataset_count","Dashboard authoring requires at least one selected dataset."));return}t.push(f("invalid_multi_dataset_scope","Multi-dataset dashboard authoring is limited to semantic datasets from one domain."))}}function Ie({input:e,errors:t}){var r;(r=e.filter.sql)!=null&&r.trim()&&t.push(f("generated_filter_sql_out_of_scope",`Generated dashboard filter "${e.label}" must use grounded filter configuration; custom SQL is outside the dashboard-authoring contract.`))}function ye(e){var p,g;const t=[];if(!e||typeof e!="object")return{ok:!1,errors:[f("invalid_plan","Dashboard plan must be a structured object.")],warnings:[]};const r=e,a=[...r.warnings||[]];r.version!==1&&t.push(f("invalid_version","Dashboard plan version must be 1.")),(p=r.title)!=null&&p.trim()||t.push(f("missing_title","Dashboard plan needs a title."));const o=Array.isArray(r.datasets)?r.datasets:[],i=Array.isArray(r.sheets)?r.sheets:[];ge({datasets:o,errors:t,requireAtLeastOne:!0}),i.length!==1&&t.push(f("invalid_sheet_count","MVP dashboard authoring creates exactly one dashboard sheet."));const n=i[0];n&&n.kind!=="dashboard"&&t.push(f("invalid_sheet_kind",'Generated sheet must use kind "dashboard".'));const d=(n==null?void 0:n.cards)||[];d.length>k.DASHBOARD_AUTHORING_MAX_GENERATED_CARDS&&t.push(f("too_many_cards",`Generated dashboards can contain at most ${k.DASHBOARD_AUTHORING_MAX_GENERATED_CARDS} cards.`));const s=E(d.map(l=>l.id));s&&t.push(f("duplicate_card_id",`Duplicate generated card id: ${s}.`));const u=E(d.map(l=>l.frameId));u&&t.push(f("duplicate_frame_id",`Duplicate generated frame id: ${u}.`));for(const l of d)(g=l.title)!=null&&g.trim()||t.push(f("missing_card_title","Card title is required.",l.id)),l.type==="custom"&&t.push(f("custom_visual_out_of_scope","Whole-dashboard authoring supports built-in visual types only.",l.id)),l.type!=="text"&&!l.analyticsIntent&&a.push(f("missing_analytics_intent","Non-text card has no analytics intent and may be skipped by the app layer.",l.id)),he({card:l,datasets:o,errors:t}),be({card:l,errors:t}),me({card:l,datasets:o,errors:t});const m=Array.isArray(r.filterInputs)?r.filterInputs:[],y=m.map(l=>l.id),A=E(y);A&&t.push(f("duplicate_input_id",`Duplicate dashboard input id: ${A}.`));const C=m.map(l=>l.variableName).filter(Boolean)||[],_=E(C);_&&t.push(f("duplicate_input_variable",`Duplicate dashboard input variable name: ${_}.`));for(const l of m)Ie({input:l,errors:t});const c=Array.isArray(r.calculatedFields)?r.calculatedFields:[];for(const l of c)l.scope==="domain"&&l.reuseOnly!==!0&&t.push(f("domain_calculated_field_create_out_of_scope",`Creating domain calculated field "${l.name}" is outside MVP.`));return{ok:t.length===0,errors:t,warnings:a}}function _e(e){var n;const t=[];if(!e||typeof e!="object")return{ok:!1,errors:[f("invalid_change_plan","Dashboard change plan must be a structured object.")],warnings:[]};const r=e,a=[...r.warnings||[]];r.version!==1&&t.push(f("invalid_version","Dashboard change plan version must be 1.")),(n=r.dashboardId)!=null&&n.trim()||t.push(f("missing_dashboard_id","Dashboard change plan needs a dashboard id."));const o=Array.isArray(r.datasets)?r.datasets:[],i=Array.isArray(r.operations)?r.operations:[];ge({datasets:o,errors:t,requireAtLeastOne:!1});for(const d of i){if(d.kind==="unsupported"){a.push(f("unsupported_operation",d.reason||d.requestedAction));continue}d.kind==="addCard"&&d.card.type==="custom"&&t.push(f("custom_visual_out_of_scope","Whole-dashboard authoring supports built-in visual types only.",d.card.id)),d.kind==="addCard"&&(he({card:d.card,datasets:o,errors:t}),be({card:d.card,errors:t}),me({card:d.card,datasets:o,errors:t})),d.kind==="addFilterInput"&&Ie({input:d.input,errors:t}),d.kind==="addCalculatedField"&&d.field.scope==="domain"&&d.field.reuseOnly!==!0&&t.push(f("domain_calculated_field_create_out_of_scope",`Creating domain calculated field "${d.field.name}" is outside MVP.`))}return{ok:t.length===0,errors:t,warnings:a}}const qe={lg:48,md:36,sm:24,xs:12,xxs:6};function ze(e,t){let r=0,a=0,o=0;return e.map(i=>{const n=Math.min(i.w,t);r>0&&r+n>t&&(r=0,a+=o,o=0);const d={i:i.frameId,x:r,y:a,w:n,h:i.h,minW:Math.min(i.minW,t),minH:i.minH,static:!1};return r+=n,o=Math.max(o,i.h),d})}function Ve(e){const t=[...e].sort((s,u)=>s.priority-u.priority),r=t.filter(s=>s.role==="kpi"),a=t.filter(s=>s.role==="chart"),o=t.filter(s=>s.role==="table"),i=t.filter(s=>s.role==="text"),n=i.slice(0,1),d=i.slice(n.length);return{kpis:r,introText:n,charts:a,tables:o,supportingText:d}}function He(e,t,r){return t==="xxs"||t==="xs"?r:t==="sm"?Math.min(12,r):t==="md"?e<=1||e===2?18:12:e<=1||e===2?24:e===3?16:12}function Le(e,t,r,a){return r==="xxs"||r==="xs"||r==="sm"||r==="md"||t===1||t%2===1&&e===0?a:a/2}function je(e){const{item:t,band:r,index:a,bandCount:o,breakpoint:i,columns:n}=e;return r==="kpi"?{...t,band:r,w:He(o,i,n),h:15,minW:Math.min(6,n),minH:12}:r==="table"?{...t,band:r,w:n,h:i==="xxs"||i==="xs"?34:38,minW:Math.min(12,n),minH:18}:r==="introText"?{...t,band:r,w:n,h:i==="xxs"||i==="xs"?12:10,minW:Math.min(12,n),minH:8}:r==="supportingText"?{...t,band:r,w:i==="lg"?n/2:n,h:i==="xxs"||i==="xs"?12:10,minW:Math.min(12,n),minH:8}:{...t,band:r,w:Le(a,o,i,n),h:i==="xxs"||i==="xs"?28:30,minW:Math.min(12,n),minH:16}}function N(e,t,r,a){return e.map((o,i)=>je({item:o,band:t,index:i,bandCount:e.length,breakpoint:r,columns:a}))}function V(e){const t=Ve(e);return Object.fromEntries(k.DASHBOARD_AUTHORING_BREAKPOINTS.map(r=>{const a=qe[r],o=[...N(t.introText,"introText",r,a),...N(t.kpis,"kpi",r,a),...N(t.charts,"chart",r,a),...N(t.tables,"table",r,a),...N(t.supportingText,"supportingText",r,a)];return[r,ze(o,a)]}))}function Ge(e){const t=w.normalizeAnalyticsCatalogDataType(e);return t==="datetime"?"date":t==="unknown"?"string":t}function Ke(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function Ue(e){return Ke(e)&&typeof e.filterId=="string"&&typeof e.operation=="string"&&Array.isArray(e.values)}function We(e){return e.filter(t=>typeof t=="string"||typeof t=="number")}function Xe(e){return e.filter(t=>t instanceof Date||typeof t=="string")}function Q(e,t){if(t===void 0)return;const r=Ge(e.dataType),a=e.operation||"in";if(Ue(t))return h.materializeFilterValueNativeDataType({definition:e,sourceValue:t,value:{...t,filterId:e.id,name:t.name||e.column,valueType:r,dataType:e.dataType,fieldMeta:e.fieldMeta,semanticContext:e.semanticContext}});if(a==="is null"||a==="is not null")return h.materializeFilterValueNativeDataType({definition:e,value:{filterId:e.id,name:e.column,operation:a,valueType:r,values:[],dataType:e.dataType,fieldMeta:e.fieldMeta,semanticContext:e.semanticContext}});const o=Array.isArray(t)?t:[t],i=r==="date"?Xe(o):We(o);if(i.length!==0&&!((a==="between"||a==="not between")&&i.length<2))return h.materializeFilterValueNativeDataType({definition:e,value:{filterId:e.id,name:e.column,operation:a,valueType:r,values:i,dataType:e.dataType,fieldMeta:e.fieldMeta,semanticContext:e.semanticContext}})}function Se(e,t,r){return r?{code:e,message:t,cardId:r}:{code:e,message:t}}function Ye(e,t,r){const a=(t||[]).filter(o=>o.scope==="card"&&o.targetCardId===r).map(o=>o.field).filter(Boolean);return a.length===0?e:{...e,calculatedFields:[...e.calculatedFields||[],...a]}}function W(e,t){return Array.from(new Set((e||[]).map(r=>t.get(r)).filter(r=>!!r)))}function Qe(e,t){if((e==null?void 0:e.kind)!=="cards")return e;const r=W(e.cardIds,t);return r.length>0?{...e,cardIds:r}:null}function Je(e,t){return!e.applyToCardIds&&!e.excludeCardIds?e:{...e,...e.applyToCardIds?{applyToCardIds:W(e.applyToCardIds,t)}:{},...e.excludeCardIds?{excludeCardIds:W(e.excludeCardIds,t)}:{}}}function Ze(e,t){const r={},a=[];return{inputs:(e.filterInputs||[]).flatMap((i,n)=>{const d=Qe(i.scope,t);if(d===null)return a.push(Se("filter_input_scope_empty",`Filter input "${i.label}" was skipped because all scoped cards were skipped during query validation.`)),[];const s=Q(i.filter,i.defaultValue);return s&&(r.shared??(r.shared={}),r.shared[i.id]={status:"set",value:{kind:"filter",filterValue:s}}),[{id:i.id,kind:"filter",label:i.label,variableName:i.variableName,scope:d||{kind:"allSheets",sheetKinds:["dashboard"]},runtimeScope:"shared",presentation:{placement:"toolbar",order:n},exports:["label","value","start","end","range"],filter:Je(i.filter,t)}]}),warnings:a,defaultInputValues:r.shared&&Object.keys(r.shared).length>0?r:void 0}}function et(e){var C,_;const t=ye(e.plan);if(!t.ok)throw new Error(t.errors.map(c=>c.message).join(`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("../chunks/contracts-CtB2VONT.cjs"),D=require("../chunks/temporal-bucket-authoring-DueSgLJU.cjs"),w=require("../chunks/validators-DqIM0B3C.cjs");require("../chunks/analyze-result-contract-BX_nQmPN.cjs");require("../value-format-preferences/index.cjs");const h=require("../chunks/dashboard-filter-value-compatibility-ByT__CYM.cjs"),Te=require("../chunks/operators-DrTQsJXv.cjs"),X=require("../chunks/canonical-result-keys-Cb96edol.cjs");function S(e){return e&&typeof e=="object"?e:null}function T(e){return typeof e=="string"?e:null}function de(e){var t,r,a;return!!(e&&typeof e=="object")&&(((t=S(e))==null?void 0:t.kind)==="semantic"||((r=S(e))==null?void 0:r.kind)==="physical"||((a=S(e))==null?void 0:a.kind)==="sql")}function M(e){return de(e)?e.kind==="semantic"?!!(e.domainId&&e.datasetName):e.kind==="physical"?!!(e.connectionId&&e.tableName):!1:!1}function Fe(e){return w.semaphorSourceIdentityKey(e)}function Y(e,t){return w.semaphorSourcesReferToSameDataset(e,t)}function ce(e,t){return w.preferSemaphorSourceMetadata(e,t)}function B(e){const t=[];for(const r of e){const a=t.findIndex(o=>Y(o,r));a===-1?t.push(r):t[a]=ce(t[a],r)}return t}function ke(e){return B(e)[0]}function K(e,t){return e.kind!=="semantic"||e.connectionId||(t==null?void 0:t.kind)!=="semantic"||!w.semaphorSourcesReferToSameDataset(e,t)||!t.connectionId?e:{...e,connectionId:t.connectionId}}function U(e){return M(e)?e:void 0}function oe(e,t){if(!(e.kind!=="semantic"||e.connectionId))return t.find(r=>(r==null?void 0:r.kind)==="semantic"&&w.semaphorSourcesReferToSameDataset(e,r)&&!!r.connectionId)}function v(e,t){const r=U(e==null?void 0:e.source);return r?K(r,t):void 0}function le({explicitSource:e,field:t,defaultSource:r,fallbackSources:a}){const o=[r,...a||[]],i=U(e),n=i?K(i,oe(i,o)):void 0;if(n)return n;if(e!==void 0)return;const d=v(t,r),s=d?K(d,oe(d,o)):void 0;if(s)return s;if((t==null?void 0:t.source)===void 0)return U(r)}function xe(e,t){if(!(e!=null&&e.name)||!(t!=null&&t.name)||e.name!==t.name)return!1;const r=v(e),a=v(t);return!r||!a?!0:Y(r,a)}function x(e){var t;return T((t=S(e))==null?void 0:t.kind)}function ue(e){var t,r;return x(e)!=="semantic"?null:((r=T((t=S(e))==null?void 0:t.domainId))==null?void 0:r.trim())||null}function Re(e){var t;return x(e)!=="semantic"?null:T((t=S(e))==null?void 0:t.datasetName)}function Me(e){var t;return x(e)!=="semantic"?null:T((t=S(e))==null?void 0:t.datasetId)}function Ne(e){var t;return x(e)!=="physical"?null:T((t=S(e))==null?void 0:t.connectionId)}function Oe(e){var t;return x(e)!=="physical"?null:T((t=S(e))==null?void 0:t.tableName)}function Be(e){var t;return x(e)!=="physical"?"":T((t=S(e))==null?void 0:t.databaseName)||""}function $e(e){var t;return x(e)!=="physical"?"":T((t=S(e))==null?void 0:t.schemaName)||""}function pe(e){if(e.analyticsIntent&&typeof e.analyticsIntent=="object"&&"source"in e.analyticsIntent)return e.analyticsIntent.source}function fe({datasets:e,requireAtLeastOne:t}){if(t&&e.length<1)return{ok:!1,issue:"invalid_dataset_count"};if(e.length<=1)return{ok:!0};const r=e.map(ue),a=new Set(r.filter(Boolean));return r.some(o=>!o)||a.size!==1?{ok:!1,issue:"invalid_multi_dataset_scope"}:{ok:!0}}function z(e,t){if(!t)return!1;if(t.kind==="semantic"){const r=Me(e);return ue(e)===t.domainId?r&&t.datasetId?r===t.datasetId:Re(e)===t.datasetName:!1}return t.kind==="physical"?Ne(e)===t.connectionId&&Oe(e)===t.tableName&&Be(e)===(t.databaseName||"")&&$e(e)===(t.schemaName||""):!1}function Pe(e,t){return e.find(r=>z(r,t))}function f(e,t,r){return r?{code:e,message:t,cardId:r}:{code:e,message:t}}function E(e){const t=new Set;for(const r of e){if(t.has(r))return r;t.add(r)}return null}function he({card:e,datasets:t,errors:r}){if(e.type==="text")return;const a=pe(e);if(!a){if(t.length<=1)return;r.push(f("missing_card_analytics_source","Multi-dataset dashboard cards must include analytics intent with a source so the materializer can choose the correct dataset.",e.id));return}t.some(o=>z(o,a))||r.push(f("invalid_card_analytics_source","Dashboard cards with an explicit analytics source must use one of the selected datasets.",e.id))}function q(e){return e.map(t=>t==null?void 0:t.source).filter(t=>!!t)}function L(e){return Array.isArray(e)?e.filter(t=>!!(t&&typeof t=="object")):[]}function se(e){return Array.isArray(e)?e.filter(t=>!!(t&&typeof t=="object")):[]}function Ee(e){var r,a;if(!e)return[];const t=[e.source];return e.kind==="metric"?t.push(...q([...L(e.measures),e.primaryMeasure,e.dateField,...L(e.dimensions),...se(e.filters).map(o=>o.field)])):e.kind==="records"?t.push(...q([...L(e.fields),e.dateField,(r=e.orderBy)==null?void 0:r.field,...se(e.filters).map(o=>o.field)])):e.kind==="inputOptions"?(((a=e.population)==null?void 0:a.kind)==="related_population"&&t.push(e.population.baseSource),t.push(...q([e.labelField,e.valueField,e.searchField,...e.disambiguationFields||[]]))):e.kind==="sql"&&t.push(...q(e.fields||[])),t}function me({card:e,datasets:t,errors:r}){if(e.type!=="text"){for(const a of Ee(e.analyticsIntent))if(a&&!t.some(o=>z(o,a))){r.push(f("invalid_card_query_source","Dashboard card query field references must use one of the selected datasets.",e.id));return}}}function be({card:e,errors:t}){if(e.type==="text"||!e.analyticsIntent)return;const r=w.validateSemaphorAnalyticsIntent(e.analyticsIntent);if(!r.ok)for(const a of r.errors)t.push(f(a.code,a.path?`${a.path}: ${a.message}`:a.message,e.id))}function ge({datasets:e,errors:t,requireAtLeastOne:r}){const a=fe({datasets:e,requireAtLeastOne:r});if(!a.ok){if(a.issue==="invalid_dataset_count"){t.push(f("invalid_dataset_count","Dashboard authoring requires at least one selected dataset."));return}t.push(f("invalid_multi_dataset_scope","Multi-dataset dashboard authoring is limited to semantic datasets from one domain."))}}function Ie({input:e,errors:t}){var r;(r=e.filter.sql)!=null&&r.trim()&&t.push(f("generated_filter_sql_out_of_scope",`Generated dashboard filter "${e.label}" must use grounded filter configuration; custom SQL is outside the dashboard-authoring contract.`))}function ye(e){var p,g;const t=[];if(!e||typeof e!="object")return{ok:!1,errors:[f("invalid_plan","Dashboard plan must be a structured object.")],warnings:[]};const r=e,a=[...r.warnings||[]];r.version!==1&&t.push(f("invalid_version","Dashboard plan version must be 1.")),(p=r.title)!=null&&p.trim()||t.push(f("missing_title","Dashboard plan needs a title."));const o=Array.isArray(r.datasets)?r.datasets:[],i=Array.isArray(r.sheets)?r.sheets:[];ge({datasets:o,errors:t,requireAtLeastOne:!0}),i.length!==1&&t.push(f("invalid_sheet_count","MVP dashboard authoring creates exactly one dashboard sheet."));const n=i[0];n&&n.kind!=="dashboard"&&t.push(f("invalid_sheet_kind",'Generated sheet must use kind "dashboard".'));const d=(n==null?void 0:n.cards)||[];d.length>k.DASHBOARD_AUTHORING_MAX_GENERATED_CARDS&&t.push(f("too_many_cards",`Generated dashboards can contain at most ${k.DASHBOARD_AUTHORING_MAX_GENERATED_CARDS} cards.`));const s=E(d.map(l=>l.id));s&&t.push(f("duplicate_card_id",`Duplicate generated card id: ${s}.`));const u=E(d.map(l=>l.frameId));u&&t.push(f("duplicate_frame_id",`Duplicate generated frame id: ${u}.`));for(const l of d)(g=l.title)!=null&&g.trim()||t.push(f("missing_card_title","Card title is required.",l.id)),l.type==="custom"&&t.push(f("custom_visual_out_of_scope","Whole-dashboard authoring supports built-in visual types only.",l.id)),l.type!=="text"&&!l.analyticsIntent&&a.push(f("missing_analytics_intent","Non-text card has no analytics intent and may be skipped by the app layer.",l.id)),he({card:l,datasets:o,errors:t}),be({card:l,errors:t}),me({card:l,datasets:o,errors:t});const m=Array.isArray(r.filterInputs)?r.filterInputs:[],y=m.map(l=>l.id),A=E(y);A&&t.push(f("duplicate_input_id",`Duplicate dashboard input id: ${A}.`));const C=m.map(l=>l.variableName).filter(Boolean)||[],_=E(C);_&&t.push(f("duplicate_input_variable",`Duplicate dashboard input variable name: ${_}.`));for(const l of m)Ie({input:l,errors:t});const c=Array.isArray(r.calculatedFields)?r.calculatedFields:[];for(const l of c)l.scope==="domain"&&l.reuseOnly!==!0&&t.push(f("domain_calculated_field_create_out_of_scope",`Creating domain calculated field "${l.name}" is outside MVP.`));return{ok:t.length===0,errors:t,warnings:a}}function _e(e){var n;const t=[];if(!e||typeof e!="object")return{ok:!1,errors:[f("invalid_change_plan","Dashboard change plan must be a structured object.")],warnings:[]};const r=e,a=[...r.warnings||[]];r.version!==1&&t.push(f("invalid_version","Dashboard change plan version must be 1.")),(n=r.dashboardId)!=null&&n.trim()||t.push(f("missing_dashboard_id","Dashboard change plan needs a dashboard id."));const o=Array.isArray(r.datasets)?r.datasets:[],i=Array.isArray(r.operations)?r.operations:[];ge({datasets:o,errors:t,requireAtLeastOne:!1});for(const d of i){if(d.kind==="unsupported"){a.push(f("unsupported_operation",d.reason||d.requestedAction));continue}d.kind==="addCard"&&d.card.type==="custom"&&t.push(f("custom_visual_out_of_scope","Whole-dashboard authoring supports built-in visual types only.",d.card.id)),d.kind==="addCard"&&(he({card:d.card,datasets:o,errors:t}),be({card:d.card,errors:t}),me({card:d.card,datasets:o,errors:t})),d.kind==="addFilterInput"&&Ie({input:d.input,errors:t}),d.kind==="addCalculatedField"&&d.field.scope==="domain"&&d.field.reuseOnly!==!0&&t.push(f("domain_calculated_field_create_out_of_scope",`Creating domain calculated field "${d.field.name}" is outside MVP.`))}return{ok:t.length===0,errors:t,warnings:a}}const qe={lg:48,md:36,sm:24,xs:12,xxs:6};function ze(e,t){let r=0,a=0,o=0;return e.map(i=>{const n=Math.min(i.w,t);r>0&&r+n>t&&(r=0,a+=o,o=0);const d={i:i.frameId,x:r,y:a,w:n,h:i.h,minW:Math.min(i.minW,t),minH:i.minH,static:!1};return r+=n,o=Math.max(o,i.h),d})}function Ve(e){const t=[...e].sort((s,u)=>s.priority-u.priority),r=t.filter(s=>s.role==="kpi"),a=t.filter(s=>s.role==="chart"),o=t.filter(s=>s.role==="table"),i=t.filter(s=>s.role==="text"),n=i.slice(0,1),d=i.slice(n.length);return{kpis:r,introText:n,charts:a,tables:o,supportingText:d}}function He(e,t,r){return t==="xxs"||t==="xs"?r:t==="sm"?Math.min(12,r):t==="md"?e<=1||e===2?18:12:e<=1||e===2?24:e===3?16:12}function Le(e,t,r,a){return r==="xxs"||r==="xs"||r==="sm"||r==="md"||t===1||t%2===1&&e===0?a:a/2}function je(e){const{item:t,band:r,index:a,bandCount:o,breakpoint:i,columns:n}=e;return r==="kpi"?{...t,band:r,w:He(o,i,n),h:15,minW:Math.min(6,n),minH:12}:r==="table"?{...t,band:r,w:n,h:i==="xxs"||i==="xs"?34:38,minW:Math.min(12,n),minH:18}:r==="introText"?{...t,band:r,w:n,h:i==="xxs"||i==="xs"?12:10,minW:Math.min(12,n),minH:8}:r==="supportingText"?{...t,band:r,w:i==="lg"?n/2:n,h:i==="xxs"||i==="xs"?12:10,minW:Math.min(12,n),minH:8}:{...t,band:r,w:Le(a,o,i,n),h:i==="xxs"||i==="xs"?28:30,minW:Math.min(12,n),minH:16}}function N(e,t,r,a){return e.map((o,i)=>je({item:o,band:t,index:i,bandCount:e.length,breakpoint:r,columns:a}))}function V(e){const t=Ve(e);return Object.fromEntries(k.DASHBOARD_AUTHORING_BREAKPOINTS.map(r=>{const a=qe[r],o=[...N(t.introText,"introText",r,a),...N(t.kpis,"kpi",r,a),...N(t.charts,"chart",r,a),...N(t.tables,"table",r,a),...N(t.supportingText,"supportingText",r,a)];return[r,ze(o,a)]}))}function Ge(e){const t=w.normalizeAnalyticsCatalogDataType(e);return t==="datetime"?"date":t==="unknown"?"string":t}function Ke(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function Ue(e){return Ke(e)&&typeof e.filterId=="string"&&typeof e.operation=="string"&&Array.isArray(e.values)}function We(e){return e.filter(t=>typeof t=="string"||typeof t=="number")}function Xe(e){return e.filter(t=>t instanceof Date||typeof t=="string")}function Q(e,t){if(t===void 0)return;const r=Ge(e.dataType),a=e.operation||"in";if(Ue(t))return h.materializeFilterValueNativeDataType({definition:e,sourceValue:t,value:{...t,filterId:e.id,name:t.name||e.column,valueType:r,dataType:e.dataType,fieldMeta:e.fieldMeta,semanticContext:e.semanticContext}});if(a==="is null"||a==="is not null")return h.materializeFilterValueNativeDataType({definition:e,value:{filterId:e.id,name:e.column,operation:a,valueType:r,values:[],dataType:e.dataType,fieldMeta:e.fieldMeta,semanticContext:e.semanticContext}});const o=Array.isArray(t)?t:[t],i=r==="date"?Xe(o):We(o);if(i.length!==0&&!((a==="between"||a==="not between")&&i.length<2))return h.materializeFilterValueNativeDataType({definition:e,value:{filterId:e.id,name:e.column,operation:a,valueType:r,values:i,dataType:e.dataType,fieldMeta:e.fieldMeta,semanticContext:e.semanticContext}})}function Se(e,t,r){return r?{code:e,message:t,cardId:r}:{code:e,message:t}}function Ye(e,t,r){const a=(t||[]).filter(o=>o.scope==="card"&&o.targetCardId===r).map(o=>o.field).filter(Boolean);return a.length===0?e:{...e,calculatedFields:[...e.calculatedFields||[],...a]}}function W(e,t){return Array.from(new Set((e||[]).map(r=>t.get(r)).filter(r=>!!r)))}function Qe(e,t){if((e==null?void 0:e.kind)!=="cards")return e;const r=W(e.cardIds,t);return r.length>0?{...e,cardIds:r}:null}function Je(e,t){return!e.applyToCardIds&&!e.excludeCardIds?e:{...e,...e.applyToCardIds?{applyToCardIds:W(e.applyToCardIds,t)}:{},...e.excludeCardIds?{excludeCardIds:W(e.excludeCardIds,t)}:{}}}function Ze(e,t){const r={},a=[];return{inputs:(e.filterInputs||[]).flatMap((i,n)=>{const d=Qe(i.scope,t);if(d===null)return a.push(Se("filter_input_scope_empty",`Filter input "${i.label}" was skipped because all scoped cards were skipped during query validation.`)),[];const s=Q(i.filter,i.defaultValue);return s&&(r.shared??(r.shared={}),r.shared[i.id]={status:"set",value:{kind:"filter",filterValue:s}}),[{id:i.id,kind:"filter",label:i.label,variableName:i.variableName,scope:d||{kind:"allSheets",sheetKinds:["dashboard"]},runtimeScope:"shared",presentation:{placement:"toolbar",order:n},exports:["label","value","start","end","range"],filter:Je(i.filter,t)}]}),warnings:a,defaultInputValues:r.shared&&Object.keys(r.shared).length>0?r:void 0}}function et(e){var C,_;const t=ye(e.plan);if(!t.ok)throw new Error(t.errors.map(c=>c.message).join(`
|
|
2
2
|
`)||"Dashboard plan is invalid.");const r=e.plan.sheets[0],a=[...t.warnings],o=[],i=new Map(e.cardArtifacts.map(c=>[c.planCardId,c])),n=new Map(e.cardArtifacts.map(c=>[c.planCardId,c.card.id])),d=[];for(const c of r.cards){const p=i.get(c.id);if(!p){const l=Se("missing_card_artifact",`Card "${c.title}" was skipped because no generated artifact was supplied.`,c.id);o.push(l);continue}a.push(...p.warnings||[]);const g=Ye(p.card,e.plan.calculatedFields,c.id);d.push({id:c.frameId,cards:[g],activeCardId:g.id})}if(d.length===0)throw new Error("Dashboard plan did not produce any persistable cards.");const{inputs:s,defaultInputValues:u,warnings:m}=Ze(e.plan,n);a.push(...m);const y=V(r.cards.filter(c=>d.some(p=>p.id===c.frameId)).map(c=>({frameId:c.frameId,priority:c.priority,role:c.role})));return{dashboard:{id:e.dashboardId,title:e.plan.title,description:e.plan.description||"",sheets:[{id:r.id,kind:"dashboard",title:r.title,description:r.description,frames:d,layouts:y,calculatedFields:(C=e.plan.calculatedFields)==null?void 0:C.filter(c=>c.scope==="sheet"&&c.field).map(c=>c.field)}],calculatedFields:(_=e.plan.calculatedFields)==null?void 0:_.filter(c=>c.scope==="dashboard"&&c.field).map(c=>c.field),inputs:s,...u?{defaultInputValues:u}:{}},warnings:a,skippedOperations:o}}function R(e,t,r){return r?{code:e,message:t,cardId:r}:{code:e,message:t}}function tt(e){return JSON.parse(JSON.stringify(e))}function rt(e){var t;return(t=e.sheets)==null?void 0:t.find(r=>(r.kind||"dashboard")==="dashboard")}function j(e,t){var r;for(const a of e.sheets||[])for(const o of a.frames||[]){const i=(r=o.cards)==null?void 0:r.find(n=>n.id===t);if(i)return{sheet:a,frame:o,card:i}}return null}function De(e){var r,a;const t=(a=(r=e.cards)==null?void 0:r[0])==null?void 0:a.type;return t==="kpi"?"kpi":t==="table"||t==="detailTable"||t==="pivotTable"?"table":t==="text"?"text":"chart"}function at(e){var t;return new Map((((t=e.layouts)==null?void 0:t.lg)||[]).map((r,a)=>[r.i,a]))}function Ae(e,t=new Map){const r=at(e),a=Math.max(r.size,t.size),o=(e.frames||[]).map((i,n)=>({frameId:i.id,role:De(i),priority:t.get(i.id)??r.get(i.id)??a+n}));e.layouts=V(o)}function nt(e){return Object.values(e.layouts||{}).some(t=>t.length>0)}function it(e,t){if(!nt(e)){Ae(e);return}const r=V([{frameId:t.id,role:De(t),priority:0}]);e.layouts??(e.layouts={});for(const[a,o]of Object.entries(r)){const i=e.layouts[a]||[];if(i.some(s=>s.i===t.id))continue;const n=o[0];if(!n)continue;const d=i.reduce((s,u)=>Math.max(s,u.y+u.h),0);e.layouts[a]=[...i,{...n,y:d}]}}function ot(e,t){var a;const r=Q(t.filter,t.defaultValue);r&&(e.defaultInputValues??(e.defaultInputValues={}),(a=e.defaultInputValues).shared??(a.shared={}),e.defaultInputValues.shared[t.id]={status:"set",value:{kind:"filter",filterValue:r}})}function st(e){var d;const t=_e(e.changePlan);if(!t.ok)throw new Error(t.errors.map(s=>s.message).join(`
|
|
3
3
|
`)||"Dashboard change plan is invalid.");const r=tt(e.dashboard),a=[...t.warnings],o=[],i=new Map(e.cardArtifacts.map(s=>[s.planCardId,s])),n=rt(r);if(!n)throw new Error("Dashboard has no editable dashboard sheet.");n.frames??(n.frames=[]);for(const s of e.changePlan.operations)switch(s.kind){case"addCard":{if((n.frames||[]).reduce((A,C)=>{var _;return A+(((_=C.cards)==null?void 0:_.length)||0)},0)>=k.DASHBOARD_AUTHORING_MAX_GENERATED_CARDS){o.push(R("generated_card_limit_reached",`AI refinement is capped at ${k.DASHBOARD_AUTHORING_MAX_GENERATED_CARDS} cards.`,s.card.id));break}const m=i.get(s.card.id);if(!m){o.push(R("missing_card_artifact",`Card "${s.card.title}" was skipped because no generated artifact was supplied.`,s.card.id));break}const y={id:s.card.frameId,cards:[m.card],activeCardId:m.card.id};n.frames.push(y),it(n,y);break}case"addFilterInput":{r.inputs??(r.inputs=[]);const u={id:s.input.id,kind:"filter",label:s.input.label,variableName:s.input.variableName,scope:s.input.scope||{kind:"allSheets",sheetKinds:["dashboard"]},runtimeScope:"shared",presentation:{placement:"toolbar",order:r.inputs.length},exports:["label","value","start","end","range"],filter:s.input.filter};r.inputs.push(u),ot(r,s.input);break}case"addCalculatedField":{if(s.field.scope==="dashboard"&&s.field.field)r.calculatedFields??(r.calculatedFields=[]),r.calculatedFields.push(s.field.field);else if(s.field.scope==="sheet"&&s.field.field)n.calculatedFields??(n.calculatedFields=[]),n.calculatedFields.push(s.field.field);else if(s.field.scope==="card"&&s.field.field){const u=s.field.targetCardId?j(r,s.field.targetCardId):null;u?((d=u.card).calculatedFields??(d.calculatedFields=[]),u.card.calculatedFields.push(s.field.field)):o.push(R("missing_calculated_field_target",`Calculated field "${s.field.name}" needs a valid target card.`))}break}case"renameCard":{const u=j(r,s.cardId);if(!u){o.push(R("card_not_found",`Card "${s.cardId}" could not be renamed because it was not found.`,s.cardId));break}u.card.title=s.title,s.description!==void 0&&(u.card.description=s.description);break}case"reorderCards":{const u=new Map;for(let m=0;m<s.cardIds.length;m+=1){const y=s.cardIds[m],A=j(r,y);A&&u.set(A.frame.id,m)}Ae(n,u);break}case"reuseCalculatedField":a.push(R("reused_calculated_field",`Calculated field "${s.fieldId}" is reused by reference.`));break;case"unsupported":o.push(R("unsupported_operation",s.reason||s.requestedAction));break}return{dashboard:r,warnings:a,skippedOperations:o}}function I(e,t,r){return r?{code:e,message:t,cardId:r}:{code:e,message:t}}function O(e,t){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||t}function Ce(e,t){if(!t.has(e))return t.add(e),e;let r=2,a=`${e}-${r}`;for(;t.has(a);)r+=1,a=`${e}-${r}`;return t.add(a),a}function $(e){return!!(e&&typeof e=="object")}function ve(e){return Array.isArray(e.inputs)?e.inputs.filter(t=>$(t)&&typeof t.id=="string"):[]}function J(e){return Array.isArray(e.sections)?e.sections.filter(t=>$(t)):[]}function Z(e){return Array.isArray(e.views)?e.views.filter(t=>$(t)):[]}function F(e){if(!Array.isArray(e))return[];const t=[];for(const r of e){const a=v(r);a&&t.push(a)}return t}function dt(e){var a,o,i;if(!e)return[];const t=[];if(M(e.source)&&t.push(e.source),e.kind==="metric"){t.push(...F(e.measures));const n=v(e.dateField);n&&t.push(n),t.push(...F(e.dimensions)),t.push(...F((a=e.filters)==null?void 0:a.map(d=>d.field)))}else if(e.kind==="records"){const n=v(e.dateField);n&&t.push(n),t.push(...F(e.fields)),t.push(...F((o=e.filters)==null?void 0:o.map(d=>d.field)))}else e.kind==="inputOptions"?(((i=e.population)==null?void 0:i.kind)==="related_population"&&M(e.population.baseSource)&&t.push(e.population.baseSource),t.push(...F([e.labelField,e.valueField,e.searchField,...e.disambiguationFields||[]].filter(n=>!!n)))):e.kind==="sql"&&t.push(...F(e.fields));const r="inputs"in e&&Array.isArray(e.inputs)?e.inputs:[];for(const n of r){const d=v(n.field);d&&t.push(d)}return t}function ct(e){const t=[];for(const r of ve(e)){const a=v(r.field);a&&t.push(a)}for(const r of J(e))for(const a of Z(r))t.push(...dt(a.analytics));return t}function lt(e){var r;const t=[];for(const a of J(e))for(const o of Z(a))M((r=o.analytics)==null?void 0:r.source)&&t.push(o.analytics.source);return t}function ut(e,t){const r=B(e).filter(M);if(r.length===0)return t.push(I("missing_materializable_dataset","No semantic or physical source could be converted into the current dashboard authoring dataset reference.")),[];const a=r.every(i=>i.kind==="semantic"),o=Array.from(new Set(r.filter(i=>i.kind==="semantic").map(i=>i.domainId)));return r.length>1&&(!a||o.length!==1)?(t.push(I("multiple_datasets_out_of_scope","The dashboard authoring compiler supports multiple datasets only within one semantic domain; using the first source and deferring the rest.")),[r[0]]):r}function pt(e,t){const r=J(e),a=ve(e),o=B(ct(e)),i=B(lt(e));return{sections:r,inputs:a,sources:o,primarySources:i,defaultSource:i.length===1?i[0]:void 0,datasets:ut(o,t)}}function ft(e){return e&&w.validateSemaphorAnalyticsIntent(e).ok?e:void 0}function ht(e){var t;switch((t=e.presentation)==null?void 0:t.kind){case"kpi":return"kpi";case"lineChart":return"line";case"barChart":return"bar";case"areaChart":return"area";case"table":return"table";case"text":return"text";default:return null}}function mt(e){var t,r,a;return((t=e.presentation)==null?void 0:t.kind)==="kpi"?"kpi":((r=e.presentation)==null?void 0:r.kind)==="table"?"table":((a=e.presentation)==null?void 0:a.kind)==="text"?"text":"chart"}function bt(e){const t=Te.normalizeSemaphorInputOperator(e);switch(t){case"not_in":return"not in";case"not_between":return"not between";case"contains":return"like";case"not_contains":return"not like";default:return t||"in"}}function gt(e){return $(e.field)?e.field.dataType==="datetime"?"date":e.field.dataType||"string":"string"}function It(e){if(!(!e||e.kind!=="physical"))return[e.databaseName,e.schemaName,e.tableName].filter(Boolean).join(".")}function yt(e,t,r,a,o,i){if(e.kind!=="filter")return i.push(I("control_inputs_deferred",`Control input "${e.label}" is represented in the protocol but not yet materialized by the dashboard authoring adapter.`)),null;if(!$(e.field)||typeof e.field.name!="string")return i.push(I("filter_requires_field",`Filter "${e.label||e.id}" needs a field before the dashboard compiler can materialize it.`)),null;const n=le({explicitSource:void 0,field:e.field,defaultSource:t,fallbackSources:r}),d=(n==null?void 0:n.kind)==="semantic"||(n==null?void 0:n.kind)==="physical"?n.connectionId:void 0;if(!d)return i.push(I("filter_requires_connection_id",`Filter "${e.label}" needs a source connectionId before the dashboard compiler can materialize it.`)),null;const m={id:`filter-${Ce(O(e.id,e.field.name),o)}`,variableName:e.id,connectionId:d,title:e.label,column:e.field.name,dataType:gt(e),qualifiedTableName:It(n),sql:"",operation:bt(e.operator),type:e.multi===!1?"single":"multiple",location:"dashboard",displayMode:"toolbar",fieldMeta:(n==null?void 0:n.kind)==="semantic"?{name:e.field.name,qualifiedFieldName:e.field.name,dataType:e.field.dataType,role:e.field.role==="measure"?"metric":"groupby"}:void 0,semanticContext:(n==null?void 0:n.kind)==="semantic"?{semanticDomainId:n.domainId,connectionId:n.connectionId}:(n==null?void 0:n.kind)==="physical"?{connectionId:n.connectionId,connectionType:n.connectionType,selectedEntities:[{type:"table",connectionId:n.connectionId,connectionType:n.connectionType,dialect:n.dialect,database:n.databaseName,schema:n.schemaName,name:n.tableName}]}:void 0};return{id:e.id,label:e.label,variableName:e.id,scope:a,filter:m,defaultValue:Q(m,e.defaultValue)}}function G(e){const t=[],r=[];for(const a of e.viewIds){const o=e.viewIdToCardId.get(a);o?t.push(o):r.push(a)}return r.length>0&&e.warnings.push(I("input_scope_view_not_found",`Filter "${e.inputLabel}" referenced unknown view ids: ${r.join(", ")}.`)),Array.from(new Set(t))}function _t(e){var a,o;if(!e.protocolScope){const i=Array.from(new Set(e.boundCardIds));return i.length>0&&i.length<e.allCardIds.length?{kind:"cards",cardIds:i}:void 0}if(e.protocolScope.level==="dashboard"){if(!((a=e.protocolScope.excludeViewIds)!=null&&a.length))return;const i=new Set(G({inputLabel:e.inputLabel,viewIds:e.protocolScope.excludeViewIds,viewIdToCardId:e.viewIdToCardId,warnings:e.warnings}));return{kind:"cards",cardIds:e.allCardIds.filter(n=>!i.has(n))}}if(e.protocolScope.level==="view"){const i=G({inputLabel:e.inputLabel,viewIds:e.protocolScope.viewIds,viewIdToCardId:e.viewIdToCardId,warnings:e.warnings});return i.length===0?(e.warnings.push(I("input_scope_has_no_materialized_cards",`Filter "${e.inputLabel}" was deferred because its view scope does not match any materialized cards.`)),null):{kind:"cards",cardIds:i}}const t=e.sectionIdToCardIds.get(e.protocolScope.sectionId)||[];if(t.length===0)return e.warnings.push(I("input_scope_section_not_found",`Filter "${e.inputLabel}" was deferred because section "${e.protocolScope.sectionId}" does not match any materialized cards.`)),null;if(!((o=e.protocolScope.excludeViewIds)!=null&&o.length))return{kind:"cards",cardIds:t};const r=new Set(G({inputLabel:e.inputLabel,viewIds:e.protocolScope.excludeViewIds,viewIdToCardId:e.viewIdToCardId,warnings:e.warnings}));return{kind:"cards",cardIds:t.filter(i=>!r.has(i))}}function St(e){var C,_,c;const t=[],r=w.validateSemaphorDashboardIntent(e);for(const p of r.warnings)t.push(I(p.code,p.message));for(const p of r.errors)t.push(I(p.code,p.message));const a=pt(e,t),o=[],i=new Map,n=new Map,d=new Map,s=new Set,u=new Set;let m=0;for(const[p,g]of a.sections.entries()){const l=typeof g.title=="string"?g.title:`Section ${p+1}`,ee=g.id||O(l,`section-${p+1}`);n.set(ee,[]);for(const[te,b]of Z(g).entries()){const re=ht(b),H=O(b.id||`${l}-${b.title||`View ${te+1}`}`,`card-${p+1}-${te+1}`);if(!re){t.push(I("unsupported_presentation",`Dashboard presentation "${((C=b.presentation)==null?void 0:C.kind)||"unknown"}" is not supported by the dashboard authoring adapter.`,`card-${H}`));continue}if(((_=b.analytics)==null?void 0:_.kind)==="sql"){t.push(I("sql_intent_deferred","SQL analytics intent is valid protocol, but the current dashboard authoring adapter only materializes semantic and physical config-card intents.",`card-${H}`));continue}const ae=Ce(H,s),P=`card-${ae}`;b.id&&i.set(b.id,P),(c=n.get(ee))==null||c.push(P);const we=b.analytics&&"inputs"in b.analytics?b.analytics.inputs:void 0;for(const ne of we||[]){const ie=d.get(ne.inputId)||[];ie.push(P),d.set(ne.inputId,ie)}o.push({id:P,frameId:`frame-${ae}`,title:b.title,description:b.description,type:re,role:mt(b),priority:m,section:l,analyticsIntent:ft(b.analytics),text:b.text}),m+=1}}const y=a.inputs.map(p=>{const g=_t({protocolScope:p.scope,inputLabel:p.label,allCardIds:o.map(l=>l.id),boundCardIds:d.get(p.id)||[],viewIdToCardId:i,sectionIdToCardIds:n,warnings:t});return g===null?null:yt(p,a.defaultSource,a.sources,g,u,t)}).filter(p=>!!p);return{plan:{version:1,id:`plan-${O(e.title,"dashboard")}`,title:e.title,description:e.description,datasets:a.datasets,sheets:[{id:`sheet-${O(e.title,"dashboard")}`,title:e.title,description:e.description,kind:"dashboard",cards:o}],filterInputs:y.length?y:void 0,warnings:t.length?t:void 0,unresolvedRequests:r.ok?void 0:r.errors.map(p=>p.message)},warnings:t}}exports.DASHBOARD_AUTHORING_BREAKPOINTS=k.DASHBOARD_AUTHORING_BREAKPOINTS;exports.DASHBOARD_AUTHORING_MAX_GENERATED_CARDS=k.DASHBOARD_AUTHORING_MAX_GENERATED_CARDS;exports.AUTOMATIC_TEMPORAL_BUCKET_FORMAT=D.AUTOMATIC_TEMPORAL_BUCKET_FORMAT;exports.SEMAPHOR_CARTESIAN_CHART_TYPES=D.SEMAPHOR_CARTESIAN_CHART_TYPES;exports.getTemporalBucketAuthoringOptions=D.getTemporalBucketAuthoringOptions;exports.getTemporalBucketAuthoringSelection=D.getTemporalBucketAuthoringSelection;exports.isSemaphorCartesianChartType=D.isSemaphorCartesianChartType;exports.previewTemporalBucketAuthoringFormat=D.previewTemporalBucketAuthoringFormat;exports.reconcileTemporalBucketAuthoringFormat=D.reconcileTemporalBucketAuthoringFormat;exports.resolveTemporalBucketAuthoringFormat=D.resolveTemporalBucketAuthoringFormat;exports.resolveTemporalResultOwner=D.resolveTemporalResultOwner;exports.supportsCanonicalDashboardTemporalResult=D.supportsCanonicalDashboardTemporalResult;exports.transformComparisonDocument=D.transformComparisonDocument;exports.DashboardFilterMappingContractError=h.DashboardFilterMappingContractError;exports.applyCardReferenceRemapping=h.applyCardReferenceRemapping;exports.buildDashboardCardSourceIndex=h.buildDashboardCardSourceIndex;exports.composeCardReferenceRemapping=h.composeCardReferenceRemapping;exports.createDashboardFilterBindingId=h.createDashboardFilterBindingId;exports.dashboardCardFilterSourceInventoryContains=h.dashboardCardFilterSourceInventoryContains;exports.dashboardFilterTargetMatchesLogicalValue=h.dashboardFilterTargetMatchesLogicalValue;exports.dashboardFilterValueTypeForDataType=h.dashboardFilterValueTypeForDataType;exports.findDashboardCardExecutableSource=h.findDashboardCardExecutableSource;exports.findDashboardCardPinnedCatalogSource=h.findDashboardCardPinnedCatalogSource;exports.findDashboardSqlPinnedCatalogSource=h.findDashboardSqlPinnedCatalogSource;exports.getDashboardFilterSubscriptionHint=h.getDashboardFilterSubscriptionHint;exports.hasDashboardFilterSubscription=h.hasDashboardFilterSubscription;exports.isDashboardFilterOperationCompatible=h.isDashboardFilterOperationCompatible;exports.normalizeDashboardInputs=h.normalizeDashboardInputs;exports.requireNormalizedDashboardInputs=h.requireNormalizedDashboardInputs;exports.resolveDashboardFilterAutomaticTarget=h.resolveDashboardFilterAutomaticTarget;exports.resolveDashboardFilterInheritedTarget=h.resolveDashboardFilterInheritedTarget;exports.resolveDashboardSqlFilterTarget=h.resolveDashboardSqlFilterTarget;exports.resolveCanonicalDetailResultRawKey=X.resolveCanonicalDetailResultRawKey;exports.resolveCanonicalResultOutputKey=X.resolveCanonicalResultOutputKey;exports.resolveCanonicalResultRawKey=X.resolveCanonicalResultRawKey;exports.applyDashboardChangePlan=st;exports.compileDashboardFromPlan=et;exports.compileResponsiveDashboardLayouts=V;exports.dashboardAuthoringDatasetMatchesSource=z;exports.dashboardAuthoringFieldsReferToSameTarget=xe;exports.dashboardAuthoringSourceFromField=v;exports.dashboardAuthoringSourceKey=Fe;exports.dashboardAuthoringSourcesReferToSameDataset=Y;exports.dashboardPlanFromSemaphorDashboardIntent=St;exports.findDashboardAuthoringDatasetForSource=Pe;exports.getDashboardAuthoringCardSource=pe;exports.isMaterializableDashboardAuthoringSource=M;exports.isSemaphorSourceRef=de;exports.mergeDashboardAuthoringSources=B;exports.preferDashboardAuthoringSourceMetadata=ce;exports.preferredDashboardAuthoringSource=ke;exports.resolveDashboardAuthoringSource=le;exports.validateDashboardAuthoringDatasetScope=fe;exports.validateDashboardChangePlan=_e;exports.validateDashboardPlan=ye;
|
|
@@ -3,8 +3,8 @@ import { A as Rt, S as Bt, g as Pt, a as zt, i as Ot, p as qt, c as Vt, b as Lt,
|
|
|
3
3
|
import { k as _e, ai as W, aj as we, y as ie, F as ve, B as Ce } from "../chunks/validators-D3AarM2T.js";
|
|
4
4
|
import "../chunks/analyze-result-contract-DsiAzCYn.js";
|
|
5
5
|
import "../value-format-preferences/index.js";
|
|
6
|
-
import { m as O } from "../chunks/dashboard-filter-value-compatibility-
|
|
7
|
-
import { D as Kt, t as Gt, b as Ut, s as Qt, o as Yt, d as Jt, g as Xt, p as Zt, f as en, a as tn, e as nn, j as rn, i as an, q as on, n as sn, l as dn, r as cn, h as ln, k as un } from "../chunks/dashboard-filter-value-compatibility-
|
|
6
|
+
import { m as O } from "../chunks/dashboard-filter-value-compatibility-DQkUs41q.js";
|
|
7
|
+
import { D as Kt, t as Gt, b as Ut, s as Qt, o as Yt, d as Jt, g as Xt, p as Zt, f as en, a as tn, e as nn, j as rn, i as an, q as on, n as sn, l as dn, r as cn, h as ln, k as un } from "../chunks/dashboard-filter-value-compatibility-DQkUs41q.js";
|
|
8
8
|
import { n as Se } from "../chunks/operators-C8TxpM4C.js";
|
|
9
9
|
import { a as pn, b as hn, r as mn } from "../chunks/canonical-result-keys-CEQefvdO.js";
|
|
10
10
|
function _(e) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),p=require("react"),An=require("react-dom/client"),k=require("../chunks/index
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),p=require("react"),An=require("react-dom/client"),k=require("../chunks/index-DhDfPZUu.cjs"),w=require("../chunks/switch-D12C40LN.cjs"),Ze=require("../data-app-builder-browser-runtime/index.cjs"),te=require("../chunks/x-B6ghREd2.cjs"),Cn=require("../chunks/save-3dYRmehL.cjs"),Rn=require("../chunks/mouse-pointer-2-DX4A_XZw.cjs"),tt=require("../chunks/search-BqqhaMx9.cjs");function Tr(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const a in t)if(a!=="default"){const d=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(s,a,d.get?d:{enumerable:!0,get:()=>t[a]})}}return s.default=t,Object.freeze(s)}const Bn=Tr(p),Dn=Tr(An);/**
|
|
2
2
|
* @license lucide-react v0.453.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -2,8 +2,8 @@ import { jsx as r, jsxs as c, Fragment as re } from "react/jsx-runtime";
|
|
|
2
2
|
import * as Zn from "react";
|
|
3
3
|
import { useContext as qn, useState as x, useRef as oe, useMemo as je, useEffect as W, useCallback as Ot } from "react";
|
|
4
4
|
import * as Xn from "react-dom/client";
|
|
5
|
-
import { aL as ea, aM as ta, aN as Ir, aO as jr, aP as zr, aQ as ra, aR as Wr, aS as Hr, aT as Jr, aU as Vr, aV as _r, aW as Ur, aX as Gr, aY as na, aZ as aa, a_ as oa, a$ as Ht, b0 as on, R as Kr, b1 as sa, b2 as Vt, b3 as sn, b4 as ia, b5 as la } from "../chunks/index-
|
|
6
|
-
import { B as H, P as it, a as lt, b as dt, _ as da, $ as ca, a0 as ua, a1 as pa, a2 as ha, L as me, R as ma, d as _t } from "../chunks/switch-
|
|
5
|
+
import { aL as ea, aM as ta, aN as Ir, aO as jr, aP as zr, aQ as ra, aR as Wr, aS as Hr, aT as Jr, aU as Vr, aV as _r, aW as Ur, aX as Gr, aY as na, aZ as aa, a_ as oa, a$ as Ht, b0 as on, R as Kr, b1 as sa, b2 as Vt, b3 as sn, b4 as ia, b5 as la } from "../chunks/index-CUCiMVzS.js";
|
|
6
|
+
import { B as H, P as it, a as lt, b as dt, _ as da, $ as ca, a0 as ua, a1 as pa, a2 as ha, L as me, R as ma, d as _t } from "../chunks/switch-LucIPRtD.js";
|
|
7
7
|
import { loadSemaphorBrowserRuntime as ot } from "../data-app-builder-browser-runtime/index.js";
|
|
8
8
|
import { c as Ve, X as He } from "../chunks/x-CXDkqdur.js";
|
|
9
9
|
import { S as fa } from "../chunks/save-DgMfP0j8.js";
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/index--0Il-Bpd.cjs"),u=require("./chunks/common-types-BCSbPclk.cjs"),P=require("./chunks/report-preferences-dialog-I0Pbn_Yb.cjs"),i=require("react/jsx-runtime"),r=require("./chunks/switch-Cpj3DrCZ.cjs"),h=require("react"),N=require("./chunks/token-types-D9eN35rf.cjs"),l=require("./chunks/dashboard-briefing-launcher-7qAW16mO.cjs"),R=require("./chunks/use-debounced-dirty-check-XHSwAefL.cjs");require("./value-format-preferences/index.cjs");require("./chunks/validators-DqIM0B3C.cjs");const w=require("./chunks/report-runtime-context-BfW4qiMJ.cjs"),T=require("./chunks/pivot-result-identity-BVnhG2rR.cjs");require("./chunks/analyze-result-contract-BX_nQmPN.cjs");require("./chunks/temporal-bucket-authoring-DueSgLJU.cjs");const B=require("./chunks/dashboard-filter-value-compatibility-Bco2gN96.cjs");require("./chunks/card-config-utils-D3Xuu0ub.cjs");require("react-dom");require("./chunks/appearance-context-DhyjbQk1.cjs");require("./chunks/color-CyB5o13F.cjs");require("./chunks/index-ByFbacH7.cjs");const A=require("./chunks/normalize-dashboard-for-dirty-check-BXRUMVb2.cjs"),L=require("./chunks/x-B6ghREd2.cjs");require("./chunks/appearance-runtime-provider-BgNYdUYH.cjs");function M(a){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const o in a)if(o!=="default"){const d=Object.getOwnPropertyDescriptor(a,o);Object.defineProperty(t,o,d.get?d:{enumerable:!0,get:()=>a[o]})}}return t.default=a,Object.freeze(t)}const m=M(h);function j(a){const{displayPreferences:t,cardId:o,...d}=a,n={...d,id:a.dashboardId};return i.jsx(e.ErrorBoundary,{FallbackComponent:e.Fallback,children:i.jsxs(e.SemaphorContextProvider,{dashboardProps:n,children:[i.jsx(e.SemaphorReadyIndicator,{componentType:"visual",componentId:a.cardId}),i.jsx(e.UXProvider,{appearance:a.appearance,children:i.jsx(e.DisplayPreferencesProvider,{displayPreferences:t,children:i.jsx(e.Container,{type:"visual",cardId:o,...n,children:i.jsx(I,{cardId:o})})})})]})})}function I({cardId:a}){const t=r.useDashboardStore(n=>{var c;return(c=n.dashboard)==null?void 0:c.sheets}),{card:o,frame:d}=h.useMemo(()=>{const n=t==null?void 0:t.flatMap(s=>s.frames),c=n==null?void 0:n.flatMap(s=>s==null?void 0:s.cards),D=c==null?void 0:c.find(s=>(s==null?void 0:s.id)===a),E=n==null?void 0:n.find(s=>{var C;return(C=s==null?void 0:s.cards)==null?void 0:C.find(g=>(g==null?void 0:g.id)===a)});return{card:D,frame:E}},[t,a]);return!o||!d?i.jsx(e.FallbackVisual,{error:new Error("Card not found"),resetErrorBoundary:()=>{},customerFacingMessage:`Card not found with ID: ${a}`}):i.jsx("main",{className:"flex h-full grow flex-col",children:i.jsx(e.ErrorBoundary,{FallbackComponent:({error:n,resetErrorBoundary:c})=>i.jsx(e.FallbackVisual,{error:n,resetErrorBoundary:c,customerFacingMessage:"Error creating visual. Please try again."}),children:i.jsx(e.DashboardCard,{card:o,frame:d})})})}function q(a,t,o,d){h.useEffect(()=>{a&&!o&&t&&d(B.cloneDeep(t))},[a,o,t,d])}function U({name:a,items:t,value:o,onChange:d,isLoading:n,isError:c,refetch:D,className:E,icon:s,showNone:C=!1}){const g=m.useRef(null),[y,b]=m.useState(!1),[S,F]=m.useState("100%"),x=C?[...t||[],{id:"none",name:"None"}]:t;m.useLayoutEffect(()=>{g.current&&F(g.current.offsetWidth)},[]);function v(){var f;return n?"Loading...":c?"Error":o?(f=t==null?void 0:t.find(p=>p.id===o))==null?void 0:f.name:`Select ${a}`}function _(f,p){d(p),b(!1)}return i.jsxs(r.Popover,{open:y,onOpenChange:b,children:[i.jsx(r.PopoverTrigger,{asChild:!0,children:i.jsxs(r.Button,{ref:g,variant:"outline",role:"combobox","aria-expanded":y,className:r.cn("flex h-9 w-full justify-between",E),children:[i.jsxs("div",{className:"flex items-center gap-2",children:[s&&i.jsx("div",{className:"mr-2",children:s}),i.jsx("span",{className:"max-w-[150px] overflow-hidden truncate text-ellipsis whitespace-nowrap",children:v()})]}),i.jsx(L.ChevronDown,{className:"size-4 opacity-50"})]})}),i.jsx(r.PopoverContent,{className:"w-full p-0",style:{minWidth:S},children:i.jsxs(e.Command,{children:[i.jsxs("div",{className:"flex h-9 items-center justify-between border-b pr-1",children:[i.jsx(e.CommandInput,{className:"h-9",placeholder:"Search..."}),i.jsx(e.IconButton,{className:"h-7",onClick:D,children:i.jsx(e.RefreshCw,{className:r.cn("size-3.5 opacity-50",n&&"animate-spin")})})]}),i.jsxs(e.CommandList,{children:[i.jsxs(e.CommandEmpty,{children:["No ",a==null?void 0:a.toLowerCase()," found."]}),i.jsx(e.CommandGroup,{children:x==null?void 0:x.map(f=>i.jsx(e.CommandItem,{className:"overflow-x-auto",value:f.name,onSelect:p=>_(p,f.id),children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(r.Check,{className:r.cn("size-4",o===f.id?"opacity-100":"opacity-0")}),i.jsx("div",{title:f.name,children:f.name})]})},f.id))})]})]})})]})}function k(a,t){h.useEffect(()=>(a&&t&&(window.__SEMAPHOR_PRINT_STATE__={...t}),()=>{a&&window.__SEMAPHOR_PRINT_STATE__&&delete window.__SEMAPHOR_PRINT_STATE__}),[a,t])}exports.BriefingAuthor=e.BriefingAuthor;exports.BriefingAuthorDialog=e.BriefingAuthorDialog;exports.BriefingUiCapabilitiesBoundary=e.BriefingUiCapabilitiesBoundary;exports.BriefingUiCapabilitiesProvider=e.BriefingUiCapabilitiesProvider;exports.BriefingsApiError=e.BriefingsApiError;exports.CardSummary=e.CardSummary;exports.Dashboard=e.Dashboard;exports.DashboardCreateDialogBase=e.DashboardCreateDialogBase;exports.DashboardExportDialog=e.DashboardExportDialog;exports.DashboardWC=e.DashboardWC;exports.DisplayFormatPreferencesFields=e.DisplayFormatPreferencesFields;exports.ExportError=e.ExportError;exports.MatrixTableVisual=e.MatrixTableVisual;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.applyBriefingFormPatch=e.applyBriefingFormPatch;exports.briefingFormDraftToCreateRequest=e.briefingFormDraftToCreateRequest;exports.briefingFormDraftToUpdateRequest=e.briefingFormDraftToUpdateRequest;exports.briefingToFormDraft=e.briefingToFormDraft;exports.cancelBriefingPreviewRun=e.cancelBriefingPreviewRun;exports.cancelBriefingRun=e.cancelBriefingRun;exports.cancelExport=e.cancelExport;exports.createBriefing=e.createBriefing;exports.createBriefingFormDraft=e.createBriefingFormDraft;exports.createExport=e.createExport;exports.deleteBriefing=e.deleteBriefing;exports.deleteBriefingRun=e.deleteBriefingRun;exports.downloadDocumentPdf=e.downloadDocumentPdf;exports.downloadPdf=e.downloadPdf;exports.formatFileSize=e.formatFileSize;exports.getBriefing=e.getBriefing;exports.getBriefingArtifact=e.getBriefingArtifact;exports.getBriefingEvidence=e.getBriefingEvidence;exports.getBriefingPreviewRun=e.getBriefingPreviewRun;exports.getBriefingRun=e.getBriefingRun;exports.getDownloadUrl=e.getDownloadUrl;exports.getExportStatus=e.getExportStatus;exports.getExports=e.getExports;exports.isExportComplete=e.isExportComplete;exports.isExportInProgress=e.isExportInProgress;exports.listBriefingRuns=e.listBriefingRuns;exports.listBriefingTenantSummaries=e.listBriefingTenantSummaries;exports.listBriefings=e.listBriefings;exports.pauseBriefing=e.pauseBriefing;exports.polishBriefingText=e.polishBriefingText;exports.previewBriefingPlan=e.previewBriefingPlan;exports.resumeBriefing=e.resumeBriefing;exports.runBriefingNow=e.runBriefingNow;exports.runBriefingPreview=e.runBriefingPreview;exports.updateBriefing=e.updateBriefing;exports.useActiveExports=e.useActiveExports;exports.useAddNewFrame=e.useAddNewFrame;exports.useBriefingUiCapabilities=e.useBriefingUiCapabilities;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.validateBriefingFormDraft=e.validateBriefingFormDraft;exports.CALCULATED_FIELD_ENTITY_MARKER=u.CALCULATED_FIELD_ENTITY_MARKER;exports.CONTROL_CARD_DEFAULT_VALUE=u.CONTROL_CARD_DEFAULT_VALUE;exports.DATE_FORMAT_VALUES=u.DATE_FORMAT_VALUES;exports.EMPTY_SELECTION=u.EMPTY_SELECTION;exports.LEGACY_CALCULATED_FIELD_ENTITY_MARKER=u.LEGACY_CALCULATED_FIELD_ENTITY_MARKER;exports.PivotMarkerEnum=u.PivotMarkerEnum;exports.getFieldRuntimeColumnName=u.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=u.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=u.hasCalculatedFormulaInputs;exports.hasSyntheticCalculatedFieldOwner=u.hasSyntheticCalculatedFieldOwner;exports.isCalculatedDimension=u.isCalculatedDimension;exports.isCalculatedField=u.isCalculatedField;exports.isCalculatedMetric=u.isCalculatedMetric;exports.ReportPreferencesDialog=P.ReportPreferencesDialog;exports.createEmptyKpiConfig=r.createEmptyKpiConfig;exports.createSqlGenConfig=r.createSqlGenConfig;exports.emitDashboardLoad=r.emitDashboardLoad;exports.emitDashboardUnload=r.emitDashboardUnload;exports.fmt=r.fmt;exports.getColumnDataType=r.getColumnDataType;exports.getFilterValueType=r.getFilterValueType;exports.getFormattedTableNameForQuery=r.getFormattedTableNameForQuery;exports.getQualifiedTableName=r.getQualifiedTableName;exports.getSql=r.getSql;exports.invalidateToken=r.invalidateToken;exports.isBooleanDataType=r.isBooleanDataType;exports.isColumnInSqlGen=r.isColumnInSqlGen;exports.isDateDataType=r.isDateDataType;exports.isNumberDataType=r.isNumberDataType;exports.isTextDataType=r.isTextDataType;exports.resolveDataType=r.resolveDataType;exports.resolveDatamodelName=r.resolveDatamodelName;exports.useCurrentActiveCard=r.useCurrentActiveCard;exports.useCurrentCardConfig=r.useCurrentCardConfig;exports.useCurrentSheetActiveCards=r.useCurrentSheetActiveCards;exports.useDashboardActions=r.useDashboardActions;exports.useDashboardStore=r.useDashboardStore;exports.useEditorActions=r.useEditorActions;exports.useEditorStore=r.useEditorStore;exports.DEFAULT_SEMANTIC_DOMAIN_ACCESS=N.DEFAULT_SEMANTIC_DOMAIN_ACCESS;exports.AdvancedModeToggle=l.AdvancedModeToggle;exports.DashboardBriefingLauncher=l.DashboardBriefingLauncher;exports.DashboardControlsSettings=l.DashboardControlsSettings;exports.DashboardFilterControlsButton=l.DashboardFilterControlsButton;exports.DashboardFilterControlsLauncher=l.DashboardFilterControlsLauncher;exports.DocumentControlsSettings=l.DocumentControlsSettings;exports.ExportNotificationItem=l.ExportNotificationItem;exports.ExportNotificationList=l.ExportNotificationList;exports.NotificationBell=l.NotificationBell;exports.UnsavedChangesAlert=l.UnsavedChangesAlert;exports.VisualEditingControls=l.VisualEditingControls;exports.VisualsLibraryDialog=l.VisualsLibraryDialog;exports.WatchDashboardButton=l.WatchDashboardButton;exports.useExportPolling=l.useExportPolling;exports.useExportRecovery=l.useExportRecovery;exports.useDebouncedDirtyCheck=R.useDebouncedDirtyCheck;exports.DEFAULT_CALENDAR_CONTEXT=w.DEFAULT_CALENDAR_CONTEXT;exports.resolveQueryColumnKeyMapEntry=T.resolveQueryColumnKeyMapEntry;exports.resolveUniqueQueryColumnKeyMapEntry=T.resolveUniqueQueryColumnKeyMapEntry;exports.cloneDeep=B.cloneDeep;exports.normalizeDashboardForDirtyCheck=A.normalizeDashboardForDirtyCheck;exports.serializeDashboardForDirtyCheck=A.serializeDashboardForDirtyCheck;exports.Combobox=U;exports.Visual=j;exports.useExposePrintState=k;exports.usePristineSnapshotInitializer=q;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./chunks/index-DhDfPZUu.cjs"),u=require("./chunks/common-types-BCSbPclk.cjs"),P=require("./chunks/report-preferences-dialog--aV7ITSE.cjs"),i=require("react/jsx-runtime"),r=require("./chunks/switch-D12C40LN.cjs"),h=require("react"),N=require("./chunks/token-types-D9eN35rf.cjs"),l=require("./chunks/dashboard-briefing-launcher-DWwSdfV7.cjs"),R=require("./chunks/use-debounced-dirty-check-XHSwAefL.cjs");require("./value-format-preferences/index.cjs");require("./chunks/validators-DqIM0B3C.cjs");const w=require("./chunks/report-runtime-context-BfW4qiMJ.cjs"),T=require("./chunks/pivot-result-identity-BVnhG2rR.cjs");require("./chunks/analyze-result-contract-BX_nQmPN.cjs");require("./chunks/temporal-bucket-authoring-DueSgLJU.cjs");const B=require("./chunks/dashboard-filter-value-compatibility-ByT__CYM.cjs");require("./chunks/card-config-utils-D3Xuu0ub.cjs");require("react-dom");require("./chunks/appearance-context-DhyjbQk1.cjs");require("./chunks/color-CyB5o13F.cjs");require("./chunks/index-ByFbacH7.cjs");const A=require("./chunks/normalize-dashboard-for-dirty-check-BXRUMVb2.cjs"),L=require("./chunks/x-B6ghREd2.cjs");require("./chunks/appearance-runtime-provider-BgNYdUYH.cjs");function M(a){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const o in a)if(o!=="default"){const d=Object.getOwnPropertyDescriptor(a,o);Object.defineProperty(t,o,d.get?d:{enumerable:!0,get:()=>a[o]})}}return t.default=a,Object.freeze(t)}const m=M(h);function j(a){const{displayPreferences:t,cardId:o,...d}=a,n={...d,id:a.dashboardId};return i.jsx(e.ErrorBoundary,{FallbackComponent:e.Fallback,children:i.jsxs(e.SemaphorContextProvider,{dashboardProps:n,children:[i.jsx(e.SemaphorReadyIndicator,{componentType:"visual",componentId:a.cardId}),i.jsx(e.UXProvider,{appearance:a.appearance,children:i.jsx(e.DisplayPreferencesProvider,{displayPreferences:t,children:i.jsx(e.Container,{type:"visual",cardId:o,...n,children:i.jsx(I,{cardId:o})})})})]})})}function I({cardId:a}){const t=r.useDashboardStore(n=>{var c;return(c=n.dashboard)==null?void 0:c.sheets}),{card:o,frame:d}=h.useMemo(()=>{const n=t==null?void 0:t.flatMap(s=>s.frames),c=n==null?void 0:n.flatMap(s=>s==null?void 0:s.cards),D=c==null?void 0:c.find(s=>(s==null?void 0:s.id)===a),E=n==null?void 0:n.find(s=>{var C;return(C=s==null?void 0:s.cards)==null?void 0:C.find(g=>(g==null?void 0:g.id)===a)});return{card:D,frame:E}},[t,a]);return!o||!d?i.jsx(e.FallbackVisual,{error:new Error("Card not found"),resetErrorBoundary:()=>{},customerFacingMessage:`Card not found with ID: ${a}`}):i.jsx("main",{className:"flex h-full grow flex-col",children:i.jsx(e.ErrorBoundary,{FallbackComponent:({error:n,resetErrorBoundary:c})=>i.jsx(e.FallbackVisual,{error:n,resetErrorBoundary:c,customerFacingMessage:"Error creating visual. Please try again."}),children:i.jsx(e.DashboardCard,{card:o,frame:d})})})}function q(a,t,o,d){h.useEffect(()=>{a&&!o&&t&&d(B.cloneDeep(t))},[a,o,t,d])}function U({name:a,items:t,value:o,onChange:d,isLoading:n,isError:c,refetch:D,className:E,icon:s,showNone:C=!1}){const g=m.useRef(null),[y,b]=m.useState(!1),[S,F]=m.useState("100%"),x=C?[...t||[],{id:"none",name:"None"}]:t;m.useLayoutEffect(()=>{g.current&&F(g.current.offsetWidth)},[]);function v(){var f;return n?"Loading...":c?"Error":o?(f=t==null?void 0:t.find(p=>p.id===o))==null?void 0:f.name:`Select ${a}`}function _(f,p){d(p),b(!1)}return i.jsxs(r.Popover,{open:y,onOpenChange:b,children:[i.jsx(r.PopoverTrigger,{asChild:!0,children:i.jsxs(r.Button,{ref:g,variant:"outline",role:"combobox","aria-expanded":y,className:r.cn("flex h-9 w-full justify-between",E),children:[i.jsxs("div",{className:"flex items-center gap-2",children:[s&&i.jsx("div",{className:"mr-2",children:s}),i.jsx("span",{className:"max-w-[150px] overflow-hidden truncate text-ellipsis whitespace-nowrap",children:v()})]}),i.jsx(L.ChevronDown,{className:"size-4 opacity-50"})]})}),i.jsx(r.PopoverContent,{className:"w-full p-0",style:{minWidth:S},children:i.jsxs(e.Command,{children:[i.jsxs("div",{className:"flex h-9 items-center justify-between border-b pr-1",children:[i.jsx(e.CommandInput,{className:"h-9",placeholder:"Search..."}),i.jsx(e.IconButton,{className:"h-7",onClick:D,children:i.jsx(e.RefreshCw,{className:r.cn("size-3.5 opacity-50",n&&"animate-spin")})})]}),i.jsxs(e.CommandList,{children:[i.jsxs(e.CommandEmpty,{children:["No ",a==null?void 0:a.toLowerCase()," found."]}),i.jsx(e.CommandGroup,{children:x==null?void 0:x.map(f=>i.jsx(e.CommandItem,{className:"overflow-x-auto",value:f.name,onSelect:p=>_(p,f.id),children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(r.Check,{className:r.cn("size-4",o===f.id?"opacity-100":"opacity-0")}),i.jsx("div",{title:f.name,children:f.name})]})},f.id))})]})]})})]})}function k(a,t){h.useEffect(()=>(a&&t&&(window.__SEMAPHOR_PRINT_STATE__={...t}),()=>{a&&window.__SEMAPHOR_PRINT_STATE__&&delete window.__SEMAPHOR_PRINT_STATE__}),[a,t])}exports.BriefingAuthor=e.BriefingAuthor;exports.BriefingAuthorDialog=e.BriefingAuthorDialog;exports.BriefingUiCapabilitiesBoundary=e.BriefingUiCapabilitiesBoundary;exports.BriefingUiCapabilitiesProvider=e.BriefingUiCapabilitiesProvider;exports.BriefingsApiError=e.BriefingsApiError;exports.CardSummary=e.CardSummary;exports.Dashboard=e.Dashboard;exports.DashboardCreateDialogBase=e.DashboardCreateDialogBase;exports.DashboardExportDialog=e.DashboardExportDialog;exports.DashboardWC=e.DashboardWC;exports.DisplayFormatPreferencesFields=e.DisplayFormatPreferencesFields;exports.ExportError=e.ExportError;exports.MatrixTableVisual=e.MatrixTableVisual;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.applyBriefingFormPatch=e.applyBriefingFormPatch;exports.briefingFormDraftToCreateRequest=e.briefingFormDraftToCreateRequest;exports.briefingFormDraftToUpdateRequest=e.briefingFormDraftToUpdateRequest;exports.briefingToFormDraft=e.briefingToFormDraft;exports.cancelBriefingPreviewRun=e.cancelBriefingPreviewRun;exports.cancelBriefingRun=e.cancelBriefingRun;exports.cancelExport=e.cancelExport;exports.createBriefing=e.createBriefing;exports.createBriefingFormDraft=e.createBriefingFormDraft;exports.createExport=e.createExport;exports.deleteBriefing=e.deleteBriefing;exports.deleteBriefingRun=e.deleteBriefingRun;exports.downloadDocumentPdf=e.downloadDocumentPdf;exports.downloadPdf=e.downloadPdf;exports.formatFileSize=e.formatFileSize;exports.getBriefing=e.getBriefing;exports.getBriefingArtifact=e.getBriefingArtifact;exports.getBriefingEvidence=e.getBriefingEvidence;exports.getBriefingPreviewRun=e.getBriefingPreviewRun;exports.getBriefingRun=e.getBriefingRun;exports.getDownloadUrl=e.getDownloadUrl;exports.getExportStatus=e.getExportStatus;exports.getExports=e.getExports;exports.isExportComplete=e.isExportComplete;exports.isExportInProgress=e.isExportInProgress;exports.listBriefingRuns=e.listBriefingRuns;exports.listBriefingTenantSummaries=e.listBriefingTenantSummaries;exports.listBriefings=e.listBriefings;exports.pauseBriefing=e.pauseBriefing;exports.polishBriefingText=e.polishBriefingText;exports.previewBriefingPlan=e.previewBriefingPlan;exports.resumeBriefing=e.resumeBriefing;exports.runBriefingNow=e.runBriefingNow;exports.runBriefingPreview=e.runBriefingPreview;exports.updateBriefing=e.updateBriefing;exports.useActiveExports=e.useActiveExports;exports.useAddNewFrame=e.useAddNewFrame;exports.useBriefingUiCapabilities=e.useBriefingUiCapabilities;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.validateBriefingFormDraft=e.validateBriefingFormDraft;exports.CALCULATED_FIELD_ENTITY_MARKER=u.CALCULATED_FIELD_ENTITY_MARKER;exports.CONTROL_CARD_DEFAULT_VALUE=u.CONTROL_CARD_DEFAULT_VALUE;exports.DATE_FORMAT_VALUES=u.DATE_FORMAT_VALUES;exports.EMPTY_SELECTION=u.EMPTY_SELECTION;exports.LEGACY_CALCULATED_FIELD_ENTITY_MARKER=u.LEGACY_CALCULATED_FIELD_ENTITY_MARKER;exports.PivotMarkerEnum=u.PivotMarkerEnum;exports.getFieldRuntimeColumnName=u.getFieldRuntimeColumnName;exports.hasCalculatedFieldMarker=u.hasCalculatedFieldMarker;exports.hasCalculatedFormulaInputs=u.hasCalculatedFormulaInputs;exports.hasSyntheticCalculatedFieldOwner=u.hasSyntheticCalculatedFieldOwner;exports.isCalculatedDimension=u.isCalculatedDimension;exports.isCalculatedField=u.isCalculatedField;exports.isCalculatedMetric=u.isCalculatedMetric;exports.ReportPreferencesDialog=P.ReportPreferencesDialog;exports.createEmptyKpiConfig=r.createEmptyKpiConfig;exports.createSqlGenConfig=r.createSqlGenConfig;exports.emitDashboardLoad=r.emitDashboardLoad;exports.emitDashboardUnload=r.emitDashboardUnload;exports.fmt=r.fmt;exports.getColumnDataType=r.getColumnDataType;exports.getFilterValueType=r.getFilterValueType;exports.getFormattedTableNameForQuery=r.getFormattedTableNameForQuery;exports.getQualifiedTableName=r.getQualifiedTableName;exports.getSql=r.getSql;exports.invalidateToken=r.invalidateToken;exports.isBooleanDataType=r.isBooleanDataType;exports.isColumnInSqlGen=r.isColumnInSqlGen;exports.isDateDataType=r.isDateDataType;exports.isNumberDataType=r.isNumberDataType;exports.isTextDataType=r.isTextDataType;exports.resolveDataType=r.resolveDataType;exports.resolveDatamodelName=r.resolveDatamodelName;exports.useCurrentActiveCard=r.useCurrentActiveCard;exports.useCurrentCardConfig=r.useCurrentCardConfig;exports.useCurrentSheetActiveCards=r.useCurrentSheetActiveCards;exports.useDashboardActions=r.useDashboardActions;exports.useDashboardStore=r.useDashboardStore;exports.useEditorActions=r.useEditorActions;exports.useEditorStore=r.useEditorStore;exports.DEFAULT_SEMANTIC_DOMAIN_ACCESS=N.DEFAULT_SEMANTIC_DOMAIN_ACCESS;exports.AdvancedModeToggle=l.AdvancedModeToggle;exports.DashboardBriefingLauncher=l.DashboardBriefingLauncher;exports.DashboardControlsSettings=l.DashboardControlsSettings;exports.DashboardFilterControlsButton=l.DashboardFilterControlsButton;exports.DashboardFilterControlsLauncher=l.DashboardFilterControlsLauncher;exports.DocumentControlsSettings=l.DocumentControlsSettings;exports.ExportNotificationItem=l.ExportNotificationItem;exports.ExportNotificationList=l.ExportNotificationList;exports.NotificationBell=l.NotificationBell;exports.UnsavedChangesAlert=l.UnsavedChangesAlert;exports.VisualEditingControls=l.VisualEditingControls;exports.VisualsLibraryDialog=l.VisualsLibraryDialog;exports.WatchDashboardButton=l.WatchDashboardButton;exports.useExportPolling=l.useExportPolling;exports.useExportRecovery=l.useExportRecovery;exports.useDebouncedDirtyCheck=R.useDebouncedDirtyCheck;exports.DEFAULT_CALENDAR_CONTEXT=w.DEFAULT_CALENDAR_CONTEXT;exports.resolveQueryColumnKeyMapEntry=T.resolveQueryColumnKeyMapEntry;exports.resolveUniqueQueryColumnKeyMapEntry=T.resolveUniqueQueryColumnKeyMapEntry;exports.cloneDeep=B.cloneDeep;exports.normalizeDashboardForDirtyCheck=A.normalizeDashboardForDirtyCheck;exports.serializeDashboardForDirtyCheck=A.serializeDashboardForDirtyCheck;exports.Combobox=U;exports.Visual=j;exports.useExposePrintState=k;exports.usePristineSnapshotInitializer=q;
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { E as y, F as N, S, c as _, U as P, d as w, C as F, e as x, f as R, g as L, h as M, I, R as U, i as k, j as O, k as V, l as q } from "./chunks/index-
|
|
2
|
-
import { ak as xa, al as ya, am as ba, an as Ta, V as va, G as Aa, D as Ba, A as Na, z as Sa, w as _a, b as Pa, au as wa, M as Fa, n as Ra, q as La, q as Ma, r as Ia, B as Ua, a as ka, af as Oa, ah as Va, ai as qa, ag as za, a6 as Wa, a9 as ja, at as Qa, Z as Ha, ae as Ka, ap as Ga, a1 as Ya, aa as Xa, y as $a, x as Ja, ax as Za, Y as ae, ab as ee, ac as se, a5 as re, a8 as oe, as as ie, ar as te, aq as ne, aw as le, av as ue, a7 as de, X as ce, W as fe, $ as pe, ad as me, a3 as he, a0 as ge, a2 as Ce, a4 as De, _ as Ee, P as xe, L as ye, ao as be, v as Te, J as ve, t as Ae, m as Be, H as Ne, K as Se, o as _e, T as Pe, O as we, N as Fe, Q as Re, u as Le, s as Me, p as Ie, aj as Ue } from "./chunks/index-
|
|
1
|
+
import { E as y, F as N, S, c as _, U as P, d as w, C as F, e as x, f as R, g as L, h as M, I, R as U, i as k, j as O, k as V, l as q } from "./chunks/index-CUCiMVzS.js";
|
|
2
|
+
import { ak as xa, al as ya, am as ba, an as Ta, V as va, G as Aa, D as Ba, A as Na, z as Sa, w as _a, b as Pa, au as wa, M as Fa, n as Ra, q as La, q as Ma, r as Ia, B as Ua, a as ka, af as Oa, ah as Va, ai as qa, ag as za, a6 as Wa, a9 as ja, at as Qa, Z as Ha, ae as Ka, ap as Ga, a1 as Ya, aa as Xa, y as $a, x as Ja, ax as Za, Y as ae, ab as ee, ac as se, a5 as re, a8 as oe, as as ie, ar as te, aq as ne, aw as le, av as ue, a7 as de, X as ce, W as fe, $ as pe, ad as me, a3 as he, a0 as ge, a2 as Ce, a4 as De, _ as Ee, P as xe, L as ye, ao as be, v as Te, J as ve, t as Ae, m as Be, H as Ne, K as Se, o as _e, T as Pe, O as we, N as Fe, Q as Re, u as Le, s as Me, p as Ie, aj as Ue } from "./chunks/index-CUCiMVzS.js";
|
|
3
3
|
import { a as Oe, C as Ve, D as qe, E as ze, L as We, P as je, g as Qe, d as He, h as Ke, e as Ge, b as Ye, c as Xe, i as $e } from "./chunks/common-types-D3r4PILe.js";
|
|
4
|
-
import { R as Ze } from "./chunks/report-preferences-dialog-
|
|
4
|
+
import { R as Ze } from "./chunks/report-preferences-dialog-DKq0k5BH.js";
|
|
5
5
|
import { jsx as a, jsxs as u } from "react/jsx-runtime";
|
|
6
|
-
import { u as z, P as W, a as j, B as Q, c as C, b as H, d as K } from "./chunks/switch-
|
|
7
|
-
import { A as es, n as ss, e as rs, f as os, g as is, p as ts, o as ns, s as ls, t as us, m as ds, i as cs, l as fs, q as ps, k as ms, j as hs, h as gs, v as Cs, r as Ds, w as Es, y as xs, x as ys, z as bs, E as Ts, D as vs } from "./chunks/switch-
|
|
6
|
+
import { u as z, P as W, a as j, B as Q, c as C, b as H, d as K } from "./chunks/switch-LucIPRtD.js";
|
|
7
|
+
import { A as es, n as ss, e as rs, f as os, g as is, p as ts, o as ns, s as ls, t as us, m as ds, i as cs, l as fs, q as ps, k as ms, j as hs, h as gs, v as Cs, r as Ds, w as Es, y as xs, x as ys, z as bs, E as Ts, D as vs } from "./chunks/switch-LucIPRtD.js";
|
|
8
8
|
import * as p from "react";
|
|
9
9
|
import { useMemo as G, useEffect as b } from "react";
|
|
10
10
|
import { D as Bs } from "./chunks/token-types-Dvomvqw0.js";
|
|
11
|
-
import { A as Ss, g as _s, D as Ps, e as ws, f as Fs, d as Rs, b as Ls, E as Ms, N as Is, U as Us, a as ks, V as Os, W as Vs, u as qs, c as zs } from "./chunks/dashboard-briefing-launcher-
|
|
11
|
+
import { A as Ss, g as _s, D as Ps, e as ws, f as Fs, d as Rs, b as Ls, E as Ms, N as Is, U as Us, a as ks, V as Os, W as Vs, u as qs, c as zs } from "./chunks/dashboard-briefing-launcher-Dk4yNOLY.js";
|
|
12
12
|
import { u as js } from "./chunks/use-debounced-dirty-check-BwAbnX_5.js";
|
|
13
13
|
import "./value-format-preferences/index.js";
|
|
14
14
|
import "./chunks/validators-D3AarM2T.js";
|
|
@@ -16,7 +16,7 @@ import { D as Hs } from "./chunks/report-runtime-context-B_pAmqxl.js";
|
|
|
16
16
|
import { r as Gs, a as Ys } from "./chunks/pivot-result-identity-BIeP9v8I.js";
|
|
17
17
|
import "./chunks/analyze-result-contract-DsiAzCYn.js";
|
|
18
18
|
import "./chunks/temporal-bucket-authoring-CyTCHy1K.js";
|
|
19
|
-
import { c as Y } from "./chunks/dashboard-filter-value-compatibility-
|
|
19
|
+
import { c as Y } from "./chunks/dashboard-filter-value-compatibility-DQkUs41q.js";
|
|
20
20
|
import "./chunks/card-config-utils-CyDKaPNT.js";
|
|
21
21
|
import "react-dom";
|
|
22
22
|
import "./chunks/appearance-context-DVXt8qjW.js";
|
package/dist/surfboard/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-DhDfPZUu.cjs"),r=require("../chunks/common-types-BCSbPclk.cjs"),o=require("../chunks/report-preferences-dialog--aV7ITSE.cjs");exports.DisplayFormatPreferencesFields=e.DisplayFormatPreferencesFields;exports.Surfboard=e.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=r.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=r.EMPTY_SELECTION;exports.ReportPreferencesDialog=o.ReportPreferencesDialog;
|
package/dist/surfboard/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { b as a, a as o } from "../chunks/index-
|
|
1
|
+
import { b as a, a as o } from "../chunks/index-CUCiMVzS.js";
|
|
2
2
|
import { C as f, E } from "../chunks/common-types-D3r4PILe.js";
|
|
3
|
-
import { R as t } from "../chunks/report-preferences-dialog-
|
|
3
|
+
import { R as t } from "../chunks/report-preferences-dialog-DKq0k5BH.js";
|
|
4
4
|
export {
|
|
5
5
|
f as CONTROL_CARD_DEFAULT_VALUE,
|
|
6
6
|
a as DisplayFormatPreferencesFields,
|
|
@@ -1649,7 +1649,7 @@ declare type EmailSettings = {
|
|
|
1649
1649
|
senderTitle: string;
|
|
1650
1650
|
};
|
|
1651
1651
|
|
|
1652
|
-
declare type EmbeddedFilterDashboardInput =
|
|
1652
|
+
declare type EmbeddedFilterDashboardInput = FilterDashboardInputBase & {
|
|
1653
1653
|
kind: 'filter';
|
|
1654
1654
|
filter: TFilter;
|
|
1655
1655
|
filterReference?: never;
|
|
@@ -1764,6 +1764,12 @@ declare interface FilterCondition {
|
|
|
1764
1764
|
|
|
1765
1765
|
declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
|
|
1766
1766
|
|
|
1767
|
+
/** Filter-only lifecycle policy, independent of requiredAtExecution. */
|
|
1768
|
+
declare type FilterDashboardInputBase = DashboardInputBase & {
|
|
1769
|
+
/** Empty selections restore the authored default; viewers may replace it. */
|
|
1770
|
+
forceSelection?: boolean;
|
|
1771
|
+
};
|
|
1772
|
+
|
|
1767
1773
|
/**
|
|
1768
1774
|
* Display mode for individual filters
|
|
1769
1775
|
* - 'canvas': Filter displayed as a draggable card on the dashboard canvas
|
|
@@ -2380,7 +2386,7 @@ declare type RawTemporalPresentationTarget = {
|
|
|
2380
2386
|
columnKey: string;
|
|
2381
2387
|
};
|
|
2382
2388
|
|
|
2383
|
-
declare type ReferencedFilterDashboardInput =
|
|
2389
|
+
declare type ReferencedFilterDashboardInput = FilterDashboardInputBase & {
|
|
2384
2390
|
kind: 'filter';
|
|
2385
2391
|
filter?: never;
|
|
2386
2392
|
filterReference: {
|
|
@@ -1495,7 +1495,7 @@ declare type EmailSettings = {
|
|
|
1495
1495
|
senderTitle: string;
|
|
1496
1496
|
};
|
|
1497
1497
|
|
|
1498
|
-
declare type EmbeddedFilterDashboardInput =
|
|
1498
|
+
declare type EmbeddedFilterDashboardInput = FilterDashboardInputBase & {
|
|
1499
1499
|
kind: 'filter';
|
|
1500
1500
|
filter: TFilter;
|
|
1501
1501
|
filterReference?: never;
|
|
@@ -1610,6 +1610,12 @@ declare interface FilterCondition {
|
|
|
1610
1610
|
|
|
1611
1611
|
declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
|
|
1612
1612
|
|
|
1613
|
+
/** Filter-only lifecycle policy, independent of requiredAtExecution. */
|
|
1614
|
+
declare type FilterDashboardInputBase = DashboardInputBase & {
|
|
1615
|
+
/** Empty selections restore the authored default; viewers may replace it. */
|
|
1616
|
+
forceSelection?: boolean;
|
|
1617
|
+
};
|
|
1618
|
+
|
|
1613
1619
|
/**
|
|
1614
1620
|
* Display mode for individual filters
|
|
1615
1621
|
* - 'canvas': Filter displayed as a draggable card on the dashboard canvas
|
|
@@ -2082,7 +2088,7 @@ export declare type NormalizeDashboardInputsResult = {
|
|
|
2082
2088
|
declare type NormalizedDashboardInput = NormalizedFilterDashboardInput | ControlDashboardInput;
|
|
2083
2089
|
|
|
2084
2090
|
/** Runtime form after dashboard-filter references are resolved once. */
|
|
2085
|
-
declare type NormalizedFilterDashboardInput =
|
|
2091
|
+
declare type NormalizedFilterDashboardInput = FilterDashboardInputBase & {
|
|
2086
2092
|
kind: 'filter';
|
|
2087
2093
|
filter: TFilter;
|
|
2088
2094
|
optionSource?: DashboardFilterOptionSource;
|
|
@@ -2219,7 +2225,7 @@ declare type RangeValue = {
|
|
|
2219
2225
|
|
|
2220
2226
|
export declare function reconcileTemporalBucketAuthoringFormat(format: TemporalBucketFormat, granularity: SemaphorTimeGrain): TemporalBucketFormat;
|
|
2221
2227
|
|
|
2222
|
-
declare type ReferencedFilterDashboardInput =
|
|
2228
|
+
declare type ReferencedFilterDashboardInput = FilterDashboardInputBase & {
|
|
2223
2229
|
kind: 'filter';
|
|
2224
2230
|
filter?: never;
|
|
2225
2231
|
filterReference: {
|
|
@@ -1502,7 +1502,7 @@ export declare type EmailSettings = {
|
|
|
1502
1502
|
senderTitle: string;
|
|
1503
1503
|
};
|
|
1504
1504
|
|
|
1505
|
-
export declare type EmbeddedFilterDashboardInput =
|
|
1505
|
+
export declare type EmbeddedFilterDashboardInput = FilterDashboardInputBase & {
|
|
1506
1506
|
kind: 'filter';
|
|
1507
1507
|
filter: TFilter;
|
|
1508
1508
|
filterReference?: never;
|
|
@@ -1630,6 +1630,12 @@ declare interface FilterCondition {
|
|
|
1630
1630
|
|
|
1631
1631
|
export declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
|
|
1632
1632
|
|
|
1633
|
+
/** Filter-only lifecycle policy, independent of requiredAtExecution. */
|
|
1634
|
+
declare type FilterDashboardInputBase = DashboardInputBase & {
|
|
1635
|
+
/** Empty selections restore the authored default; viewers may replace it. */
|
|
1636
|
+
forceSelection?: boolean;
|
|
1637
|
+
};
|
|
1638
|
+
|
|
1633
1639
|
/**
|
|
1634
1640
|
* Display mode for individual filters
|
|
1635
1641
|
* - 'canvas': Filter displayed as a draggable card on the dashboard canvas
|
|
@@ -2150,7 +2156,7 @@ declare type NoneOptions = {};
|
|
|
2150
2156
|
export declare type NormalizedDashboardInput = NormalizedFilterDashboardInput | ControlDashboardInput;
|
|
2151
2157
|
|
|
2152
2158
|
/** Runtime form after dashboard-filter references are resolved once. */
|
|
2153
|
-
export declare type NormalizedFilterDashboardInput =
|
|
2159
|
+
export declare type NormalizedFilterDashboardInput = FilterDashboardInputBase & {
|
|
2154
2160
|
kind: 'filter';
|
|
2155
2161
|
filter: TFilter;
|
|
2156
2162
|
optionSource?: DashboardFilterOptionSource;
|
|
@@ -2317,7 +2323,7 @@ declare type RawTemporalPresentationTarget = {
|
|
|
2317
2323
|
columnKey: string;
|
|
2318
2324
|
};
|
|
2319
2325
|
|
|
2320
|
-
export declare type ReferencedFilterDashboardInput =
|
|
2326
|
+
export declare type ReferencedFilterDashboardInput = FilterDashboardInputBase & {
|
|
2321
2327
|
kind: 'filter';
|
|
2322
2328
|
filter?: never;
|
|
2323
2329
|
filterReference: {
|
package/dist/types/main.d.ts
CHANGED
|
@@ -46,10 +46,12 @@ declare type Actions_2 = {
|
|
|
46
46
|
updateFilterDashboardInputDefinition: (inputId: string, filter: TFilter, metadata?: {
|
|
47
47
|
variableName?: string;
|
|
48
48
|
label?: string;
|
|
49
|
+
forceSelection?: boolean;
|
|
50
|
+
exports?: DashboardInput['exports'];
|
|
49
51
|
}) => void;
|
|
50
|
-
|
|
52
|
+
acceptDashboardFilterInput: (updatedFilter: TFilter, optionSource: DashboardFilterOptionSource | undefined, settings?: DashboardFilterAuthoringSettingsUpdate, inputMetadata?: {
|
|
51
53
|
variableName?: string;
|
|
52
|
-
}) =>
|
|
54
|
+
}) => DashboardFilterInputAcceptanceResult;
|
|
53
55
|
acceptDashboardFilterMapping: (request: DashboardFilterMappingAuthoringRequest, updatedFilter?: TFilter, settings?: DashboardFilterAuthoringSettingsUpdate) => DashboardFilterMappingAcceptanceResult;
|
|
54
56
|
disableDashboardFilterMapping: (filterId: string, updatedFilter?: TFilter, settings?: DashboardFilterAuthoringSettingsUpdate) => DashboardFilterMappingDisableResult;
|
|
55
57
|
removeDashboardInput: (inputId: string) => void;
|
|
@@ -2074,11 +2076,12 @@ export declare type DashboardFilterApplication = {
|
|
|
2074
2076
|
};
|
|
2075
2077
|
|
|
2076
2078
|
declare type DashboardFilterAuthoringSettingsUpdate = {
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2079
|
+
forceSelection?: boolean;
|
|
2080
|
+
/** Explicit reset of a persisted default slot that may lack a backing default. */
|
|
2081
|
+
defaultValueChanged?: boolean;
|
|
2082
|
+
defaultComparisonChanged?: boolean;
|
|
2080
2083
|
defaultComparisonSelection?: GlobalDateComparisonSelection;
|
|
2081
|
-
target
|
|
2084
|
+
target?: DashboardInputRuntimeTarget;
|
|
2082
2085
|
optionSourceChanged?: boolean;
|
|
2083
2086
|
optionSource?: DashboardFilterOptionSource;
|
|
2084
2087
|
/** Raw selection identity changed; the previous runtime value is invalid. */
|
|
@@ -2160,6 +2163,15 @@ export declare type DashboardFilterExcludedCardApplication = {
|
|
|
2160
2163
|
cardId: string;
|
|
2161
2164
|
};
|
|
2162
2165
|
|
|
2166
|
+
declare type DashboardFilterInputAcceptanceResult = {
|
|
2167
|
+
ok: true;
|
|
2168
|
+
input: ReferencedFilterDashboardInput;
|
|
2169
|
+
created: boolean;
|
|
2170
|
+
} | {
|
|
2171
|
+
ok: false;
|
|
2172
|
+
issues: DashboardFilterMappingAuthoringIssue[];
|
|
2173
|
+
};
|
|
2174
|
+
|
|
2163
2175
|
declare type DashboardFilterMappingAcceptanceResult = {
|
|
2164
2176
|
ok: true;
|
|
2165
2177
|
draft: DashboardFilterMappingDraft;
|
|
@@ -2255,15 +2267,6 @@ declare type DashboardFilterMappingDraftStatus = 'pendingSource' | 'automatic' |
|
|
|
2255
2267
|
/** Persisted label/value option definition for a mapped dashboard filter. */
|
|
2256
2268
|
export declare type DashboardFilterOptionSource = SemaphorInputOptionSource;
|
|
2257
2269
|
|
|
2258
|
-
declare type DashboardFilterOptionSourceAcceptanceResult = {
|
|
2259
|
-
ok: true;
|
|
2260
|
-
input: ReferencedFilterDashboardInput;
|
|
2261
|
-
created: boolean;
|
|
2262
|
-
} | {
|
|
2263
|
-
ok: false;
|
|
2264
|
-
issues: DashboardFilterMappingAuthoringIssue[];
|
|
2265
|
-
};
|
|
2266
|
-
|
|
2267
2270
|
export declare type DashboardFilterTarget = {
|
|
2268
2271
|
kind: 'field';
|
|
2269
2272
|
field: DashboardFilterTargetField;
|
|
@@ -3463,7 +3466,7 @@ export declare type EmailSettings = {
|
|
|
3463
3466
|
senderTitle: string;
|
|
3464
3467
|
};
|
|
3465
3468
|
|
|
3466
|
-
export declare type EmbeddedFilterDashboardInput =
|
|
3469
|
+
export declare type EmbeddedFilterDashboardInput = FilterDashboardInputBase & {
|
|
3467
3470
|
kind: 'filter';
|
|
3468
3471
|
filter: TFilter;
|
|
3469
3472
|
filterReference?: never;
|
|
@@ -3764,6 +3767,12 @@ export declare interface FilterCondition {
|
|
|
3764
3767
|
|
|
3765
3768
|
export declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
|
|
3766
3769
|
|
|
3770
|
+
/** Filter-only lifecycle policy, independent of requiredAtExecution. */
|
|
3771
|
+
declare type FilterDashboardInputBase = DashboardInputBase & {
|
|
3772
|
+
/** Empty selections restore the authored default; viewers may replace it. */
|
|
3773
|
+
forceSelection?: boolean;
|
|
3774
|
+
};
|
|
3775
|
+
|
|
3767
3776
|
/**
|
|
3768
3777
|
* Display mode for individual filters
|
|
3769
3778
|
* - 'canvas': Filter displayed as a draggable card on the dashboard canvas
|
|
@@ -4941,7 +4950,7 @@ export declare function normalizeDashboardForDirtyCheck(dashboard: TDashboard |
|
|
|
4941
4950
|
export declare type NormalizedDashboardInput = NormalizedFilterDashboardInput | ControlDashboardInput;
|
|
4942
4951
|
|
|
4943
4952
|
/** Runtime form after dashboard-filter references are resolved once. */
|
|
4944
|
-
export declare type NormalizedFilterDashboardInput =
|
|
4953
|
+
export declare type NormalizedFilterDashboardInput = FilterDashboardInputBase & {
|
|
4945
4954
|
kind: 'filter';
|
|
4946
4955
|
filter: TFilter;
|
|
4947
4956
|
optionSource?: DashboardFilterOptionSource;
|
|
@@ -5277,7 +5286,7 @@ declare type RawTemporalValueMetadata = {
|
|
|
5277
5286
|
valueKind: RawTemporalValueKind;
|
|
5278
5287
|
};
|
|
5279
5288
|
|
|
5280
|
-
export declare type ReferencedFilterDashboardInput =
|
|
5289
|
+
export declare type ReferencedFilterDashboardInput = FilterDashboardInputBase & {
|
|
5281
5290
|
kind: 'filter';
|
|
5282
5291
|
filter?: never;
|
|
5283
5292
|
filterReference: {
|
package/dist/types/shared.d.ts
CHANGED
|
@@ -1156,7 +1156,7 @@ declare type EmailSettings = {
|
|
|
1156
1156
|
senderTitle: string;
|
|
1157
1157
|
};
|
|
1158
1158
|
|
|
1159
|
-
declare type EmbeddedFilterDashboardInput =
|
|
1159
|
+
declare type EmbeddedFilterDashboardInput = FilterDashboardInputBase & {
|
|
1160
1160
|
kind: 'filter';
|
|
1161
1161
|
filter: TFilter;
|
|
1162
1162
|
filterReference?: never;
|
|
@@ -1271,6 +1271,12 @@ declare interface FilterCondition {
|
|
|
1271
1271
|
|
|
1272
1272
|
declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
|
|
1273
1273
|
|
|
1274
|
+
/** Filter-only lifecycle policy, independent of requiredAtExecution. */
|
|
1275
|
+
declare type FilterDashboardInputBase = DashboardInputBase & {
|
|
1276
|
+
/** Empty selections restore the authored default; viewers may replace it. */
|
|
1277
|
+
forceSelection?: boolean;
|
|
1278
|
+
};
|
|
1279
|
+
|
|
1274
1280
|
/**
|
|
1275
1281
|
* Display mode for individual filters
|
|
1276
1282
|
* - 'canvas': Filter displayed as a draggable card on the dashboard canvas
|
|
@@ -1782,7 +1788,7 @@ declare type RangeValue = {
|
|
|
1782
1788
|
gt?: string | number;
|
|
1783
1789
|
};
|
|
1784
1790
|
|
|
1785
|
-
declare type ReferencedFilterDashboardInput =
|
|
1791
|
+
declare type ReferencedFilterDashboardInput = FilterDashboardInputBase & {
|
|
1786
1792
|
kind: 'filter';
|
|
1787
1793
|
filter?: never;
|
|
1788
1794
|
filterReference: {
|
|
@@ -1515,7 +1515,7 @@ export declare type EmailSettings = {
|
|
|
1515
1515
|
senderTitle: string;
|
|
1516
1516
|
};
|
|
1517
1517
|
|
|
1518
|
-
export declare type EmbeddedFilterDashboardInput =
|
|
1518
|
+
export declare type EmbeddedFilterDashboardInput = FilterDashboardInputBase & {
|
|
1519
1519
|
kind: 'filter';
|
|
1520
1520
|
filter: TFilter;
|
|
1521
1521
|
filterReference?: never;
|
|
@@ -1643,6 +1643,12 @@ declare interface FilterCondition {
|
|
|
1643
1643
|
|
|
1644
1644
|
export declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
|
|
1645
1645
|
|
|
1646
|
+
/** Filter-only lifecycle policy, independent of requiredAtExecution. */
|
|
1647
|
+
declare type FilterDashboardInputBase = DashboardInputBase & {
|
|
1648
|
+
/** Empty selections restore the authored default; viewers may replace it. */
|
|
1649
|
+
forceSelection?: boolean;
|
|
1650
|
+
};
|
|
1651
|
+
|
|
1646
1652
|
/**
|
|
1647
1653
|
* Display mode for individual filters
|
|
1648
1654
|
* - 'canvas': Filter displayed as a draggable card on the dashboard canvas
|
|
@@ -2163,7 +2169,7 @@ declare type NoneOptions = {};
|
|
|
2163
2169
|
export declare type NormalizedDashboardInput = NormalizedFilterDashboardInput | ControlDashboardInput;
|
|
2164
2170
|
|
|
2165
2171
|
/** Runtime form after dashboard-filter references are resolved once. */
|
|
2166
|
-
export declare type NormalizedFilterDashboardInput =
|
|
2172
|
+
export declare type NormalizedFilterDashboardInput = FilterDashboardInputBase & {
|
|
2167
2173
|
kind: 'filter';
|
|
2168
2174
|
filter: TFilter;
|
|
2169
2175
|
optionSource?: DashboardFilterOptionSource;
|
|
@@ -2330,7 +2336,7 @@ declare type RawTemporalPresentationTarget = {
|
|
|
2330
2336
|
columnKey: string;
|
|
2331
2337
|
};
|
|
2332
2338
|
|
|
2333
|
-
export declare type ReferencedFilterDashboardInput =
|
|
2339
|
+
export declare type ReferencedFilterDashboardInput = FilterDashboardInputBase & {
|
|
2334
2340
|
kind: 'filter';
|
|
2335
2341
|
filter?: never;
|
|
2336
2342
|
filterReference: {
|
package/dist/types/types.d.ts
CHANGED
|
@@ -2087,7 +2087,7 @@ export declare type EmailSettings = {
|
|
|
2087
2087
|
senderTitle: string;
|
|
2088
2088
|
};
|
|
2089
2089
|
|
|
2090
|
-
export declare type EmbeddedFilterDashboardInput =
|
|
2090
|
+
export declare type EmbeddedFilterDashboardInput = FilterDashboardInputBase & {
|
|
2091
2091
|
kind: 'filter';
|
|
2092
2092
|
filter: TFilter;
|
|
2093
2093
|
filterReference?: never;
|
|
@@ -2225,6 +2225,12 @@ export declare interface FilterCondition {
|
|
|
2225
2225
|
|
|
2226
2226
|
export declare type FilterDashboardInput = EmbeddedFilterDashboardInput | ReferencedFilterDashboardInput;
|
|
2227
2227
|
|
|
2228
|
+
/** Filter-only lifecycle policy, independent of requiredAtExecution. */
|
|
2229
|
+
declare type FilterDashboardInputBase = DashboardInputBase & {
|
|
2230
|
+
/** Empty selections restore the authored default; viewers may replace it. */
|
|
2231
|
+
forceSelection?: boolean;
|
|
2232
|
+
};
|
|
2233
|
+
|
|
2228
2234
|
/**
|
|
2229
2235
|
* Display mode for individual filters
|
|
2230
2236
|
* - 'canvas': Filter displayed as a draggable card on the dashboard canvas
|
|
@@ -3052,7 +3058,7 @@ declare type NoneOptions = {};
|
|
|
3052
3058
|
export declare type NormalizedDashboardInput = NormalizedFilterDashboardInput | ControlDashboardInput;
|
|
3053
3059
|
|
|
3054
3060
|
/** Runtime form after dashboard-filter references are resolved once. */
|
|
3055
|
-
export declare type NormalizedFilterDashboardInput =
|
|
3061
|
+
export declare type NormalizedFilterDashboardInput = FilterDashboardInputBase & {
|
|
3056
3062
|
kind: 'filter';
|
|
3057
3063
|
filter: TFilter;
|
|
3058
3064
|
optionSource?: DashboardFilterOptionSource;
|
|
@@ -3358,7 +3364,7 @@ declare type RawTemporalValueMetadata = {
|
|
|
3358
3364
|
valueKind: RawTemporalValueKind;
|
|
3359
3365
|
};
|
|
3360
3366
|
|
|
3361
|
-
export declare type ReferencedFilterDashboardInput =
|
|
3367
|
+
export declare type ReferencedFilterDashboardInput = FilterDashboardInputBase & {
|
|
3362
3368
|
kind: 'filter';
|
|
3363
3369
|
filter?: never;
|
|
3364
3370
|
filterReference: {
|