react-semaphor 0.1.474 → 0.1.476

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/brand-studio/index.cjs +1 -1
  2. package/dist/brand-studio/index.js +1 -1
  3. package/dist/briefings/index.cjs +1 -1
  4. package/dist/briefings/index.js +20 -20
  5. package/dist/chunks/{dashboard-briefing-launcher-BjCkA5vw.cjs → dashboard-briefing-launcher-ZfuxdRN2.cjs} +1 -1
  6. package/dist/chunks/{dashboard-briefing-launcher-B0f28WrK.js → dashboard-briefing-launcher-eBsB9kr8.js} +5 -5
  7. package/dist/chunks/{dashboard-controls-CMJqSLgo.js → dashboard-controls-BX6p6z8a.js} +5 -5
  8. package/dist/chunks/{dashboard-controls-BRclCQEX.cjs → dashboard-controls-DwjEc7sO.cjs} +1 -1
  9. package/dist/chunks/dashboard-filter-value-compatibility-BCVF9IHg.js +1026 -0
  10. package/dist/chunks/dashboard-filter-value-compatibility-DLkdeypb.cjs +1 -0
  11. package/dist/chunks/{dashboard-json-1ohpjO_q.js → dashboard-json-BfgitBXc.js} +3 -3
  12. package/dist/chunks/{dashboard-json-DmtGHdDq.cjs → dashboard-json-CdwYFOsc.cjs} +1 -1
  13. package/dist/chunks/{edit-dashboard-visual-DNqJHdHE.cjs → edit-dashboard-visual-Cbougpzc.cjs} +1 -1
  14. package/dist/chunks/{edit-dashboard-visual-D9oKtOo6.js → edit-dashboard-visual-D80DLF7C.js} +6 -6
  15. package/dist/chunks/{editor-action-buttons-DwI3FcSw.cjs → editor-action-buttons-BDRLfaW-.cjs} +1 -1
  16. package/dist/chunks/{editor-action-buttons-C_B8Wzkf.js → editor-action-buttons-DjsEDQok.js} +3 -3
  17. package/dist/chunks/index-CneWIz__.cjs +1404 -0
  18. package/dist/chunks/{index-DsvIlrI-.js → index-D9S3j7_z.js} +532 -463
  19. package/dist/chunks/{index-DalKzjEZ.js → index-Dv5hbC1r.js} +40833 -40225
  20. package/dist/chunks/index-v2MZLyus.cjs +4 -0
  21. package/dist/chunks/{pivot-header-presentation-Be3FyR0N.js → pivot-header-presentation-CaERAWpl.js} +144 -128
  22. package/dist/chunks/pivot-header-presentation-CePk1R6g.cjs +4 -0
  23. package/dist/chunks/{pivot-result-lifecycle-PxmbJWkm.js → pivot-result-lifecycle-B9FTybxN.js} +176 -165
  24. package/dist/chunks/pivot-result-lifecycle-CcGt_29N.cjs +1 -0
  25. package/dist/chunks/{report-preferences-dialog-C9mJffNQ.js → report-preferences-dialog-BXBlvW79.js} +2 -2
  26. package/dist/chunks/{report-preferences-dialog-DGMd-eTT.cjs → report-preferences-dialog-cSMJYqns.cjs} +1 -1
  27. package/dist/chunks/switch-B1mZx2k9.cjs +138 -0
  28. package/dist/chunks/{switch-D20CIzj6.js → switch-C8NihGV4.js} +3326 -3318
  29. package/dist/dashboard/index.cjs +1 -1
  30. package/dist/dashboard/index.js +1 -1
  31. package/dist/dashboard-authoring/index.cjs +3 -3
  32. package/dist/dashboard-authoring/index.js +298 -287
  33. package/dist/data-app-builder/index.cjs +1 -1
  34. package/dist/data-app-builder/index.js +2 -2
  35. package/dist/format-utils/index.cjs +3 -3
  36. package/dist/format-utils/index.js +92 -82
  37. package/dist/index.cjs +1 -1
  38. package/dist/index.js +6 -6
  39. package/dist/pdf-export-policy/index.cjs +1 -0
  40. package/dist/pdf-export-policy/index.js +32 -0
  41. package/dist/surfboard/index.cjs +1 -1
  42. package/dist/surfboard/index.js +2 -2
  43. package/dist/types/briefings.d.ts +13 -1
  44. package/dist/types/dashboard-assistant.d.ts +2 -0
  45. package/dist/types/dashboard-authoring.d.ts +13 -1
  46. package/dist/types/dashboard.d.ts +19 -1
  47. package/dist/types/format-utils.d.ts +46 -0
  48. package/dist/types/main.d.ts +19 -1
  49. package/dist/types/pdf-export-policy.d.ts +28 -0
  50. package/dist/types/shared.d.ts +13 -1
  51. package/dist/types/surfboard.d.ts +19 -1
  52. package/dist/types/types.d.ts +19 -1
  53. package/package.json +6 -1
  54. package/dist/chunks/dashboard-filter-value-compatibility-9W8Ckcle.js +0 -846
  55. package/dist/chunks/dashboard-filter-value-compatibility-Co1dn9Bc.cjs +0 -1
  56. package/dist/chunks/index-B4VxBoJg.cjs +0 -4
  57. package/dist/chunks/index-B6zSYUN4.cjs +0 -1404
  58. package/dist/chunks/pivot-header-presentation-Cr6pU5JL.cjs +0 -4
  59. package/dist/chunks/pivot-result-lifecycle-DJgO2P0H.cjs +0 -1
  60. package/dist/chunks/switch-B4eH4guz.cjs +0 -138
