react-semaphor 0.1.515 → 0.1.516
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analytics-protocol/index.cjs +1 -1
- package/dist/analytics-protocol/index.js +226 -225
- package/dist/brand-studio/index.cjs +1 -1
- package/dist/brand-studio/index.js +4 -4
- package/dist/briefings/index.cjs +1 -1
- package/dist/briefings/index.js +8 -8
- package/dist/chunks/{calculated-field-identity-BiTGmnST.cjs → calculated-field-identity-5bg9oHTw.cjs} +1 -1
- package/dist/chunks/{calculated-field-identity-DnRd4YIY.js → calculated-field-identity-DzJBs2J8.js} +4 -4
- package/dist/chunks/{card-config-utils-B2cDWQqB.js → card-config-utils-Cxnq2R6z.js} +14 -14
- package/dist/chunks/{card-config-utils-CMO4_zVs.cjs → card-config-utils-z86y6tSq.cjs} +1 -1
- package/dist/chunks/column-bands-CU0byntA.cjs +1 -0
- package/dist/chunks/column-bands-RdM-kjDe.js +47 -0
- package/dist/chunks/{dashboard-briefing-launcher-BA_bl05p.js → dashboard-briefing-launcher-BCEHJ_eD.js} +15 -12
- package/dist/chunks/{dashboard-briefing-launcher-B7zqm8P1.cjs → dashboard-briefing-launcher-CjZ4aE34.cjs} +2 -2
- package/dist/chunks/{dashboard-controls-QMW17RKx.js → dashboard-controls-DFfit5KH.js} +12 -12
- package/dist/chunks/{dashboard-controls-x_v9wLOU.cjs → dashboard-controls-f9aJ70Zu.cjs} +1 -1
- package/dist/chunks/{dashboard-date-comparison-definition-D7Bl-YAl.js → dashboard-date-comparison-definition-BqNhECUr.js} +6 -6
- package/dist/chunks/{dashboard-date-comparison-definition-C_w-GO_5.cjs → dashboard-date-comparison-definition-Y6JZwpcr.cjs} +1 -1
- package/dist/chunks/{dashboard-json-DRnpkNwO.js → dashboard-json-DVtcA02f.js} +7 -7
- package/dist/chunks/{dashboard-json-0ZLLBlHj.cjs → dashboard-json-deqQC-UR.cjs} +1 -1
- package/dist/chunks/edit-dashboard-visual-DK6lSC_p.cjs +172 -0
- package/dist/chunks/{edit-dashboard-visual-1ISjhwry.js → edit-dashboard-visual-lJ6rDH3w.js} +4338 -4324
- package/dist/chunks/{editor-action-buttons-BTCKZERI.js → editor-action-buttons-Bnxxa439.js} +7 -7
- package/dist/chunks/{editor-action-buttons-Czq5SnA9.cjs → editor-action-buttons-CmDaQbPN.cjs} +1 -1
- package/dist/chunks/{field-aggregations-CzuQKtqx.js → field-aggregations-Dl2A3rbV.js} +461 -358
- package/dist/chunks/field-aggregations-pH_3kymD.cjs +1 -0
- package/dist/chunks/{field-dependencies-DIab72rQ.cjs → field-dependencies-EB485TdB.cjs} +1 -1
- package/dist/chunks/{field-dependencies-DXW4jtvJ.js → field-dependencies-v-lJNzC7.js} +1 -1
- package/dist/chunks/{index-Dlic9KZs.js → index-BVVl2JDK.js} +57730 -54586
- package/dist/chunks/index-DfqMtR9S.cjs +4 -0
- package/dist/chunks/index-UNKSfi7s.cjs +1434 -0
- package/dist/chunks/{index-v1OE4-eA.js → index-ylOpKRDu.js} +877 -849
- package/dist/chunks/{matrix-analytical-definition-Ct5Tu8np.cjs → matrix-analytical-definition-BWd159lN.cjs} +1 -1
- package/dist/chunks/{matrix-analytical-definition-BDAK2aEi.js → matrix-analytical-definition-BimC4XIV.js} +1 -1
- package/dist/chunks/{matrix-card-U4c72doZ.cjs → matrix-card-C2RjEYZ8.cjs} +1 -1
- package/dist/chunks/{matrix-card-DOIeTmjh.js → matrix-card-CIlz0Dnp.js} +2 -2
- package/dist/chunks/{matrix-control-sources-FjxGIbqk.cjs → matrix-control-sources-BvEJF7d3.cjs} +1 -1
- package/dist/chunks/{matrix-control-sources-BxKH2yu2.js → matrix-control-sources-KbZe1gj_.js} +51 -51
- package/dist/chunks/{matrix-definition-CBJW_4ii.cjs → matrix-definition-DanUT11P.cjs} +1 -1
- package/dist/chunks/{matrix-definition-I9rHB9zN.js → matrix-definition-E5gXXSTZ.js} +1 -1
- package/dist/chunks/matrix-formatter-BJTO8ky9.cjs +1 -0
- package/dist/chunks/{matrix-formatter-BdIsE7Qu.js → matrix-formatter-CCXNRt3s.js} +81 -81
- package/dist/chunks/{matrix-member-presentation-DO1VSqfh.js → matrix-member-presentation-Bw7-JCrr.js} +64 -64
- package/dist/chunks/matrix-member-presentation-DvXDEo0U.cjs +1 -0
- package/dist/chunks/{matrix-operation-contract-DoiWTUbT.cjs → matrix-operation-contract-0RxoU_M3.cjs} +1 -1
- package/dist/chunks/{matrix-operation-contract-D0HfzwZg.js → matrix-operation-contract-D32U2CSw.js} +19 -19
- package/dist/chunks/{metric-comparison-Dqc7_tnW.js → metric-comparison-BphoJ9bq.js} +1 -1
- package/dist/chunks/{metric-comparison-DBQ3EJTz.cjs → metric-comparison-CUmltzpz.cjs} +1 -1
- package/dist/chunks/pivot-header-presentation-BSZhB1g-.js +661 -0
- package/dist/chunks/pivot-header-presentation-EoUS5ze5.cjs +5 -0
- package/dist/chunks/{pivot-result-identity-8M-bZrw9.js → pivot-result-identity-BzUQiCEV.js} +4 -4
- package/dist/chunks/{pivot-result-identity-uTiylUNr.cjs → pivot-result-identity-gquWljbd.cjs} +1 -1
- package/dist/chunks/{pivot-result-lifecycle-vg_suUNb.cjs → pivot-result-lifecycle-gl9cBfB-.cjs} +1 -1
- package/dist/chunks/{pivot-result-lifecycle-CEmyU2At.js → pivot-result-lifecycle-kRhiJkzg.js} +8 -8
- package/dist/chunks/{raw-temporal-Bj6_w9cG.js → raw-temporal-BqOfk-xN.js} +16 -16
- package/dist/chunks/{raw-temporal-contract-CFLGwTiI.js → raw-temporal-contract-BQZIJ1fn.js} +1 -1
- package/dist/chunks/{raw-temporal-contract-DECbTuzA.cjs → raw-temporal-contract-CklMVG_1.cjs} +1 -1
- package/dist/chunks/{raw-temporal-CeblVJbu.cjs → raw-temporal-eJXecCyJ.cjs} +1 -1
- package/dist/chunks/{report-preferences-dialog-b8J6KjSy.js → report-preferences-dialog-CHXPEl7v.js} +6 -6
- package/dist/chunks/{report-preferences-dialog-Dr1BYwuf.cjs → report-preferences-dialog-Cto0vDwI.cjs} +1 -1
- package/dist/chunks/{report-runtime-context-Cs65Mrxj.js → report-runtime-context-CxIoGyNM.js} +1 -1
- package/dist/chunks/{report-runtime-context-DzvHBPxl.cjs → report-runtime-context-CzSrCBsu.cjs} +1 -1
- package/dist/chunks/{selection-reducer-BIiQXbGM.js → selection-reducer-CvCBQbl2.js} +1 -1
- package/dist/chunks/{selection-reducer-CGKKsaPa.cjs → selection-reducer-Kl22OzIk.cjs} +1 -1
- package/dist/chunks/{semantic-format-Dt-nUxFB.js → semantic-format-DwqGYx4V.js} +2 -2
- package/dist/chunks/{semantic-format-DFI1iszk.cjs → semantic-format-mVI32OJH.cjs} +1 -1
- package/dist/chunks/{source-entity-resolution-D7vnmDwm.js → source-entity-resolution-Bzefiive.js} +7 -7
- package/dist/chunks/{source-entity-resolution-CjbgnwyX.cjs → source-entity-resolution-R46X34SE.cjs} +1 -1
- package/dist/chunks/switch-DNbWXEOP.cjs +134 -0
- package/dist/chunks/{switch-D5_tjsIS.js → switch-DNv-hVmt.js} +8230 -7681
- package/dist/chunks/{temporal-bucket-B9hMwemw.js → temporal-bucket-DlFuhCnT.js} +6 -6
- package/dist/chunks/{temporal-bucket-contract-IWDgyTMw.js → temporal-bucket-contract-DTLDRzgV.js} +1 -1
- package/dist/chunks/{temporal-bucket-contract-ZctiyXYk.cjs → temporal-bucket-contract-nTv6gvX5.cjs} +1 -1
- package/dist/chunks/{token-types-Dl0hcKBX.js → token-types-BC6RcUY8.js} +1 -1
- package/dist/chunks/{token-types-Ahh5u4iT.cjs → token-types-aWrzwonf.cjs} +1 -1
- package/dist/chunks/{update-policy-COjFudhl.cjs → update-policy-DRDLWe7Y.cjs} +1 -1
- package/dist/chunks/{update-policy-BeQqjupC.js → update-policy-DhAUtiC8.js} +2 -2
- package/dist/chunks/{validators-CkHsAvwB.js → validators-CsdOtZI6.js} +411 -397
- package/dist/chunks/validators-DFeDcdpA.cjs +1 -0
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +1 -1
- package/dist/dashboard-authoring/index.cjs +3 -3
- package/dist/dashboard-authoring/index.js +233 -227
- package/dist/data-app-builder/index.cjs +1 -1
- package/dist/data-app-builder/index.js +3 -3
- package/dist/data-app-codegen/index.cjs +1 -1
- package/dist/data-app-codegen/index.js +2 -2
- package/dist/data-app-codegen-node/index.cjs +1 -1
- package/dist/data-app-codegen-node/index.js +3 -3
- package/dist/data-app-sdk/index.cjs +1 -1
- package/dist/data-app-sdk/index.js +5 -5
- package/dist/data-app-sdk-adapters/index.cjs +1 -1
- package/dist/data-app-sdk-adapters/index.js +2 -2
- package/dist/data-app-sdk-validation/index.cjs +1 -1
- package/dist/data-app-sdk-validation/index.js +5 -5
- package/dist/format-utils/index.cjs +3 -3
- package/dist/format-utils/index.js +291 -402
- package/dist/index.cjs +1 -1
- package/dist/index.js +15 -15
- package/dist/pdf-table-layout/index.cjs +1 -0
- package/dist/pdf-table-layout/index.js +993 -0
- package/dist/report-runtime-context/index.cjs +1 -1
- package/dist/report-runtime-context/index.js +2 -2
- package/dist/style.css +1 -1
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +2 -2
- package/dist/types/briefings/index.d.ts +1 -1
- package/dist/types/components/document-sheet/document-input-bar.d.ts +1 -3
- package/dist/types/components/document-sheet/document-insert-picker.d.ts +37 -0
- package/dist/types/components/document-sheet/document-kpi-section.d.ts +17 -0
- package/dist/types/components/document-sheet/document-matrix-layout-context.d.ts +10 -0
- package/dist/types/components/document-sheet/document-matrix-section.d.ts +27 -0
- package/dist/types/components/document-sheet/document-measure-layer.d.ts +45 -0
- package/dist/types/components/document-sheet/document-outline.d.ts +7 -1
- package/dist/types/components/document-sheet/document-page-navigation.d.ts +22 -0
- package/dist/types/components/document-sheet/document-page.d.ts +9 -5
- package/dist/types/components/document-sheet/document-panel/document-side-panel.d.ts +36 -0
- package/dist/types/components/document-sheet/document-panel/inputs-panel.d.ts +9 -0
- package/dist/types/components/document-sheet/document-panel/page-panel.d.ts +5 -0
- package/dist/types/components/document-sheet/document-panel/panel-controls.d.ts +14 -0
- package/dist/types/components/document-sheet/document-panel/region-panels.d.ts +11 -0
- package/dist/types/components/document-sheet/document-panel/section-panel.d.ts +25 -0
- package/dist/types/components/document-sheet/document-section-print-boundary.d.ts +9 -0
- package/dist/types/components/document-sheet/document-table-chrome.d.ts +22 -0
- package/dist/types/components/document-sheet/document-table-section.d.ts +3 -7
- package/dist/types/components/document-sheet/document-text-preview-context.d.ts +8 -0
- package/dist/types/components/document-sheet/use-first-fitting-variant.d.ts +18 -0
- package/dist/types/components/editor/editor-main/dashboard-variable-node.d.ts +12 -2
- package/dist/types/components/explorer/chart-configuration/matrix-authoring-controls.d.ts +7 -2
- package/dist/types/components/text-variables/variable-chip-plugin.d.ts +23 -0
- package/dist/types/components/text-variables/variable-chip.d.ts +18 -0
- package/dist/types/components/text-variables/variable-picker.d.ts +27 -0
- package/dist/types/components/visual/settings/table-presentation-settings.d.ts +27 -1
- package/dist/types/index.cjs +1 -1
- package/dist/types/index.js +5 -5
- package/dist/types/lib/dashboard-inputs/text-variable-options.d.ts +15 -0
- package/dist/types/lib/document/document-canvas-actions.d.ts +22 -0
- package/dist/types/lib/document/document-edits.d.ts +119 -0
- package/dist/types/lib/document/document-kpi-figure.d.ts +27 -0
- package/dist/types/lib/document/document-kpi-layout.d.ts +29 -0
- package/dist/types/lib/document/document-kpi-section-edits.d.ts +15 -0
- package/dist/types/lib/document/document-matrix-bands.d.ts +66 -0
- package/dist/types/lib/document/document-matrix-print.d.ts +11 -0
- package/dist/types/lib/document/document-pagination.d.ts +56 -3
- package/dist/types/lib/document/document-panel-target.d.ts +19 -0
- package/dist/types/lib/document/document-section-editor.d.ts +8 -7
- package/dist/types/lib/document/document-section-kinds.d.ts +49 -0
- package/dist/types/lib/document/document-section-query-options.d.ts +25 -0
- package/dist/types/lib/document/document-section-render-state.d.ts +26 -0
- package/dist/types/lib/document/document-section-utils.d.ts +11 -4
- package/dist/types/lib/document/document-table-dom.d.ts +4 -6
- package/dist/types/lib/document/document-table-pagination-model.d.ts +0 -5
- package/dist/types/lib/document/document-table-print-model.d.ts +4 -3
- package/dist/types/lib/document/document-table-style.d.ts +15 -4
- package/dist/types/lib/document/document-table-surface.d.ts +15 -0
- package/dist/types/lib/document/document-variables.d.ts +40 -6
- package/dist/types/lib/document/use-document-section-data.d.ts +39 -0
- package/dist/types/lib/document/use-measured-document-table-layout.d.ts +50 -0
- package/dist/types/lib/formatters/kpi-result-values.d.ts +20 -0
- package/dist/types/lib/hooks/query-context/use-dashboard-card-execution-snapshot.d.ts +8 -2
- package/dist/types/lib/hooks/use-dashboard-frame-query.d.ts +6 -0
- package/dist/types/lib/hooks/use-dashboard-kpi-actions.d.ts +1 -1
- package/dist/types/lib/hooks/use-document-section-editor.d.ts +2 -2
- package/dist/types/lib/hooks/use-document-section-session.d.ts +36 -0
- package/dist/types/lib/hooks/use-editor-preview.d.ts +17 -0
- package/dist/types/lib/hooks/use-is-editing-card.d.ts +7 -0
- package/dist/types/lib/matrix-table/matrix-card-adapter.d.ts +2 -0
- package/dist/types/lib/matrix-table/matrix-card-draft.d.ts +2 -0
- package/dist/types/lib/matrix-table/matrix-delivery.d.ts +4 -0
- package/dist/types/lib/matrix-table/matrix-layout-read.d.ts +68 -0
- package/dist/types/lib/query-context/build-dashboard-execution-snapshot.d.ts +8 -1
- package/dist/types/lib/query-context/build-dashboard-frame-base-query-contexts.d.ts +4 -2
- package/dist/types/lib/query-context/card-execution.d.ts +30 -0
- package/dist/types/lib/query-context/document-section-card-query.d.ts +37 -0
- package/dist/types/lib/stores/dashboard-store.d.ts +12 -8
- package/dist/types/lib/stores/editor-store.d.ts +2 -0
- package/dist/types/lib/text-variables/text-variable-types.d.ts +39 -0
- package/dist/types/lib/types/common-types.d.ts +34 -1
- package/dist/types/lib/utils/card-definition.d.ts +2 -0
- package/dist/types/lib/utils/card-utils.d.ts +13 -6
- package/dist/types/pdf-table-layout.d.ts +2 -0
- package/dist/types/shared/analytics-protocol/index.d.ts +1 -1
- package/dist/types/shared/analytics-protocol/matrix-definition-contract.d.ts +45 -0
- package/dist/types/shared/analytics-protocol/matrix-member-presentation.d.ts +4 -0
- package/dist/types/shared/dashboard-authoring/document-section-cards.d.ts +56 -0
- package/dist/types/shared/dashboard-authoring/index.d.ts +1 -0
- package/dist/types/shared/dashboard-authoring/matrix-delivery.d.ts +36 -1
- package/dist/types/shared/format-utils/formatters/matrix-formatter.d.ts +5 -0
- package/dist/types/shared/format-utils/index.d.ts +1 -0
- package/dist/types/shared/format-utils/matrix-export-presentation.d.ts +690 -1
- package/dist/types/shared/format-utils/matrix-print.d.ts +38 -0
- package/dist/types/shared/format-utils/pdf-table-layout/column-bands.d.ts +55 -0
- package/dist/types/shared/format-utils/pdf-table-layout/index.d.ts +6 -0
- package/dist/types/shared/format-utils/pdf-table-layout/page-size.d.ts +7 -0
- package/dist/types/shared/format-utils/pdf-table-layout/table-column-semantics.d.ts +106 -0
- package/dist/types/shared/format-utils/pdf-table-layout/table-column-widths.d.ts +13 -0
- package/dist/types/shared/format-utils/pdf-table-layout/table-page-geometry.d.ts +19 -0
- package/dist/types/shared/format-utils/pdf-table-layout/wide-table-layout.d.ts +46 -0
- package/dist/types/shared/format-utils/table-structure.d.ts +9 -0
- package/package.json +6 -1
- package/dist/chunks/edit-dashboard-visual-CI0EqzKj.cjs +0 -172
- package/dist/chunks/field-aggregations-jSi77h9Z.cjs +0 -1
- package/dist/chunks/index-BMMXKK3G.cjs +0 -4
- package/dist/chunks/index-C6_xef4P.cjs +0 -1424
- package/dist/chunks/matrix-formatter-Dajj91Ni.cjs +0 -1
- package/dist/chunks/matrix-member-presentation-CFHjdrxT.cjs +0 -1
- package/dist/chunks/pivot-header-presentation-BIf4HW3L.js +0 -414
- package/dist/chunks/pivot-header-presentation-B_N11CgN.cjs +0 -5
- package/dist/chunks/switch-Ced9ZZwI.cjs +0 -134
- package/dist/chunks/validators-DVYAnnX0.cjs +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const C=require("./validators-DVYAnnX0.cjs"),Z=require("./matrix-operation-contract-DoiWTUbT.cjs"),ee=require("./metric-comparison-DBQ3EJTz.cjs"),u=require("zod"),Ce=require("./source-entity-resolution-CjbgnwyX.cjs"),ve=require("./field-dependencies-DIab72rQ.cjs"),H=require("./matrix-card-U4c72doZ.cjs"),I=require("./temporal-bucket-4YEPEKlJ.cjs"),te=require("../value-format-preferences/index.cjs"),w=new Set(["previous_period","same_period_last_year","start_vs_end","target"]),_e=new Set([...w,"none",""]);function h(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function ne(e){const t=h(e.preferences)?e.preferences:void 0,n=t&&h(t.kpiVisualOptions)?t.kpiVisualOptions:void 0,o=t&&h(t.tableVisualOptions)?t.tableVisualOptions:void 0;return{preferences:t,kpiOptions:n,kpiComparison:n&&h(n.metricComparison)?n.metricComparison:void 0,kpiComparisonPresent:!!n&&"metricComparison"in n,tableOptions:o,tableComparison:o&&h(o.metricComparison)?o.metricComparison:void 0,tableComparisonPresent:!!o&&"metricComparison"in o}}function j(e){const t=[],n=(o,i)=>{if(Array.isArray(o)){o.forEach((r,s)=>n(r,`${i}[${s}]`));return}if(!h(o))return;const a=o.config;if(h(a)){const r=ne(o),s=!!(r.kpiComparisonPresent||r.tableComparisonPresent),m=a.metricColumns,p=Array.isArray(m)?m.flatMap((l,c)=>h(l)?[{index:c,metric:l}]:[]):[];if((p.some(({metric:l})=>"comparisonType"in l)||s)&&t.push({path:i,card:o,metrics:p,malformedMetricIndexes:Array.isArray(m)?m.flatMap((l,c)=>h(l)?[]:[c]):[],malformedMetricColumns:"metricColumns"in a&&!Array.isArray(m),hasLegacyPresentation:s}),"metricColumns"in a||s)return}Object.entries(o).forEach(([r,s])=>n(s,i?`${i}.${r}`:r))};return n(e,"$"),t}const oe={difference:"difference",change:"percent_change",change_difference:"both",ratio:"ratio"};function U(e,t){if(!e)return;const n=Object.fromEntries(t.flatMap(o=>typeof e[o]=="string"?[[o,e[o]]]:[]));return Object.keys(n).length?n:void 0}function Ye(e,t,n){if(e!==void 0){if(!h(e)){n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:t,message:"Legacy comparison formatOptions must be an object."});return}Object.entries(e).forEach(([o,i])=>{if(o==="decimalPlaces"){(typeof i!="number"||!Number.isInteger(i)||i<0||i>6)&&n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${t}.decimalPlaces`,message:"Legacy comparison decimalPlaces must be an integer from 0 through 6."});return}o==="type"&&(i===void 0||i==="auto")||i!==void 0&&n.push({severity:"error",code:"unsupported_comparison_format",path:`${t}.${o}`,message:`Legacy comparison format option "${o}" has no canonical presentation mapping.`})})}}function S(e,t){const n=t==="kpi"?e.calculationType:e.calculatedAs,o=t==="table"&&n===void 0?"both":oe[String(n)],i=h(e.formatOptions)?e.formatOptions:void 0,a=h(e.conditionalLabels)?e.conditionalLabels:void 0,r=h(t==="kpi"?e.colorConfig:e.colors)?t==="kpi"?e.colorConfig:e.colors:void 0,s={};if(o&&(s.displayMode=o),typeof(i==null?void 0:i.decimalPlaces)=="number"&&(s.precision=i.decimalPlaces),t==="kpi"){const l=e.showArrow!==!1,c=e.showColor!==!1;s.indicatorStyle=l?c?"arrow_badge":"arrow":c?"badge":"none",s.showColor=c,(e.position==="left"||e.position==="right"||e.position==="top")&&(s.position=e.position),typeof e.conditionalLabel=="boolean"&&(s.conditionalLabel=e.conditionalLabel),typeof e.labelName=="string"&&(s.labelName=e.labelName)}else(e.indicatorStyle==="arrow_badge"||e.indicatorStyle==="arrow"||e.indicatorStyle==="badge"||e.indicatorStyle==="none")&&(s.indicatorStyle=e.indicatorStyle);const m=a?{...U(a,["increase","decrease"]),...typeof a.noChange=="string"?{neutral:a.noChange}:typeof a.neutral=="string"?{neutral:a.neutral}:{}}:void 0;m&&Object.keys(m).length&&(s.conditionalLabels=m);const p=r?{...U(r,["increase","decrease"]),...typeof r.noChange=="string"?{neutral:r.noChange}:typeof r.neutral=="string"?{neutral:r.neutral}:{}}:void 0;return p&&Object.keys(p).length&&(s.colors=p),s}function J(e){return{...ee.COMPARISON_PRESENTATION_DEFAULTS,...e}}function G(e){return e.some(({metric:t})=>t.comparisonType==="previous_period"||t.comparisonType==="same_period_last_year"||t.comparisonType==="target"?!0:h(t.comparison)&&t.comparison.mode==="explicit")}function F(e){const t=e.card.config;return e.metrics.length===2&&(t.groupByColumns===void 0||Array.isArray(t.groupByColumns)&&t.groupByColumns.length===0)}function K(e,t,n,o){const i=t==="kpi"?["enabled","calculationType","formatOptions","showArrow","showColor","conditionalLabel","labelName","position","conditionalLabels","colorConfig","lowerIsBetter"]:["calculatedAs","indicatorStyle","formatOptions","colors","lowerIsBetter"];Object.keys(e).forEach(l=>{i.includes(l)||o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${n}.${l}`,message:`Unknown legacy comparison presentation field "${l}" cannot be dropped automatically.`})});const a=t==="kpi"?"calculationType":"calculatedAs";e[a]!==void 0&&!oe[String(e[a])]&&o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${n}.${a}`,message:`Legacy comparison ${a} is unsupported.`}),t==="kpi"&&e.position!==void 0&&!["left","right","top"].includes(String(e.position))&&o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${n}.position`,message:"Legacy comparison position is unsupported."}),t==="kpi"&&e.labelName!==void 0&&typeof e.labelName!="string"&&o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${n}.labelName`,message:"Legacy comparison labelName must be a string."}),(t==="kpi"?[["conditionalLabels",["increase","decrease","noChange"]],["colorConfig",["increase","decrease","noChange"]]]:[["colors",["increase","decrease","neutral"]]]).forEach(([l,c])=>{if(e[l]!==void 0){if(!h(e[l])){o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${n}.${l}`,message:`Legacy comparison ${l} must be an object.`});return}Object.entries(e[l]).forEach(([b,d])=>{c.includes(b)?typeof d!="string"&&o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${n}.${l}.${b}`,message:`Legacy comparison ${l}.${b} must be a string.`}):o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${n}.${l}.${b}`,message:`Unknown legacy comparison ${l} field "${b}" cannot be dropped automatically.`})})}}),(t==="kpi"?["enabled","showArrow","showColor","conditionalLabel","lowerIsBetter"]:["lowerIsBetter"]).forEach(l=>{e[l]!==void 0&&typeof e[l]!="boolean"&&o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${n}.${l}`,message:`Legacy comparison ${l} must be a boolean.`})}),t==="table"&&e.indicatorStyle!==void 0&&!["arrow_badge","arrow","badge","none"].includes(String(e.indicatorStyle))&&o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${n}.indicatorStyle`,message:"Legacy comparison indicatorStyle is unsupported."}),Ye(e.formatOptions,`${n}.formatOptions`,o);const m=S(e,t);ee.validateComparisonPresentationSpec(m,n).errors.forEach(l=>{o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:l.path||n,message:l.message})})}function Q(e){const t=ne(e.card),n=t.kpiComparison?S(t.kpiComparison,"kpi"):void 0,o=t.tableComparison?S(t.tableComparison,"table"):void 0;return{namespaces:t,kpi:n,table:o,presentation:n||o}}function Me(e){const t=h(e.preferences)?e.preferences:{},n=h(t.kpiVisualOptions)?t.kpiVisualOptions:{},o=h(n.metricComparison)?n.metricComparison:{},i=h(t.tableVisualOptions)?t.tableVisualOptions:{},a=h(i.metricComparison)?i.metricComparison:{};return n.lowerIsBetter===!0||o.lowerIsBetter===!0||a.lowerIsBetter===!0?"lower_is_better":"higher_is_better"}function Te(e){switch(e.comparisonType){case"previous_period":return{mode:"explicit",spec:{kind:"previous_period"}};case"same_period_last_year":return{mode:"explicit",spec:{kind:"previous_year"}};case"target":return{mode:"explicit",spec:{kind:"target",targetValue:e.targetValue}};default:return}}function ke(e){const t=h(e.preferences)?e.preferences:void 0;if(!t)return;const n=h(t.kpiVisualOptions)?t.kpiVisualOptions:void 0;n&&delete n.lowerIsBetter;const o=h(t.tableVisualOptions)?t.tableVisualOptions:void 0,i=o&&h(o.metricComparison)?o.metricComparison:void 0;i&&delete i.lowerIsBetter}function Ee(e){const t=j(e);if(!t.length)return{document:e,changed:!1,changes:[],diagnostics:[]};const n=[];if(t.forEach(r=>{var s,m,p,l;if(r.malformedMetricColumns&&n.push({severity:"error",code:"malformed_metric_columns",path:`${r.path}.config.metricColumns`,message:"Metric columns must be an array before comparison migration."}),r.malformedMetricIndexes.forEach(c=>{n.push({severity:"error",code:"malformed_metric_columns",path:`${r.path}.config.metricColumns[${c}]`,message:"Metric columns must contain objects before comparison migration."})}),r.metrics.forEach(({metric:c,index:b})=>{if(!("comparisonType"in c))return;const d=`${r.path}.config.metricColumns[${b}]`,y=String(c.comparisonType||"");"comparison"in c&&n.push({severity:"error",code:"conflicting_comparison_contracts",path:d,message:"Metric contains both legacy and canonical comparison configuration; resolve the conflict before migration."});const v=h(c.parameters)?c.parameters:void 0,M=v&&h(v.windowTransform)?v.windowTransform:void 0;w.has(y)&&(M==null?void 0:M.function)==="previous_period_delta"&&n.push({severity:"error",code:"conflicting_comparison_window_transform",path:d,message:"A metric cannot combine baseline comparison with previous_period_delta; resolve the authoring intent before migration."}),_e.has(y)||n.push({severity:"error",code:"unsupported_comparison_type",path:`${d}.comparisonType`,message:`Unsupported legacy metric comparison type "${y}".`}),c.comparisonType==="target"&&(typeof c.targetValue!="number"||!Number.isFinite(c.targetValue))&&n.push({severity:"error",code:"invalid_target_value",path:`${d}.targetValue`,message:"Legacy target comparison requires a finite metric targetValue."}),c.comparisonType==="start_vs_end"&&n.push({severity:"error",code:"unsupported_start_vs_end",path:`${d}.comparisonType`,message:"start_vs_end is retired and cannot be migrated automatically."}),c.targetValue!==void 0&&c.comparisonType!=="target"&&n.push({severity:"warning",code:"stray_target_value",path:`${d}.targetValue`,message:"Dead non-target targetValue will be removed without changing the baseline."})}),r.hasLegacyPresentation){const{namespaces:c,kpi:b,table:d}=Q(r),y=[(s=c.kpiOptions)==null?void 0:s.lowerIsBetter,(m=c.kpiComparison)==null?void 0:m.lowerIsBetter,(p=c.tableComparison)==null?void 0:p.lowerIsBetter].filter(v=>typeof v=="boolean");new Set(y).size>1&&n.push({severity:"error",code:"conflicting_legacy_polarity",path:`${r.path}.preferences`,message:"Legacy comparison polarity values disagree; resolve the conflict before migration."}),((l=c.kpiOptions)==null?void 0:l.lowerIsBetter)!==void 0&&typeof c.kpiOptions.lowerIsBetter!="boolean"&&n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${r.path}.preferences.kpiVisualOptions.lowerIsBetter`,message:"Legacy comparison lowerIsBetter must be a boolean."}),c.kpiComparisonPresent&&!c.kpiComparison&&n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${r.path}.preferences.kpiVisualOptions.metricComparison`,message:"Legacy KPI comparison presentation must be an object."}),c.tableComparisonPresent&&!c.tableComparison&&n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${r.path}.preferences.tableVisualOptions.metricComparison`,message:"Legacy table comparison presentation must be an object."}),"comparisonPresentation"in(c.preferences||{})&&n.push({severity:"error",code:"conflicting_comparison_presentation_contracts",path:`${r.path}.preferences.comparisonPresentation`,message:"Card contains both legacy and canonical comparison presentation; resolve the conflict before migration."}),c.kpiComparison&&typeof c.kpiComparison.enabled=="boolean"&&"metricPairComparisonEnabled"in(c.preferences||{})&&F(r)&&n.push({severity:"error",code:"conflicting_comparison_presentation_contracts",path:`${r.path}.preferences.metricPairComparisonEnabled`,message:"Card contains both legacy and canonical metric-pair enablement; resolve the conflict before migration."}),c.kpiComparison&&K(c.kpiComparison,"kpi",`${r.path}.preferences.kpiVisualOptions.metricComparison`,n),c.tableComparison&&K(c.tableComparison,"table",`${r.path}.preferences.tableVisualOptions.metricComparison`,n),b&&d&&JSON.stringify(J(b))!==JSON.stringify(J(d))&&n.push({severity:"error",code:"conflicting_legacy_presentation_namespaces",path:`${r.path}.preferences`,message:"KPI and table comparison presentation values disagree; resolve the conflict before migration."})}}),n.some(r=>r.severity==="error"))return{document:e,changed:!1,changes:[],diagnostics:n};const o=JSON.parse(JSON.stringify(e)),i=j(o),a=[];return i.forEach(r=>{var m;const s=Me(r.card);if(r.metrics.forEach(({metric:p,index:l})=>{if(!("comparisonType"in p))return;const c=String(p.comparisonType||""),b=`${r.path}.config.metricColumns[${l}]`,d=Te(p),y=["comparisonType"];delete p.comparisonType,"targetValue"in p&&(delete p.targetValue,y.push("targetValue")),"comparisonDisplay"in p&&(delete p.comparisonDisplay,y.push("comparisonDisplay")),d?p.comparison=d:delete p.comparison,w.has(c)&&(p.comparisonPolarity=s),a.push({kind:"metric",path:b,metricId:typeof p.id=="string"?p.id:void 0,legacyType:c,comparison:d,comparisonPolarity:w.has(c)?s:void 0,removedFields:y})}),ke(r.card),r.hasLegacyPresentation){const{namespaces:p,presentation:l}=Q(r),c=(m=p.kpiComparison)==null?void 0:m.enabled,b={...l};typeof c=="boolean"&&G(r.metrics)&&(b.showComparison=c);const d=typeof c=="boolean"&&F(r)?c:void 0,y=typeof c=="boolean"&&!G(r.metrics)&&!F(r)?["kpiVisualOptions.metricComparison.enabled"]:void 0,v=p.preferences,M=[];r.metrics.forEach(({metric:N})=>{"comparisonPolarity"in N||(N.comparisonPolarity=s,typeof N.id=="string"&&M.push(N.id))}),Object.keys(b).length&&(v.comparisonPresentation=b),d!==void 0&&(v.metricPairComparisonEnabled=d),p.kpiOptions&&delete p.kpiOptions.metricComparison,p.tableOptions&&delete p.tableOptions.metricComparison,a.push({kind:"presentation",path:`${r.path}.preferences`,comparisonPresentation:Object.keys(b).length?b:void 0,metricPairComparisonEnabled:d,comparisonPolarityMetricIds:M,intentionallyDiscardedFields:y,removedFields:[...p.kpiComparison?["kpiVisualOptions.metricComparison"]:[],...p.tableComparison?["tableVisualOptions.metricComparison"]:[]]})}}),{document:o,changed:!0,changes:a,diagnostics:n}}function f(e){return typeof e=="string"&&e.trim().length>0?e.trim():null}function ie(e){return Array.from(new Set(e.filter(t=>!!t)))}function Ie(e){const t=f(e.table),n=f(e.schema),o=f(e.catalog)||f(e.database);return t?ie([t,n?`${n}.${t}`:null,o?`${o}.${t}`:null,o&&n?`${o}.${n}.${t}`:null]):[]}function W(e){const t=f(e.table)||f(e.tableName);return ie([f(e.name),f(e.alias),...Ie({table:t,schema:f(e.schema)||f(e.schemaName),catalog:f(e.catalog),database:f(e.database)||f(e.databaseName)})])}function Ae(e,t){const n=f(e.domainId),o=f(t.domainId);if(n&&o&&n!==o)return!0;if(e.type==="dataset")return!1;const i=f(e.id),a=f(t.id);if(i&&a&&i!==a)return!0;const r=f(e.connectionId),s=f(t.connectionId);return!!(r&&s&&r!==s)}function B(e,t=!1){return f(e.table)||f(e.tableName)||(e.type!=="dataset"||t?f(e.name):null)}function z(e){return f(e.catalog)||f(e.database)||f(e.databaseName)}function L(e){return f(e.schema)||f(e.schemaName)}function P(e){return e.length===1?e[0]:void 0}function De(e,t){const n=B(t,!0),o=z(t),i=L(t);if(!(!n||!o&&!i))return P(e.filter(a=>{const r=a;return!(B(r)!==n||o&&z(r)!==o||i&&L(r)!==i)}))}function A(e,t){if(!t||!(e!=null&&e.length))return;const n=e.filter(s=>!Ae(s,t));if(t.type==="dataset"){const s=f(t.id);if(s)return P(n.filter(p=>p.type==="dataset"&&f(p.id)===s));if(f(t.domainId)){const p=f(t.name);return P(n.filter(l=>l.type==="dataset"&&f(l.name)===p))}}let o=[];if(t.type==="dataset"){const s=f(t.name);if(o=n.filter(m=>m.type==="dataset"&&f(m.name)===s),o.length===1)return o[0]}if(!!(B(t,!0)&&(z(t)||L(t))))return De(n,t);if(o.length>1)return;const a=W(t);if(a.length===0)return;const r=n.filter(s=>W(s).some(p=>a.includes(p)));return P(r)}function $(e,t){const n=A(e,t);return n?{...t,...n}:t}function Oe(e,t){const n=t||[];return n.length===0?e:{...e,baseEntity:$(n,e.baseEntity),joins:e.joins.map(o=>({...o,source:$(n,o.source),target:$(n,o.target)}))}}function Ne(e,t){if(!(e!=null&&e.joins.length))return[];const n=[e.baseEntity,...e.joins.flatMap(i=>[i.source,i.target])],o=[];return n.forEach(i=>{!A(t,i)&&!A(o,i)&&o.push(i)}),o}function k(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function E(e){return k(e)&&typeof e.name=="string"}function x(e){return!k(e)||e.kind!=="semantic"&&e.kind!=="physical"||(e.kind==="semantic"?[e.datasetId,e.datasetName,e.connectionId]:[e.databaseName,e.schemaName]).some(n=>n!==void 0&&typeof n!="string")?!1:C.hasCompleteSemaphorSourceIdentity(e)}function we(e){return[...e.groupByColumns??[],...e.metricColumns??[],...e.pivotByColumns??[],...e.detailColumns??[],...e.sortByColumns??[]]}function V(e){return e?[...(e.conditions??[]).flatMap(t=>t.field?[t.field]:[]),...(e.groups??[]).flatMap(V)]:[]}function re(e){var o,i;const t="parameters"in e?V((o=e.parameters)==null?void 0:o.filters):[],n=((i=e.calculatedFormula)==null?void 0:i.inputFields)??[];return[...t,...n.flatMap(a=>re(a))]}function se(e){const t=Array.isArray(e==null?void 0:e.selectedEntities)?e.selectedEntities.filter(E):[];return C.mergeSemaphorSourcesByIdentity(t.flatMap(n=>{const o=Y(n,e);return o?[o]:[]}))}function R(e,t){const n=t.filter(o=>C.semaphorSourcesReferToSameDataset(o,e));return n.length===1?n[0]:void 0}function Pe(e,t){if(t.kind==="semantic")return!!(e.entityId&&e.entityId===t.datasetId||e.entityName&&e.entityName===t.datasetName);const n=[t.databaseName,t.schemaName,t.tableName].filter(o=>!!o).join(".");return!!(e.entityName===t.tableName||e.qualifiedEntityName&&e.qualifiedEntityName===n)}function Fe(e,t){const n=Array.isArray(t==null?void 0:t.selectedEntities)?t.selectedEntities.filter(E):[],o=e.entityName||e.qualifiedEntityName;if(!o)return;const i=e.entityId?A(n,{type:"dataset",id:e.entityId,name:o}):void 0;if(i)return Y(i,t);const a=A(n,{type:(t==null?void 0:t.mode)==="semanticDomain"?"dataset":"table",name:(t==null?void 0:t.mode)==="semanticDomain"?o:e.qualifiedEntityName||o});if(a&&!((t==null?void 0:t.mode)==="semanticDomain"&&e.entityId&&![e.entityName,e.qualifiedEntityName,a.name,a.type==="dataset"&&"table"in a?a.table:void 0].filter(s=>!!s).includes(e.entityId)))return Y(a,t)}function $e(e,t,n){var a,r,s;const o=!!(C.hasSyntheticCalculatedFieldOwner(e)||(r=(a=e.calculatedFormula)==null?void 0:a.inputFields)!=null&&r.length||(s=e.derivedField)!=null&&s.inputs&&Object.keys(e.derivedField.inputs).length>0);if(e.source&&!o){const m=R(e.source,n);return m?[m]:[]}const i=ve.resolveFieldDatasetDependencies(e).datasets;return C.mergeSemaphorSourcesByIdentity(i.flatMap(m=>{const l=e.source&&Pe(m,e.source)&&R(e.source,n)||Fe(m,t);return l?[l]:[]}))}function Se(e,t){const n=se(t),o=we(e),i=V(e.filters),a=[...i,...[...o,...i].flatMap(re)];return C.mergeSemaphorSourcesByIdentity([...o,...a].flatMap(r=>$e(r,t,n)))}function Be(e,t,n){var i;return x(e)?!!!((i=t==null?void 0:t.selectedEntities)!=null&&i.length)||!n?e:R(e,se(t)):void 0}function Y(e,t){var p,l;const n=Array.isArray(t==null?void 0:t.selectedEntities)?t.selectedEntities.filter(E):void 0,o=A(n,e),i=o?{...e,...o}:e,a="domainId"in i&&typeof i.domainId=="string"&&!!i.domainId.trim();if((t==null?void 0:t.mode)==="semanticDomain"&&!a)return;if((t==null?void 0:t.mode)!=="database"&&i.type==="dataset"){const c=Ce.resolveSemaphorSemanticDatasetEntity({entities:[i],semanticDomainId:t==null?void 0:t.semanticDomainId,connectionId:t==null?void 0:t.connectionId,fieldEntityType:"dataset"},{includePhysicalDatasets:!0});if(c.kind==="resolved"){const b="label"in i&&typeof i.label=="string"?i.label:void 0;return{...c.source,...b?{label:b}:{}}}}if((t==null?void 0:t.mode)==="semanticDomain")return;const r=i.connectionId||(t==null?void 0:t.connectionId),s=i.type==="dataset"&&"table"in i&&i.table?i.table:i.name;if(!r||!s)return;const m={kind:"physical",connectionId:r,connectionType:i.connectionType||(t==null?void 0:t.connectionType),tableName:s,databaseName:i.database||((p=t==null?void 0:t.dbSelection)==null?void 0:p.database),schemaName:i.schema||((l=t==null?void 0:t.dbSelection)==null?void 0:l.schema),dialect:i.dialect};return x(m)?m:void 0}function ze(e,t){var s,m;const n=Y(e,t);if(!n)return;const o=e.type==="dataset"&&"table"in e&&typeof e.table=="string"?e.table.trim():void 0,i=n.kind==="physical"?n.tableName:o,a=e.connectionId||(t==null?void 0:t.connectionId),r=i&&a?{connectionId:a,databaseName:e.database||((s=t==null?void 0:t.dbSelection)==null?void 0:s.database),schemaName:e.schema||((m=t==null?void 0:t.dbSelection)==null?void 0:m.schema),tableName:i}:void 0;return{source:n,...r?{executionTable:r}:{}}}function ae(e){const t=k(e.dataSource)?e.dataSource:void 0;if(typeof e.sql=="string"&&e.sql.trim()){const s=[],m=Array.isArray(t==null?void 0:t.selectedEntities)?t.selectedEntities:[];for(const p of m){if(!E(p))continue;const l=ze(p,t);l&&!s.some(c=>C.semaphorSourcesReferToSameDataset(c.source,l.source))&&s.push(l)}return{cardId:e.id,kind:"sql",pinnedCatalogSources:s}}if(!k(e.config))return{cardId:e.id,kind:"unconfigured"};const n=e.config,o=[],i=H.inspectMatrixCardConfig(e);if(i.status==="invalid")return{cardId:e.id,kind:"unconfigured"};const a=i.status==="ready"?i.config:void 0;if(e.type==="matrixTable"&&!a)return{cardId:e.id,kind:"unconfigured"};a&&o.push(...H.matrixDefinitionSources(a.spec).filter(x));const r=(a==null?void 0:a.spec.joinPlan)??(k(n.joinPlan)?n.joinPlan:void 0);if(r){const s=Array.isArray(r.joins)?r.joins:[],m=[r.baseEntity];for(const l of s)k(l)&&m.push(l.source,l.target);let p=!1;for(const l of m){if(!E(l)){p=!0;continue}const c=Y(l,t);c?o.push(c):p=!0}p&&(o.length=0)}else if(e.type!=="matrixTable"){const s=Array.isArray(t==null?void 0:t.selectedEntities)?t.selectedEntities:[];if(s.length===1&&E(s[0])){const p=Y(s[0],t);p&&o.push(p)}o.push(...Se(n,t));const m=Be(n.queryBaseSource,t,o.length>0);m&&o.push(m)}return{cardId:e.id,kind:"config",executableSources:C.mergeSemaphorSourcesByIdentity(o)}}function Le(e,t){return(e.kind==="config"?e.executableSources:e.kind==="sql"?e.pinnedCatalogSources.map(o=>o.source):[]).some(o=>C.semaphorSourcesReferToSameDataset(o,t))}function ce(e,t){if(e.kind==="config")return e.executableSources.find(n=>C.semaphorSourcesReferToSameDataset(n,t))}function Re(e,t){var n;return(n=le(e,t))==null?void 0:n.source}function le(e,t){if(e.kind==="sql")return e.pinnedCatalogSources.find(n=>C.semaphorSourcesReferToSameDataset(n.source,t))}const pe={rowMembers:!0,columnMembers:!0,cells:!0};function me(e,t){return{enabled:t==="on",fields:e.type==="detailTable"?{kind:"clickedCell"}:{kind:"wholeRow"},multipleSelection:!0,selectionCheckboxes:"auto",...e.type==="matrixTable"?{matrixSources:{...pe}}:{},targets:{kind:"allSheets"},cardMappings:[]}}const xe=["string","number","boolean","date","datetime"];function Ve(e){return(e.kind==="semantic"?[e.datasetId,e.datasetName]:[e.tableName,[e.databaseName,e.schemaName,e.tableName].filter(Boolean).join(".")]).filter(t=>!!t).map(t=>C.normalizeAnalyticsCatalogName(t))}function ue(e,t){if(t.kind!=="config"||e.expression||e.calculatedFormula)return;const n=C.normalizeAnalyticsCatalogDataType(e.dataType);if(!xe.includes(n))return;let o;if(e.source)o=ce(t,e.source);else{const i=[e.entityId,e.entityName,e.qualifiedEntityName].filter(r=>!!r).map(r=>C.normalizeAnalyticsCatalogName(r)),a=t.executableSources.filter(r=>Ve(r).some(s=>i.includes(s)));a.length===1?o=a[0]:!a.length&&t.executableSources.length===1&&(o=t.executableSources[0])}if(!(!o||!e.name))return{name:e.name,source:o,dataType:n,...e.sourceField&&e.sourceField!==e.name?{sourceField:e.sourceField}:{}}}function qe(e,t){const{matrixSources:n,...o}=t,i=t.fields.kind==="chosenColumns"?{kind:"chosenColumns",clickedFieldKeys:[...new Set(t.fields.clickedFieldKeys)]}:t.fields;return{...o,fields:i,...e.type==="matrixTable"?{matrixSources:n??{...pe}}:{}}}function He(e,t){var c,b;if(e.clickToFilter)return qe(e,e.clickToFilter);const n=me(e,t),o=(((c=e.interactionConfig)==null?void 0:c.interactions)??[]).filter(d=>d.mode==="clickFilter");if(!o.length)return n;const i=ae(e);let a=!1;const r=[];for(const d of o){if(((b=d.trigger)==null?void 0:b.type)!=="attribute"){a=!0;continue}const y=ue(d.trigger.field,i);if(!y){a=!0;continue}const v=Z.selectionFieldKey(y);r.includes(v)||r.push(v)}const s=o.every(d=>d.applyToCardIds!==void 0),m=[...new Set(o.flatMap(d=>d.applyToCardIds??[]))],p=o.filter(d=>d.applyToCardIds===void 0),l=s?[]:[...new Set(p.flatMap(d=>d.excludeCardIds??[]))].filter(d=>p.every(y=>{var v;return(v=y.excludeCardIds)==null?void 0:v.includes(d)}));return{...n,enabled:!0,fields:a||!r.length?{kind:"wholeRow"}:{kind:"chosenColumns",clickedFieldKeys:r},targets:s?{kind:"cards",cardIds:m}:{kind:"allSheets"},cardMappings:l.map(d=>({kind:"excluded",cardId:d}))}}const de=u.z.union([u.z.object({kind:u.z.literal("allSheets"),sheetKinds:u.z.array(u.z.enum(["dashboard","document"])).optional()}).strict(),u.z.object({kind:u.z.literal("sheets"),sheetIds:u.z.array(u.z.string())}).strict(),u.z.object({kind:u.z.literal("cards"),cardIds:u.z.array(u.z.string())}).strict(),u.z.object({kind:u.z.literal("documentSections"),sheetId:u.z.string(),sectionIds:u.z.array(u.z.string())}).strict()]),fe=u.z.union([u.z.object({kind:u.z.literal("bound"),cardId:u.z.string().min(1),clickedFieldKey:u.z.string().min(1),target:u.z.object({kind:u.z.literal("field"),field:Z.selectionFieldSchema}).strict()}).strict(),u.z.object({kind:u.z.literal("excluded"),cardId:u.z.string().min(1)}).strict()]),je=u.z.object({enabled:u.z.boolean(),fields:u.z.union([u.z.object({kind:u.z.literal("wholeRow")}).strict(),u.z.object({kind:u.z.literal("clickedCell")}).strict(),u.z.object({kind:u.z.literal("chosenColumns"),clickedFieldKeys:u.z.array(u.z.string().min(1))}).strict()]),multipleSelection:u.z.boolean(),selectionCheckboxes:u.z.enum(["auto","always","never"]),matrixSources:u.z.object({rowMembers:u.z.boolean(),columnMembers:u.z.boolean(),cells:u.z.boolean()}).strict().optional(),targets:de,cardMappings:u.z.array(fe)}).strict(),Ue=u.z.boolean(),Je=u.z.object({targets:de.nullable().optional(),cardMappings:u.z.array(fe).nullable().optional()}).strict(),he=["bar","horizontalBar","line","area","stackedArea","combo","stackedBar","stackedLine"],Ge=new Set(he);function be(e){return typeof e=="string"&&Ge.has(e)}function Ke(e){return e==="detailTable"||e==="table"||e==="aggregateTable"||e==="pivotTable"||e==="custom"||be(e)}function X(e){return!!(e!=null&&e.trim())}function Qe(e){return X(e.sql)||X(e.normalizedPython)?"freeform":e.hasExecutableConfig?"config":"none"}const O={type:"temporal_bucket",presentation:{mode:"auto"}},_={value:"auto",label:"Automatic",format:O};function g(e,t){return{value:`pattern:${e}`,label:t,format:{type:"temporal_bucket",presentation:{mode:"pattern",pattern:e}}}}function D(e,t){return{value:`preset:${e}`,label:t,format:{type:"temporal_bucket",presentation:{mode:"preset",preset:e}}}}function T(e){return{...g(e,"Custom format…"),value:"custom",custom:!0}}const q={second:[_,g("HH:mm:ss","14:30:45 (HH:mm:ss)"),g("YYYY-MM-DD HH:mm:ss","2024-01-15 14:30:45 (YYYY-MM-DD HH:mm:ss)"),T("DD/MM/YYYY HH:mm:ss")],minute:[_,g("HH:mm","14:30 (HH:mm)"),g("YYYY-MM-DD HH:mm","2024-01-15 14:30 (YYYY-MM-DD HH:mm)"),T("DD/MM/YYYY HH:mm")],hour:[_,g("HH","14 (HH)"),g("YYYY-MM-DD HH","2024-01-15 14 (YYYY-MM-DD HH)"),T("DD/MM/YYYY HH")],day:[_,g("YYYY-MM-DD","2024-01-15 (YYYY-MM-DD)"),g("MM/DD/YYYY","01/15/2024 (MM/DD/YYYY)"),g("DD/MM/YYYY","15/01/2024 (DD/MM/YYYY)"),g("MMM DD, YYYY","Jan 15, 2024 (MMM DD, YYYY)"),g("MMMM DD, YYYY","January 15, 2024 (MMMM DD, YYYY)"),T("YYYY/MM/DD")],week:[_,D("week_of_short","Week of Jan 15, 2024"),D("week_of_long","Week of January 15, 2024"),g("YYYY-MM-DD","2024-01-15 (YYYY-MM-DD)"),T("YYYY/MM/DD")],month:[_,g("MMM YYYY","Jan 2024 (MMM YYYY)"),g("MMMM YYYY","January 2024 (MMMM YYYY)"),g("YYYY-MM","2024-01 (YYYY-MM)"),g("MM/YYYY","01/2024 (MM/YYYY)"),g("YYYY MMM","2024 Jan (YYYY MMM)"),T("YYYY/MM")],quarter:[_,D("quarter_short","Q1 2024"),D("quarter_long","1st Quarter 2024")],year:[_,g("YYYY","2024 (YYYY)"),g("YY","24 (YY)")]},We={second:"2026-07-31T14:05:09",minute:"2026-07-31T14:05:00",hour:"2026-07-31T14:00:00",day:"2026-07-31",week:"2026-07-27",month:"2026-07-01",quarter:"2026-07-01",year:"2026-01-01"};function ge(e,t,n=te.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES){return I.formatTemporalBucket({value:We[t],metadata:{kind:"temporal_bucket",granularity:t,calendar:{tz:"UTC",weekStart:1,...e.presentation.mode==="preset"&&(e.presentation.preset==="fiscal_quarter_short"||e.presentation.preset==="fiscal_year")?{fiscalCalendar:{kind:"month_aligned",yearStartMonth:7}}:{}}},format:e.presentation.mode==="auto"?{type:"temporal_bucket",locale:n.locale,presentation:{mode:"auto",styles:{dateStyle:n.dateStyle,dateTime:{...n.dateTime}}}}:{type:"temporal_bucket",locale:n.locale,presentation:e.presentation}})}function Xe(e,t,n=te.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES){const o=q[e],i=(t==null?void 0:t.presentation.mode)==="preset"?t.presentation.preset:void 0,a=i&&t&&I.validateTemporalBucketFormatApplicability(t,e).ok&&!o.some(s=>{var m;return((m=s.format)==null?void 0:m.presentation.mode)==="preset"&&s.format.presentation.preset===i})?D(i,i):void 0;return(a?[...o,a]:o).map(s=>{if(!s.format||s.custom)return s;const m=ge(s.format,e,n);return s.format.presentation.mode==="pattern"?{...s,label:`${m} (${s.format.presentation.pattern})`}:s.format.presentation.mode==="auto"?{...s,label:`Automatic (${m})`}:{...s,label:m}})}function Ze(e,t){const n=q[t];if(e.presentation.mode==="pattern"){const o=e.presentation.pattern,i=n.find(a=>{var r;return((r=a.format)==null?void 0:r.presentation.mode)==="pattern"&&a.format.presentation.pattern===o});return{value:(i==null?void 0:i.value)??"custom",customPattern:i!=null&&i.custom||!i?o:"",format:e}}if(e.presentation.mode==="preset"){const o=e.presentation.preset,i=n.find(r=>{var s;return((s=r.format)==null?void 0:s.presentation.mode)==="preset"&&r.format.presentation.preset===o}),a=I.validateTemporalBucketFormatApplicability(e,t).ok;return i?{value:i.value,customPattern:"",format:e}:a?{value:`preset:${o}`,customPattern:"",format:e}:{value:"auto",customPattern:"",format:O}}return{value:"auto",customPattern:"",format:e}}function et(e,t,n=""){var r;const o=q[e].find(s=>s.value===t),i=t.startsWith("preset:")?t.slice(7):void 0,a=t==="custom"?{type:"temporal_bucket",presentation:{mode:"pattern",pattern:n.trim()||(((r=o==null?void 0:o.format)==null?void 0:r.presentation.mode)==="pattern"?o.format.presentation.pattern:"")}}:(o==null?void 0:o.format)??(i&&I.isTemporalBucketPreset(i)?{type:"temporal_bucket",presentation:{mode:"preset",preset:i}}:void 0);return!a||!I.validateTemporalBucketFormatApplicability(a,e).ok?O:a}function tt(e,t){return I.validateTemporalBucketFormatApplicability(e,t).ok?e:O}const ye=[{value:"COUNT",label:"Count"},{value:"DISTINCT",label:"Count Distinct"}],nt=[...ye,{value:"SUM",label:"Sum"},{value:"AVG",label:"Average"},{value:"MIN",label:"Min"},{value:"MAX",label:"Max"},{value:"MEDIAN",label:"Median"}];function ot(e){return C.normalizeAnalyticsCatalogDataType(e)==="number"?nt:ye}exports.AUTOMATIC_TEMPORAL_BUCKET_FORMAT=O;exports.SEMAPHOR_CARTESIAN_CHART_TYPES=he;exports.buildDashboardCardSourceIndex=ae;exports.clickToFilterSettingsSchema=je;exports.dashboardCardFilterSourceInventoryContains=Le;exports.defaultClickToFilterSettings=me;exports.findDashboardCardExecutableSource=ce;exports.findDashboardCardPinnedCatalogSource=Re;exports.findDashboardSqlPinnedCatalogSource=le;exports.findOrphanedJoinPlanEntities=Ne;exports.getFieldAggregationOptions=ot;exports.getTemporalBucketAuthoringOptions=Xe;exports.getTemporalBucketAuthoringSelection=Ze;exports.isSemaphorCartesianChartType=be;exports.linkedClickToFilterOverridesSchema=Je;exports.normalizeClickToFilterSettings=He;exports.normalizeJoinPlanEntityReferences=Oe;exports.previewTemporalBucketAuthoringFormat=ge;exports.reconcileTemporalBucketAuthoringFormat=tt;exports.resolveDashboardEntitySource=Y;exports.resolveTemporalBucketAuthoringFormat=et;exports.resolveTemporalResultOwner=Qe;exports.respondsToSelectionsSchema=Ue;exports.selectionFieldFromExplorerField=ue;exports.supportsCanonicalDashboardTemporalResult=Ke;exports.transformComparisonDocument=Ee;
|
|
@@ -1,4 +0,0 @@
|
|
|
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
|
-
df = pd.DataFrame(data) # 'data' contains the query result
|
|
3
|
-
result = df.to_dict('records') # must return 'result' as [dict] type
|
|
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;
|