react-semaphor 0.1.513 → 0.1.515
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/brand-studio/index.cjs +1 -1
- package/dist/brand-studio/index.js +1 -1
- package/dist/briefings/index.cjs +1 -1
- package/dist/briefings/index.js +3 -3
- package/dist/chunks/{dashboard-briefing-launcher-BgGxFDKD.cjs → dashboard-briefing-launcher-B7zqm8P1.cjs} +1 -1
- package/dist/chunks/{dashboard-briefing-launcher-C7ptb5Yf.js → dashboard-briefing-launcher-BA_bl05p.js} +5 -5
- package/dist/chunks/{dashboard-controls-BybAeRL8.js → dashboard-controls-QMW17RKx.js} +6 -6
- package/dist/chunks/{dashboard-controls-BFT7savs.cjs → dashboard-controls-x_v9wLOU.cjs} +1 -1
- package/dist/chunks/{dashboard-json-qNJC4fZW.cjs → dashboard-json-0ZLLBlHj.cjs} +1 -1
- package/dist/chunks/{dashboard-json-DmgEQ0yQ.js → dashboard-json-DRnpkNwO.js} +3 -3
- package/dist/chunks/{edit-dashboard-visual-CHqpQVfv.js → edit-dashboard-visual-1ISjhwry.js} +1377 -1380
- package/dist/chunks/{edit-dashboard-visual-BS219qr8.cjs → edit-dashboard-visual-CI0EqzKj.cjs} +2 -2
- package/dist/chunks/{editor-action-buttons-DbU_vUvm.js → editor-action-buttons-BTCKZERI.js} +3 -3
- package/dist/chunks/{editor-action-buttons-6NvSUz4D.cjs → editor-action-buttons-Czq5SnA9.cjs} +1 -1
- package/dist/chunks/{index-DhlVxvyI.cjs → index-BMMXKK3G.cjs} +1 -1
- package/dist/chunks/{index-CrxlydOT.cjs → index-C6_xef4P.cjs} +168 -168
- package/dist/chunks/{index-CACdoqu3.js → index-C8w91oj4.js} +61 -51
- package/dist/chunks/index-Cw2ypaFl.cjs +1 -0
- package/dist/chunks/{index-WMVZeOZp.js → index-Dlic9KZs.js} +32234 -31816
- package/dist/chunks/{index-CnGVjyF8.js → index-v1OE4-eA.js} +2 -2
- package/dist/chunks/matrix-formatter-BdIsE7Qu.js +341 -0
- package/dist/chunks/matrix-formatter-Dajj91Ni.cjs +1 -0
- package/dist/chunks/{pivot-header-presentation-Dm9dUQsl.js → pivot-header-presentation-BIf4HW3L.js} +35 -36
- package/dist/chunks/{pivot-header-presentation-Cxz8-06f.cjs → pivot-header-presentation-B_N11CgN.cjs} +3 -3
- package/dist/chunks/{pivot-result-lifecycle-BeOpjAhg.js → pivot-result-lifecycle-CEmyU2At.js} +207 -148
- package/dist/chunks/pivot-result-lifecycle-vg_suUNb.cjs +1 -0
- package/dist/chunks/{raw-temporal-DrmCX9Wq.js → raw-temporal-Bj6_w9cG.js} +471 -361
- package/dist/chunks/raw-temporal-CeblVJbu.cjs +1 -0
- package/dist/chunks/{report-preferences-dialog-CaefWf8W.cjs → report-preferences-dialog-Dr1BYwuf.cjs} +1 -1
- package/dist/chunks/{report-preferences-dialog-BoDcPtha.js → report-preferences-dialog-b8J6KjSy.js} +2 -2
- package/dist/chunks/semantic-format-DFI1iszk.cjs +1 -0
- package/dist/chunks/{semantic-format-BZxJLKvw.js → semantic-format-Dt-nUxFB.js} +23 -29
- package/dist/chunks/switch-Ced9ZZwI.cjs +134 -0
- package/dist/chunks/{switch-QfKb0Iwe.js → switch-D5_tjsIS.js} +3139 -3087
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +1 -1
- package/dist/data-app-builder/index.cjs +1 -1
- package/dist/data-app-builder/index.js +2 -2
- package/dist/data-app-sdk/index.cjs +1 -1
- package/dist/data-app-sdk/index.js +1 -1
- package/dist/format-utils/index.cjs +3 -3
- package/dist/format-utils/index.js +131 -126
- package/dist/index.cjs +1 -1
- package/dist/index.js +7 -7
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +2 -2
- package/dist/types/components/calculated-fields/templates-menu.d.ts +0 -9
- package/dist/types/components/visual/aggregated-table/utils/metric-format-resolver.d.ts +3 -3
- package/dist/types/components/visual/data-table/types/data-table.d.ts +4 -1
- package/dist/types/components/visual/pivot-table/utils/pivot-metric-formatting.d.ts +2 -2
- package/dist/types/index.cjs +1 -1
- package/dist/types/index.js +58 -34
- package/dist/types/lib/formatters/metric-formatting.d.ts +3 -3
- package/dist/types/lib/table-formatting/table-presentation-fields.d.ts +1 -0
- package/dist/types/lib/types/calculated-field-template-types.d.ts +3 -2
- package/dist/types/lib/utils/calculated-field-row-templates.d.ts +6 -4
- package/dist/types/lib/utils/date-timezone-utils.d.ts +26 -4
- package/dist/types/shared/format-utils/formatters/duration-formatter.d.ts +4 -1
- package/dist/types/shared/format-utils/formatters/index.d.ts +2 -2
- package/dist/types/shared/format-utils/formatters/number-formatter.d.ts +8 -2
- package/dist/types/shared/format-utils/presentation-execution.d.ts +17 -2
- package/dist/types/shared/format-utils/types/format-types.d.ts +16 -1
- package/package.json +1 -1
- package/dist/chunks/index-F25jnH0p.cjs +0 -1
- package/dist/chunks/matrix-formatter-BLunke3R.js +0 -424
- package/dist/chunks/matrix-formatter-CveLJo6S.cjs +0 -1
- package/dist/chunks/pivot-result-lifecycle-BiERyXnS.cjs +0 -1
- package/dist/chunks/raw-temporal-BUeTpG76.cjs +0 -1
- package/dist/chunks/semantic-format-BzH69TRq.cjs +0 -1
- package/dist/chunks/switch--Re1K566.cjs +0 -134
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { c as Ve, C as Re, X as et } from "./x-CXDkqdur.js";
|
|
2
2
|
import { useState as K, useEffect as ie, useCallback as j, useMemo as oe, useRef as Se, Fragment as gt } from "react";
|
|
3
|
-
import { E as de, z as _e, u as P, a4 as U, D as z, a5 as bt, Q as yt, V as xt, W as vt, c as fe, Y as Ct, a6 as St, a7 as kt, a8 as me, a9 as Qe, aa as Be, ab as ke, ac as Ne, ad as Nt, ae as wt, af as $e, ag as Dt, ah as Et, ai as pe, aj as Tt, ak as We, B as q, al as tt, am as at, an as rt, O as ne, Z as st, _ as we, $ as De, a0 as Ee, a1 as Te, a2 as Fe, ao as nt, ap as Ft, aq as It, ar as He, as as Vt, at as Ke, au as _t, av as At, aw as Lt, ax as qt, ay as Ie, d as Mt, L as ot, az as Ot, aA as zt } from "./switch-
|
|
4
|
-
import { b6 as Ut, az as jt, b7 as ce, b8 as Rt, b9 as Ae, ba as Qt, bb as Bt, bc as $t, bd as Wt, be as Ht, bf as Kt, bg as lt, bh as it, u as Yt, bi as Gt, bj as Xt, bk as Ye, bl as Jt, bm as Pt, bn as dt, bo as ct, bp as Zt, bq as ea, br as ta, bs as aa, bt as ra, aY as sa, bu as na, bv as ut, bw as oa } from "./index-
|
|
3
|
+
import { E as de, z as _e, u as P, a4 as U, D as z, a5 as bt, Q as yt, V as xt, W as vt, c as fe, Y as Ct, a6 as St, a7 as kt, a8 as me, a9 as Qe, aa as Be, ab as ke, ac as Ne, ad as Nt, ae as wt, af as $e, ag as Dt, ah as Et, ai as pe, aj as Tt, ak as We, B as q, al as tt, am as at, an as rt, O as ne, Z as st, _ as we, $ as De, a0 as Ee, a1 as Te, a2 as Fe, ao as nt, ap as Ft, aq as It, ar as He, as as Vt, at as Ke, au as _t, av as At, aw as Lt, ax as qt, ay as Ie, d as Mt, L as ot, az as Ot, aA as zt } from "./switch-D5_tjsIS.js";
|
|
4
|
+
import { b6 as Ut, az as jt, b7 as ce, b8 as Rt, b9 as Ae, ba as Qt, bb as Bt, bc as $t, bd as Wt, be as Ht, bf as Kt, bg as lt, bh as it, u as Yt, bi as Gt, bj as Xt, bk as Ye, bl as Jt, bm as Pt, bn as dt, bo as ct, bp as Zt, bq as ea, br as ta, bs as aa, bt as ra, aY as sa, bu as na, bv as ut, bw as oa } from "./index-Dlic9KZs.js";
|
|
5
5
|
import { jsx as a, jsxs as m, Fragment as Z } from "react/jsx-runtime";
|
|
6
6
|
import "./card-config-utils-B2cDWQqB.js";
|
|
7
7
|
import { t as la } from "./validators-CkHsAvwB.js";
|
|
8
8
|
import "./matrix-operation-contract-D0HfzwZg.js";
|
|
9
9
|
import "../value-format-preferences/index.js";
|
|
10
10
|
import { C as Ge } from "./selection-reducer-BIiQXbGM.js";
|
|
11
|
-
import { f as ia } from "./index-
|
|
11
|
+
import { f as ia } from "./index-v1OE4-eA.js";
|
|
12
12
|
import { S as mt } from "./save-DgMfP0j8.js";
|
|
13
13
|
/**
|
|
14
14
|
* @license lucide-react v0.453.0 - ISC
|
package/dist/chunks/{editor-action-buttons-6NvSUz4D.cjs → editor-action-buttons-Czq5SnA9.cjs}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const J=require("./x-B6ghREd2.cjs"),C=require("react"),r=require("./switch
|
|
1
|
+
"use strict";const J=require("./x-B6ghREd2.cjs"),C=require("react"),r=require("./switch-Ced9ZZwI.cjs"),y=require("./index-C6_xef4P.cjs"),e=require("react/jsx-runtime");require("./card-config-utils-CMO4_zVs.cjs");const Te=require("./validators-DVYAnnX0.cjs");require("./matrix-operation-contract-DoiWTUbT.cjs");require("../value-format-preferences/index.cjs");const ge=require("./selection-reducer-CGKKsaPa.cjs"),Fe=require("./index-BMMXKK3G.cjs"),Se=require("./save-3dYRmehL.cjs");/**
|
|
2
2
|
* @license lucide-react v0.453.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var wt=Object.defineProperty;var Et=(e,r,t)=>r in e?wt(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var F=(e,r,t)=>Et(e,typeof r!="symbol"?r+"":r,t);const A=require("./raw-temporal-
|
|
1
|
+
"use strict";var wt=Object.defineProperty;var Et=(e,r,t)=>r in e?wt(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var F=(e,r,t)=>Et(e,typeof r!="symbol"?r+"":r,t);const A=require("./raw-temporal-CeblVJbu.cjs"),V=require("./validators-DVYAnnX0.cjs");require("./matrix-continuation-6nhDy-lF.cjs");require("./matrix-operation-contract-DoiWTUbT.cjs");const ge=require("../value-format-preferences/index.cjs"),B=require("./pivot-result-lifecycle-vg_suUNb.cjs"),$=require("zod"),xt=require("./matrix-definition-CBJW_4ii.cjs"),P=require("./card-config-utils-CMO4_zVs.cjs"),St=require("./matrix-card-U4c72doZ.cjs"),z=require("./pivot-result-identity-uTiylUNr.cjs"),ke=require("./temporal-bucket-contract-ZctiyXYk.cjs"),Y=require("./temporal-bucket-4YEPEKlJ.cjs"),ie=require("./field-aggregations-jSi77h9Z.cjs"),Be=require("./raw-temporal-contract-DECbTuzA.cjs"),se=require("./canonical-result-keys-Cb96edol.cjs"),De=`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 $t(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 G(e){return e===De?"":e}function Z(e,r=e.config){return ie.resolveTemporalResultOwner({hasExecutableConfig:P.hasValidCardConfig(r,e.type),sql:e.sql,normalizedPython:G(e.python||"")})}class Pe extends Error{constructor(t){super(`ambiguous_temporal_grain: Temporal field "${t}" has saved presentation but no valid grouping grain. Reconfigure and resave the field.`);F(this,"code","ambiguous_temporal_grain");F(this,"fieldId");this.name="AmbiguousGroupedTemporalGrainError",this.fieldId=t}}function kt(e){return P.hasSavedTemporalBucketPresentation(e)||e.semanticTemporalPresentation!=null}function Me(e){if(!e.id||!["date","datetime"].includes(V.normalizeAnalyticsCatalogDataType(e.dataType)))return;if(V.isSemaphorTimeGrain(e.granularity))return e;if(!kt(e))return;if(!P.readSavedTemporalBucketFormat({fieldId:e.id,dataType:e.dataType,granularity:e.granularity,format:e.format,dateFormat:e.dateFormat,customFormat:e.customFormat}).ok)throw new Pe(e.id);return{...e,granularity:"day"}}function ve(e){const r=e.cardConfig??e.card.config;if(!r||!e.supportsCardType(e.card.type)||ie.resolveTemporalResultOwner({hasExecutableConfig:P.hasValidCardConfig(r),sql:e.card.sql,normalizedPython:G(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=Me(n);return o?[o]:[]})}}function _t(e){if(P.isShelfCard(e.card))return ve({...e,card:e.card,supportsCardType:r=>r==="table"})}function Ft(e){if(P.isShelfCard(e.card))return ve({...e,card:e.card,supportsCardType:ie.isSemaphorCartesianChartType})}function Oe(e){if(P.isShelfCard(e.card))return ve({...e,card:e.card,supportsCardType:r=>r!=="detailTable"&&ie.supportsCanonicalDashboardTemporalResult(r)})}const _e=new WeakMap;function Ke(e){const r=_e.get(e);if(r)return r;const t=B.parseCanonicalPivotResultTransport(e);return _e.set(e,t),t}function Q(e,r){const t=e??[],n=r??[];return t.length===n.length&&t.every((o,a)=>o===n[a])}function ze(e,r){const t=B.derivePivotResultContractExpectations({groupByFields:r.groupByColumns,metricFields:r.metricColumns,pivotByFields:r.pivotByColumns,detailFields:r.detailColumns});return Q(e.expectedRoleFieldIds.groupby,t.expectedRoleFieldIds.groupby)&&Q(e.expectedRoleFieldIds.metric,t.expectedRoleFieldIds.metric)&&Q(e.expectedRoleFieldIds.pivotby,t.expectedRoleFieldIds.pivotby)&&Q(e.expectedRoleFieldIds.detail,t.expectedRoleFieldIds.detail)&&Q(e.expectedMetricAliases,t.expectedMetricAliases)}class Rt 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.`);F(this,"code","missing_resolved_temporal_format");F(this,"deliveryBlocking",!0);F(this,"dashboardId");F(this,"cardId");F(this,"fieldId");this.name="MissingResolvedTemporalPresentationError",this.dashboardId=t.dashboardId,this.cardId=t.cardId,this.fieldId=t.fieldId}}class me 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.`);F(this,"code","missing_temporal_bucket_metadata");F(this,"deliveryBlocking",!0);F(this,"cardId");F(this,"fieldId");F(this,"columnKey");this.name="MissingTemporalResultMetadataError",this.cardId=t.cardId,this.fieldId=t.fieldId,this.columnKey=t.columnKey}}class L extends Error{constructor(t,n,o){super(`${t}: ${n}`);F(this,"deliveryBlocking",!0);this.code=t,this.context=o,this.name="DashboardTemporalBoundaryError"}}function Ne(e,r){return`${r}:${e}`}function Ve(e){var r,t;return(t=(r=e.presentation)==null?void 0:r.byFieldRole)==null?void 0:t.get(Ne(e.fieldId,e.role))}function At(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)===V.SEMAPHOR_GENERATED_COUNT_METRIC_ID)})}function Bt(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]=be({value:t[a],presentation:o}))}),n})}function Dt(e){var f;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=Ke(r);if(!ze(d.pivotResultContract,t.cardConfig))return!1;if(d.pivotResultState==="loaded_empty")return!0;const v=d.columns.filter(C=>d.pivotResultContract.columnKinds[C.key]==="pivot_metric"),h=v.filter(C=>{var g;return(((g=C.pivotIdentity)==null?void 0:g.members.length)??0)>0}),b=v.length>0&&v.every(C=>{var g;return((g=C.pivotIdentity)==null?void 0:g.members.length)===0&&z.isPivotEmptyTupleAllowed({expectedPivotFieldIds:o,classification:d.pivotResultContract.columnClassifications[C.key]})});return t.fields.every(C=>{var S;const g=z.resolveQueryColumnKeyMapEntry(d.columnKeyMap,C.id,C.role);if(!g)return!1;if(g.role==="pivotby"){const _=h.flatMap(M=>{var H;return((H=M.pivotIdentity)==null?void 0:H.members.filter(Tt=>Tt.fieldId===C.id))??[]});return _.length===0?b:_.every(M=>{var H;return((H=M.temporalBucket)==null?void 0:H.granularity)===C.granularity})}const T=d.columns.find(_=>_.key===(g.outputKey||g.rawKey));return((S=T==null?void 0:T.temporalBucket)==null?void 0:S.granularity)===C.granularity})}catch(d){if(d instanceof B.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"}))],l=new Set(i.map(({field:d,role:v})=>`${v}:${d.id}`)),m=new Map((r.columns||[]).map(d=>[d.key,d])),c=z.resolveQueryColumnKeyMapEntry(a,V.SEMAPHOR_GENERATED_COUNT_METRIC_ID,"metric");if(c){if(!At({cardConfig:t.cardConfig,binding:c,columns:r.columns||[]}))return!1;l.add(`metric:${V.SEMAPHOR_GENERATED_COUNT_METRIC_ID}`)}const s=Object.entries(a.byRole).flatMap(([d,v])=>Object.keys(v||{}).map(h=>`${d}:${h}`));if(s.length!==l.size||s.some(d=>!l.has(d))||i.some(({field:d,role:v})=>!z.resolveQueryColumnKeyMapEntry(a,d.id,v)))return!1;try{z.requirePivotResultColumnIdentities((r.columns||[]).map(d=>({key:d.key,pivotIdentity:d.pivotIdentity})),{expectedPivotFieldIds:o,columnClassifications:r.columnMetadata})}catch(d){if(d instanceof z.PivotResultIdentityError)return!1;throw d}const u=(r.columns||[]).filter(d=>{const v=d.pivotIdentity;return!!(v&&v.members.length>0)});return n!==0&&((f=t.cardConfig.pivotByColumns)!=null&&f.length)&&u.length===0?!1:t.fields.every(d=>{var b;const v=z.resolveQueryColumnKeyMapEntry(a,d.id,d.role);if(!v)return!1;if(v.role==="pivotby"){const g=u.flatMap(T=>{var S;return((S=T.pivotIdentity)==null?void 0:S.members)??[]}).filter(T=>T.fieldId===d.id);return u.length===0?n===0:g.length>0&&g.every(T=>{var S;return((S=T.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 ne(e,r){const t=e.semanticTemporalPresentation,n=r==="card"?{format:e.format,dateFormat:e.dateFormat}:{format:t==null?void 0:t.format};if(!P.hasSavedTemporalBucketPresentation(n))return;const o=P.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 Pt(e,r,t=ge.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES){const n=ne(e,"card"),o=ne(e,"semantic"),a=e.semanticTemporalPresentation;return Y.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 qe(e,r=Y.DEFAULT_RESOLVED_TEMPORAL_STYLE_SET,t="en-US"){var i;const n=ne(e,"card"),o=((i=e.semanticTemporalPresentation)==null?void 0:i.granularity)===e.granularity?ne(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 Mt(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(c=>[c.key,c])),n=new Map,o=new Map,a=new Map,i=r.fields.reduce((c,s)=>(c.set(s.id,(c.get(s.id)||0)+1),c),new Map),l=(c,s)=>{a.set(Ne(c.id,c.role),s),i.get(c.id)===1&&o.set(c.id,s)},m=(c,s,u)=>{if(s.granularity!==c.granularity)throw new L("invalid_temporal_bucket_metadata",`Result identity "${u}" declares ${s.granularity} buckets for active ${c.granularity} field "${c.id}".`,{cardId:e.card.id,fieldId:c.id,columnKey:u});const f=e.executionSnapshot&&e.dashboardId?B.findResolvedTemporalBucketFormat({snapshot:e.executionSnapshot,scope:{dashboardId:e.dashboardId,cardId:e.card.id,...e.attachmentIndex!==void 0?{attachmentIndex:e.attachmentIndex}:{}},target:{kind:"field",fieldId:c.id,role:c.role}}):void 0;if(e.executionSnapshot&&!f)throw new Rt({dashboardId:e.dashboardId,cardId:e.card.id,fieldId:c.id});return{columnKey:u,fieldId:c.id,role:c.role,metadata:s,resolved:f?Y.resolveTemporalBucketPresentation({metadata:s,cardFormat:f,locale:f.locale,...f.presentation.mode==="auto"?{styles:f.presentation.styles}:{}}):Pt(c,s,e.valueFormatPreferences??ge.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES)}};for(const c of r.fields){const s=z.resolveQueryColumnKeyMapEntry(e.columnKeyMap,c.id,c.role);if(!s){if(e.columns===void 0&&e.columnKeyMap===void 0&&(e.resultRowCount===void 0||e.resultRowCount===0))continue;throw new L("missing_temporal_column_binding",`Activated temporal field "${c.id}" has no authoritative result-column binding.`,{cardId:e.card.id,fieldId:c.id,columnKey:c.name})}if(s.role==="pivotby"){const h=(e.columns||[]).filter(S=>S.pivotIdentity!==void 0),b=h.flatMap(S=>{var _;return(((_=S.pivotIdentity)==null?void 0:_.members)||[]).filter(M=>M.fieldId===c.id).map(M=>({column:S,member:M}))});if(b.length===0){if(h.length===0&&(e.card.type!=="pivotTable"||e.resultRowCount===0))continue;throw new me({cardId:e.card.id,fieldId:c.id,columnKey:s.outputKey||s.rawKey})}const C=b[0];if(!C.member.temporalBucket)throw new me({cardId:e.card.id,fieldId:c.id,columnKey:C.column.key});const g=ke.validateTemporalBucketMetadata(C.member.temporalBucket);if(!g.ok||!g.value)throw new L("invalid_temporal_bucket_metadata",g.ok?`Pivot result column "${C.column.key}" has no validated temporal bucket metadata.`:g.error.message,{cardId:e.card.id,fieldId:c.id,columnKey:C.column.key});const T=m(c,g.value,C.column.key);for(const{column:S,member:_}of b)if(!_.temporalBucket||JSON.stringify(_.temporalBucket)!==JSON.stringify(C.member.temporalBucket))throw new L("invalid_temporal_bucket_metadata",`Pivot result column "${S.key}" has contradictory bucket metadata for field "${c.id}".`,{cardId:e.card.id,fieldId:c.id,columnKey:S.key});l(c,T);continue}const u=s.outputKey||s.rawKey,f=t.get(u);if(!(f!=null&&f.temporalBucket))throw new me({cardId:e.card.id,fieldId:c.id,columnKey:u});const d=ke.validateTemporalBucketResultColumn(f,{metadataRequired:!0});if(!d.ok||!d.value)throw new L("invalid_temporal_bucket_metadata",d.ok?`Result column "${u}" has no validated temporal bucket metadata.`:d.error.message,{cardId:e.card.id,fieldId:c.id,columnKey:u});const v=m(c,d.value,u);n.set(u,v),l(c,v)}return{byColumnKey:n,byFieldId:o,byFieldRole:a}}function Ot(e){var t,n;const r=e.role?Ve({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?be({value:e.value,presentation:r}):e.value===null||e.value===void 0?"":String(e.value)}function be(e){if(e.value===null||e.value===void 0)return"(Blank)";if(typeof e.value!="string")throw new L("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 Y.formatTemporalBucket({value:e.value,metadata:e.presentation.metadata,format:e.presentation.resolved.format})}catch(r){throw r instanceof Y.TemporalBucketContractError?new L(r.code,r.message,{fieldId:e.presentation.fieldId,columnKey:e.presentation.columnKey}):r}}class k extends Error{constructor(r,t,n){super(`${r}: ${t}`),this.code=r,this.context=n,Object.setPrototypeOf(this,k.prototype),this.name="RawTemporalPresentationBoundaryError"}}function Le(){return{type:"raw_temporal",presentation:{mode:"auto"}}}function Kt(e){if(e.locale||e.relative||e.timezone&&e.timezone!=="auto"||e.sourceTimezone&&e.sourceTimezone!=="auto"||e.prefix||e.suffix)throw new k("invalid_raw_temporal_format","Activated raw temporal presentation contains unsupported locale, relative-time, timezone, prefix, or suffix settings.")}function Ue(e){const r=e.format;if((r==null?void 0:r.type)==="date"&&(Kt(r),r.pattern))return{type:"raw_temporal",presentation:{mode:"pattern",dialect:"semaphor_tokens",pattern:r.pattern}};if(r)throw new k("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 k("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 ce(e){var i;if(e!=null&&e.useRelativeTime)return;if(!e)return Le();if(e.useCustomFormat&&!((i=e.customFormat)!=null&&i.trim()))throw new k("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 zt(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 Nt(e){A.validateRawTemporalPattern({dialect:"date_fns",pattern:e.pattern,valueKind:e.valueKind})}function Vt(e){const r=ce(e.settings);if(!r)throw new k("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=A.prepareRawTemporalFormatter({metadata:n,format:A.resolveRawTemporalFormat({format:r,preferences:e.preferences,calendar:{tz:e.calendarTimezone}})})(o);if(!a.ok)throw new k("invalid_raw_temporal_format",a.diagnostic.message);return a.text}function qt(e){try{return{ok:!0,text:Vt(e)}}catch(r){return{ok:!1,message:r instanceof Error?r.message:"Invalid SQL temporal presentation."}}}function Ie(e){var t;const r=e.effectiveCardConfig??e.card.config;return Z(e.card,r)==="freeform"&&!!((t=e.card.sql)!=null&&t.trim())&&!G(e.card.python||"").trim()}function je(e){var r,t;return e.type!=="table"&&e.type!=="detailTable"||!Ie({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 Lt(e){var t,n,o;if(!je(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 l,m,c;return[a,i.type==="date"&&((l=i.dateFormat)==null?void 0:l.useRelativeTime)!==!0&&((m=i.dateFormat)==null?void 0:m.useCustomFormat)===!0&&!((c=i.dateFormat.customFormat)!=null&&c.trim())?{...i,dateFormat:{...i.dateFormat,format:"",useCustomFormat:!1,customFormat:""}}:i]}))}}}}function Ut(){return{activatedColumnKeys:new Set,byColumnKey:new Map,byFieldId:new Map}}function ye(e,r){return e===void 0?{kind:"invalid",error:r}:{kind:"invalid",error:e instanceof k?e:e instanceof A.RawTemporalFormatContractError?new k(e.code,e.message,r.context):new k(r.code,e instanceof Error?e.message:r.message,r.context)}}function Ge(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 ye(void 0,new k("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])),l=new Map,m=new Map;for(const s of a){const u=Array.from(i).flatMap(([T,S])=>{const _=z.resolveQueryColumnKeyMapEntry(n,T,"detail");return _&&_.role==="detail"&&(_.outputKey??_.rawKey)===s.key?[{field:S,binding:_}]:[]}),f=u.length===1?u[0]:null;if(!f||typeof f.binding.rawKey!="string"||f.binding.rawKey.trim().length===0||f.binding.outputKey!==void 0&&(typeof f.binding.outputKey!="string"||f.binding.outputKey.trim().length===0))throw new k("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}=f,h=v.outputKey??v.rawKey,b=Be.validateRawTemporalResultColumn(s,{metadataRequired:!0});if(!b)throw new k("invalid_raw_temporal_metadata",`Raw temporal result column "${h}" has no metadata.`,{fieldId:d.id,columnKey:h});const C=A.resolveRawTemporalFormat({format:Ue(d),preferences:e.preferences,calendar:e.calendar}),g={fieldId:d.id,columnKey:h,metadata:b,format:C,formatValue:A.prepareRawTemporalFormatter({metadata:b,format:C})};for(let T=0;T<r.length;T+=1)if(!Object.prototype.hasOwnProperty.call(r[T],h)||r[T][h]===void 0)throw new k("missing_raw_temporal_result_contract",`Raw temporal result row ${T} is missing column "${h}".`,{fieldId:d.id,columnKey:h});l.set(h,g),m.set(d.id,g)}const c={activatedColumnKeys:new Set(l.keys()),byColumnKey:l,byFieldId:m};return r.length===0?{kind:"loaded_empty",presentation:c}:{kind:"loaded_valid",presentation:c}}catch(a){return ye(a,new k("invalid_raw_temporal_metadata","Activated raw temporal result metadata is invalid."))}}function He(e){var n,o,a;const r=e.effectiveCardConfig??e.card.config,t=Z(e.card,r);if(e.card.type==="detailTable"&&t==="config"){const i=!!((n=e.columns)!=null&&n.some(l=>l.rawTemporal));return i&&e.records!==void 0&&!e.columnKeyMap?{kind:"invalid",error:new k("missing_raw_temporal_result_contract","Activated raw temporal detail results require records, columns, and columnKeyMap atomically.")}:e.records!==void 0&&!i?{kind:"inactive"}:Fe(Ge({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 Fe(Gt({resultOwner:t,sql:e.card.sql,normalizedPython:G(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 jt(e){var n,o,a;const r=e.effectiveCardConfig??e.card.config,t=Z(e.card,r);return e.card.type==="detailTable"&&t==="config"?!!((n=e.columns)!=null&&n.some(i=>i.rawTemporal)):Ie(e)?Object.values(((a=(o=e.card.preferences)==null?void 0:o.tablePrefs)==null?void 0:a.columnSettingsMap)||{}).some(i=>{var l;return i.type==="date"&&!((l=i.dateFormat)!=null&&l.useRelativeTime)}):!1}function Fe(e,r){if(!r.executionSnapshot||e.kind==="inactive"||e.kind==="loading"||e.kind==="invalid")return e;if(!r.dashboardId)return{kind:"invalid",error:new k("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=B.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 B.MissingResolvedRawTemporalFormatError(o)};const i=e.presentation.byColumnKey.get(o);if(!i)continue;const l={...i,format:a,formatValue:A.prepareRawTemporalFormatter({metadata:i.metadata,format:a})};t.set(i.columnKey,l),i.fieldId&&n.set(i.fieldId,l)}return{...e,presentation:{activatedColumnKeys:e.presentation.activatedColumnKeys,byColumnKey:t,byFieldId:n}}}function Gt(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(([c])=>c)),i=new Map,l=[...e.columns||[]];for(const[c,s]of r){const u=ce(s.dateFormat);if(!u)continue;const f=A.classifyDeclaredSqlTemporalColumn({columnKey:c,values:e.records.map(b=>{if(!Object.prototype.hasOwnProperty.call(b,c))throw new k("missing_raw_temporal_result_contract",`Declared SQL temporal column "${c}" is absent from a physical result row.`,{columnKey:c});const C=b[c];return C===null||typeof C=="string"?C:String(C)})});if(i.set(c,f),f.status!=="classified")continue;let d=l.findIndex(b=>b.key===c);if(e.columns&&d<0)throw new k("missing_raw_temporal_result_contract",`Classified SQL temporal column "${c}" is absent from result columns.`,{columnKey:c});d<0&&(d=l.length,l.push({key:c,name:c,label:c,role:"dimension",dataType:"string"}));const v={...l[d],role:"date",dataType:f.metadata.valueKind==="date"?"date":"datetime",rawTemporal:f.metadata};Be.validateRawTemporalResultColumn(v,{metadataRequired:!0}),l[d]=v;const h=A.resolveRawTemporalFormat({format:u,preferences:e.preferences,calendar:e.calendar});o.set(c,{columnKey:c,metadata:f.metadata,format:h,formatValue:A.prepareRawTemporalFormatter({metadata:f.metadata,format:h})})}const m={...Ut(),activatedColumnKeys:a,byColumnKey:o};return e.records.length===0?{kind:"loaded_empty",presentation:m,adaptedColumns:l,sqlClassifications:i}:{kind:"loaded_valid",presentation:m,adaptedColumns:l,sqlClassifications:i}}catch(o){return ye(o,new k("invalid_raw_temporal_format","Declared SQL raw temporal presentation is invalid."))}}function Ht(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=He({card:e.card,effectiveCardConfig:e.effectiveCardConfig,records:r.records,columns:r.columns,columnKeyMap:r.columnKeyMap,preferences:ge.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES,calendar:{tz:"UTC"}});return t.kind==="inactive"||t.kind==="loaded_empty"||t.kind==="loaded_valid"}function Re(e){return!e||typeof e!="object"?!1:Array.isArray(e.cards)}function Qe(e){if(!e)return null;if(typeof e=="string")try{const r=JSON.parse(e);return Re(r)?r:null}catch{return null}return Re(e)?e:null}function Ce(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 Wt(e){var t;const r=(e==null?void 0:e.frameObject)??((t=e==null?void 0:e.visual)==null?void 0:t.frameObject);return Ce(Qe(r))}function le(e){if(!(e!=null&&e.expectedType))return"table";const r=Array.isArray(e.expectedType)?e.expectedType[0]:e.expectedType;return Jt(r)?r:"table"}const Yt=["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 Jt(e){return Yt.includes(e)}function J(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 W(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 We(e){return!e||e.length===0?void 0:[...e].sort((t,n)=>J(t)-J(n))[0]}function Te(e,r){if(!e||e.length===0)return;const t=[],n=[],o=[];e.forEach(s=>{const u=W(s.position);u&&(u.kind==="number"?t.push(s):u.kind==="range"?n.push(s):u.kind==="dynamic"&&o.push(s))});const a=t.find(s=>{const u=W(s.position);return(u==null?void 0:u.kind)==="number"&&u.start===r});if(a)return a;const l=n.sort((s,u)=>J(s)-J(u)).find(s=>{const u=W(s.position);return(u==null?void 0:u.kind)==="range"&&r>=u.start&&r<=u.end});if(l)return l;const c=o.map(s=>({slot:s,parsed:W(s.position)})).filter(s=>{var u;return((u=s.parsed)==null?void 0:u.kind)==="dynamic"}).sort((s,u)=>{var f,d;return(((f=s.parsed)==null?void 0:f.start)??0)-(((d=u.parsed)==null?void 0:d.start)??0)}).filter(s=>{var u;return r>=(((u=s.parsed)==null?void 0:u.start)??0)}).sort((s,u)=>{var f,d;return(((f=u.parsed)==null?void 0:f.start)??0)-(((d=s.parsed)==null?void 0:d.start)??0)})[0];return c==null?void 0:c.slot}function Zt(e,r){const t=Te(e,r);if(t)return le(t)}function Ye(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 he(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 Je(e){const r=[];let t=-1;e.forEach((n,o)=>{const a=Ye(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 Xt(e){return e.map((r,t)=>!r.customCardPreferences||r.customCardPreferences.slotIndex===t?r:{...r,customCardPreferences:{...r.customCardPreferences,slotIndex:t}})}function er(e){const r=We(e);if(r)return le(r)}function tr(e,r,t){if(!e)return;const n=Zt(t,r);return e.type==="custom"&&n?n:e.type}function rr(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,l=e.map(h=>({slot:h,parsed:W(h.position)})).filter(h=>h.parsed!==null).reduce((h,b)=>{const C=b.parsed.end;return Number.isFinite(C)?Math.max(h,C):h},-1),m=Math.max(a,l+1),c=We(e),s=c?J(c):0;let u=!1;const f=[];for(let h=0;h<m;h+=1){const b=Te(e,h),C=le(b),g=!u&&h===s,T=h,S={...n,id:P.v4(),title:(g?c==null?void 0:c.label:b==null?void 0:b.label)||`Tab ${h+1}`,tabTitle:(g?c==null?void 0:c.label:b==null?void 0:b.label)||`Tab ${h+1}`,description:(g?c==null?void 0:c.description:b==null?void 0:b.description)||"",type:C,sql:"",preferences:{onClickFilter:[{columnIndex:0,expression:""}]},...g&&{customCardPreferences:{...o,slotIndex:T}},...!g&&{customCardPreferences:{slotIndex:T}}};g&&(u=!0),f.push(S)}if(!u&&f.length>0){const h=((v=f[0].customCardPreferences)==null?void 0:v.slotIndex)??0;f[0]={...f[0],type:f[0].type,customCardPreferences:{...o,slotIndex:h}}}const d=f.findIndex(h=>{var b;return!!((b=h.customCardPreferences)!=null&&b.url)});if(d>0){const[h]=f.splice(d,1);f.unshift(h)}return f}function Ze({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 l;const i=(l=n[a])==null?void 0:l.cardId;return e.cards.find(m=>m.id===i)||null}):e.cards}function Xe(e,r){return r&&he(r,e.cards)?r:e.cards.find(t=>he(t,e.cards))||null}function et(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 nr(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 or(e){return Array.isArray(e)?{records:e}:e}class ee 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.`);F(this,"code","temporal_snapshot_target_not_found");F(this,"selection");this.name="TemporalSnapshotSelectionError",this.selection=t}}function ar(e,r){var o;const t=[],n=new Map;for(const a of r){if(a.dashboardId!==e.id)throw new ee(a);const i=(e.sheets||[]).filter(m=>!a.sheetId||a.sheetId===m.id);if(a.sheetId&&i.length===0)throw new ee(a);let l=!a.cardId;for(const m of i){const c=(((o=m.document)==null?void 0:o.sections)||[]).flatMap(f=>f.type==="table"||f.type==="chart"?[f.card]:[]),s=(m.frames||[]).flatMap(f=>ir(f,a.cardId));s.length>0&&(l=!0);const u=[...s,...(m.cards||[]).filter(f=>!a.cardId||a.cardId===f.id),...c.filter(f=>!a.cardId||a.cardId===f.id)];for(const f of u){l=!0;const d=n.get(a.attachmentIndex)??new Set;d.has(f.id)||(d.add(f.id),n.set(a.attachmentIndex,d),t.push({card:f,...a.attachmentIndex!==void 0?{attachmentIndex:a.attachmentIndex}:{}}))}}if(!l)throw new ee(a)}return t}function ir(e,r){var i;const t=r?(i=e.cards)==null?void 0:i.find(l=>l.id===r):Ce(e);if(!t)return[];const n=Xe(e,t),o=(e.cards||[]).filter(l=>{var m;return typeof((m=l.customCardPreferences)==null?void 0:m.slotIndex)=="number"}).length>1,a=n!=null&&(et(n)==="multiple"||o);return!n||!a?[t]:Je(Ze({frame:e,configCard:n,isMultiInputVisual:!0})).filter(l=>l!==null)}function cr(e){return ar(e.dashboard,e.selections).flatMap(({card:r,attachmentIndex:t})=>{var s,u,f,d;const n=((s=e.resolveCardConfig)==null?void 0:s.call(e,r))??r.config,o=Oe({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:qe(v,{dateStyle:e.valueFormatPreferences.dateStyle,dateTime:{...e.valueFormatPreferences.dateTime}},e.valueFormatPreferences.locale)})):[],l=[],m=Z(r,n),c=G(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,C=new Set(h.map(({field:g,role:T})=>se.resolveCanonicalResultRawKey(g,T)));for(const{field:g}of h){const T=g.label;T&&b.set(T,(b.get(T)||0)+1)}for(const g of v){const T=V.normalizeAnalyticsCatalogDataType(g.dataType);if(T!=="date"&&T!=="datetime")continue;const S=se.resolveCanonicalDetailResultRawKey(g),_=g.label,M=se.resolveCanonicalResultOutputKey({label:_,labelCount:_&&b.get(_)||0,rawKey:S,rawKeys:C});if(!M)throw new ee(a);l.push({scope:a,target:{kind:"column",columnKey:M},format:A.resolveRawTemporalFormat({format:Ue(g),preferences:e.valueFormatPreferences,calendar:e.calendar})})}}else if(m==="freeform"&&((u=r.sql)!=null&&u.trim())&&!c.trim())for(const[v,h]of Object.entries(((d=(f=r.preferences)==null?void 0:f.tablePrefs)==null?void 0:d.columnSettingsMap)||{})){if(h.type!=="date")continue;const b=ce(h.dateFormat);b&&l.push({scope:a,target:{kind:"column",columnKey:v},format:A.resolveRawTemporalFormat({format:b,preferences:e.valueFormatPreferences,calendar:e.calendar})})}return[...i,...l]})}const lr=new Set(["table","aggregateTable","pivotTable","detailTable"]),dr=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 sr(e){var o,a,i;const r=dr.has(e.type)&&(e.type!=="custom"||!!((o=e.customCardPreferences)!=null&&o.url));let t=!1;try{t=!!St.readMatrixCardConfig(e)}catch{return{formats:[],defaultFormat:null}}return e.type==="text"||!r||!t&&P.isCardUnconfigured(e)?{formats:[],defaultFormat:null}:{formats:tt({cardType:e.type,allowDownload:(a=e.preferences)==null?void 0:a.allowDownload}),defaultFormat:rt({cardType:e.type,allowDownload:(i=e.preferences)==null?void 0:i.allowDownload})}}function tt(e){return e.allowDownload===!1?["pdf"]:["pdf","csv"]}function rt(e){return lr.has(e.cardType)&&e.allowDownload!==!1?"csv":"pdf"}function mr(e){const{config:r}=e,t=xt.resolveMatrixDefinition({spec:r.spec,presentation:r.presentation,defaults:r.defaultView,session:e.purpose==="manual"?e.session:void 0});return V.matrixExportRequestSchema.parse({spec:t.spec,presentation:t.presentation,...e.content==="flat"?{mode:"flat",format:"csv"}:{mode:"layout",format:e.format,expansion:e.content==="all"?{kind:"all"}:{kind:"current",rows:t.view.rows,columns:t.view.columns}}})}const nt=$.z.object({connection_id:$.z.string().min(1),cardType:$.z.literal("matrixTable"),resultOwner:$.z.literal("config"),sql:$.z.literal("").optional(),python:$.z.literal("").optional(),tableStructure:$.z.never().optional(),cardDataSource:$.z.object({connectionId:$.z.string().min(1),connectionType:$.z.string().min(1),mode:$.z.enum(["database","semanticDomain"]),selectedEntities:$.z.array($.z.unknown()),semanticDomainId:$.z.string().optional()}).passthrough(),active_filters:$.z.array($.z.unknown()).default([])}).passthrough(),ur=nt.extend({dashboardId:$.z.string().min(1),cardId:$.z.string().min(1),formatOptions:$.z.object({matrix:V.matrixExportRequestSchema,acquisition:$.z.literal("continuation").optional(),presentationExecutionSnapshot:$.z.unknown()}).passthrough().superRefine((e,r)=>{e.matrix.format==="csv"!=(e.acquisition==="continuation")&&r.addIssue({code:$.z.ZodIssueCode.custom,path:["acquisition"],message:"CSV requires continuation acquisition; PDF must not specify acquisition."})})});function fr(e){return{...e.controls,type:"card",dashboardId:e.dashboardId,cardId:e.cardId,title:e.title,cardType:"matrixTable",resultOwner:"config",sql:"",python:"",connection_id:e.dataSource.connectionId,cardDataSource:{...e.dataSource,mode:e.matrix.spec.source.kind==="semantic"?"semanticDomain":"database",semanticDomainId:e.matrix.spec.source.kind==="semantic"?e.matrix.spec.source.domainId:void 0},active_filters:e.activeFilters,formatOptions:{...e.matrix.format==="csv"?{acquisition:"continuation"}:{},matrix:e.matrix,delimiter:e.delimiter,includeHeaders:e.includeHeaders,timezone:e.reportContext.calendar.tz,presentationExecutionSnapshot:B.createPresentationExecutionSnapshot({reportContext:e.reportContext,resolvedFormats:[]})}}}function pr(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function O(e,r,t){return pr(e)?e:(t.push({field:r,message:"Expected an object."}),{})}function K(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 U(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 we(e,r,t){const n=U(e,r,2e3,t);if(n)try{return new URL(n),n}catch{t.push({field:r,message:"Expected an absolute URL."});return}}function Ae(e,r,t){const n=O(e,r,t);K(n,r,["tokens","components"],t);const o={};if(n.tokens!==void 0){const a=O(n.tokens,`${r}.tokens`,t);K(a,`${r}.tokens`,["color","typography"],t);const i={};if(a.color!==void 0){const l=O(a.color,`${r}.tokens.color`,t),m=["background","foreground","muted","mutedForeground","border","primary","primaryForeground","positive","negative","warning","info"];K(l,`${r}.tokens.color`,m,t);const c={};m.forEach(s=>{const u=U(l[s],`${r}.tokens.color.${s}`,120,t);u!==void 0&&(c[s]=u)}),i.color=c}if(a.typography!==void 0){const l=O(a.typography,`${r}.tokens.typography`,t);K(l,`${r}.tokens.typography`,["fontFamily","monoFontFamily"],t);const m=U(l.fontFamily,`${r}.tokens.typography.fontFamily`,500,t,{allowEmpty:!0}),c=U(l.monoFontFamily,`${r}.tokens.typography.monoFontFamily`,500,t,{allowEmpty:!0});i.typography={...m!==void 0?{fontFamily:m}:{},...c!==void 0?{monoFontFamily:c}:{}}}o.tokens=i}if(n.components!==void 0){const a=O(n.components,`${r}.components`,t);if(K(a,`${r}.components`,["chart"],t),a.chart!==void 0){const i=O(a.chart,`${r}.components.chart`,t);K(i,`${r}.components.chart`,["palette"],t);let l;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."}):l=i.palette.map((m,c)=>U(m,`${r}.components.chart.palette.${c}`,120,t)).filter(m=>m!==void 0):t.push({field:`${r}.components.chart.palette`,message:"Expected an array."})),o.components={chart:l?{palette:l}:{}}}}return o}function yr(e,r){const t="presentation.appearance",n=O(e,t,r);K(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=O(n.schemes,`${t}.schemes`,r);K(a,`${t}.schemes`,["light","dark"],r),o.schemes={...a.light!==void 0?{light:Ae(a.light,`${t}.schemes.light`,r)}:{},...a.dark!==void 0?{dark:Ae(a.dark,`${t}.schemes.dark`,r)}:{}}}return o}function hr(e,r){const t="presentation.brandOverrides",n=O(e,t,r);K(n,t,["brandName","logoUrl","link"],r);const o=U(n.brandName,`${t}.brandName`,200,r),a=we(n.logoUrl,`${t}.logoUrl`,r),i=U(n.link,`${t}.link`,120,r);return{...o!==void 0?{brandName:o}:{},...a!==void 0?{logoUrl:a}:{},...i!==void 0?{link:i}:{}}}function gr(e,r){const t="presentation.fragments",n=O(e,t,r),o=["preHeaderText","headerBannerHtml","signatureHtml","footerHtml","disclaimerHtml","unsubscribeUrl"];K(n,t,o,r);const a={};return o.forEach(i=>{const l=i==="unsubscribeUrl"?we(n[i],`${t}.${i}`,r):U(n[i],`${t}.${i}`,i==="preHeaderText"?200:5e3,r,{trim:i==="preHeaderText"});l!==void 0&&(a[i]=l)}),a}function vr(e){const r=[],t={};if(e.appearance!==void 0&&(t.appearance=yr(e.appearance,r)),e.brandOverrides!==void 0&&(t.brandOverrides=hr(e.brandOverrides,r)),e.fragments!==void 0&&(t.fragments=gr(e.fragments,r)),e.viewUrl!==void 0){const n=we(e.viewUrl,"presentation.viewUrl",r);n!==void 0&&(t.viewUrl=n)}return{value:t,issues:r}}const ot=["SUN","MON","TUE","WED","THU","FRI","SAT"],br=new Map(ot.map((e,r)=>[e,r])),Ir={cadence:"weekly",hour:9,minute:0,weekdays:[1]};function Cr(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 Tr(e){return Number.isInteger(e.minute)&&e.minute>=0&&e.minute<=59&&Number.isInteger(e.hour)&&e.hour>=0&&e.hour<=23}function at(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 wr(e){if(!Tr(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=at(e.weekdays);if(!t)throw new Error("Choose at least one weekday.");return`${r} * * ${t.map(n=>ot[n]).join(",")}`}case"twice_monthly":return`${r} 1,15 * *`;case"monthly":return`${r} 1 * *`}}function it(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 l=Number(t),m=Number(n);if(l>59||m>23||a!=="*")return{ok:!1,issue:"Choose a supported schedule."};if(o==="*"&&i==="*")return{ok:!0,value:{cadence:"daily",hour:m,minute:l,weekdays:[]}};if(o==="*"&&i!=="*"){const s=i.split(",").map(d=>br.get(d));if(s.some(d=>d===void 0))return{ok:!1,issue:"Choose a supported schedule."};const u=s,f=at(u);return!f||f.some((d,v)=>d!==u[v])?{ok:!1,issue:"Choose a supported schedule."}:{ok:!0,value:{cadence:"weekly",hour:m,minute:l,weekdays:f}}}return o==="1,15"&&i==="*"?{ok:!0,value:{cadence:"twice_monthly",hour:m,minute:l,weekdays:[]}}:o==="1"&&i==="*"?{ok:!0,value:{cadence:"monthly",hour:m,minute:l,weekdays:[]}}:{ok:!1,issue:"Choose a supported schedule."}}function Er(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 xr(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=it(e);if(!n.ok)return null;try{const o=Er(n.value.hour,n.value.minute,t),a=xr(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}}function $r(e){return e!=null&&e.role?e.type==="tenant"?e.role==="POWER_USER":["AUTHOR","ADMIN","SUPER_ADMIN"].includes(e.role):!1}function kr(e){return e.canCreate?[...e.scheduledReportAvailable?["scheduled_report"]:[],...e.analyticalBriefingsEnabled?["analytical_briefing"]:[]]:[]}function ct(e){const r=(e==null?void 0:e.channels)??[];return r.length===1&&r[0]==="EMAIL"}function lt(e){return e.body.type==="generated_analysis"?"Analytical briefing":e.body.type==="custom_message"&&e.attachments.length>0&&ct(e.deliveryConfig)?e.scheduleExpr?"Scheduled report":"On-demand report":"Plain briefing"}function _r(e){const r=lt(e),t=r==="Scheduled report"||r==="On-demand report"?"report":"briefing";return{typeLabel:r,noun:t,pluralNoun:t==="report"?"reports":"briefings"}}const oe="BRIEFING",dt=["markdown","html"],ae=["markdown"],te=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},R={maxBlocks:50,maxTableRows:100,maxTableColumns:20,maxTableCellCharacters:y.contentCell,maxParagraphCharacters:y.contentText,maxFindingCharacters:y.contentText,maxListItems:100,maxKpiTiles:8};function st(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())&&A.parseResolvedNumericCanonicalFormat(r.format).ok}function mt(e){return e==null?"":st(e)?A.formatNumericCanonical(e.value,e.format):String(e)}function Fr(e){return[e.delta,e.percentChange].filter(r=>r!=null).map(mt).filter(Boolean).join(" / ")}const ut=new Set(dt),Rr=new Set(["EMAIL","WEBHOOK","SLACK","IN_APP","TELEGRAM"]),ue={maxToolCalls:{min:1,max:100},maxPlanningIterations:{min:1,max:10},maxRows:{min:1,max:1e5},timeoutMs:{min:1e3,max:30*6e4}},Ar=new Set(["letter","legal","a4","a3","tabloid"]),Br=new Set(["portrait","landscape"]),Dr=new Set([",",";"," "]),Pr=new Set(["current","all"]),Mr=new Set(["concise","balanced","detailed"]),Or=new Set(["info","positive","warning","critical"]),Kr=new Set(["text","number","currency","percent","date","boolean"]),zr=new Set(["left","center","right"]),Nr=["matrix","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 X extends Error{constructor(t){super(t.map(n=>`${n.field}: ${n.message}`).join("; "));F(this,"issues");this.name="BriefingContractError",this.issues=t}}function ft(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function p(e,r,t){e.push({field:r,message:t})}function x(e,r,t){return ft(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 Vr(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 qr(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 D(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 l=w(a,`${r}.${i}`,y.id,t);l&&!o.includes(l)&&o.push(l)}),n.required&&o.length===0&&p(t,r,"Expected at least one evidence id."),o.length>0||n.required?o:void 0}function j(e,r,t,n){return e==null?r:typeof e!="boolean"?(p(n,t,"Expected a boolean."),r):e}function Lr(e,r){return e==null?"ACTIVE":e==="ACTIVE"||e==="PAUSED"||e==="DISABLED"?e:(p(r,"status","Expected ACTIVE, PAUSED, or DISABLED."),"ACTIVE")}function Ur(e){return e.includes("@")&&e.includes(".")&&!e.includes(" ")}function pt(e,r){if(e==null)return{type:"project"};const t=x(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 yt(e,r){const t=x(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:Vr(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 jr(e,r){if(e==null)return[...ae];if(!Array.isArray(e))return p(r,"presentation.artifactFormats","Expected an array."),[...ae];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"||!ut.has(n)){p(r,`presentation.artifactFormats.${o}`,"Expected markdown or html.");return}t.includes(n)||t.push(n)}),t}function ht(e,r){if(e==null)return{artifactFormats:[...ae],includeEvidence:!0,includeSql:!0};const t=x(e,"presentation",r);I(t,"presentation",["artifactFormats","includeEvidence","includeSql","audience","tone","format","appearance","brandOverrides","fragments","viewUrl"],r);const n={artifactFormats:jr(t.artifactFormats,r),includeEvidence:j(t.includeEvidence,!0,"presentation.includeEvidence",r),includeSql:j(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 l=vr(t);return l.issues.forEach(m=>p(r,m.field,m.message)),Object.assign(n,l.value),n}function Gr(e,r,t){return Array.isArray(e)?(e.length===0&&p(t,r,"Expected at least one item."),e.length>R.maxListItems&&p(t,r,`Must have ${R.maxListItems} items or fewer.`),e.slice(0,R.maxListItems).map((n,o)=>w(n,`${r}.${o}`,y.contentItem,t)).filter(Boolean)):(p(t,r,"Expected an array."),[])}function Hr(e,r,t){const n=x(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 gt(e,r,t){if(e===null||typeof e!="object"||Array.isArray(e))return;const n=x(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=Hr(n.target,`${r}.target`,t),a=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 q(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=gt(e,r,t);if(n)return n;p(t,r,"Expected a string, number, or structured numeric value.")}function Qr(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=gt(e,r,t);return n||(p(t,r,"Expected a string, number, boolean, structured numeric value, or null."),null)}function Wr(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>R.maxTableColumns&&p(t,r,`Must have ${R.maxTableColumns} columns or fewer.`);const n=new Set;return e.slice(0,R.maxTableColumns).map((o,a)=>{const i=`${r}.${a}`,l=x(o,i,t);I(l,i,["key","label","kind","align"],t);const m=w(l.key,`${i}.key`,y.id,t);m&&(n.has(m)&&p(t,`${i}.key`,"Column key must be unique."),n.add(m));const c=w(l.label,`${i}.label`,y.contentTitle,t),s=N(l.kind,`${i}.kind`,Kr,"text, number, currency, percent, date, or boolean",t),u=N(l.align,`${i}.align`,zr,"left, center, or right",t);return{key:m,label:c,...s?{kind:s}:{},...u?{align:u}:{}}})}function Yr(e,r,t,n){if(!Array.isArray(e))return p(n,r,"Expected an array."),[];e.length>R.maxTableRows&&p(n,r,`Must have ${R.maxTableRows} rows or fewer.`);const o=new Set(t.map(a=>a.key).filter(Boolean));return e.slice(0,R.maxTableRows).map((a,i)=>{const l=`${r}.${i}`,m=x(a,l,n);return Object.keys(m).forEach(c=>{o.has(c)||p(n,`${l}.${c}`,`Unexpected table cell "${c}".`)}),Object.fromEntries(t.map(c=>[c.key,Qr(m[c.key]??null,`${l}.${c.key}`,n)]))})}function Jr(e,r,t){const n=`content.blocks.${r}`,o=x(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 l=D(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"heading",text:w(o.text,`${n}.text`,y.contentTitle,t),...i?{level:i}:{},...l?{evidenceIds:l}:{}}}if(a==="paragraph"){I(o,n,["type","text","evidenceIds"],t);const i=D(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),l=N(o.severity,`${n}.severity`,Or,"info, positive, warning, or critical",t);return{type:"finding",...i?{title:i}:{},text:w(o.text,`${n}.text`,y.contentText,t),...l?{severity:l}:{},evidenceIds:D(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),l=D(o.evidenceIds,`${n}.evidenceIds`,t);return{type:a,...i?{title:i}:{},items:Gr(o.items,`${n}.items`,t),...l?{evidenceIds:l}:{}}}if(a==="metric"){I(o,n,["type","label","value","previousValue","delta","percentChange","unit","evidenceIds"],t);const i=q(o.value,`${n}.value`,t)??"";i===""&&p(t,`${n}.value`,"Expected a non-empty string, number, or structured numeric value.");const l=o.previousValue===void 0||o.previousValue===null?o.previousValue:q(o.previousValue,`${n}.previousValue`,t),m=o.delta===void 0||o.delta===null?o.delta:q(o.delta,`${n}.delta`,t),c=o.percentChange===void 0||o.percentChange===null?o.percentChange:q(o.percentChange,`${n}.percentChange`,t),s=E(o.unit,`${n}.unit`,y.contentTitle,t),u=D(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"metric",label:w(o.label,`${n}.label`,y.contentTitle,t),value:i,...l!==void 0?{previousValue:l}:{},...m!==void 0?{delta:m}:{},...c!==void 0?{percentChange:c}:{},...s?{unit:s}:{},...u?{evidenceIds:u}:{}}}if(a==="kpi_grid"){I(o,n,["type","title","tiles","evidenceIds"],t);const i=E(o.title,`${n}.title`,y.contentTitle,t),l=Array.isArray(o.tiles)?o.tiles:[];Array.isArray(o.tiles)||p(t,`${n}.tiles`,"Expected an array."),l.length===0&&p(t,`${n}.tiles`,"Expected at least one tile."),l.length>R.maxKpiTiles&&p(t,`${n}.tiles`,`Must have ${R.maxKpiTiles} tiles or fewer.`);const m=l.slice(0,R.maxKpiTiles).map((s,u)=>{const f=`${n}.tiles.${u}`,d=x(s,f,t);I(d,f,["label","value","previousValue","delta","percentChange","unit","evidenceIds"],t);const v=q(d.value,`${f}.value`,t)??"";v===""&&p(t,`${f}.value`,"Expected a non-empty string, number, or structured numeric value.");const h=d.previousValue===void 0||d.previousValue===null?d.previousValue:q(d.previousValue,`${f}.previousValue`,t),b=d.delta===void 0||d.delta===null?d.delta:q(d.delta,`${f}.delta`,t),C=d.percentChange===void 0||d.percentChange===null?d.percentChange:q(d.percentChange,`${f}.percentChange`,t),g=E(d.unit,`${f}.unit`,y.contentTitle,t),T=D(d.evidenceIds,`${f}.evidenceIds`,t);return{label:w(d.label,`${f}.label`,y.contentTitle,t),value:v,...h!==void 0?{previousValue:h}:{},...b!==void 0?{delta:b}:{},...C!==void 0?{percentChange:C}:{},...g?{unit:g}:{},...T?{evidenceIds:T}:{}}}),c=D(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"kpi_grid",...i?{title:i}:{},tiles:m,...c?{evidenceIds:c}:{}}}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 l=E(o.detail,`${n}.detail`,y.contentText,t),m=D(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"progress",label:w(o.label,`${n}.label`,y.contentTitle,t),value:i,...l?{detail:l}:{},...m?{evidenceIds:m}:{}}}if(a==="table"){I(o,n,["type","id","title","columns","rows","caption","totalRows","evidenceIds"],t);const i=Wr(o.columns,`${n}.columns`,t),l=E(o.title,`${n}.title`,y.contentTitle,t),m=E(o.id,`${n}.id`,y.id,t),c=E(o.caption,`${n}.caption`,y.contentItem,t),s=qr(o.totalRows,`${n}.totalRows`,t),u=D(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"table",...m?{id:m}:{},...l?{title:l}:{},columns:i,rows:Yr(o.rows,`${n}.rows`,i,t),...c?{caption:c}:{},...s!==void 0?{totalRows:s}:{},...u?{evidenceIds:u}:{}}}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:D(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),l=w(o.sql,`${n}.sql`,y.contentSql,t),m=D(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"sql",...i?{title:i}:{},sql:l,...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 vt(e){const r=[],t=x(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>R.maxBlocks&&p(r,"content.blocks",`Must have ${R.maxBlocks} blocks or fewer.`);const i=a.slice(0,R.maxBlocks).map((l,m)=>Jr(l,m,r));return Ee(r),{version:1,...n?{title:n}:{},...o?{summary:o}:{},blocks:i}}function Zr(e){try{return{valid:!0,value:vt(e),issues:[]}}catch(r){if(r instanceof X)return{valid:!1,issues:r.issues};throw r}}function re(e,r,t,n){return typeof e=="string"&&t.includes(e)?e:(p(n,r,`Expected ${t.join(" or ")}.`),t[0])}function N(e,r,t,n,o){if(e!=null){if(typeof e=="string"&&t.has(e))return e;p(o,r,`Expected ${n}.`)}}function Xr(e,r,t){if(e!=null){if(!Array.isArray(e)){p(t,r,"Expected an array.");return}return e}}function en(e,r,t){if(e!=null){if(!ft(e)){p(t,r,"Expected an object.");return}return e}}function tn(e,r,t){if(e==null)return;const n=x(e,r,t);I(n,r,Nr,t);const o={};if(n.matrix!==void 0){const c=x(n.matrix,`${r}.matrix`,t);I(c,`${r}.matrix`,["config","content"],t);const s=V.matrixConfigSchema.safeParse(c.config);s.success||p(t,`${r}.matrix.config`,"Expected a valid Matrix definition.");const u=N(c.content,`${r}.matrix.content`,new Set(["current","all","flat"]),"current, all, or flat",t);u||p(t,`${r}.matrix.content`,"Choose Matrix export content."),s.success&&u&&(o.matrix={config:s.data,content:u})}const a=N(n.pageSize,`${r}.pageSize`,Ar,"letter, legal, a4, a3, or tabloid",t),i=N(n.orientation,`${r}.orientation`,Br,"portrait or landscape",t),l=N(n.delimiter,`${r}.delimiter`,Dr,"comma, semicolon, or tab",t),m=N(n.sheetSelection,`${r}.sheetSelection`,Pr,"current or all",t);a&&(o.pageSize=a),i&&(o.orientation=i),l&&(o.delimiter=l),m&&(o.sheetSelection=m);for(const c of["includeFilters","includeTimestamp","includeHeaders","useFormattedValues","allowDownload"])if(!(n[c]===void 0||n[c]===null)){if(typeof n[c]!="boolean"){p(t,`${r}.${c}`,"Expected a boolean.");continue}o[c]=n[c]}for(const c of["currentSheetId","currentSheetName","filterLine","selectedSheetId","cardType","theme"]){const s=E(n[c],`${r}.${c}`,y.id,t);s&&(o[c]=s)}for(const c of["filterValues","inlineFilterValues","sheetFilterValues","controlDefinitions","cardControlDefinitions","controlBindings"]){const s=Xr(n[c],`${r}.${c}`,t);s&&(o[c]=s)}for(const c of["controlValues","tablePreferences","dashboardInputExecutionSnapshot"]){const s=en(n[c],`${r}.${c}`,t);s&&(o[c]=s)}return Object.keys(o).length>0?o:void 0}function fe(e,r,t,n){const o=E(r,t,y.attachmentTitle,n);return o&&(e.title=o),e}function pe(e,r,t,n){const o=tn(r,t,n);return o&&(e.settings=o),e}function rn(e,r,t){const n=`attachments.${r}`,o=x(e,n,t),a=o.type;if(a==="dashboard"){I(o,n,["type","dashboardId","format","title","settings"],t);const i=fe({type:"dashboard",dashboardId:w(o.dashboardId,`${n}.dashboardId`,y.id,t),format:re(o.format,`${n}.format`,["pdf"],t)},o.title,`${n}.title`,t);return pe(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=fe({type:a,dashboardId:w(o.dashboardId,`${n}.dashboardId`,y.id,t),sheetId:w(o.sheetId,`${n}.sheetId`,y.id,t),format:re(o.format,`${n}.format`,["pdf"],t)},o.title,`${n}.title`,t);return pe(i,o.settings,`${n}.settings`,t)}if(a==="card"){I(o,n,["type","dashboardId","cardId","format","title","settings"],t);const i=fe({type:"card",dashboardId:w(o.dashboardId,`${n}.dashboardId`,y.id,t),cardId:w(o.cardId,`${n}.cardId`,y.id,t),format:re(o.format,`${n}.format`,["csv","pdf"],t)},o.title,`${n}.title`,t);return pe(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 nn(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 bt(e,r){if(e==null)return[];if(!Array.isArray(e))return p(r,"attachments","Expected an array."),[];e.length>te&&p(r,"attachments",`Choose ${te} attachments or fewer.`);const t=e.slice(0,te).map((o,a)=>rn(o,a,r)),n=new Set;return t.forEach((o,a)=>{var l;(l=o.settings)!=null&&l.matrix&&(o.type!=="card"||o.settings.cardType!=="matrixTable"||o.settings.matrix.content==="flat"&&o.format!=="csv")&&p(r,`attachments.${a}.settings.matrix`,"Matrix settings require a matrixTable card attachment; flat content requires CSV.");const i=nn(o);n.has(i)&&p(r,`attachments.${a}`,"Duplicate attachment."),n.add(i)}),t}function It(e,r){if(e==null)return;const t=x(e,"limits",r);I(t,"limits",Object.keys(ue),r);const n={};return Object.keys(ue).forEach(o=>{const a=t[o];if(a==null)return;const i=ue[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 Ee(e){if(e.length>0)throw new X(e)}function Ct(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 on(e,r,t){e==null||e.forEach((n,o)=>{const a=`${t}.${o}.scope`,i=n.scope.attachmentIndex;if(i===void 0)throw new B.PresentationExecutionSnapshotError(`${a}.attachmentIndex must identify the attachment that owns this presentation entry.`);const l=r[i];if(!l)throw new B.PresentationExecutionSnapshotError(`${a}.attachmentIndex must identify an existing attachment.`);if(n.scope.dashboardId!==l.dashboardId)throw new B.PresentationExecutionSnapshotError(`${a}.dashboardId must match the dashboard selected by the referenced attachment.`);if(l.type==="card"&&n.scope.cardId!==l.cardId)throw new B.PresentationExecutionSnapshotError(`${a}.cardId must match the card selected by the referenced attachment.`)})}function xe(e){const r=[],t=x(e,"jobConfig",r);I(t,"jobConfig",["kind","presentationExecutionSnapshot","source","body","attachments","presentation","limits"],r),t.kind!==oe&&p(r,"kind","Expected BRIEFING.");let n;try{n=B.parsePresentationExecutionSnapshot(t.presentationExecutionSnapshot)}catch(c){if(c instanceof B.PresentationExecutionSnapshotError)throw c;p(r,"jobConfig.presentationExecutionSnapshot",c instanceof Error?c.message:"Invalid presentation snapshot.")}const o=pt(t.source,r),a=yt(t.body,r),i=bt(t.attachments,r),l=ht(t.presentation,r),m=It(t.limits,r);return Ct(a,i,r),on(n==null?void 0:n.resolvedFormats,i,"jobConfig.presentationExecutionSnapshot.resolvedFormats"),Ee(r),{kind:oe,presentationExecutionSnapshot:n,source:o,body:a,attachments:i,presentation:l,...m?{limits:m}:{}}}function an(e){return xe({...e,kind:oe})}function Se(e,r,t,n="deliveryConfig.recipients"){const o=`${n}.${r}`,a=x(e,o,t),i=a.type;if(i==="email"){I(a,o,["type","address","name"],t);const l=w(a.address,`${o}.address`,y.id,t),m=E(a.name,`${o}.name`,y.attachmentTitle,t);return l&&!Ur(l)&&p(t,`${o}.address`,"Email address is invalid."),{type:"email",address:l,...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 cn(e,r){return e==null?[]:Array.isArray(e)?e.map((t,n)=>Se(t,n,r)):(p(r,"deliveryConfig.recipients","Expected an array."),[])}function ln(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 dn(e,r,t){if(e==null)return;const n=x(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 sn(e,r,t){if(e==null)return;const n=x(e,r,t);I(n,r,["url","method","headers","secretEncrypted"],t);const o=n.method===void 0||n.method===null?void 0:re(n.method,`${r}.method`,["POST","PUT"],t),a=dn(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 mn(e,r,t){const n=x(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:j(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:Se(n.recipient,0,t,`${r}.recipient`)}):(p(t,`${r}.type`,"Expected channel."),{type:"channel",channelId:""})}function un(e,r,t){if(e==null)return;if(!Array.isArray(e)){p(t,r,"Expected an array.");return}const n=e.map((o,a)=>Se(o,a,t,r));return n.length>0?n:void 0}function fn(e,r,t){if(e==null)return;const n=x(e,r,t);I(n,r,["destination","threadMentions","postThreadDetail","includeDashboardLink","includeBriefingLink"],t);const o=un(n.threadMentions,`${r}.threadMentions`,t),a=j(n.postThreadDetail,!0,`${r}.postThreadDetail`,t),i=j(n.includeDashboardLink,!0,`${r}.includeDashboardLink`,t),l=j(n.includeBriefingLink,!0,`${r}.includeBriefingLink`,t);return{destination:mn(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:l}:{}}}function pn(e,r,t){const n=x(e,r,t);I(n,r,["subjectOverride","titleOverride","summaryOverride","actionBlockVisible","formatProfile","slackConfig","webhookConfig"],t);const o=N(n.formatProfile,`${r}.formatProfile`,Mr,"concise, balanced, or detailed",t),a=E(n.subjectOverride,`${r}.subjectOverride`,500,t),i=E(n.titleOverride,`${r}.titleOverride`,500,t),l=E(n.summaryOverride,`${r}.summaryOverride`,2e3,t),m=j(n.actionBlockVisible,!0,`${r}.actionBlockVisible`,t),c=sn(n.webhookConfig,`${r}.webhookConfig`,t),s=fn(n.slackConfig,`${r}.slackConfig`,t);return{...o?{formatProfile:o}:{},...a?{subjectOverride:a}:{},...i?{titleOverride:i}:{},...l?{summaryOverride:l}:{},...n.actionBlockVisible!==void 0?{actionBlockVisible:m}:{},...s?{slackConfig:s}:{},...c?{webhookConfig:c}:{}}}function yn(e,r){if(e==null)return;const t=x(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]=pn(a,`deliveryConfig.channelConfigs.${o}`,r)}),Object.keys(n).length>0?n:void 0}function hn(e,r){var m,c,s;if(e==null)return null;const t=x(e,"deliveryConfig",r);I(t,"deliveryConfig",["recipients","channels","channelConfigs"],r);const n=yn(t.channelConfigs,r),o=cn(t.recipients,r),a=ln(t.channels,r),i=((c=(m=n==null?void 0:n.SLACK)==null?void 0:m.slackConfig)==null?void 0:c.destination.type)==="channel"&&!!n.SLACK.slackConfig.destination.channelId.trim();return a.some(u=>u!=="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 de(e){const r=[],t=x(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",l=Lr(t.status,r),m=pt(t.source,r),c=yt(t.body,r),s=bt(t.attachments,r),u=ht(t.presentation,r),f=It(t.limits,r),d=hn(t.deliveryConfig,r);return Ct(c,s,r),Ee(r),{name:n,description:o,status:l,scheduleExpr:a,timezone:i,source:m,body:c,attachments:s,presentation:u,...f?{limits:f}:{},deliveryConfig:d}}function gn(e){return de(e)}function vn(e){return de(e)}function bn(e){try{return{valid:!0,value:de(e),issues:[]}}catch(r){if(r instanceof X)return{valid:!1,issues:r.issues};throw r}}function In(e){try{return{valid:!0,value:xe(e),issues:[]}}catch(r){if(r instanceof X)return{valid:!1,issues:r.issues};throw r}}function Cn(e){return typeof e=="string"&&ut.has(e)}function $e(e){return typeof e=="string"&&Rr.has(e)}exports.AmbiguousGroupedTemporalGrainError=Pe;exports.BRIEFING_ARTIFACT_FORMATS=dt;exports.BRIEFING_CONTENT_LIMITS=R;exports.BRIEFING_KIND=oe;exports.BRIEFING_TEXT_LIMITS=y;exports.BriefingContractError=X;exports.DEFAULT_BRIEFING_ARTIFACT_FORMATS=ae;exports.DEFAULT_BRIEFING_SCHEDULE=Ir;exports.DashboardTemporalBoundaryError=L;exports.MAX_BRIEFING_ATTACHMENTS=te;exports.PYTHON_DEFAULT_CODE=De;exports.RawTemporalPresentationBoundaryError=k;exports.buildBriefingJobConfig=an;exports.buildBriefingScheduleExpr=wr;exports.buildCreateBriefingRequest=gn;exports.buildDashboardCardTableConfig=$t;exports.buildDashboardTemporalSnapshotEntries=cr;exports.buildMatrixDeliveryEnvelope=fr;exports.buildSlotOrderedCards=Je;exports.buildUpdateBriefingRequest=vn;exports.canCreateBriefingForUser=$r;exports.captureMatrixExport=mr;exports.createCardsFromSlots=rr;exports.describeBriefingSchedule=Sr;exports.findCustomVisualConfigCard=Xe;exports.formatBriefingComparisonValues=Fr;exports.formatBriefingDisplayValue=mt;exports.formatGroupedTemporalFieldValue=Ot;exports.formatGroupedTemporalRecords=Bt;exports.formatGroupedTemporalValue=be;exports.getActiveCardFromVisualResource=Wt;exports.getActiveFrameCard=Ce;exports.getBriefingCardAttachmentCapability=sr;exports.getBriefingCardAttachmentFormats=tt;exports.getBriefingCreationIntents=kr;exports.getBriefingDisplayTypeLabel=lt;exports.getBriefingPresentation=_r;exports.getConfigSlotExpectedType=er;exports.getCustomVisualInputCards=Ze;exports.getDefaultBriefingCardAttachmentFormat=rt;exports.getDefaultDeclaredSqlRawTemporalPattern=zt;exports.getEffectiveCardTypeForSlot=tr;exports.getSlotDefinitionForIndex=Te;exports.getSlotExpectedChartType=le;exports.getSlotIndexForCard=Ye;exports.hasMissingDeclaredSqlCustomDateFormat=je;exports.inspectDeclaredSqlRawTemporalPreview=qt;exports.isBriefingArtifactFormat=Cn;exports.isBriefingDeliveryChannel=$e;exports.isBriefingNumericValue=st;exports.isCardRawTemporalPresentationActivated=jt;exports.isCardRawTemporalResultCompatible=Qt;exports.isCustomVisualConfigCard=he;exports.isDeclaredSqlRawTemporalPresentationCard=Ie;exports.isEmailOnlyBriefingDelivery=ct;exports.isGroupedTemporalResultCompatible=Dt;exports.isPivotResultContractCompatibleWithCardConfig=ze;exports.isValidBriefingTimezone=Cr;exports.matrixDeliveryPayloadSchema=ur;exports.matrixDeliveryQuerySchema=nt;exports.normalizeBriefingContentDocument=vt;exports.normalizeBriefingDraft=de;exports.normalizeBriefingJobConfig=xe;exports.normalizeDashboardCardPythonCode=G;exports.normalizeGroupedTemporalField=Me;exports.normalizeMultiInputPayload=or;exports.parseBriefingScheduleExpr=it;exports.parseCanonicalPivotResultTransportOnce=Ke;exports.parseFrameObject=Qe;exports.presentRawTemporalCell=Ht;exports.reindexSlotCards=Xt;exports.repairMissingDeclaredSqlCustomDateFormat=Lt;exports.resolveCardRawTemporalPresentation=He;exports.resolveCartesianTemporalActivation=Ft;exports.resolveDashboardCardResultOwner=Z;exports.resolveDashboardTemporalActivation=Oe;exports.resolveDeclaredSqlRawTemporalFormat=ce;exports.resolveDetailTableRawTemporalPresentation=Ge;exports.resolveGroupedTemporalFieldPresentationByRole=Ve;exports.resolveGroupedTemporalFieldSnapshotFormat=qe;exports.resolveGroupedTemporalPresentation=Mt;exports.resolveMultiInputType=et;exports.resolveMultiInputTypeFromVisual=nr;exports.resolveRegularTableTemporalActivation=_t;exports.validateBriefingContentDocument=Zr;exports.validateBriefingDraft=bn;exports.validateBriefingJobConfig=In;exports.validateDeclaredSqlRawTemporalPattern=Nt;
|