react-semaphor 0.1.464 → 0.1.465

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 (96) hide show
  1. package/dist/analytics-protocol/index.cjs +1 -1
  2. package/dist/analytics-protocol/index.js +132 -130
  3. package/dist/brand-studio/index.cjs +1 -1
  4. package/dist/brand-studio/index.js +4 -4
  5. package/dist/briefings/index.cjs +1 -1
  6. package/dist/briefings/index.js +4 -4
  7. package/dist/chunks/{analyze-result-contract-DROq4vgY.js → analyze-result-contract-CMZDRRwo.js} +1 -1
  8. package/dist/chunks/{analyze-result-contract-DSGoFuXQ.cjs → analyze-result-contract-CMwVg9w2.cjs} +1 -1
  9. package/dist/chunks/{common-types-BHVKgxRR.js → common-types-Co766x6t.js} +1 -1
  10. package/dist/chunks/{common-types-BcV9PD9D.cjs → common-types-o3LJcrpg.cjs} +1 -1
  11. package/dist/chunks/{dashboard-briefing-launcher-BSMtcAgE.cjs → dashboard-briefing-launcher-DEbSzRRa.cjs} +1 -1
  12. package/dist/chunks/{dashboard-briefing-launcher-CTozRa6c.js → dashboard-briefing-launcher-mfX5z4Qd.js} +9 -9
  13. package/dist/chunks/{dashboard-controls-CmK7U1hI.cjs → dashboard-controls-Cz7apvvd.cjs} +1 -1
  14. package/dist/chunks/{dashboard-controls-wuo6PrDm.js → dashboard-controls-IXbC6pEv.js} +9 -9
  15. package/dist/chunks/{dashboard-filter-value-compatibility-KXIyvbhc.js → dashboard-filter-value-compatibility-B8ynE_O1.js} +255 -240
  16. package/dist/chunks/dashboard-filter-value-compatibility-Bnl2lsng.cjs +1 -0
  17. package/dist/chunks/{dashboard-input-contract-BkRFQ7Tq.cjs → dashboard-input-contract-12mPNhCF.cjs} +1 -1
  18. package/dist/chunks/{dashboard-input-contract-D5dxTWJ5.js → dashboard-input-contract-Px64VWBL.js} +1 -1
  19. package/dist/chunks/{dashboard-json-7BQDKnHy.cjs → dashboard-json-DD6ca46K.cjs} +1 -1
  20. package/dist/chunks/{dashboard-json-C9qvau-c.js → dashboard-json-DGcMrUht.js} +7 -7
  21. package/dist/chunks/{edit-dashboard-visual-CHlsiGOo.js → edit-dashboard-visual-DXExP_Zk.js} +12 -12
  22. package/dist/chunks/{edit-dashboard-visual-BSWdyT4u.cjs → edit-dashboard-visual-O-kr0e8j.cjs} +1 -1
  23. package/dist/chunks/{editor-action-buttons-DMnbVoBJ.cjs → editor-action-buttons-BW_mMMBK.cjs} +1 -1
  24. package/dist/chunks/{editor-action-buttons-B0o-qU4l.js → editor-action-buttons-BwMs09LQ.js} +6 -6
  25. package/dist/chunks/{index-De_7nrwb.js → index-BlCnNcaB.js} +9 -9
  26. package/dist/chunks/{index-DqMJN4lZ.cjs → index-CFP-joCJ.cjs} +162 -162
  27. package/dist/chunks/{index-DjjKJPDy.cjs → index-CQN-X1jN.cjs} +1 -1
  28. package/dist/chunks/{index-DQvtZ1gG.js → index-izu49Yq-.js} +29814 -29702
  29. package/dist/chunks/{matrix-result-contract-BTpPuHOc.js → matrix-result-contract-DQ9_UadF.js} +3 -3
  30. package/dist/chunks/{matrix-result-contract-ZRNfeIbI.cjs → matrix-result-contract-DiHDIyQk.cjs} +1 -1
  31. package/dist/chunks/{pivot-header-presentation-DW0gKG8g.js → pivot-header-presentation-CSf6CyOt.js} +2 -2
  32. package/dist/chunks/{pivot-header-presentation-BijPbP33.cjs → pivot-header-presentation-DyV0iOZ_.cjs} +1 -1
  33. package/dist/chunks/{pivot-result-identity-Z9tN2tEV.js → pivot-result-identity-BvT51Nog.js} +1 -1
  34. package/dist/chunks/{pivot-result-identity-DxHtiKVj.cjs → pivot-result-identity-gsOwOjHi.cjs} +1 -1
  35. package/dist/chunks/{pivot-result-lifecycle-g2U-vzQb.js → pivot-result-lifecycle--NNNPUtG.js} +7 -7
  36. package/dist/chunks/{pivot-result-lifecycle-BXzIlQVu.cjs → pivot-result-lifecycle-CEfU43GZ.cjs} +1 -1
  37. package/dist/chunks/{raw-temporal-contract-UtAqoOZO.js → raw-temporal-contract-BqVMduCs.js} +1 -1
  38. package/dist/chunks/{raw-temporal-contract-DfAvqNMo.cjs → raw-temporal-contract-UdblxoVB.cjs} +1 -1
  39. package/dist/chunks/{report-preferences-dialog-CkKbfjRg.cjs → report-preferences-dialog-F-ZxcDFz.cjs} +1 -1
  40. package/dist/chunks/{report-preferences-dialog-BP4YC4D_.js → report-preferences-dialog-eNq0LZXa.js} +6 -6
  41. package/dist/chunks/{report-runtime-context-C0NfLPfc.cjs → report-runtime-context-CLtzrZdC.cjs} +1 -1
  42. package/dist/chunks/{report-runtime-context-CNncA3VD.js → report-runtime-context-CrTzKt0C.js} +1 -1
  43. package/dist/chunks/{saved-temporal-bucket-format-3QKveR3v.cjs → saved-temporal-bucket-format-Ca4hUfTo.cjs} +1 -1
  44. package/dist/chunks/{saved-temporal-bucket-format-Dd2eixTH.js → saved-temporal-bucket-format-DfqnCGCz.js} +3 -3
  45. package/dist/chunks/{switch-G_-UwdXX.js → switch-B6rFVSdw.js} +2942 -2892
  46. package/dist/chunks/{switch-CNqDn5b8.cjs → switch-BghC7eOM.cjs} +11 -11
  47. package/dist/chunks/{temporal-bucket-pMfghsLX.cjs → temporal-bucket-BDRcWdVv.cjs} +1 -1
  48. package/dist/chunks/{temporal-bucket-C85rmFmC.js → temporal-bucket-DFYIkexB.js} +18 -18
  49. package/dist/chunks/{temporal-bucket-authoring-BK1UhYpD.cjs → temporal-bucket-authoring-C6sZAVqS.cjs} +1 -1
  50. package/dist/chunks/{temporal-bucket-authoring-1fZuPAVb.js → temporal-bucket-authoring-ZxFzhTmL.js} +12 -12
  51. package/dist/chunks/{temporal-bucket-contract-DXXNZssK.js → temporal-bucket-contract-COPPwwbi.js} +1 -1
  52. package/dist/chunks/{temporal-bucket-contract-xFkvboaw.cjs → temporal-bucket-contract-vrOkax-r.cjs} +1 -1
  53. package/dist/chunks/{token-types-BYYO109W.cjs → token-types-DALtlgbG.cjs} +1 -1
  54. package/dist/chunks/{token-types-BLxc7UwR.js → token-types-p1M3SA2G.js} +1 -1
  55. package/dist/chunks/{update-policy-CB8XJIoY.js → update-policy-BKOA5S76.js} +1 -1
  56. package/dist/chunks/{update-policy-DMjjGjQY.cjs → update-policy-Cyufdviq.cjs} +1 -1
  57. package/dist/chunks/{validators-DVd8s3qY.js → validators-CCpBY1e0.js} +824 -788
  58. package/dist/chunks/validators-DO-YuzgO.cjs +1 -0
  59. package/dist/dashboard/index.cjs +1 -1
  60. package/dist/dashboard/index.js +2 -2
  61. package/dist/dashboard-authoring/index.cjs +2 -2
  62. package/dist/dashboard-authoring/index.js +6 -5
  63. package/dist/data-app-builder/index.cjs +1 -1
  64. package/dist/data-app-builder/index.js +2 -2
  65. package/dist/data-app-codegen/index.cjs +1 -1
  66. package/dist/data-app-codegen/index.js +2 -2
  67. package/dist/data-app-codegen-node/index.cjs +1 -1
  68. package/dist/data-app-codegen-node/index.js +3 -3
  69. package/dist/data-app-sdk/index.cjs +1 -1
  70. package/dist/data-app-sdk/index.js +3 -3
  71. package/dist/data-app-sdk-adapters/index.cjs +1 -1
  72. package/dist/data-app-sdk-adapters/index.js +2 -2
  73. package/dist/data-app-sdk-validation/index.cjs +1 -1
  74. package/dist/data-app-sdk-validation/index.js +3 -3
  75. package/dist/format-utils/index.cjs +1 -1
  76. package/dist/format-utils/index.js +15 -15
  77. package/dist/index.cjs +1 -1
  78. package/dist/index.js +14 -14
  79. package/dist/report-runtime-context/index.cjs +1 -1
  80. package/dist/report-runtime-context/index.js +2 -2
  81. package/dist/surfboard/index.cjs +1 -1
  82. package/dist/surfboard/index.js +3 -3
  83. package/dist/types/analytics-protocol.d.ts +15 -0
  84. package/dist/types/briefings.d.ts +1 -0
  85. package/dist/types/dashboard-assistant.d.ts +1 -0
  86. package/dist/types/dashboard-authoring.d.ts +15 -1
  87. package/dist/types/dashboard.d.ts +1 -0
  88. package/dist/types/index.cjs +1 -1
  89. package/dist/types/index.js +4 -4
  90. package/dist/types/main.d.ts +2 -1
  91. package/dist/types/shared.d.ts +1 -0
  92. package/dist/types/surfboard.d.ts +1 -0
  93. package/dist/types/types.d.ts +1 -0
  94. package/package.json +1 -1
  95. package/dist/chunks/dashboard-filter-value-compatibility-UapptYnn.cjs +0 -1
  96. package/dist/chunks/validators-dJlwubP4.cjs +0 -1