@@ -0,0 +1,4 @@
1
+ "use strict";var It=Object.defineProperty;var Tt=(e,r,t)=>r in e?It(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var R=(e,r,t)=>Tt(e,typeof r!="symbol"?r+"":r,t);const $=require("./pivot-result-lifecycle-CcGt_29N.cjs"),ye=require("../value-format-preferences/index.cjs"),q=require("./validators-DcshgK7w.cjs");require("./analyze-result-contract-OgPk-zGu.cjs");const L=require("./saved-temporal-bucket-format-DNMtD77o.cjs"),M=require("./pivot-result-identity-DRUlTWUq.cjs"),Se=require("./temporal-bucket-contract-BD862TAa.cjs"),W=require("./temporal-bucket-9Wz9Ds6H.cjs"),oe=require("./temporal-bucket-authoring-DSpzgXHc.cjs"),xe=require("./raw-temporal-contract-D8YuxTAg.cjs"),ce=require("./canonical-result-keys-Cb96edol.cjs"),Ae=`import pandas as pd
2
+ df = pd.DataFrame(data) # 'data' contains the query result
3
+ result = df.to_dict('records') # must return 'result' as [dict] type
4
+ `;function Ct(e){return{databaseName:(e==null?void 0:e.lastSelectedDatabase)||"",schemaName:(e==null?void 0:e.lastSelectedSchema)||"",tableName:(e==null?void 0:e.lastSelectedTable)||"",datamodelId:(e==null?void 0:e.datamodelId)||""}}function U(e){return e===Ae?"":e}function Y(e,r=e.config){return oe.resolveTemporalResultOwner({hasExecutableConfig:L.hasValidCardConfig(r),sql:e.sql,normalizedPython:U(e.python||"")})}class Be extends Error{constructor(t){super(`ambiguous_temporal_grain: Temporal field "${t}" has saved presentation but no valid grouping grain. Reconfigure and resave the field.`);R(this,"code","ambiguous_temporal_grain");R(this,"fieldId");this.name="AmbiguousGroupedTemporalGrainError",this.fieldId=t}}function wt(e){return L.hasSavedTemporalBucketPresentation(e)||e.semanticTemporalPresentation!=null}function Pe(e){if(!e.id||!["date","datetime"].includes(q.normalizeAnalyticsCatalogDataType(e.dataType)))return;if(q.isSemaphorTimeGrain(e.granularity))return e;if(!wt(e))return;if(!L.readSavedTemporalBucketFormat({fieldId:e.id,dataType:e.dataType,granularity:e.granularity,format:e.format,dateFormat:e.dateFormat,customFormat:e.customFormat}).ok)throw new Be(e.id);return{...e,granularity:"day"}}function he(e){const r=e.cardConfig??e.card.config;if(!r||!e.supportsCardType(e.card.type)||oe.resolveTemporalResultOwner({hasExecutableConfig:L.hasValidCardConfig(r),sql:e.card.sql,normalizedPython:U(e.card.python||"")})!=="config")return;const t=[...(r.groupByColumns||[]).map(n=>({...n,role:"groupby"})),...e.card.type==="pivotTable"?(r.pivotByColumns||[]).map(n=>({...n,role:"pivotby"})):[]];return{cardType:e.card.type,cardConfig:r,fields:t.flatMap(n=>{const o=Pe(n);return o?[o]:[]})}}function Et(e){return he({...e,supportsCardType:r=>r==="table"})}function $t(e){return he({...e,supportsCardType:oe.isSemaphorCartesianChartType})}function De(e){return he({...e,supportsCardType:r=>r!=="detailTable"&&oe.supportsCanonicalDashboardTemporalResult(r)})}const ke=new WeakMap;function Me(e){const r=ke.get(e);if(r)return r;const t=$.parseCanonicalPivotResultTransport(e);return ke.set(e,t),t}function G(e,r){const t=e??[],n=r??[];return t.length===n.length&&t.every((o,a)=>o===n[a])}function Oe(e,r){const t=$.derivePivotResultContractExpectations({groupByFields:r.groupByColumns,metricFields:r.metricColumns,pivotByFields:r.pivotByColumns,detailFields:r.detailColumns});return G(e.expectedRoleFieldIds.groupby,t.expectedRoleFieldIds.groupby)&&G(e.expectedRoleFieldIds.metric,t.expectedRoleFieldIds.metric)&&G(e.expectedRoleFieldIds.pivotby,t.expectedRoleFieldIds.pivotby)&&G(e.expectedRoleFieldIds.detail,t.expectedRoleFieldIds.detail)&&G(e.expectedMetricAliases,t.expectedMetricAliases)}class St extends Error{constructor(t){super(`missing_resolved_temporal_format: Saved presentation is missing temporal field "${t.fieldId}" for card "${t.cardId}". Resave the report or Briefing to capture the current dashboard presentation.`);R(this,"code","missing_resolved_temporal_format");R(this,"deliveryBlocking",!0);R(this,"dashboardId");R(this,"cardId");R(this,"fieldId");this.name="MissingResolvedTemporalPresentationError",this.dashboardId=t.dashboardId,this.cardId=t.cardId,this.fieldId=t.fieldId}}class de extends Error{constructor(t){super(`missing_temporal_bucket_metadata: Result column "${t.columnKey}" is missing temporal bucket metadata for field "${t.fieldId}" on card "${t.cardId}". Refresh the report and resave the delivery if the problem persists.`);R(this,"code","missing_temporal_bucket_metadata");R(this,"deliveryBlocking",!0);R(this,"cardId");R(this,"fieldId");R(this,"columnKey");this.name="MissingTemporalResultMetadataError",this.cardId=t.cardId,this.fieldId=t.fieldId,this.columnKey=t.columnKey}}class K extends Error{constructor(t,n,o){super(`${t}: ${n}`);R(this,"deliveryBlocking",!0);this.code=t,this.context=o,this.name="DashboardTemporalBoundaryError"}}function Ke(e,r){return`${r}:${e}`}function Ne(e){var r,t;return(t=(r=e.presentation)==null?void 0:r.byFieldRole)==null?void 0:t.get(Ke(e.fieldId,e.role))}function kt(e){var t;if((((t=e.cardConfig.metricColumns)==null?void 0:t.length)||0)>0||e.binding.role!=="metric")return!1;const r=e.binding.outputKey||e.binding.rawKey;return e.columns.some(n=>{var o;return n.role==="measure"&&n.dataType==="number"&&(n.key===r||((o=n.pivotIdentity)==null?void 0:o.metricId)===q.SEMAPHOR_GENERATED_COUNT_METRIC_ID)})}function _t(e,r){return!r||r.byColumnKey.size===0?e.map(t=>({...t})):e.map(t=>{const n={...t};return r.byColumnKey.forEach((o,a)=>{Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=ge({value:t[a],presentation:o}))}),n})}function Ft(e){var u;if(!e.result||typeof e.result!="object")return!1;const r=e.result;if(e.expectedResultOwner!==void 0&&r.resultOwner!==e.expectedResultOwner)return!1;const t=e.activation;if(!t||t.cardType!=="pivotTable"&&t.fields.length===0)return!0;const n=Array.isArray(r.records)?r.records.length:void 0,o=(t.cardConfig.pivotByColumns||[]).map(d=>d.id);if(t.cardType==="pivotTable")try{const d=Me(r);if(!Oe(d.pivotResultContract,t.cardConfig))return!1;if(d.pivotResultState==="loaded_empty")return!0;const v=d.columns.filter(T=>d.pivotResultContract.columnKinds[T.key]==="pivot_metric"),h=v.filter(T=>{var g;return(((g=T.pivotIdentity)==null?void 0:g.members.length)??0)>0}),b=v.length>0&&v.every(T=>{var g;return((g=T.pivotIdentity)==null?void 0:g.members.length)===0&&M.isPivotEmptyTupleAllowed({expectedPivotFieldIds:o,classification:d.pivotResultContract.columnClassifications[T.key]})});return t.fields.every(T=>{var k;const g=M.resolveQueryColumnKeyMapEntry(d.columnKeyMap,T.id,T.role);if(!g)return!1;if(g.role==="pivotby"){const F=h.flatMap(B=>{var j;return((j=B.pivotIdentity)==null?void 0:j.members.filter(bt=>bt.fieldId===T.id))??[]});return F.length===0?b:F.every(B=>{var j;return((j=B.temporalBucket)==null?void 0:j.granularity)===T.granularity})}const C=d.columns.find(F=>F.key===(g.outputKey||g.rawKey));return((k=C==null?void 0:C.temporalBucket)==null?void 0:k.granularity)===T.granularity})}catch(d){if(d instanceof $.PivotResultLifecycleError)return!1;throw d}if(n===0)return!0;const a=r.columnKeyMap;if(!a||!a.byRole||typeof a.byRole!="object"||Array.isArray(a.byRole))return!1;const i=[...(t.cardConfig.groupByColumns||[]).map(d=>({field:d,role:"groupby"})),...(t.cardConfig.metricColumns||[]).map(d=>({field:d,role:"metric"})),...(t.cardConfig.pivotByColumns||[]).map(d=>({field:d,role:"pivotby"})),...(t.cardConfig.detailColumns||[]).map(d=>({field:d,role:"detail"}))],c=new Set(i.map(({field:d,role:v})=>`${v}:${d.id}`)),m=new Map((r.columns||[]).map(d=>[d.key,d])),l=M.resolveQueryColumnKeyMapEntry(a,q.SEMAPHOR_GENERATED_COUNT_METRIC_ID,"metric");if(l){if(!kt({cardConfig:t.cardConfig,binding:l,columns:r.columns||[]}))return!1;c.add(`metric:${q.SEMAPHOR_GENERATED_COUNT_METRIC_ID}`)}const s=Object.entries(a.byRole).flatMap(([d,v])=>Object.keys(v||{}).map(h=>`${d}:${h}`));if(s.length!==c.size||s.some(d=>!c.has(d))||i.some(({field:d,role:v})=>!M.resolveQueryColumnKeyMapEntry(a,d.id,v)))return!1;try{M.requirePivotResultColumnIdentities((r.columns||[]).map(d=>({key:d.key,pivotIdentity:d.pivotIdentity})),{expectedPivotFieldIds:o,columnClassifications:r.columnMetadata})}catch(d){if(d instanceof M.PivotResultIdentityError)return!1;throw d}const f=(r.columns||[]).filter(d=>{const v=d.pivotIdentity;return!!(v&&v.members.length>0)});return n!==0&&((u=t.cardConfig.pivotByColumns)!=null&&u.length)&&f.length===0?!1:t.fields.every(d=>{var b;const v=M.resolveQueryColumnKeyMapEntry(a,d.id,d.role);if(!v)return!1;if(v.role==="pivotby"){const g=f.flatMap(C=>{var k;return((k=C.pivotIdentity)==null?void 0:k.members)??[]}).filter(C=>C.fieldId===d.id);return f.length===0?n===0:g.length>0&&g.every(C=>{var k;return((k=C.temporalBucket)==null?void 0:k.granularity)===d.granularity})}const h=m.get(v.outputKey||v.rawKey);return((b=h==null?void 0:h.temporalBucket)==null?void 0:b.granularity)===d.granularity})}function te(e,r){const t=e.semanticTemporalPresentation,n=r==="card"?{format:e.format,dateFormat:e.dateFormat}:{format:t==null?void 0:t.format};if(!L.hasSavedTemporalBucketPresentation(n))return;const o=L.readSavedTemporalBucketFormat({fieldId:e.id,dataType:e.dataType,granularity:r==="semantic"?t==null?void 0:t.granularity:e.granularity,...r==="card"?{format:e.format,dateFormat:e.dateFormat,customFormat:e.customFormat}:{format:t==null?void 0:t.format}});if(!o.ok)throw new Error(o.error.code);return o.format}function Rt(e,r,t=ye.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES){const n=te(e,"card"),o=te(e,"semantic"),a=e.semanticTemporalPresentation;return W.resolveTemporalBucketPresentation({metadata:r,...n?{cardFormat:n}:{},...o&&a?{semanticFormat:{granularity:a.granularity,format:o}}:{},locale:t.locale,styles:{dateStyle:t.dateStyle,dateTime:t.dateTime}})}function ze(e,r=W.DEFAULT_RESOLVED_TEMPORAL_STYLE_SET,t="en-US"){var i;const n=te(e,"card"),o=((i=e.semanticTemporalPresentation)==null?void 0:i.granularity)===e.granularity?te(e,"semantic"):void 0,a=n&&n.presentation.mode!=="auto"?n:o&&o.presentation.mode!=="auto"?o:{presentation:{mode:"auto"}};return a.presentation.mode==="auto"?{type:"temporal_bucket",locale:t,presentation:{mode:"auto",styles:r}}:{type:"temporal_bucket",locale:t,presentation:a.presentation}}function xt(e){const r=e.activation;if(!r)return{byColumnKey:new Map,byFieldId:new Map,byFieldRole:new Map};if(e.resultRowCount===0)return{byColumnKey:new Map,byFieldId:new Map,byFieldRole:new Map};const t=new Map((e.columns||[]).map(l=>[l.key,l])),n=new Map,o=new Map,a=new Map,i=r.fields.reduce((l,s)=>(l.set(s.id,(l.get(s.id)||0)+1),l),new Map),c=(l,s)=>{a.set(Ke(l.id,l.role),s),i.get(l.id)===1&&o.set(l.id,s)},m=(l,s,f)=>{if(s.granularity!==l.granularity)throw new K("invalid_temporal_bucket_metadata",`Result identity "${f}" declares ${s.granularity} buckets for active ${l.granularity} field "${l.id}".`,{cardId:e.card.id,fieldId:l.id,columnKey:f});const u=e.executionSnapshot&&e.dashboardId?$.findResolvedTemporalBucketFormat({snapshot:e.executionSnapshot,scope:{dashboardId:e.dashboardId,cardId:e.card.id,...e.attachmentIndex!==void 0?{attachmentIndex:e.attachmentIndex}:{}},target:{kind:"field",fieldId:l.id,role:l.role}}):void 0;if(e.executionSnapshot&&!u)throw new St({dashboardId:e.dashboardId,cardId:e.card.id,fieldId:l.id});return{columnKey:f,fieldId:l.id,role:l.role,metadata:s,resolved:u?W.resolveTemporalBucketPresentation({metadata:s,cardFormat:u,locale:u.locale,...u.presentation.mode==="auto"?{styles:u.presentation.styles}:{}}):Rt(l,s,e.valueFormatPreferences??ye.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES)}};for(const l of r.fields){const s=M.resolveQueryColumnKeyMapEntry(e.columnKeyMap,l.id,l.role);if(!s){if(e.columns===void 0&&e.columnKeyMap===void 0&&(e.resultRowCount===void 0||e.resultRowCount===0))continue;throw new K("missing_temporal_column_binding",`Activated temporal field "${l.id}" has no authoritative result-column binding.`,{cardId:e.card.id,fieldId:l.id,columnKey:l.name})}if(s.role==="pivotby"){const h=(e.columns||[]).filter(k=>k.pivotIdentity!==void 0),b=h.flatMap(k=>{var F;return(((F=k.pivotIdentity)==null?void 0:F.members)||[]).filter(B=>B.fieldId===l.id).map(B=>({column:k,member:B}))});if(b.length===0){if(h.length===0&&(e.card.type!=="pivotTable"||e.resultRowCount===0))continue;throw new de({cardId:e.card.id,fieldId:l.id,columnKey:s.outputKey||s.rawKey})}const T=b[0];if(!T.member.temporalBucket)throw new de({cardId:e.card.id,fieldId:l.id,columnKey:T.column.key});const g=Se.validateTemporalBucketMetadata(T.member.temporalBucket);if(!g.ok||!g.value)throw new K("invalid_temporal_bucket_metadata",g.ok?`Pivot result column "${T.column.key}" has no validated temporal bucket metadata.`:g.error.message,{cardId:e.card.id,fieldId:l.id,columnKey:T.column.key});const C=m(l,g.value,T.column.key);for(const{column:k,member:F}of b)if(!F.temporalBucket||JSON.stringify(F.temporalBucket)!==JSON.stringify(T.member.temporalBucket))throw new K("invalid_temporal_bucket_metadata",`Pivot result column "${k.key}" has contradictory bucket metadata for field "${l.id}".`,{cardId:e.card.id,fieldId:l.id,columnKey:k.key});c(l,C);continue}const f=s.outputKey||s.rawKey,u=t.get(f);if(!(u!=null&&u.temporalBucket))throw new de({cardId:e.card.id,fieldId:l.id,columnKey:f});const d=Se.validateTemporalBucketResultColumn(u,{metadataRequired:!0});if(!d.ok||!d.value)throw new K("invalid_temporal_bucket_metadata",d.ok?`Result column "${f}" has no validated temporal bucket metadata.`:d.error.message,{cardId:e.card.id,fieldId:l.id,columnKey:f});const v=m(l,d.value,f);n.set(f,v),c(l,v)}return{byColumnKey:n,byFieldId:o,byFieldRole:a}}function At(e){var t,n;const r=e.role?Ne({presentation:e.presentation,fieldId:e.fieldId,role:e.role}):(n=(t=e.presentation)==null?void 0:t.byFieldId)==null?void 0:n.get(e.fieldId);return r?ge({value:e.value,presentation:r}):e.value===null||e.value===void 0?"":String(e.value)}function ge(e){if(e.value===null||e.value===void 0)return"(Blank)";if(typeof e.value!="string")throw new K("invalid_temporal_bucket_value",`Canonical temporal column "${e.presentation.columnKey}" must contain a string or null.`,{fieldId:e.presentation.fieldId,columnKey:e.presentation.columnKey});try{return W.formatTemporalBucket({value:e.value,metadata:e.presentation.metadata,format:e.presentation.resolved.format})}catch(r){throw r instanceof W.TemporalBucketContractError?new K(r.code,r.message,{fieldId:e.presentation.fieldId,columnKey:e.presentation.columnKey}):r}}class _ extends Error{constructor(r,t,n){super(`${r}: ${t}`),this.code=r,this.context=n,Object.setPrototypeOf(this,_.prototype),this.name="RawTemporalPresentationBoundaryError"}}function Le(){return{type:"raw_temporal",presentation:{mode:"auto"}}}function Bt(e){if(e.locale||e.relative||e.timezone&&e.timezone!=="auto"||e.sourceTimezone&&e.sourceTimezone!=="auto"||e.prefix||e.suffix)throw new _("invalid_raw_temporal_format","Activated raw temporal presentation contains unsupported locale, relative-time, timezone, prefix, or suffix settings.")}function Ve(e){const r=e.format;if((r==null?void 0:r.type)==="date"&&(Bt(r),r.pattern))return{type:"raw_temporal",presentation:{mode:"pattern",dialect:"semaphor_tokens",pattern:r.pattern}};if(r)throw new _("invalid_raw_temporal_format",`Raw temporal detail field "${e.id}" has an incompatible authored format.`,{fieldId:e.id});if(e.dateFormat==="custom"){if(!e.customFormat)throw new _("invalid_raw_temporal_format",`Raw temporal detail field "${e.id}" selects a custom pattern but has no customFormat.`,{fieldId:e.id});return{type:"raw_temporal",presentation:{mode:"pattern",dialect:"semaphor_tokens",pattern:e.customFormat}}}return e.dateFormat?{type:"raw_temporal",presentation:{mode:"pattern",dialect:"semaphor_tokens",pattern:e.dateFormat}}:Le()}function ae(e){var i;if(e!=null&&e.useRelativeTime)return;if(!e)return Le();if(e.useCustomFormat&&!((i=e.customFormat)!=null&&i.trim()))throw new _("invalid_raw_temporal_format","Declared SQL temporal presentation selects a custom pattern but has no customFormat.",{reason:"missing_declared_sql_custom_date_format"});const r=e.useCustomFormat&&e.customFormat?e.customFormat:e.format,t=e.timezone,n=e.sourceTimezone,o=t&&t!=="auto"?{timezone:t}:void 0,a={sourceTimezone:n&&n!=="auto"?n:"UTC"};return r?{type:"raw_temporal",...o,...a,presentation:{mode:"pattern",dialect:"date_fns",pattern:r}}:{type:"raw_temporal",...o,...a,presentation:{mode:"auto"}}}function Pt(e){return e==="instant"?"yyyy-MM-dd'T'HH:mm:ssXXX":e==="wall_datetime"?"yyyy-MM-dd'T'HH:mm:ss":"yyyy-MM-dd"}function Dt(e){$.validateRawTemporalPattern({dialect:"date_fns",pattern:e.pattern,valueKind:e.valueKind})}function Mt(e){const r=ae(e.settings);if(!r)throw new _("invalid_raw_temporal_format","Relative-time SQL presentation does not have an absolute date preview.");const t=e.valueKind??(r.presentation.mode==="pattern"?"instant":"date"),n={kind:"raw_temporal",valueKind:t},o=e.value??(t==="date"?"2023-05-15":t==="wall_datetime"?"2023-05-15T14:30:45":"2023-05-15T14:30:45Z"),a=$.prepareRawTemporalFormatter({metadata:n,format:$.resolveRawTemporalFormat({format:r,preferences:e.preferences,calendar:{tz:e.calendarTimezone}})})(o);if(!a.ok)throw new _("invalid_raw_temporal_format",a.diagnostic.message);return a.text}function Ot(e){try{return{ok:!0,text:Mt(e)}}catch(r){return{ok:!1,message:r instanceof Error?r.message:"Invalid SQL temporal presentation."}}}function ve(e){var t;const r=e.effectiveCardConfig??e.card.config;return Y(e.card,r)==="freeform"&&!!((t=e.card.sql)!=null&&t.trim())&&!U(e.card.python||"").trim()}function qe(e){var r,t;return e.type!=="table"&&e.type!=="detailTable"||!ve({card:e})?!1:Object.values(((t=(r=e.preferences)==null?void 0:r.tablePrefs)==null?void 0:t.columnSettingsMap)||{}).some(n=>{var o,a,i;return n.type==="date"&&((o=n.dateFormat)==null?void 0:o.useRelativeTime)!==!0&&((a=n.dateFormat)==null?void 0:a.useCustomFormat)===!0&&!((i=n.dateFormat.customFormat)!=null&&i.trim())})}function Kt(e){var t,n,o;if(!qe(e))return e;const r=((n=(t=e.preferences)==null?void 0:t.tablePrefs)==null?void 0:n.columnSettingsMap)||{};return{...e,preferences:{...e.preferences,tablePrefs:{...(o=e.preferences)==null?void 0:o.tablePrefs,columnSettingsMap:Object.fromEntries(Object.entries(r).map(([a,i])=>{var c,m,l;return[a,i.type==="date"&&((c=i.dateFormat)==null?void 0:c.useRelativeTime)!==!0&&((m=i.dateFormat)==null?void 0:m.useCustomFormat)===!0&&!((l=i.dateFormat.customFormat)!=null&&l.trim())?{...i,dateFormat:{...i.dateFormat,format:"",useCustomFormat:!1,customFormat:""}}:i]}))}}}}function Nt(){return{activatedColumnKeys:new Set,byColumnKey:new Map,byFieldId:new Map}}function fe(e,r){return e===void 0?{kind:"invalid",error:r}:{kind:"invalid",error:e instanceof _?e:e instanceof $.RawTemporalFormatContractError?new _(e.code,e.message,r.context):new _(r.code,e instanceof Error?e.message:r.message,r.context)}}function Ue(e){var o;if(e.cardType!=="detailTable"||e.resultOwner!=="config")return{kind:"inactive"};if(!e.result)return{kind:"loading"};const{records:r,columns:t,columnKeyMap:n}=e.result;if(!Array.isArray(r)||!Array.isArray(t)||!n)return fe(void 0,new _("missing_raw_temporal_result_contract","Activated raw temporal detail results require records, columns, and columnKeyMap atomically."));try{const a=t.filter(s=>s.rawTemporal);if(a.length===0)return{kind:"inactive"};const i=new Map((((o=e.effectiveCardConfig)==null?void 0:o.detailColumns)||[]).map(s=>[s.id,s])),c=new Map,m=new Map;for(const s of a){const f=Array.from(i).flatMap(([C,k])=>{const F=M.resolveQueryColumnKeyMapEntry(n,C,"detail");return F&&F.role==="detail"&&(F.outputKey??F.rawKey)===s.key?[{field:k,binding:F}]:[]}),u=f.length===1?f[0]:null;if(!u||typeof u.binding.rawKey!="string"||u.binding.rawKey.trim().length===0||u.binding.outputKey!==void 0&&(typeof u.binding.outputKey!="string"||u.binding.outputKey.trim().length===0))throw new _("missing_raw_temporal_column_binding",`Raw temporal result column "${s.key}" does not have one valid exact detail result binding.`,{columnKey:s.key});const{field:d,binding:v}=u,h=v.outputKey??v.rawKey,b=xe.validateRawTemporalResultColumn(s,{metadataRequired:!0});if(!b)throw new _("invalid_raw_temporal_metadata",`Raw temporal result column "${h}" has no metadata.`,{fieldId:d.id,columnKey:h});const T=$.resolveRawTemporalFormat({format:Ve(d),preferences:e.preferences,calendar:e.calendar}),g={fieldId:d.id,columnKey:h,metadata:b,format:T,formatValue:$.prepareRawTemporalFormatter({metadata:b,format:T})};for(let C=0;C<r.length;C+=1)if(!Object.prototype.hasOwnProperty.call(r[C],h)||r[C][h]===void 0)throw new _("missing_raw_temporal_result_contract",`Raw temporal result row ${C} is missing column "${h}".`,{fieldId:d.id,columnKey:h});c.set(h,g),m.set(d.id,g)}const l={activatedColumnKeys:new Set(c.keys()),byColumnKey:c,byFieldId:m};return r.length===0?{kind:"loaded_empty",presentation:l}:{kind:"loaded_valid",presentation:l}}catch(a){return fe(a,new _("invalid_raw_temporal_metadata","Activated raw temporal result metadata is invalid."))}}function je(e){var n,o,a;const r=e.effectiveCardConfig??e.card.config,t=Y(e.card,r);if(e.card.type==="detailTable"&&t==="config"){const i=!!((n=e.columns)!=null&&n.some(c=>c.rawTemporal));return i&&e.records!==void 0&&!e.columnKeyMap?{kind:"invalid",error:new _("missing_raw_temporal_result_contract","Activated raw temporal detail results require records, columns, and columnKeyMap atomically.")}:e.records!==void 0&&!i?{kind:"inactive"}:_e(Ue({cardType:e.card.type,resultOwner:t,effectiveCardConfig:r,result:e.records===void 0||!e.columns||!e.columnKeyMap?void 0:{records:e.records,columns:e.columns,columnKeyMap:e.columnKeyMap},preferences:e.preferences,calendar:e.calendar}),e)}return _e(Lt({resultOwner:t,sql:e.card.sql,normalizedPython:U(e.card.python||""),records:e.records,columns:e.columns,columnSettings:(a=(o=e.card.preferences)==null?void 0:o.tablePrefs)==null?void 0:a.columnSettingsMap,preferences:e.preferences,calendar:e.calendar}),e)}function zt(e){var n,o,a;const r=e.effectiveCardConfig??e.card.config,t=Y(e.card,r);return e.card.type==="detailTable"&&t==="config"?!!((n=e.columns)!=null&&n.some(i=>i.rawTemporal)):ve(e)?Object.values(((a=(o=e.card.preferences)==null?void 0:o.tablePrefs)==null?void 0:a.columnSettingsMap)||{}).some(i=>{var c;return i.type==="date"&&!((c=i.dateFormat)!=null&&c.useRelativeTime)}):!1}function _e(e,r){if(!r.executionSnapshot||e.kind==="inactive"||e.kind==="loading"||e.kind==="invalid")return e;if(!r.dashboardId)return{kind:"invalid",error:new _("missing_raw_temporal_result_contract","A dashboard ID is required to resolve the captured raw temporal presentation.")};const t=new Map,n=new Map;for(const o of e.presentation.activatedColumnKeys){const a=$.findResolvedRawTemporalFormat({snapshot:r.executionSnapshot,scope:{dashboardId:r.dashboardId,cardId:r.card.id,...r.attachmentIndex!==void 0?{attachmentIndex:r.attachmentIndex}:{}},target:{kind:"column",columnKey:o}});if(!a)return{kind:"invalid",error:new $.MissingResolvedRawTemporalFormatError(o)};const i=e.presentation.byColumnKey.get(o);if(!i)continue;const c={...i,format:a,formatValue:$.prepareRawTemporalFormatter({metadata:i.metadata,format:a})};t.set(i.columnKey,c),i.fieldId&&n.set(i.fieldId,c)}return{...e,presentation:{activatedColumnKeys:e.presentation.activatedColumnKeys,byColumnKey:t,byFieldId:n}}}function Lt(e){var t,n;if(e.resultOwner!=="freeform"||!((t=e.sql)!=null&&t.trim())||(n=e.normalizedPython)!=null&&n.trim())return{kind:"inactive"};const r=Object.entries(e.columnSettings||{}).filter(([,o])=>{var a;return o.type==="date"&&!((a=o.dateFormat)!=null&&a.useRelativeTime)});if(r.length===0)return{kind:"inactive"};if(!e.records)return{kind:"loading"};try{const o=new Map,a=new Set(r.map(([l])=>l)),i=new Map,c=[...e.columns||[]];for(const[l,s]of r){const f=ae(s.dateFormat);if(!f)continue;const u=$.classifyDeclaredSqlTemporalColumn({columnKey:l,values:e.records.map(b=>{if(!Object.prototype.hasOwnProperty.call(b,l))throw new _("missing_raw_temporal_result_contract",`Declared SQL temporal column "${l}" is absent from a physical result row.`,{columnKey:l});const T=b[l];return T===null||typeof T=="string"?T:String(T)})});if(i.set(l,u),u.status!=="classified")continue;let d=c.findIndex(b=>b.key===l);if(e.columns&&d<0)throw new _("missing_raw_temporal_result_contract",`Classified SQL temporal column "${l}" is absent from result columns.`,{columnKey:l});d<0&&(d=c.length,c.push({key:l,name:l,label:l,role:"dimension",dataType:"string"}));const v={...c[d],role:"date",dataType:u.metadata.valueKind==="date"?"date":"datetime",rawTemporal:u.metadata};xe.validateRawTemporalResultColumn(v,{metadataRequired:!0}),c[d]=v;const h=$.resolveRawTemporalFormat({format:f,preferences:e.preferences,calendar:e.calendar});o.set(l,{columnKey:l,metadata:u.metadata,format:h,formatValue:$.prepareRawTemporalFormatter({metadata:u.metadata,format:h})})}const m={...Nt(),activatedColumnKeys:a,byColumnKey:o};return e.records.length===0?{kind:"loaded_empty",presentation:m,adaptedColumns:c,sqlClassifications:i}:{kind:"loaded_valid",presentation:m,adaptedColumns:c,sqlClassifications:i}}catch(o){return fe(o,new _("invalid_raw_temporal_format","Declared SQL raw temporal presentation is invalid."))}}function Vt(e){if(e.value!==null&&typeof e.value!="string")return{value:e.value,label:String(e.value),result:{ok:!1,text:String(e.value),diagnostic:{code:"invalid_raw_temporal_value",message:`Raw temporal column "${e.presentation.columnKey}" must contain a string or null.`}}};const r=e.presentation.formatValue(e.value);return{value:e.value,label:r.text,result:r}}function qt(e){if(!e.result||typeof e.result!="object")return!1;const r=e.result;if(e.expectedResultOwner!==void 0&&r.resultOwner!==e.expectedResultOwner||!Array.isArray(r.records))return!1;const t=je({card:e.card,effectiveCardConfig:e.effectiveCardConfig,records:r.records,columns:r.columns,columnKeyMap:r.columnKeyMap,preferences:ye.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES,calendar:{tz:"UTC"}});return t.kind==="inactive"||t.kind==="loaded_empty"||t.kind==="loaded_valid"}function Fe(e){return!e||typeof e!="object"?!1:Array.isArray(e.cards)}function Ge(e){if(!e)return null;if(typeof e=="string")try{const r=JSON.parse(e);return Fe(r)?r:null}catch{return null}return Fe(e)?e:null}function be(e){var r;return(r=e==null?void 0:e.cards)!=null&&r.length?e.activeCardId&&e.cards.find(t=>t.id===e.activeCardId)||e.cards[0]:null}function Ut(e){var t;const r=(e==null?void 0:e.frameObject)??((t=e==null?void 0:e.visual)==null?void 0:t.frameObject);return be(Ge(r))}function ie(e){if(!(e!=null&&e.expectedType))return"table";const r=Array.isArray(e.expectedType)?e.expectedType[0]:e.expectedType;return Gt(r)?r:"table"}const jt=["bar","horizontalBar","line","area","stackedArea","combo","pie","doughnut","radar","polarArea","bubble","scatter","stackedBar","stackedLine","table","pivotTable","aggregateTable","detailTable","tableBuilder","kpi","pyramid","tornado","range","text","map","funnel","bullet","heatmap","treemap","custom"];function Gt(e){return jt.includes(e)}function Q(e){const r=e.position;if(typeof r=="number")return r;if(typeof r=="string"){const t=r.match(/\d+/);if(t){const n=Number(t[0]);if(!Number.isNaN(n))return n}}return Number.POSITIVE_INFINITY}function H(e){if(typeof e=="number")return{kind:"number",start:e,end:e};if(typeof e=="string"){const r=e.match(/^(\d+)$/);if(r){const o=Number(r[1]);return{kind:"number",start:o,end:o}}const t=e.match(/^(\d+)-(\d+)$/);if(t){const o=Number(t[1]),a=Number(t[2]);return{kind:"range",start:o,end:a}}const n=e.match(/^(\d+)\+$/);if(n)return{kind:"dynamic",start:Number(n[1]),end:Number.POSITIVE_INFINITY}}return null}function He(e){return!e||e.length===0?void 0:[...e].sort((t,n)=>Q(t)-Q(n))[0]}function Ie(e,r){if(!e||e.length===0)return;const t=[],n=[],o=[];e.forEach(s=>{const f=H(s.position);f&&(f.kind==="number"?t.push(s):f.kind==="range"?n.push(s):f.kind==="dynamic"&&o.push(s))});const a=t.find(s=>{const f=H(s.position);return(f==null?void 0:f.kind)==="number"&&f.start===r});if(a)return a;const c=n.sort((s,f)=>Q(s)-Q(f)).find(s=>{const f=H(s.position);return(f==null?void 0:f.kind)==="range"&&r>=f.start&&r<=f.end});if(c)return c;const l=o.map(s=>({slot:s,parsed:H(s.position)})).filter(s=>{var f;return((f=s.parsed)==null?void 0:f.kind)==="dynamic"}).sort((s,f)=>{var u,d;return(((u=s.parsed)==null?void 0:u.start)??0)-(((d=f.parsed)==null?void 0:d.start)??0)}).filter(s=>{var f;return r>=(((f=s.parsed)==null?void 0:f.start)??0)}).sort((s,f)=>{var u,d;return(((u=f.parsed)==null?void 0:u.start)??0)-(((d=s.parsed)==null?void 0:d.start)??0)})[0];return l==null?void 0:l.slot}function Ht(e,r){const t=Ie(e,r);if(t)return ie(t)}function We(e,r){var n;const t=(n=e==null?void 0:e.customCardPreferences)==null?void 0:n.slotIndex;return typeof t=="number"?t:r}function pe(e,r){var t;if(!((t=e==null?void 0:e.customCardPreferences)!=null&&t.url))return!1;if(e.type==="custom"||e.customCardPreferences.visualType==="multiple"||e.customCardPreferences.dataInputCardIds||(e.customCardPreferences.minInputs||0)>1||(e.customCardPreferences.maxInputs||0)>1)return!0;if(r&&r.length>1){const n=r.filter(o=>{var a;return typeof((a=o.customCardPreferences)==null?void 0:a.slotIndex)=="number"});if(n.length>1&&n.some(o=>o.id!==e.id))return!0}return!1}function Qe(e){const r=[];let t=-1;e.forEach((n,o)=>{const a=We(n,o);a>t&&(t=a),r[a]=n??null});for(let n=0;n<=t;n+=1)n in r||(r[n]=null);return r}function Wt(e){return e.map((r,t)=>!r.customCardPreferences||r.customCardPreferences.slotIndex===t?r:{...r,customCardPreferences:{...r.customCardPreferences,slotIndex:t}})}function Qt(e){const r=He(e);if(r)return ie(r)}function Yt(e,r,t){if(!e)return;const n=Ht(t,r);return e.type==="custom"&&n?n:e.type}function Jt(e,r,t){var v;const n={dataSource:t.dataSource,connectionId:t.connectionId,lastSelectedDatabase:t.lastSelectedDatabase,lastSelectedSchema:t.lastSelectedSchema,lastSelectedTable:t.lastSelectedTable,lastSelectedDatamodelId:t.lastSelectedDatamodelId,datamodelId:t.datamodelId},o={type:"component",visualType:"multiple",url:r.url,componentName:r.name,icon:r.icon,pluginChartType:r.chartType,minInputs:r.minInputs,maxInputs:r.maxInputs},a=r.minInputs||1,c=e.map(h=>({slot:h,parsed:H(h.position)})).filter(h=>h.parsed!==null).reduce((h,b)=>{const T=b.parsed.end;return Number.isFinite(T)?Math.max(h,T):h},-1),m=Math.max(a,c+1),l=He(e),s=l?Q(l):0;let f=!1;const u=[];for(let h=0;h<m;h+=1){const b=Ie(e,h),T=ie(b),g=!f&&h===s,C=h,k={...n,id:L.v4(),title:(g?l==null?void 0:l.label:b==null?void 0:b.label)||`Tab ${h+1}`,tabTitle:(g?l==null?void 0:l.label:b==null?void 0:b.label)||`Tab ${h+1}`,description:(g?l==null?void 0:l.description:b==null?void 0:b.description)||"",type:T,sql:"",preferences:{onClickFilter:[{columnIndex:0,expression:""}]},...g&&{customCardPreferences:{...o,slotIndex:C}},...!g&&{customCardPreferences:{slotIndex:C}}};g&&(f=!0),u.push(k)}if(!f&&u.length>0){const h=((v=u[0].customCardPreferences)==null?void 0:v.slotIndex)??0;u[0]={...u[0],type:u[0].type,customCardPreferences:{...o,slotIndex:h}}}const d=u.findIndex(h=>{var b;return!!((b=h.customCardPreferences)!=null&&b.url)});if(d>0){const[h]=u.splice(d,1);u.unshift(h)}return u}function Ye({frame:e,configCard:r,isMultiInputVisual:t}){var o;if(!t||!r)return e.cards;const n=(o=r.customCardPreferences)==null?void 0:o.dataInputCardIds;return n?Object.keys(n).sort((a,i)=>Number(a)-Number(i)).map(a=>{var c;const i=(c=n[a])==null?void 0:c.cardId;return e.cards.find(m=>m.id===i)||null}):e.cards}function Je(e,r){return r&&pe(r,e.cards)?r:e.cards.find(t=>pe(t,e.cards))||null}function Xe(e,r){var o,a;if(!e)return null;const t=r==null?void 0:r.visualType;if(t)return t;if(r!=null&&r.slots&&r.slots.length>0||((r==null?void 0:r.minInputs)||0)>1||((r==null?void 0:r.maxInputs)||0)>1||((r==null?void 0:r.dataInputs)||[]).length>1)return"multiple";const n=(o=e.customCardPreferences)==null?void 0:o.visualType;return n||((a=e.customCardPreferences)!=null&&a.dataInputCardIds?"multiple":null)}function Xt(e){return e.visualType==="multiple"||e.slots&&e.slots.length>0||(e.minInputs||0)>1||(e.maxInputs||0)>1||(e.dataInputs||[]).length>1?"multiple":"single"}function Zt(e){return Array.isArray(e)?{records:e}:e}class X extends Error{constructor(t){const n=t.cardId?`card "${t.cardId}"`:t.sheetId?`sheet "${t.sheetId}"`:`dashboard "${t.dashboardId}"`;super(`Unable to resolve ${n} while capturing report presentation. Refresh the authoring page and select the attachment again.`);R(this,"code","temporal_snapshot_target_not_found");R(this,"selection");this.name="TemporalSnapshotSelectionError",this.selection=t}}function er(e,r){var o;const t=[],n=new Map;for(const a of r){if(a.dashboardId!==e.id)throw new X(a);const i=(e.sheets||[]).filter(m=>!a.sheetId||a.sheetId===m.id);if(a.sheetId&&i.length===0)throw new X(a);let c=!a.cardId;for(const m of i){const l=(((o=m.document)==null?void 0:o.sections)||[]).flatMap(u=>u.type==="table"||u.type==="chart"?[u.card]:[]),s=(m.frames||[]).flatMap(u=>tr(u,a.cardId));s.length>0&&(c=!0);const f=[...s,...(m.cards||[]).filter(u=>!a.cardId||a.cardId===u.id),...l.filter(u=>!a.cardId||a.cardId===u.id)];for(const u of f){c=!0;const d=n.get(a.attachmentIndex)??new Set;d.has(u.id)||(d.add(u.id),n.set(a.attachmentIndex,d),t.push({card:u,...a.attachmentIndex!==void 0?{attachmentIndex:a.attachmentIndex}:{}}))}}if(!c)throw new X(a)}return t}function tr(e,r){var i;const t=r?(i=e.cards)==null?void 0:i.find(c=>c.id===r):be(e);if(!t)return[];const n=Je(e,t),o=(e.cards||[]).filter(c=>{var m;return typeof((m=c.customCardPreferences)==null?void 0:m.slotIndex)=="number"}).length>1,a=n!=null&&(Xe(n)==="multiple"||o);return!n||!a?[t]:Qe(Ye({frame:e,configCard:n,isMultiInputVisual:!0})).filter(c=>c!==null)}function rr(e){return er(e.dashboard,e.selections).flatMap(({card:r,attachmentIndex:t})=>{var s,f,u,d;const n=((s=e.resolveCardConfig)==null?void 0:s.call(e,r))??r.config,o=De({card:r,cardConfig:n}),a={dashboardId:e.dashboard.id,cardId:r.id,...t!==void 0?{attachmentIndex:t}:{}},i=o?o.fields.map(v=>({scope:a,target:{kind:"field",fieldId:v.id,role:v.role},format:ze(v,{dateStyle:e.valueFormatPreferences.dateStyle,dateTime:{...e.valueFormatPreferences.dateTime}},e.valueFormatPreferences.locale)})):[],c=[],m=Y(r,n),l=U(r.python||"");if(r.type==="detailTable"&&m==="config"){const v=(n==null?void 0:n.detailColumns)||[],h=[...((n==null?void 0:n.groupByColumns)||[]).map(g=>({field:g,role:"groupby"})),...((n==null?void 0:n.metricColumns)||[]).map(g=>({field:g,role:"metric"})),...((n==null?void 0:n.pivotByColumns)||[]).map(g=>({field:g,role:"pivotby"})),...v.map(g=>({field:g,role:"detail"}))],b=new Map,T=new Set(h.map(({field:g,role:C})=>ce.resolveCanonicalResultRawKey(g,C)));for(const{field:g}of h){const C=g.label;C&&b.set(C,(b.get(C)||0)+1)}for(const g of v){const C=q.normalizeAnalyticsCatalogDataType(g.dataType);if(C!=="date"&&C!=="datetime")continue;const k=ce.resolveCanonicalDetailResultRawKey(g),F=g.label,B=ce.resolveCanonicalResultOutputKey({label:F,labelCount:F&&b.get(F)||0,rawKey:k,rawKeys:T});if(!B)throw new X(a);c.push({scope:a,target:{kind:"column",columnKey:B},format:$.resolveRawTemporalFormat({format:Ve(g),preferences:e.valueFormatPreferences,calendar:e.calendar})})}}else if(m==="freeform"&&((f=r.sql)!=null&&f.trim())&&!l.trim())for(const[v,h]of Object.entries(((d=(u=r.preferences)==null?void 0:u.tablePrefs)==null?void 0:d.columnSettingsMap)||{})){if(h.type!=="date")continue;const b=ae(h.dateFormat);b&&c.push({scope:a,target:{kind:"column",columnKey:v},format:$.resolveRawTemporalFormat({format:b,preferences:e.valueFormatPreferences,calendar:e.calendar})})}return[...i,...c]})}function nr(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function P(e,r,t){return nr(e)?e:(t.push({field:r,message:"Expected an object."}),{})}function D(e,r,t,n){const o=new Set(t);Object.keys(e).forEach(a=>{o.has(a)||n.push({field:`${r}.${a}`,message:"Unexpected property."})})}function N(e,r,t,n,o={}){if(e==null)return;if(typeof e!="string"){n.push({field:r,message:"Expected a string."});return}const a=o.trim===!1?e:e.trim();if(!o.allowEmpty&&a.length===0){n.push({field:r,message:"Expected a non-empty string."});return}if(a.length>t){n.push({field:r,message:`Expected ${t} characters or fewer.`});return}return a}function Te(e,r,t){const n=N(e,r,2e3,t);if(n)try{return new URL(n),n}catch{t.push({field:r,message:"Expected an absolute URL."});return}}function Re(e,r,t){const n=P(e,r,t);D(n,r,["tokens","components"],t);const o={};if(n.tokens!==void 0){const a=P(n.tokens,`${r}.tokens`,t);D(a,`${r}.tokens`,["color","typography"],t);const i={};if(a.color!==void 0){const c=P(a.color,`${r}.tokens.color`,t),m=["background","foreground","muted","mutedForeground","border","primary","primaryForeground","positive","negative","warning","info"];D(c,`${r}.tokens.color`,m,t);const l={};m.forEach(s=>{const f=N(c[s],`${r}.tokens.color.${s}`,120,t);f!==void 0&&(l[s]=f)}),i.color=l}if(a.typography!==void 0){const c=P(a.typography,`${r}.tokens.typography`,t);D(c,`${r}.tokens.typography`,["fontFamily","monoFontFamily"],t);const m=N(c.fontFamily,`${r}.tokens.typography.fontFamily`,500,t,{allowEmpty:!0}),l=N(c.monoFontFamily,`${r}.tokens.typography.monoFontFamily`,500,t,{allowEmpty:!0});i.typography={...m!==void 0?{fontFamily:m}:{},...l!==void 0?{monoFontFamily:l}:{}}}o.tokens=i}if(n.components!==void 0){const a=P(n.components,`${r}.components`,t);if(D(a,`${r}.components`,["chart"],t),a.chart!==void 0){const i=P(a.chart,`${r}.components.chart`,t);D(i,`${r}.components.chart`,["palette"],t);let c;i.palette!==void 0&&(Array.isArray(i.palette)?i.palette.length>20?t.push({field:`${r}.components.chart.palette`,message:"Expected 20 colors or fewer."}):c=i.palette.map((m,l)=>N(m,`${r}.components.chart.palette.${l}`,120,t)).filter(m=>m!==void 0):t.push({field:`${r}.components.chart.palette`,message:"Expected an array."})),o.components={chart:c?{palette:c}:{}}}}return o}function or(e,r){const t="presentation.appearance",n=P(e,t,r);D(n,t,["version","schemes"],r);const o={};if(n.version!==void 0&&(typeof n.version!="number"||!Number.isFinite(n.version)?r.push({field:`${t}.version`,message:"Expected a number."}):o.version=n.version),n.schemes!==void 0){const a=P(n.schemes,`${t}.schemes`,r);D(a,`${t}.schemes`,["light","dark"],r),o.schemes={...a.light!==void 0?{light:Re(a.light,`${t}.schemes.light`,r)}:{},...a.dark!==void 0?{dark:Re(a.dark,`${t}.schemes.dark`,r)}:{}}}return o}function ar(e,r){const t="presentation.brandOverrides",n=P(e,t,r);D(n,t,["brandName","logoUrl","link"],r);const o=N(n.brandName,`${t}.brandName`,200,r),a=Te(n.logoUrl,`${t}.logoUrl`,r),i=N(n.link,`${t}.link`,120,r);return{...o!==void 0?{brandName:o}:{},...a!==void 0?{logoUrl:a}:{},...i!==void 0?{link:i}:{}}}function ir(e,r){const t="presentation.fragments",n=P(e,t,r),o=["preHeaderText","headerBannerHtml","signatureHtml","footerHtml","disclaimerHtml","unsubscribeUrl"];D(n,t,o,r);const a={};return o.forEach(i=>{const c=i==="unsubscribeUrl"?Te(n[i],`${t}.${i}`,r):N(n[i],`${t}.${i}`,i==="preHeaderText"?200:5e3,r,{trim:i==="preHeaderText"});c!==void 0&&(a[i]=c)}),a}function lr(e){const r=[],t={};if(e.appearance!==void 0&&(t.appearance=or(e.appearance,r)),e.brandOverrides!==void 0&&(t.brandOverrides=ar(e.brandOverrides,r)),e.fragments!==void 0&&(t.fragments=ir(e.fragments,r)),e.viewUrl!==void 0){const n=Te(e.viewUrl,"presentation.viewUrl",r);n!==void 0&&(t.viewUrl=n)}return{value:t,issues:r}}const Ze=["SUN","MON","TUE","WED","THU","FRI","SAT"],cr=new Map(Ze.map((e,r)=>[e,r])),dr={cadence:"weekly",hour:9,minute:0,weekdays:[1]};function sr(e){if(typeof e!="string"||e.length===0||e!==e.trim()||/^(?:(?:UTC|GMT)[+-]|[+-]\d{2}:\d{2}$)/.test(e))return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}function mr(e){return Number.isInteger(e.minute)&&e.minute>=0&&e.minute<=59&&Number.isInteger(e.hour)&&e.hour>=0&&e.hour<=23}function et(e){if(e.length===0)return null;const r=[...e].sort((t,n)=>t-n);return r.some((t,n)=>!Number.isInteger(t)||t<0||t>6||n>0&&t===r[n-1])?null:r}function ur(e){if(!mr(e))throw new Error("Choose a valid schedule time.");const r=`${e.minute} ${e.hour}`;switch(e.cadence){case"daily":return`${r} * * *`;case"weekly":{const t=et(e.weekdays);if(!t)throw new Error("Choose at least one weekday.");return`${r} * * ${t.map(n=>Ze[n]).join(",")}`}case"twice_monthly":return`${r} 1,15 * *`;case"monthly":return`${r} 1 * *`}}function tt(e){if(typeof e!="string"||e.length===0)return{ok:!1,issue:"Choose a supported schedule."};if(e!==e.trim()||e.includes(" "))return{ok:!1,issue:"Choose a supported schedule."};const r=e.split(" ");if(r.length!==5)return{ok:!1,issue:"Choose a supported schedule."};const[t,n,o,a,i]=r;if(!/^(0|[1-9]\d?)$/.test(t)||!/^(0|[1-9]\d?)$/.test(n))return{ok:!1,issue:"Choose a supported schedule."};const c=Number(t),m=Number(n);if(c>59||m>23||a!=="*")return{ok:!1,issue:"Choose a supported schedule."};if(o==="*"&&i==="*")return{ok:!0,value:{cadence:"daily",hour:m,minute:c,weekdays:[]}};if(o==="*"&&i!=="*"){const s=i.split(",").map(d=>cr.get(d));if(s.some(d=>d===void 0))return{ok:!1,issue:"Choose a supported schedule."};const f=s,u=et(f);return!u||u.some((d,v)=>d!==f[v])?{ok:!1,issue:"Choose a supported schedule."}:{ok:!0,value:{cadence:"weekly",hour:m,minute:c,weekdays:u}}}return o==="1,15"&&i==="*"?{ok:!0,value:{cadence:"twice_monthly",hour:m,minute:c,weekdays:[]}}:o==="1"&&i==="*"?{ok:!0,value:{cadence:"monthly",hour:m,minute:c,weekdays:[]}}:{ok:!1,issue:"Choose a supported schedule."}}function fr(e,r,t){return new Intl.DateTimeFormat(t,{hour:"numeric",minute:"2-digit",timeZone:"UTC"}).format(new Date(Date.UTC(2020,0,1,e,r)))}function pr(e,r){var t;if(e==="UTC")return"UTC";try{return((t=new Intl.DateTimeFormat(r,{timeZone:e,timeZoneName:"longGeneric"}).formatToParts(new Date(Date.UTC(2020,0,1))).find(o=>o.type==="timeZoneName"))==null?void 0:t.value)??e}catch{return null}}function yr(e,r,t="en-US"){const n=tt(e);if(!n.ok)return null;try{const o=fr(n.value.hour,n.value.minute,t),a=pr(r,t);if(!a)return null;switch(n.value.cadence){case"daily":return`Daily at ${o} ${a}`;case"weekly":{const i=new Intl.DateTimeFormat(t,{weekday:"long",timeZone:"UTC"});return`${n.value.weekdays.map(m=>i.format(new Date(Date.UTC(2023,0,1+m)))).join(" and ")} at ${o} ${a}`}case"twice_monthly":return`On the 1st and 15th at ${o} ${a}`;case"monthly":return`Monthly on the 1st at ${o} ${a}`}}catch{return null}}const hr=new Set(["table","aggregateTable","pivotTable","detailTable"]),gr=new Set(["bar","horizontalBar","line","area","stackedArea","combo","pie","doughnut","radar","polarArea","bubble","scatter","stackedBar","stackedLine","table","pivotTable","aggregateTable","matrixTable","detailTable","kpi","pyramid","tornado","range","map","funnel","bullet","heatmap","treemap","custom"]);function vr(e){var n,o,a;const r=gr.has(e.type)&&(e.type!=="custom"||!!((n=e.customCardPreferences)!=null&&n.url));return e.type==="text"||!r||L.isCardUnconfigured(e)?{formats:[],defaultFormat:null}:{formats:rt({cardType:e.type,allowDownload:(o=e.preferences)==null?void 0:o.allowDownload}),defaultFormat:nt({cardType:e.type,allowDownload:(a=e.preferences)==null?void 0:a.allowDownload})}}function rt(e){return e.allowDownload===!1?["pdf"]:["pdf","csv"]}function nt(e){return hr.has(e.cardType)&&e.allowDownload!==!1?"csv":"pdf"}function br(e){return e!=null&&e.role?e.type==="tenant"?e.role==="POWER_USER":["AUTHOR","ADMIN","SUPER_ADMIN"].includes(e.role):!1}function Ir(e){return e.canCreate?[...e.scheduledReportAvailable?["scheduled_report"]:[],...e.analyticalBriefingsEnabled?["analytical_briefing"]:[]]:[]}function ot(e){const r=(e==null?void 0:e.channels)??[];return r.length===1&&r[0]==="EMAIL"}function at(e){return e.body.type==="generated_analysis"?"Analytical briefing":e.body.type==="custom_message"&&e.attachments.length>0&&ot(e.deliveryConfig)?e.scheduleExpr?"Scheduled report":"On-demand report":"Plain briefing"}function Tr(e){const r=at(e),t=r==="Scheduled report"||r==="On-demand report"?"report":"briefing";return{typeLabel:r,noun:t,pluralNoun:t==="report"?"reports":"briefings"}}const re="BRIEFING",it=["markdown","html"],ne=["markdown"],Z=20,y={name:500,description:2e3,instruction:5e4,customMessage:5e4,contentTitle:500,contentSummary:2e4,contentText:5e3,contentSql:5e4,contentItem:2e3,contentCell:500,attachmentTitle:500,presentationAudience:1e3,presentationTone:500,presentationFormat:2e3,id:500},x={maxBlocks:50,maxTableRows:100,maxTableColumns:20,maxTableCellCharacters:y.contentCell,maxParagraphCharacters:y.contentText,maxFindingCharacters:y.contentText,maxListItems:100,maxKpiTiles:8};function lt(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;const r=e;if(typeof r.value!="number"||!Number.isFinite(r.value))return!1;const t=r.target;if(t===null||typeof t!="object"||Array.isArray(t))return!1;const n=t;return(n.kind==="metric"&&typeof n.metricId=="string"&&!!n.metricId.trim()||n.kind==="column"&&typeof n.columnKey=="string"&&!!n.columnKey.trim()||n.kind==="matrix_measure"&&typeof n.measureId=="string"&&!!n.measureId.trim())&&$.parseResolvedNumericCanonicalFormat(r.format).ok}function ct(e){return e==null?"":lt(e)?$.formatNumericCanonical(e.value,e.format):String(e)}function Cr(e){return[e.delta,e.percentChange].filter(r=>r!=null).map(ct).filter(Boolean).join(" / ")}const dt=new Set(it),wr=new Set(["EMAIL","WEBHOOK","SLACK","IN_APP","TELEGRAM"]),se={maxToolCalls:{min:1,max:100},maxPlanningIterations:{min:1,max:10},maxRows:{min:1,max:1e5},timeoutMs:{min:1e3,max:30*6e4}},Er=new Set(["letter","legal","a4","a3","tabloid"]),$r=new Set(["portrait","landscape"]),Sr=new Set([",",";"," "]),kr=new Set(["current","all"]),_r=new Set(["concise","balanced","detailed"]),Fr=new Set(["info","positive","warning","critical"]),Rr=new Set(["text","number","currency","percent","date","boolean"]),xr=new Set(["left","center","right"]),Ar=["pageSize","orientation","includeFilters","includeTimestamp","delimiter","includeHeaders","useFormattedValues","sheetSelection","currentSheetId","currentSheetName","filterValues","inlineFilterValues","sheetFilterValues","filterLine","controlValues","controlDefinitions","cardControlDefinitions","controlBindings","tablePreferences","dashboardInputExecutionSnapshot","selectedSheetId","cardType","allowDownload","theme"];class J extends Error{constructor(t){super(t.map(n=>`${n.field}: ${n.message}`).join("; "));R(this,"issues");this.name="BriefingContractError",this.issues=t}}function st(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function p(e,r,t){e.push({field:r,message:t})}function S(e,r,t){return st(e)?e:(p(t,r,"Expected an object."),{})}function I(e,r,t,n){const o=new Set(t);Object.keys(e).forEach(a=>{o.has(a)||p(n,r?`${r}.${a}`:a,`Unexpected field "${a}".`)})}function w(e,r,t,n){if(typeof e!="string")return p(n,r,"Expected a string."),"";const o=e.trim();return o?(o.length>t&&p(n,r,`Must be ${t} characters or fewer.`),o):(p(n,r,"Required value cannot be empty."),"")}function E(e,r,t,n){if(e==null)return;if(typeof e!="string"){p(n,r,"Expected a string.");return}const o=e.trim();if(o)return o.length>t&&p(n,r,`Must be ${t} characters or fewer.`),o}function Br(e,r,t,n){if(typeof e!="string")return p(n,r,"Expected a string."),"";const o=e.trim();return o.length>t&&p(n,r,`Must be ${t} characters or fewer.`),o}function Pr(e,r,t){if(e!=null){if(!Number.isInteger(e)||Number(e)<0){p(t,r,"Expected a non-negative integer.");return}return Number(e)}}function A(e,r,t,n={}){if(e==null)return n.required?(p(t,r,"Expected at least one evidence id."),[]):void 0;if(!Array.isArray(e))return p(t,r,"Expected an array."),n.required?[]:void 0;const o=[];return e.forEach((a,i)=>{const c=w(a,`${r}.${i}`,y.id,t);c&&!o.includes(c)&&o.push(c)}),n.required&&o.length===0&&p(t,r,"Expected at least one evidence id."),o.length>0||n.required?o:void 0}function V(e,r,t,n){return e==null?r:typeof e!="boolean"?(p(n,t,"Expected a boolean."),r):e}function Dr(e,r){return e==null?"ACTIVE":e==="ACTIVE"||e==="PAUSED"||e==="DISABLED"?e:(p(r,"status","Expected ACTIVE, PAUSED, or DISABLED."),"ACTIVE")}function Mr(e){return e.includes("@")&&e.includes(".")&&!e.includes(" ")}function mt(e,r){if(e==null)return{type:"project"};const t=S(e,"source",r),n=t.type;return n==="project"?(I(t,"source",["type"],r),{type:"project"}):n==="dashboard"?(I(t,"source",["type","dashboardId"],r),{type:"dashboard",dashboardId:w(t.dashboardId,"source.dashboardId",y.id,r)}):(p(r,"source.type","Expected project or dashboard."),{type:"project"})}function ut(e,r){const t=S(e,"body",r),n=t.type;return n==="generated_analysis"?(I(t,"body",["type","instruction"],r),{type:"generated_analysis",instruction:w(t.instruction,"body.instruction",y.instruction,r)}):n==="custom_message"?(I(t,"body",["type","message"],r),{type:"custom_message",message:Br(t.message,"body.message",y.customMessage,r)}):n==="none"?(I(t,"body",["type"],r),{type:"none"}):(p(r,"body.type","Expected generated_analysis, custom_message, or none."),{type:"none"})}function Or(e,r){if(e==null)return[...ne];if(!Array.isArray(e))return p(r,"presentation.artifactFormats","Expected an array."),[...ne];if(e.length===0)return p(r,"presentation.artifactFormats","Choose at least one artifact format."),[];const t=[];return e.forEach((n,o)=>{if(typeof n!="string"||!dt.has(n)){p(r,`presentation.artifactFormats.${o}`,"Expected markdown or html.");return}t.includes(n)||t.push(n)}),t}function ft(e,r){if(e==null)return{artifactFormats:[...ne],includeEvidence:!0,includeSql:!0};const t=S(e,"presentation",r);I(t,"presentation",["artifactFormats","includeEvidence","includeSql","audience","tone","format","appearance","brandOverrides","fragments","viewUrl"],r);const n={artifactFormats:Or(t.artifactFormats,r),includeEvidence:V(t.includeEvidence,!0,"presentation.includeEvidence",r),includeSql:V(t.includeSql,!0,"presentation.includeSql",r)},o=E(t.audience,"presentation.audience",y.presentationAudience,r),a=E(t.tone,"presentation.tone",y.presentationTone,r),i=E(t.format,"presentation.format",y.presentationFormat,r);o&&(n.audience=o),a&&(n.tone=a),i&&(n.format=i);const c=lr(t);return c.issues.forEach(m=>p(r,m.field,m.message)),Object.assign(n,c.value),n}function Kr(e,r,t){return Array.isArray(e)?(e.length===0&&p(t,r,"Expected at least one item."),e.length>x.maxListItems&&p(t,r,`Must have ${x.maxListItems} items or fewer.`),e.slice(0,x.maxListItems).map((n,o)=>w(n,`${r}.${o}`,y.contentItem,t)).filter(Boolean)):(p(t,r,"Expected an array."),[])}function Nr(e,r,t){const n=S(e,r,t);if(n.kind==="metric")return I(n,r,["kind","metricId"],t),{kind:"metric",metricId:w(n.metricId,`${r}.metricId`,y.id,t)};if(n.kind==="column")return I(n,r,["kind","columnKey"],t),{kind:"column",columnKey:w(n.columnKey,`${r}.columnKey`,y.id,t)};if(n.kind==="matrix_measure")return I(n,r,["kind","measureId"],t),{kind:"matrix_measure",measureId:w(n.measureId,`${r}.measureId`,y.id,t)};p(t,`${r}.kind`,"Expected metric, column, or matrix_measure.")}function pt(e,r,t){if(e===null||typeof e!="object"||Array.isArray(e))return;const n=S(e,r,t);if(!Object.prototype.hasOwnProperty.call(n,"target")&&!Object.prototype.hasOwnProperty.call(n,"format"))return;I(n,r,["value","target","format"],t),(typeof n.value!="number"||!Number.isFinite(n.value))&&p(t,`${r}.value`,"Expected a finite number.");const o=Nr(n.target,`${r}.target`,t),a=$.parseResolvedNumericCanonicalFormat(n.format);if(a.ok||a.issues.forEach(i=>p(t,i.path==="$"?`${r}.format`:`${r}.format.${i.path}`,i.message)),!(typeof n.value!="number"||!Number.isFinite(n.value)||!o||!a.ok))return{value:n.value,target:o,format:a.value}}function O(e,r,t){if(typeof e=="string")return e;if(typeof e=="number"){if(!Number.isFinite(e)){p(t,r,"Expected a finite number.");return}return e}const n=pt(e,r,t);if(n)return n;p(t,r,"Expected a string, number, or structured numeric value.")}function zr(e,r,t){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return typeof e=="string"&&e.length>y.contentCell?(p(t,r,`Must be ${y.contentCell} characters or fewer.`),e.slice(0,y.contentCell)):typeof e=="number"&&!Number.isFinite(e)?(p(t,r,"Expected a finite number."),null):e;const n=pt(e,r,t);return n||(p(t,r,"Expected a string, number, boolean, structured numeric value, or null."),null)}function Lr(e,r,t){if(!Array.isArray(e))return p(t,r,"Expected an array."),[];e.length===0&&p(t,r,"Expected at least one column."),e.length>x.maxTableColumns&&p(t,r,`Must have ${x.maxTableColumns} columns or fewer.`);const n=new Set;return e.slice(0,x.maxTableColumns).map((o,a)=>{const i=`${r}.${a}`,c=S(o,i,t);I(c,i,["key","label","kind","align"],t);const m=w(c.key,`${i}.key`,y.id,t);m&&(n.has(m)&&p(t,`${i}.key`,"Column key must be unique."),n.add(m));const l=w(c.label,`${i}.label`,y.contentTitle,t),s=z(c.kind,`${i}.kind`,Rr,"text, number, currency, percent, date, or boolean",t),f=z(c.align,`${i}.align`,xr,"left, center, or right",t);return{key:m,label:l,...s?{kind:s}:{},...f?{align:f}:{}}})}function Vr(e,r,t,n){if(!Array.isArray(e))return p(n,r,"Expected an array."),[];e.length>x.maxTableRows&&p(n,r,`Must have ${x.maxTableRows} rows or fewer.`);const o=new Set(t.map(a=>a.key).filter(Boolean));return e.slice(0,x.maxTableRows).map((a,i)=>{const c=`${r}.${i}`,m=S(a,c,n);return Object.keys(m).forEach(l=>{o.has(l)||p(n,`${c}.${l}`,`Unexpected table cell "${l}".`)}),Object.fromEntries(t.map(l=>[l.key,zr(m[l.key]??null,`${c}.${l.key}`,n)]))})}function qr(e,r,t){const n=`content.blocks.${r}`,o=S(e,n,t),a=o.type;if(a==="heading"){I(o,n,["type","text","level","evidenceIds"],t);const i=o.level===void 0||o.level===null?void 0:o.level===2||o.level===3?o.level:void 0;o.level!==void 0&&o.level!==null&&i===void 0&&p(t,`${n}.level`,"Expected 2 or 3.");const c=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"heading",text:w(o.text,`${n}.text`,y.contentTitle,t),...i?{level:i}:{},...c?{evidenceIds:c}:{}}}if(a==="paragraph"){I(o,n,["type","text","evidenceIds"],t);const i=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"paragraph",text:w(o.text,`${n}.text`,y.contentText,t),...i?{evidenceIds:i}:{}}}if(a==="finding"){I(o,n,["type","title","text","severity","evidenceIds"],t);const i=E(o.title,`${n}.title`,y.contentTitle,t),c=z(o.severity,`${n}.severity`,Fr,"info, positive, warning, or critical",t);return{type:"finding",...i?{title:i}:{},text:w(o.text,`${n}.text`,y.contentText,t),...c?{severity:c}:{},evidenceIds:A(o.evidenceIds,`${n}.evidenceIds`,t,{required:!0})??[]}}if(a==="bullets"||a==="actions"||a==="limitations"){I(o,n,["type","title","items","evidenceIds"],t);const i=E(o.title,`${n}.title`,y.contentTitle,t),c=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:a,...i?{title:i}:{},items:Kr(o.items,`${n}.items`,t),...c?{evidenceIds:c}:{}}}if(a==="metric"){I(o,n,["type","label","value","previousValue","delta","percentChange","unit","evidenceIds"],t);const i=O(o.value,`${n}.value`,t)??"";i===""&&p(t,`${n}.value`,"Expected a non-empty string, number, or structured numeric value.");const c=o.previousValue===void 0||o.previousValue===null?o.previousValue:O(o.previousValue,`${n}.previousValue`,t),m=o.delta===void 0||o.delta===null?o.delta:O(o.delta,`${n}.delta`,t),l=o.percentChange===void 0||o.percentChange===null?o.percentChange:O(o.percentChange,`${n}.percentChange`,t),s=E(o.unit,`${n}.unit`,y.contentTitle,t),f=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"metric",label:w(o.label,`${n}.label`,y.contentTitle,t),value:i,...c!==void 0?{previousValue:c}:{},...m!==void 0?{delta:m}:{},...l!==void 0?{percentChange:l}:{},...s?{unit:s}:{},...f?{evidenceIds:f}:{}}}if(a==="kpi_grid"){I(o,n,["type","title","tiles","evidenceIds"],t);const i=E(o.title,`${n}.title`,y.contentTitle,t),c=Array.isArray(o.tiles)?o.tiles:[];Array.isArray(o.tiles)||p(t,`${n}.tiles`,"Expected an array."),c.length===0&&p(t,`${n}.tiles`,"Expected at least one tile."),c.length>x.maxKpiTiles&&p(t,`${n}.tiles`,`Must have ${x.maxKpiTiles} tiles or fewer.`);const m=c.slice(0,x.maxKpiTiles).map((s,f)=>{const u=`${n}.tiles.${f}`,d=S(s,u,t);I(d,u,["label","value","previousValue","delta","percentChange","unit","evidenceIds"],t);const v=O(d.value,`${u}.value`,t)??"";v===""&&p(t,`${u}.value`,"Expected a non-empty string, number, or structured numeric value.");const h=d.previousValue===void 0||d.previousValue===null?d.previousValue:O(d.previousValue,`${u}.previousValue`,t),b=d.delta===void 0||d.delta===null?d.delta:O(d.delta,`${u}.delta`,t),T=d.percentChange===void 0||d.percentChange===null?d.percentChange:O(d.percentChange,`${u}.percentChange`,t),g=E(d.unit,`${u}.unit`,y.contentTitle,t),C=A(d.evidenceIds,`${u}.evidenceIds`,t);return{label:w(d.label,`${u}.label`,y.contentTitle,t),value:v,...h!==void 0?{previousValue:h}:{},...b!==void 0?{delta:b}:{},...T!==void 0?{percentChange:T}:{},...g?{unit:g}:{},...C?{evidenceIds:C}:{}}}),l=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"kpi_grid",...i?{title:i}:{},tiles:m,...l?{evidenceIds:l}:{}}}if(a==="progress"){I(o,n,["type","label","value","detail","evidenceIds"],t);const i=typeof o.value=="number"&&Number.isFinite(o.value)?o.value:0;(typeof o.value!="number"||!Number.isFinite(o.value))&&p(t,`${n}.value`,"Expected a finite number.");const c=E(o.detail,`${n}.detail`,y.contentText,t),m=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"progress",label:w(o.label,`${n}.label`,y.contentTitle,t),value:i,...c?{detail:c}:{},...m?{evidenceIds:m}:{}}}if(a==="table"){I(o,n,["type","id","title","columns","rows","caption","totalRows","evidenceIds"],t);const i=Lr(o.columns,`${n}.columns`,t),c=E(o.title,`${n}.title`,y.contentTitle,t),m=E(o.id,`${n}.id`,y.id,t),l=E(o.caption,`${n}.caption`,y.contentItem,t),s=Pr(o.totalRows,`${n}.totalRows`,t),f=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"table",...m?{id:m}:{},...c?{title:c}:{},columns:i,rows:Vr(o.rows,`${n}.rows`,i,t),...l?{caption:l}:{},...s!==void 0?{totalRows:s}:{},...f?{evidenceIds:f}:{}}}if(a==="evidence_appendix"){I(o,n,["type","title","evidenceIds"],t);const i=E(o.title,`${n}.title`,y.contentTitle,t);return{type:"evidence_appendix",...i?{title:i}:{},evidenceIds:A(o.evidenceIds,`${n}.evidenceIds`,t,{required:!0})??[]}}if(a==="sql"){I(o,n,["type","title","sql","evidenceIds"],t);const i=E(o.title,`${n}.title`,y.contentTitle,t),c=w(o.sql,`${n}.sql`,y.contentSql,t),m=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"sql",...i?{title:i}:{},sql:c,...m?{evidenceIds:m}:{}}}return p(t,`${n}.type`,"Expected heading, paragraph, finding, bullets, metric, kpi_grid, progress, table, actions, limitations, sql, or evidence_appendix."),{type:"paragraph",text:""}}function yt(e){const r=[],t=S(e,"content",r);I(t,"content",["version","title","summary","blocks"],r),t.version!==1&&p(r,"content.version","Expected version 1.");const n=E(t.title,"content.title",y.contentTitle,r),o=E(t.summary,"content.summary",y.contentSummary,r);Array.isArray(t.blocks)||p(r,"content.blocks","Expected an array.");const a=Array.isArray(t.blocks)?t.blocks:[];a.length===0&&p(r,"content.blocks","Expected at least one block."),a.length>x.maxBlocks&&p(r,"content.blocks",`Must have ${x.maxBlocks} blocks or fewer.`);const i=a.slice(0,x.maxBlocks).map((c,m)=>qr(c,m,r));return Ce(r),{version:1,...n?{title:n}:{},...o?{summary:o}:{},blocks:i}}function Ur(e){try{return{valid:!0,value:yt(e),issues:[]}}catch(r){if(r instanceof J)return{valid:!1,issues:r.issues};throw r}}function ee(e,r,t,n){return typeof e=="string"&&t.includes(e)?e:(p(n,r,`Expected ${t.join(" or ")}.`),t[0])}function z(e,r,t,n,o){if(e!=null){if(typeof e=="string"&&t.has(e))return e;p(o,r,`Expected ${n}.`)}}function jr(e,r,t){if(e!=null){if(!Array.isArray(e)){p(t,r,"Expected an array.");return}return e}}function Gr(e,r,t){if(e!=null){if(!st(e)){p(t,r,"Expected an object.");return}return e}}function Hr(e,r,t){if(e==null)return;const n=S(e,r,t);I(n,r,Ar,t);const o={},a=z(n.pageSize,`${r}.pageSize`,Er,"letter, legal, a4, a3, or tabloid",t),i=z(n.orientation,`${r}.orientation`,$r,"portrait or landscape",t),c=z(n.delimiter,`${r}.delimiter`,Sr,"comma, semicolon, or tab",t),m=z(n.sheetSelection,`${r}.sheetSelection`,kr,"current or all",t);a&&(o.pageSize=a),i&&(o.orientation=i),c&&(o.delimiter=c),m&&(o.sheetSelection=m);for(const l of["includeFilters","includeTimestamp","includeHeaders","useFormattedValues","allowDownload"])if(!(n[l]===void 0||n[l]===null)){if(typeof n[l]!="boolean"){p(t,`${r}.${l}`,"Expected a boolean.");continue}o[l]=n[l]}for(const l of["currentSheetId","currentSheetName","filterLine","selectedSheetId","cardType","theme"]){const s=E(n[l],`${r}.${l}`,y.id,t);s&&(o[l]=s)}for(const l of["filterValues","inlineFilterValues","sheetFilterValues","controlDefinitions","cardControlDefinitions","controlBindings"]){const s=jr(n[l],`${r}.${l}`,t);s&&(o[l]=s)}for(const l of["controlValues","tablePreferences","dashboardInputExecutionSnapshot"]){const s=Gr(n[l],`${r}.${l}`,t);s&&(o[l]=s)}return Object.keys(o).length>0?o:void 0}function me(e,r,t,n){const o=E(r,t,y.attachmentTitle,n);return o&&(e.title=o),e}function ue(e,r,t,n){const o=Hr(r,t,n);return o&&(e.settings=o),e}function Wr(e,r,t){const n=`attachments.${r}`,o=S(e,n,t),a=o.type;if(a==="dashboard"){I(o,n,["type","dashboardId","format","title","settings"],t);const i=me({type:"dashboard",dashboardId:w(o.dashboardId,`${n}.dashboardId`,y.id,t),format:ee(o.format,`${n}.format`,["pdf"],t)},o.title,`${n}.title`,t);return ue(i,o.settings,`${n}.settings`,t)}if(a==="dashboard_sheet"||a==="document_sheet"){I(o,n,["type","dashboardId","sheetId","format","title","settings"],t);const i=me({type:a,dashboardId:w(o.dashboardId,`${n}.dashboardId`,y.id,t),sheetId:w(o.sheetId,`${n}.sheetId`,y.id,t),format:ee(o.format,`${n}.format`,["pdf"],t)},o.title,`${n}.title`,t);return ue(i,o.settings,`${n}.settings`,t)}if(a==="card"){I(o,n,["type","dashboardId","cardId","format","title","settings"],t);const i=me({type:"card",dashboardId:w(o.dashboardId,`${n}.dashboardId`,y.id,t),cardId:w(o.cardId,`${n}.cardId`,y.id,t),format:ee(o.format,`${n}.format`,["csv","pdf"],t)},o.title,`${n}.title`,t);return ue(i,o.settings,`${n}.settings`,t)}return p(t,`${n}.type`,"Expected dashboard, dashboard_sheet, document_sheet, or card."),{type:"dashboard",dashboardId:"",format:"pdf"}}function Qr(e){switch(e.type){case"dashboard":return`${e.type}:${e.dashboardId}:${e.format}`;case"dashboard_sheet":case"document_sheet":return`${e.type}:${e.dashboardId}:${e.sheetId}:${e.format}`;case"card":return`${e.type}:${e.dashboardId}:${e.cardId}:${e.format}`}}function ht(e,r){if(e==null)return[];if(!Array.isArray(e))return p(r,"attachments","Expected an array."),[];e.length>Z&&p(r,"attachments",`Choose ${Z} attachments or fewer.`);const t=e.slice(0,Z).map((o,a)=>Wr(o,a,r)),n=new Set;return t.forEach((o,a)=>{const i=Qr(o);n.has(i)&&p(r,`attachments.${a}`,"Duplicate attachment."),n.add(i)}),t}function gt(e,r){if(e==null)return;const t=S(e,"limits",r);I(t,"limits",Object.keys(se),r);const n={};return Object.keys(se).forEach(o=>{const a=t[o];if(a==null)return;const i=se[o];if(typeof a!="number"||!Number.isInteger(a)||a<i.min||a>i.max){p(r,`limits.${o}`,`Expected an integer between ${i.min} and ${i.max}.`);return}n[o]=a}),Object.keys(n).length>0?n:void 0}function Ce(e){if(e.length>0)throw new J(e)}function vt(e,r,t){!(e.type==="generated_analysis"||e.type==="custom_message"&&!!e.message.trim())&&r.length===0&&p(t,"body","Add briefing instructions, a custom message, or at least one attachment.")}function Yr(e,r,t){e==null||e.forEach((n,o)=>{const a=`${t}.${o}.scope`,i=n.scope.attachmentIndex;if(i===void 0)throw new $.PresentationExecutionSnapshotError(`${a}.attachmentIndex must identify the attachment that owns this presentation entry.`);const c=r[i];if(!c)throw new $.PresentationExecutionSnapshotError(`${a}.attachmentIndex must identify an existing attachment.`);if(n.scope.dashboardId!==c.dashboardId)throw new $.PresentationExecutionSnapshotError(`${a}.dashboardId must match the dashboard selected by the referenced attachment.`);if(c.type==="card"&&n.scope.cardId!==c.cardId)throw new $.PresentationExecutionSnapshotError(`${a}.cardId must match the card selected by the referenced attachment.`)})}function we(e){const r=[],t=S(e,"jobConfig",r);I(t,"jobConfig",["kind","presentationExecutionSnapshot","source","body","attachments","presentation","limits"],r),t.kind!==re&&p(r,"kind","Expected BRIEFING.");let n;try{n=$.parsePresentationExecutionSnapshot(t.presentationExecutionSnapshot)}catch(l){if(l instanceof $.PresentationExecutionSnapshotError)throw l;p(r,"jobConfig.presentationExecutionSnapshot",l instanceof Error?l.message:"Invalid presentation snapshot.")}const o=mt(t.source,r),a=ut(t.body,r),i=ht(t.attachments,r),c=ft(t.presentation,r),m=gt(t.limits,r);return vt(a,i,r),Yr(n==null?void 0:n.resolvedFormats,i,"jobConfig.presentationExecutionSnapshot.resolvedFormats"),Ce(r),{kind:re,presentationExecutionSnapshot:n,source:o,body:a,attachments:i,presentation:c,...m?{limits:m}:{}}}function Jr(e){return we({...e,kind:re})}function Ee(e,r,t,n="deliveryConfig.recipients"){const o=`${n}.${r}`,a=S(e,o,t),i=a.type;if(i==="email"){I(a,o,["type","address","name"],t);const c=w(a.address,`${o}.address`,y.id,t),m=E(a.name,`${o}.name`,y.attachmentTitle,t);return c&&!Mr(c)&&p(t,`${o}.address`,"Email address is invalid."),{type:"email",address:c,...m?{name:m}:{}}}return i==="user"?(I(a,o,["type","userId"],t),{type:"user",userId:w(a.userId,`${o}.userId`,y.id,t)}):i==="tenant_user"?(I(a,o,["type","tenantUserId"],t),{type:"tenant_user",tenantUserId:w(a.tenantUserId,`${o}.tenantUserId`,y.id,t)}):i==="group"?(I(a,o,["type","groupId"],t),{type:"group",groupId:w(a.groupId,`${o}.groupId`,y.id,t)}):(p(t,`${o}.type`,"Expected email, user, tenant_user, or group."),{type:"email",address:""})}function Xr(e,r){return e==null?[]:Array.isArray(e)?e.map((t,n)=>Ee(t,n,r)):(p(r,"deliveryConfig.recipients","Expected an array."),[])}function Zr(e,r){if(!Array.isArray(e))return p(r,"deliveryConfig.channels","Expected an array."),[];const t=[];return e.forEach((n,o)=>{if(!$e(n)){p(r,`deliveryConfig.channels.${o}`,"Expected EMAIL, WEBHOOK, SLACK, IN_APP, or TELEGRAM.");return}t.includes(n)||t.push(n)}),t}function en(e,r,t){if(e==null)return;const n=S(e,r,t),o={};return Object.entries(n).forEach(([a,i])=>{if(typeof i!="string"){p(t,`${r}.${a}`,"Expected a string.");return}o[a]=i.trim()}),Object.keys(o).length>0?o:void 0}function tn(e,r,t){if(e==null)return;const n=S(e,r,t);I(n,r,["url","method","headers","secretEncrypted"],t);const o=n.method===void 0||n.method===null?void 0:ee(n.method,`${r}.method`,["POST","PUT"],t),a=en(n.headers,`${r}.headers`,t),i=E(n.secretEncrypted,`${r}.secretEncrypted`,2e3,t);return{url:w(n.url,`${r}.url`,2e3,t),...o?{method:o}:{},...a?{headers:a}:{},...i?{secretEncrypted:i}:{}}}function rn(e,r,t){const n=S(e,r,t),o=n.type;if(o==="channel"){I(n,r,["type","channelId","channelName","isPrivate"],t);const a=E(n.channelName,`${r}.channelName`,y.attachmentTitle,t),i=n.isPrivate===void 0||n.isPrivate===null?void 0:V(n.isPrivate,!1,`${r}.isPrivate`,t);return{type:"channel",channelId:w(n.channelId,`${r}.channelId`,y.id,t),...a?{channelName:a}:{},...i!==void 0?{isPrivate:i}:{}}}return o==="dm"?(I(n,r,["type","recipient"],t),p(t,`${r}.type`,"Slack DM delivery is not supported in V1."),{type:"dm",recipient:Ee(n.recipient,0,t,`${r}.recipient`)}):(p(t,`${r}.type`,"Expected channel."),{type:"channel",channelId:""})}function nn(e,r,t){if(e==null)return;if(!Array.isArray(e)){p(t,r,"Expected an array.");return}const n=e.map((o,a)=>Ee(o,a,t,r));return n.length>0?n:void 0}function on(e,r,t){if(e==null)return;const n=S(e,r,t);I(n,r,["destination","threadMentions","postThreadDetail","includeDashboardLink","includeBriefingLink"],t);const o=nn(n.threadMentions,`${r}.threadMentions`,t),a=V(n.postThreadDetail,!0,`${r}.postThreadDetail`,t),i=V(n.includeDashboardLink,!0,`${r}.includeDashboardLink`,t),c=V(n.includeBriefingLink,!0,`${r}.includeBriefingLink`,t);return{destination:rn(n.destination,`${r}.destination`,t),...o?{threadMentions:o}:{},...n.postThreadDetail!==void 0?{postThreadDetail:a}:{},...n.includeDashboardLink!==void 0?{includeDashboardLink:i}:{},...n.includeBriefingLink!==void 0?{includeBriefingLink:c}:{}}}function an(e,r,t){const n=S(e,r,t);I(n,r,["subjectOverride","titleOverride","summaryOverride","actionBlockVisible","formatProfile","slackConfig","webhookConfig"],t);const o=z(n.formatProfile,`${r}.formatProfile`,_r,"concise, balanced, or detailed",t),a=E(n.subjectOverride,`${r}.subjectOverride`,500,t),i=E(n.titleOverride,`${r}.titleOverride`,500,t),c=E(n.summaryOverride,`${r}.summaryOverride`,2e3,t),m=V(n.actionBlockVisible,!0,`${r}.actionBlockVisible`,t),l=tn(n.webhookConfig,`${r}.webhookConfig`,t),s=on(n.slackConfig,`${r}.slackConfig`,t);return{...o?{formatProfile:o}:{},...a?{subjectOverride:a}:{},...i?{titleOverride:i}:{},...c?{summaryOverride:c}:{},...n.actionBlockVisible!==void 0?{actionBlockVisible:m}:{},...s?{slackConfig:s}:{},...l?{webhookConfig:l}:{}}}function ln(e,r){if(e==null)return;const t=S(e,"deliveryConfig.channelConfigs",r),n={};return Object.entries(t).forEach(([o,a])=>{if(!$e(o)){p(r,`deliveryConfig.channelConfigs.${o}`,"Expected a supported delivery channel.");return}n[o]=an(a,`deliveryConfig.channelConfigs.${o}`,r)}),Object.keys(n).length>0?n:void 0}function cn(e,r){var m,l,s;if(e==null)return null;const t=S(e,"deliveryConfig",r);I(t,"deliveryConfig",["recipients","channels","channelConfigs"],r);const n=ln(t.channelConfigs,r),o=Xr(t.recipients,r),a=Zr(t.channels,r),i=((l=(m=n==null?void 0:n.SLACK)==null?void 0:m.slackConfig)==null?void 0:l.destination.type)==="channel"&&!!n.SLACK.slackConfig.destination.channelId.trim();return a.some(f=>f!=="SLACK")&&o.length===0&&p(r,"deliveryConfig.recipients","Add at least one recipient or remove delivery config."),a.length===0&&p(r,"deliveryConfig.channels","Choose at least one delivery channel or remove delivery config."),a.includes("SLACK")&&!i&&p(r,"deliveryConfig.channelConfigs.SLACK.slackConfig.destination.channelId","Choose a Slack channel destination."),!a.includes("SLACK")&&((s=n==null?void 0:n.SLACK)!=null&&s.slackConfig)&&p(r,"deliveryConfig.channelConfigs.SLACK","Slack config requires SLACK in deliveryConfig.channels."),{recipients:o,channels:a,...n?{channelConfigs:n}:{}}}function le(e){const r=[],t=S(e,"draft",r);I(t,"draft",["name","description","status","scheduleExpr","timezone","source","body","attachments","presentation","limits","deliveryConfig"],r);const n=w(t.name,"name",y.name,r),o=E(t.description,"description",y.description,r)??null,a=E(t.scheduleExpr,"scheduleExpr",500,r)??null,i=E(t.timezone,"timezone",200,r)??"UTC",c=Dr(t.status,r),m=mt(t.source,r),l=ut(t.body,r),s=ht(t.attachments,r),f=ft(t.presentation,r),u=gt(t.limits,r),d=cn(t.deliveryConfig,r);return vt(l,s,r),Ce(r),{name:n,description:o,status:c,scheduleExpr:a,timezone:i,source:m,body:l,attachments:s,presentation:f,...u?{limits:u}:{},deliveryConfig:d}}function dn(e){return le(e)}function sn(e){return le(e)}function mn(e){try{return{valid:!0,value:le(e),issues:[]}}catch(r){if(r instanceof J)return{valid:!1,issues:r.issues};throw r}}function un(e){try{return{valid:!0,value:we(e),issues:[]}}catch(r){if(r instanceof J)return{valid:!1,issues:r.issues};throw r}}function fn(e){return typeof e=="string"&&dt.has(e)}function $e(e){return typeof e=="string"&&wr.has(e)}exports.AmbiguousGroupedTemporalGrainError=Be;exports.BRIEFING_ARTIFACT_FORMATS=it;exports.BRIEFING_CONTENT_LIMITS=x;exports.BRIEFING_KIND=re;exports.BRIEFING_TEXT_LIMITS=y;exports.BriefingContractError=J;exports.DEFAULT_BRIEFING_ARTIFACT_FORMATS=ne;exports.DEFAULT_BRIEFING_SCHEDULE=dr;exports.DashboardTemporalBoundaryError=K;exports.MAX_BRIEFING_ATTACHMENTS=Z;exports.PYTHON_DEFAULT_CODE=Ae;exports.RawTemporalPresentationBoundaryError=_;exports.buildBriefingJobConfig=Jr;exports.buildBriefingScheduleExpr=ur;exports.buildCreateBriefingRequest=dn;exports.buildDashboardCardTableConfig=Ct;exports.buildDashboardTemporalSnapshotEntries=rr;exports.buildSlotOrderedCards=Qe;exports.buildUpdateBriefingRequest=sn;exports.canCreateBriefingForUser=br;exports.createCardsFromSlots=Jt;exports.describeBriefingSchedule=yr;exports.findCustomVisualConfigCard=Je;exports.formatBriefingComparisonValues=Cr;exports.formatBriefingDisplayValue=ct;exports.formatGroupedTemporalFieldValue=At;exports.formatGroupedTemporalRecords=_t;exports.formatGroupedTemporalValue=ge;exports.getActiveCardFromVisualResource=Ut;exports.getActiveFrameCard=be;exports.getBriefingCardAttachmentCapability=vr;exports.getBriefingCardAttachmentFormats=rt;exports.getBriefingCreationIntents=Ir;exports.getBriefingDisplayTypeLabel=at;exports.getBriefingPresentation=Tr;exports.getConfigSlotExpectedType=Qt;exports.getCustomVisualInputCards=Ye;exports.getDefaultBriefingCardAttachmentFormat=nt;exports.getDefaultDeclaredSqlRawTemporalPattern=Pt;exports.getEffectiveCardTypeForSlot=Yt;exports.getSlotDefinitionForIndex=Ie;exports.getSlotExpectedChartType=ie;exports.getSlotIndexForCard=We;exports.hasMissingDeclaredSqlCustomDateFormat=qe;exports.inspectDeclaredSqlRawTemporalPreview=Ot;exports.isBriefingArtifactFormat=fn;exports.isBriefingDeliveryChannel=$e;exports.isBriefingNumericValue=lt;exports.isCardRawTemporalPresentationActivated=zt;exports.isCardRawTemporalResultCompatible=qt;exports.isCustomVisualConfigCard=pe;exports.isDeclaredSqlRawTemporalPresentationCard=ve;exports.isEmailOnlyBriefingDelivery=ot;exports.isGroupedTemporalResultCompatible=Ft;exports.isPivotResultContractCompatibleWithCardConfig=Oe;exports.isValidBriefingTimezone=sr;exports.normalizeBriefingContentDocument=yt;exports.normalizeBriefingDraft=le;exports.normalizeBriefingJobConfig=we;exports.normalizeDashboardCardPythonCode=U;exports.normalizeGroupedTemporalField=Pe;exports.normalizeMultiInputPayload=Zt;exports.parseBriefingScheduleExpr=tt;exports.parseCanonicalPivotResultTransportOnce=Me;exports.parseFrameObject=Ge;exports.presentRawTemporalCell=Vt;exports.reindexSlotCards=Wt;exports.repairMissingDeclaredSqlCustomDateFormat=Kt;exports.resolveCardRawTemporalPresentation=je;exports.resolveCartesianTemporalActivation=$t;exports.resolveDashboardCardResultOwner=Y;exports.resolveDashboardTemporalActivation=De;exports.resolveDeclaredSqlRawTemporalFormat=ae;exports.resolveDetailTableRawTemporalPresentation=Ue;exports.resolveGroupedTemporalFieldPresentationByRole=Ne;exports.resolveGroupedTemporalFieldSnapshotFormat=ze;exports.resolveGroupedTemporalPresentation=xt;exports.resolveMultiInputType=Xe;exports.resolveMultiInputTypeFromVisual=Xt;exports.resolveRegularTableTemporalActivation=Et;exports.validateBriefingContentDocument=Ur;exports.validateBriefingDraft=mn;exports.validateBriefingJobConfig=un;exports.validateDeclaredSqlRawTemporalPattern=Dt;