@@ -1,4 +1,4 @@
1
- "use strict";var bt=Object.defineProperty;var It=(e,r,t)=>r in e?bt(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var R=(e,r,t)=>It(e,typeof r!="symbol"?r+"":r,t);const $=require("./pivot-result-lifecycle-BXzIlQVu.cjs"),ye=require("../value-format-preferences/index.cjs"),U=require("./validators-dJlwubP4.cjs");require("./analyze-result-contract-DSGoFuXQ.cjs");const V=require("./saved-temporal-bucket-format-3QKveR3v.cjs"),M=require("./pivot-result-identity-DxHtiKVj.cjs"),$e=require("./temporal-bucket-contract-xFkvboaw.cjs"),W=require("./temporal-bucket-pMfghsLX.cjs"),oe=require("./temporal-bucket-authoring-BK1UhYpD.cjs"),Re=require("./raw-temporal-contract-DfAvqNMo.cjs"),ce=require("./canonical-result-keys-Cb96edol.cjs"),Fe=`import pandas as pd
1
+ "use strict";var bt=Object.defineProperty;var It=(e,r,t)=>r in e?bt(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var R=(e,r,t)=>It(e,typeof r!="symbol"?r+"":r,t);const $=require("./pivot-result-lifecycle-CEfU43GZ.cjs"),ye=require("../value-format-preferences/index.cjs"),U=require("./validators-DO-YuzgO.cjs");require("./analyze-result-contract-CMwVg9w2.cjs");const V=require("./saved-temporal-bucket-format-Ca4hUfTo.cjs"),M=require("./pivot-result-identity-gsOwOjHi.cjs"),$e=require("./temporal-bucket-contract-vrOkax-r.cjs"),W=require("./temporal-bucket-BDRcWdVv.cjs"),oe=require("./temporal-bucket-authoring-C6sZAVqS.cjs"),Re=require("./raw-temporal-contract-UdblxoVB.cjs"),ce=require("./canonical-result-keys-Cb96edol.cjs"),Fe=`import pandas as pd
2
2
  df = pd.DataFrame(data) # 'data' contains the query result
3
3
  result = df.to_dict('records') # must return 'result' as [dict] type
4
4
  `;function Tt(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 q(e){return e===Fe?"":e}function Q(e,r=e.config){return oe.resolveTemporalResultOwner({hasExecutableConfig:V.hasValidCardConfig(r),sql:e.sql,normalizedPython:q(e.python||"")})}class Ae 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 Ct(e){return V.hasSavedTemporalBucketPresentation(e)||e.semanticTemporalPresentation!=null}function Be(e){if(!e.id||!["date","datetime"].includes(U.normalizeAnalyticsCatalogDataType(e.dataType)))return;if(U.isSemaphorTimeGrain(e.granularity))return e;if(!Ct(e))return;if(!V.readSavedTemporalBucketFormat({fieldId:e.id,dataType:e.dataType,granularity:e.granularity,format:e.format,dateFormat:e.dateFormat,customFormat:e.customFormat}).ok)throw new Ae(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:V.hasValidCardConfig(r),sql:e.card.sql,normalizedPython:q(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=Be(n);return o?[o]:[]})}}function wt(e){return he({...e,supportsCardType:r=>r==="table"})}function Et(e){return he({...e,supportsCardType:oe.isSemaphorCartesianChartType})}function Pe(e){return he({...e,supportsCardType:r=>r!=="detailTable"&&oe.supportsCanonicalDashboardTemporalResult(r)})}const ke=new WeakMap;function De(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 Me(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 $t 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 Oe(e,r){return`${r}:${e}`}function Ke(e){var r,t;return(t=(r=e.presentation)==null?void 0:r.byFieldRole)==null?void 0:t.get(Oe(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)===U.SEMAPHOR_GENERATED_COUNT_METRIC_ID)})}function St(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 _t(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=De(r);if(!Me(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 S;const g=M.resolveQueryColumnKeyMapEntry(d.columnKeyMap,T.id,T.role);if(!g)return!1;if(g.role==="pivotby"){const x=h.flatMap(B=>{var j;return((j=B.pivotIdentity)==null?void 0:j.members.filter(vt=>vt.fieldId===T.id))??[]});return x.length===0?b:x.every(B=>{var j;return((j=B.temporalBucket)==null?void 0:j.granularity)===T.granularity})}const C=d.columns.find(x=>x.key===(g.outputKey||g.rawKey));return((S=C==null?void 0:C.temporalBucket)==null?void 0:S.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,U.SEMAPHOR_GENERATED_COUNT_METRIC_ID,"metric");if(l){if(!kt({cardConfig:t.cardConfig,binding:l,columns:r.columns||[]}))return!1;c.add(`metric:${U.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 S;return((S=C.pivotIdentity)==null?void 0:S.members)??[]}).filter(C=>C.fieldId===d.id);return f.length===0?n===0:g.length>0&&g.every(C=>{var S;return((S=C.temporalBucket)==null?void 0:S.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(!V.hasSavedTemporalBucketPresentation(n))return;const o=V.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 xt(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 Ne(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 Rt(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(Oe(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 $t({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}:{}}):xt(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(S=>S.pivotIdentity!==void 0),b=h.flatMap(S=>{var x;return(((x=S.pivotIdentity)==null?void 0:x.members)||[]).filter(B=>B.fieldId===l.id).map(B=>({column:S,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=$e.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:S,member:x}of b)if(!x.temporalBucket||JSON.stringify(x.temporalBucket)!==JSON.stringify(T.member.temporalBucket))throw new K("invalid_temporal_bucket_metadata",`Pivot result column "${S.key}" has contradictory bucket metadata for field "${l.id}".`,{cardId:e.card.id,fieldId:l.id,columnKey:S.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=$e.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 Ft(e){var t,n;const r=e.role?Ke({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 ze(){return{type:"raw_temporal",presentation:{mode:"auto"}}}function At(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"&&(At(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}}:ze()}function ae(e){if(e!=null&&e.useRelativeTime)return;if(!e)return ze();if(e.useCustomFormat&&!e.customFormat)throw new _("invalid_raw_temporal_format","Declared SQL temporal presentation selects a custom pattern but has no customFormat.");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 Bt(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??"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 Le(e){var t;const r=e.effectiveCardConfig??e.card.config;return Q(e.card,r)==="freeform"&&!!((t=e.card.sql)!=null&&t.trim())&&!q(e.card.python||"").trim()}function Pt(){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,S])=>{const x=M.resolveQueryColumnKeyMapEntry(n,C,"detail");return x&&x.role==="detail"&&(x.outputKey??x.rawKey)===s.key?[{field:S,binding:x}]:[]}),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=Re.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 qe(e){var n,o,a;const r=e.effectiveCardConfig??e.card.config,t=Q(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"}:Se(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 Se(Mt({resultOwner:t,sql:e.card.sql,normalizedPython:q(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 Dt(e){var n,o,a;const r=e.effectiveCardConfig??e.card.config,t=Q(e.card,r);return e.card.type==="detailTable"&&t==="config"?!!((n=e.columns)!=null&&n.some(i=>i.rawTemporal)):Le(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 Se(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 Mt(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};Re.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={...Pt(),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 Ot(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 Kt(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=qe({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 _e(e){return!e||typeof e!="object"?!1:Array.isArray(e.cards)}function je(e){if(!e)return null;if(typeof e=="string")try{const r=JSON.parse(e);return _e(r)?r:null}catch{return null}return _e(e)?e:null}function ve(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 Nt(e){var t;const r=(e==null?void 0:e.frameObject)??((t=e==null?void 0:e.visual)==null?void 0:t.frameObject);return ve(je(r))}function ie(e){if(!(e!=null&&e.expectedType))return"table";const r=Array.isArray(e.expectedType)?e.expectedType[0]:e.expectedType;return Vt(r)?r:"table"}const zt=["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 Vt(e){return zt.includes(e)}function Y(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 Ge(e){return!e||e.length===0?void 0:[...e].sort((t,n)=>Y(t)-Y(n))[0]}function be(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)=>Y(s)-Y(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 Lt(e,r){const t=be(e,r);if(t)return ie(t)}function He(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 We(e){const r=[];let t=-1;e.forEach((n,o)=>{const a=He(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 Ut(e){return e.map((r,t)=>!r.customCardPreferences||r.customCardPreferences.slotIndex===t?r:{...r,customCardPreferences:{...r.customCardPreferences,slotIndex:t}})}function qt(e){const r=Ge(e);if(r)return ie(r)}function jt(e,r,t){if(!e)return;const n=Lt(t,r);return e.type==="custom"&&n?n:e.type}function Gt(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=Ge(e),s=l?Y(l):0;let f=!1;const u=[];for(let h=0;h<m;h+=1){const b=be(e,h),T=ie(b),g=!f&&h===s,C=h,S={...n,id:V.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(S)}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 Qe(e,r){return r&&pe(r,e.cards)?r:e.cards.find(t=>pe(t,e.cards))||null}function Je(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 Ht(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 Wt(e){return Array.isArray(e)?{records:e}:e}class Z 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 Yt(e,r){var o;const t=[],n=new Map;for(const a of r){if(a.dashboardId!==e.id)throw new Z(a);const i=(e.sheets||[]).filter(m=>!a.sheetId||a.sheetId===m.id);if(a.sheetId&&i.length===0)throw new Z(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=>Qt(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 Z(a)}return t}function Qt(e,r){var i;const t=r?(i=e.cards)==null?void 0:i.find(c=>c.id===r):ve(e);if(!t)return[];const n=Qe(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&&(Je(n)==="multiple"||o);return!n||!a?[t]:We(Ye({frame:e,configCard:n,isMultiInputVisual:!0})).filter(c=>c!==null)}function Jt(e){return Yt(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=Pe({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:Ne(v,{dateStyle:e.valueFormatPreferences.dateStyle,dateTime:{...e.valueFormatPreferences.dateTime}},e.valueFormatPreferences.locale)})):[],c=[],m=Q(r,n),l=q(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=U.normalizeAnalyticsCatalogDataType(g.dataType);if(C!=="date"&&C!=="datetime")continue;const S=ce.resolveCanonicalDetailResultRawKey(g),x=g.label,B=ce.resolveCanonicalResultOutputKey({label:x,labelCount:x&&b.get(x)||0,rawKey:S,rawKeys:T});if(!B)throw new Z(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 Zt(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function P(e,r,t){return Zt(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 Ie(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 xe(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 Xt(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:xe(a.light,`${t}.schemes.light`,r)}:{},...a.dark!==void 0?{dark:xe(a.dark,`${t}.schemes.dark`,r)}:{}}}return o}function er(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=Ie(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 tr(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"?Ie(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 rr(e){const r=[],t={};if(e.appearance!==void 0&&(t.appearance=Xt(e.appearance,r)),e.brandOverrides!==void 0&&(t.brandOverrides=er(e.brandOverrides,r)),e.fragments!==void 0&&(t.fragments=tr(e.fragments,r)),e.viewUrl!==void 0){const n=Ie(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"],nr=new Map(Ze.map((e,r)=>[e,r])),or={cadence:"weekly",hour:9,minute:0,weekdays:[1]};function ar(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 ir(e){return Number.isInteger(e.minute)&&e.minute>=0&&e.minute<=59&&Number.isInteger(e.hour)&&e.hour>=0&&e.hour<=23}function Xe(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 lr(e){if(!ir(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=Xe(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 et(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=>nr.get(d));if(s.some(d=>d===void 0))return{ok:!1,issue:"Choose a supported schedule."};const f=s,u=Xe(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 cr(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 dr(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 sr(e,r,t="en-US"){const n=et(e);if(!n.ok)return null;try{const o=cr(n.value.hour,n.value.minute,t),a=dr(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 mr=new Set(["table","aggregateTable","pivotTable","detailTable"]),ur=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 fr(e){var n,o,a;const r=ur.has(e.type)&&(e.type!=="custom"||!!((n=e.customCardPreferences)!=null&&n.url));return e.type==="text"||!r||V.isCardUnconfigured(e)?{formats:[],defaultFormat:null}:{formats:tt({cardType:e.type,allowDownload:(o=e.preferences)==null?void 0:o.allowDownload}),defaultFormat:rt({cardType:e.type,allowDownload:(a=e.preferences)==null?void 0:a.allowDownload})}}function tt(e){return e.allowDownload===!1?["pdf"]:["pdf","csv"]}function rt(e){return mr.has(e.cardType)&&e.allowDownload!==!1?"csv":"pdf"}function pr(e){return e!=null&&e.role?e.type==="tenant"?e.role==="POWER_USER":["AUTHOR","ADMIN","SUPER_ADMIN"].includes(e.role):!1}function yr(e){return e.canCreate?[...e.scheduledReportAvailable?["scheduled_report"]:[],...e.analyticalBriefingsEnabled?["analytical_briefing"]:[]]:[]}function nt(e){const r=(e==null?void 0:e.channels)??[];return r.length===1&&r[0]==="EMAIL"}function ot(e){return e.body.type==="generated_analysis"?"Analytical briefing":e.body.type==="custom_message"&&e.attachments.length>0&&nt(e.deliveryConfig)?e.scheduleExpr?"Scheduled report":"On-demand report":"Plain briefing"}function hr(e){const r=ot(e),t=r==="Scheduled report"||r==="On-demand report"?"report":"briefing";return{typeLabel:r,noun:t,pluralNoun:t==="report"?"reports":"briefings"}}const re="BRIEFING",at=["markdown","html"],ne=["markdown"],X=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},F={maxBlocks:50,maxTableRows:100,maxTableColumns:20,maxTableCellCharacters:y.contentCell,maxParagraphCharacters:y.contentText,maxFindingCharacters:y.contentText,maxListItems:100,maxKpiTiles:8};function it(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 lt(e){return e==null?"":it(e)?$.formatNumericCanonical(e.value,e.format):String(e)}function gr(e){return[e.delta,e.percentChange].filter(r=>r!=null).map(lt).filter(Boolean).join(" / ")}const ct=new Set(at),vr=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}},br=new Set(["letter","legal","a4","a3","tabloid"]),Ir=new Set(["portrait","landscape"]),Tr=new Set([",",";"," "]),Cr=new Set(["current","all"]),wr=new Set(["concise","balanced","detailed"]),Er=new Set(["info","positive","warning","critical"]),$r=new Set(["text","number","currency","percent","date","boolean"]),kr=new Set(["left","center","right"]),Sr=["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 dt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function p(e,r,t){e.push({field:r,message:t})}function k(e,r,t){return dt(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 _r(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 xr(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 L(e,r,t,n){return e==null?r:typeof e!="boolean"?(p(n,t,"Expected a boolean."),r):e}function Rr(e,r){return e==null?"ACTIVE":e==="ACTIVE"||e==="PAUSED"||e==="DISABLED"?e:(p(r,"status","Expected ACTIVE, PAUSED, or DISABLED."),"ACTIVE")}function Fr(e){return e.includes("@")&&e.includes(".")&&!e.includes(" ")}function st(e,r){if(e==null)return{type:"project"};const t=k(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 mt(e,r){const t=k(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:_r(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 Ar(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"||!ct.has(n)){p(r,`presentation.artifactFormats.${o}`,"Expected markdown or html.");return}t.includes(n)||t.push(n)}),t}function ut(e,r){if(e==null)return{artifactFormats:[...ne],includeEvidence:!0,includeSql:!0};const t=k(e,"presentation",r);I(t,"presentation",["artifactFormats","includeEvidence","includeSql","audience","tone","format","appearance","brandOverrides","fragments","viewUrl"],r);const n={artifactFormats:Ar(t.artifactFormats,r),includeEvidence:L(t.includeEvidence,!0,"presentation.includeEvidence",r),includeSql:L(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=rr(t);return c.issues.forEach(m=>p(r,m.field,m.message)),Object.assign(n,c.value),n}function Br(e,r,t){return Array.isArray(e)?(e.length===0&&p(t,r,"Expected at least one item."),e.length>F.maxListItems&&p(t,r,`Must have ${F.maxListItems} items or fewer.`),e.slice(0,F.maxListItems).map((n,o)=>w(n,`${r}.${o}`,y.contentItem,t)).filter(Boolean)):(p(t,r,"Expected an array."),[])}function Pr(e,r,t){const n=k(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 ft(e,r,t){if(e===null||typeof e!="object"||Array.isArray(e))return;const n=k(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=Pr(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=ft(e,r,t);if(n)return n;p(t,r,"Expected a string, number, or structured numeric value.")}function Dr(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=ft(e,r,t);return n||(p(t,r,"Expected a string, number, boolean, structured numeric value, or null."),null)}function Mr(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>F.maxTableColumns&&p(t,r,`Must have ${F.maxTableColumns} columns or fewer.`);const n=new Set;return e.slice(0,F.maxTableColumns).map((o,a)=>{const i=`${r}.${a}`,c=k(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`,$r,"text, number, currency, percent, date, or boolean",t),f=z(c.align,`${i}.align`,kr,"left, center, or right",t);return{key:m,label:l,...s?{kind:s}:{},...f?{align:f}:{}}})}function Or(e,r,t,n){if(!Array.isArray(e))return p(n,r,"Expected an array."),[];e.length>F.maxTableRows&&p(n,r,`Must have ${F.maxTableRows} rows or fewer.`);const o=new Set(t.map(a=>a.key).filter(Boolean));return e.slice(0,F.maxTableRows).map((a,i)=>{const c=`${r}.${i}`,m=k(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,Dr(m[l.key]??null,`${c}.${l.key}`,n)]))})}function Kr(e,r,t){const n=`content.blocks.${r}`,o=k(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`,Er,"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:Br(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>F.maxKpiTiles&&p(t,`${n}.tiles`,`Must have ${F.maxKpiTiles} tiles or fewer.`);const m=c.slice(0,F.maxKpiTiles).map((s,f)=>{const u=`${n}.tiles.${f}`,d=k(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=Mr(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=xr(o.totalRows,`${n}.totalRows`,t),f=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"table",...m?{id:m}:{},...c?{title:c}:{},columns:i,rows:Or(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 pt(e){const r=[],t=k(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>F.maxBlocks&&p(r,"content.blocks",`Must have ${F.maxBlocks} blocks or fewer.`);const i=a.slice(0,F.maxBlocks).map((c,m)=>Kr(c,m,r));return Te(r),{version:1,...n?{title:n}:{},...o?{summary:o}:{},blocks:i}}function Nr(e){try{return{valid:!0,value:pt(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 zr(e,r,t){if(e!=null){if(!Array.isArray(e)){p(t,r,"Expected an array.");return}return e}}function Vr(e,r,t){if(e!=null){if(!dt(e)){p(t,r,"Expected an object.");return}return e}}function Lr(e,r,t){if(e==null)return;const n=k(e,r,t);I(n,r,Sr,t);const o={},a=z(n.pageSize,`${r}.pageSize`,br,"letter, legal, a4, a3, or tabloid",t),i=z(n.orientation,`${r}.orientation`,Ir,"portrait or landscape",t),c=z(n.delimiter,`${r}.delimiter`,Tr,"comma, semicolon, or tab",t),m=z(n.sheetSelection,`${r}.sheetSelection`,Cr,"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=zr(n[l],`${r}.${l}`,t);s&&(o[l]=s)}for(const l of["controlValues","tablePreferences","dashboardInputExecutionSnapshot"]){const s=Vr(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=Lr(r,t,n);return o&&(e.settings=o),e}function Ur(e,r,t){const n=`attachments.${r}`,o=k(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 yt(e,r){if(e==null)return[];if(!Array.isArray(e))return p(r,"attachments","Expected an array."),[];e.length>X&&p(r,"attachments",`Choose ${X} attachments or fewer.`);const t=e.slice(0,X).map((o,a)=>Ur(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 ht(e,r){if(e==null)return;const t=k(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 Te(e){if(e.length>0)throw new J(e)}function gt(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 jr(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 Ce(e){const r=[],t=k(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=st(t.source,r),a=mt(t.body,r),i=yt(t.attachments,r),c=ut(t.presentation,r),m=ht(t.limits,r);return gt(a,i,r),jr(n==null?void 0:n.resolvedFormats,i,"jobConfig.presentationExecutionSnapshot.resolvedFormats"),Te(r),{kind:re,presentationExecutionSnapshot:n,source:o,body:a,attachments:i,presentation:c,...m?{limits:m}:{}}}function Gr(e){return Ce({...e,kind:re})}function we(e,r,t,n="deliveryConfig.recipients"){const o=`${n}.${r}`,a=k(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&&!Fr(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 Hr(e,r){return e==null?[]:Array.isArray(e)?e.map((t,n)=>we(t,n,r)):(p(r,"deliveryConfig.recipients","Expected an array."),[])}function Wr(e,r){if(!Array.isArray(e))return p(r,"deliveryConfig.channels","Expected an array."),[];const t=[];return e.forEach((n,o)=>{if(!Ee(n)){p(r,`deliveryConfig.channels.${o}`,"Expected EMAIL, WEBHOOK, SLACK, IN_APP, or TELEGRAM.");return}t.includes(n)||t.push(n)}),t}function Yr(e,r,t){if(e==null)return;const n=k(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 Qr(e,r,t){if(e==null)return;const n=k(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=Yr(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 Jr(e,r,t){const n=k(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:L(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:we(n.recipient,0,t,`${r}.recipient`)}):(p(t,`${r}.type`,"Expected channel."),{type:"channel",channelId:""})}function Zr(e,r,t){if(e==null)return;if(!Array.isArray(e)){p(t,r,"Expected an array.");return}const n=e.map((o,a)=>we(o,a,t,r));return n.length>0?n:void 0}function Xr(e,r,t){if(e==null)return;const n=k(e,r,t);I(n,r,["destination","threadMentions","postThreadDetail","includeDashboardLink","includeBriefingLink"],t);const o=Zr(n.threadMentions,`${r}.threadMentions`,t),a=L(n.postThreadDetail,!0,`${r}.postThreadDetail`,t),i=L(n.includeDashboardLink,!0,`${r}.includeDashboardLink`,t),c=L(n.includeBriefingLink,!0,`${r}.includeBriefingLink`,t);return{destination:Jr(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 en(e,r,t){const n=k(e,r,t);I(n,r,["subjectOverride","titleOverride","summaryOverride","actionBlockVisible","formatProfile","slackConfig","webhookConfig"],t);const o=z(n.formatProfile,`${r}.formatProfile`,wr,"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=L(n.actionBlockVisible,!0,`${r}.actionBlockVisible`,t),l=Qr(n.webhookConfig,`${r}.webhookConfig`,t),s=Xr(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 tn(e,r){if(e==null)return;const t=k(e,"deliveryConfig.channelConfigs",r),n={};return Object.entries(t).forEach(([o,a])=>{if(!Ee(o)){p(r,`deliveryConfig.channelConfigs.${o}`,"Expected a supported delivery channel.");return}n[o]=en(a,`deliveryConfig.channelConfigs.${o}`,r)}),Object.keys(n).length>0?n:void 0}function rn(e,r){var m,l,s;if(e==null)return null;const t=k(e,"deliveryConfig",r);I(t,"deliveryConfig",["recipients","channels","channelConfigs"],r);const n=tn(t.channelConfigs,r),o=Hr(t.recipients,r),a=Wr(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=k(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=Rr(t.status,r),m=st(t.source,r),l=mt(t.body,r),s=yt(t.attachments,r),f=ut(t.presentation,r),u=ht(t.limits,r),d=rn(t.deliveryConfig,r);return gt(l,s,r),Te(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 nn(e){return le(e)}function on(e){return le(e)}function an(e){try{return{valid:!0,value:le(e),issues:[]}}catch(r){if(r instanceof J)return{valid:!1,issues:r.issues};throw r}}function ln(e){try{return{valid:!0,value:Ce(e),issues:[]}}catch(r){if(r instanceof J)return{valid:!1,issues:r.issues};throw r}}function cn(e){return typeof e=="string"&&ct.has(e)}function Ee(e){return typeof e=="string"&&vr.has(e)}exports.AmbiguousGroupedTemporalGrainError=Ae;exports.BRIEFING_ARTIFACT_FORMATS=at;exports.BRIEFING_CONTENT_LIMITS=F;exports.BRIEFING_KIND=re;exports.BRIEFING_TEXT_LIMITS=y;exports.BriefingContractError=J;exports.DEFAULT_BRIEFING_ARTIFACT_FORMATS=ne;exports.DEFAULT_BRIEFING_SCHEDULE=or;exports.DashboardTemporalBoundaryError=K;exports.MAX_BRIEFING_ATTACHMENTS=X;exports.PYTHON_DEFAULT_CODE=Fe;exports.buildBriefingJobConfig=Gr;exports.buildBriefingScheduleExpr=lr;exports.buildCreateBriefingRequest=nn;exports.buildDashboardCardTableConfig=Tt;exports.buildDashboardTemporalSnapshotEntries=Jt;exports.buildSlotOrderedCards=We;exports.buildUpdateBriefingRequest=on;exports.canCreateBriefingForUser=pr;exports.createCardsFromSlots=Gt;exports.describeBriefingSchedule=sr;exports.findCustomVisualConfigCard=Qe;exports.formatBriefingComparisonValues=gr;exports.formatBriefingDisplayValue=lt;exports.formatGroupedTemporalFieldValue=Ft;exports.formatGroupedTemporalRecords=St;exports.formatGroupedTemporalValue=ge;exports.getActiveCardFromVisualResource=Nt;exports.getActiveFrameCard=ve;exports.getBriefingCardAttachmentCapability=fr;exports.getBriefingCardAttachmentFormats=tt;exports.getBriefingCreationIntents=yr;exports.getBriefingDisplayTypeLabel=ot;exports.getBriefingPresentation=hr;exports.getConfigSlotExpectedType=qt;exports.getCustomVisualInputCards=Ye;exports.getDefaultBriefingCardAttachmentFormat=rt;exports.getEffectiveCardTypeForSlot=jt;exports.getSlotDefinitionForIndex=be;exports.getSlotExpectedChartType=ie;exports.getSlotIndexForCard=He;exports.isBriefingArtifactFormat=cn;exports.isBriefingDeliveryChannel=Ee;exports.isBriefingNumericValue=it;exports.isCardRawTemporalPresentationActivated=Dt;exports.isCardRawTemporalResultCompatible=Kt;exports.isCustomVisualConfigCard=pe;exports.isDeclaredSqlRawTemporalPresentationCard=Le;exports.isEmailOnlyBriefingDelivery=nt;exports.isGroupedTemporalResultCompatible=_t;exports.isPivotResultContractCompatibleWithCardConfig=Me;exports.isValidBriefingTimezone=ar;exports.normalizeBriefingContentDocument=pt;exports.normalizeBriefingDraft=le;exports.normalizeBriefingJobConfig=Ce;exports.normalizeDashboardCardPythonCode=q;exports.normalizeGroupedTemporalField=Be;exports.normalizeMultiInputPayload=Wt;exports.parseBriefingScheduleExpr=et;exports.parseCanonicalPivotResultTransportOnce=De;exports.parseFrameObject=je;exports.presentRawTemporalCell=Ot;exports.previewDeclaredSqlRawTemporalFormat=Bt;exports.reindexSlotCards=Ut;exports.resolveCardRawTemporalPresentation=qe;exports.resolveCartesianTemporalActivation=Et;exports.resolveDashboardCardResultOwner=Q;exports.resolveDashboardTemporalActivation=Pe;exports.resolveDeclaredSqlRawTemporalFormat=ae;exports.resolveDetailTableRawTemporalPresentation=Ue;exports.resolveGroupedTemporalFieldPresentationByRole=Ke;exports.resolveGroupedTemporalFieldSnapshotFormat=Ne;exports.resolveGroupedTemporalPresentation=Rt;exports.resolveMultiInputType=Je;exports.resolveMultiInputTypeFromVisual=Ht;exports.resolveRegularTableTemporalActivation=wt;exports.validateBriefingContentDocument=Nr;exports.validateBriefingDraft=an;exports.validateBriefingJobConfig=ln;