react-semaphor 0.1.495 → 0.1.496

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/dist/analytics-protocol/index.cjs +1 -1
  2. package/dist/analytics-protocol/index.js +233 -218
  3. package/dist/brand-studio/index.cjs +1 -1
  4. package/dist/brand-studio/index.js +4 -4
  5. package/dist/briefings/index.cjs +1 -1
  6. package/dist/briefings/index.js +5 -5
  7. package/dist/chunks/calculated-field-identity-Cq9GwHfE.js +1266 -0
  8. package/dist/chunks/calculated-field-identity-DTfyvvLC.cjs +1 -0
  9. package/dist/chunks/{constants-BjGBVFbu.js → constants-CC3WKmqC.js} +14 -14
  10. package/dist/chunks/{constants-C-GvudXp.cjs → constants-DIuhVR6J.cjs} +1 -1
  11. package/dist/chunks/{dashboard-briefing-launcher-tYTkfNPj.js → dashboard-briefing-launcher-Bbz4cwHb.js} +9 -9
  12. package/dist/chunks/{dashboard-briefing-launcher-DyYVbfXp.cjs → dashboard-briefing-launcher-CM6LTGw5.cjs} +1 -1
  13. package/dist/chunks/{dashboard-controls-Hwo4ZnW4.cjs → dashboard-controls-B2nrczJl.cjs} +1 -1
  14. package/dist/chunks/{dashboard-controls-BR7hSzDh.js → dashboard-controls-BsgADy-S.js} +11 -11
  15. package/dist/chunks/{dashboard-date-comparison-definition-CpCZAGIz.js → dashboard-date-comparison-definition-Bqti6YAo.js} +1 -1
  16. package/dist/chunks/{dashboard-date-comparison-definition-1NBx_7QQ.cjs → dashboard-date-comparison-definition-C69F-zaC.cjs} +1 -1
  17. package/dist/chunks/{dashboard-json-FDNan6Lc.js → dashboard-json-CA-BChbt.js} +7 -7
  18. package/dist/chunks/{dashboard-json-B3CuJo_G.cjs → dashboard-json-CwRRBSSL.cjs} +1 -1
  19. package/dist/chunks/{edit-dashboard-visual-aqW4Jtrr.cjs → edit-dashboard-visual-BlS27LDw.cjs} +1 -1
  20. package/dist/chunks/{edit-dashboard-visual-DTJwFkdX.js → edit-dashboard-visual-CEiPgdkX.js} +15 -15
  21. package/dist/chunks/{editor-action-buttons-DSGiwWur.js → editor-action-buttons-6HBjjcfK.js} +6 -6
  22. package/dist/chunks/{editor-action-buttons-B3Dpnink.cjs → editor-action-buttons-kk2BNiTe.cjs} +1 -1
  23. package/dist/chunks/{field-aggregations-Cy4hBBqe.js → field-aggregations-C8kZqMTD.js} +11 -11
  24. package/dist/chunks/{field-aggregations-U54X9_Rt.cjs → field-aggregations-naKZ7S2Q.cjs} +1 -1
  25. package/dist/chunks/{index-a9nBmD-v.cjs → index-BSRwdFTN.cjs} +222 -222
  26. package/dist/chunks/{index-B9FLuTyx.cjs → index-CCa-A-Yx.cjs} +1 -1
  27. package/dist/chunks/{index-Ne0-ePdz.js → index-Cgoz65yM.js} +39098 -38334
  28. package/dist/chunks/{index-zKj-mqbS.js → index-oll4m-qi.js} +11 -11
  29. package/dist/chunks/{matrix-analytical-definition-DSRmzber.js → matrix-analytical-definition-B1xhoCak.js} +1 -1
  30. package/dist/chunks/{matrix-analytical-definition-B5oWAePu.cjs → matrix-analytical-definition-BK5y9XHH.cjs} +1 -1
  31. package/dist/chunks/{matrix-card-CxTCV9HF.js → matrix-card-BEb6hr8i.js} +2 -2
  32. package/dist/chunks/{matrix-card-BV7OPtq_.cjs → matrix-card-Ii8yYSnw.cjs} +1 -1
  33. package/dist/chunks/{matrix-control-sources-BLGlb4S9.cjs → matrix-control-sources-CdegRBcA.cjs} +1 -1
  34. package/dist/chunks/{matrix-control-sources-DYMzccBY.js → matrix-control-sources-cbYmqWNg.js} +5 -5
  35. package/dist/chunks/{matrix-definition-jy7ygO6J.cjs → matrix-definition-CSNthxru.cjs} +1 -1
  36. package/dist/chunks/{matrix-definition-Djesv_9v.js → matrix-definition-CZM5-YJX.js} +1 -1
  37. package/dist/chunks/{matrix-formatter-CuRTrMP2.cjs → matrix-formatter-C19PZAal.cjs} +1 -1
  38. package/dist/chunks/{matrix-formatter-BhkdDosE.js → matrix-formatter-CiXzpX6X.js} +27 -27
  39. package/dist/chunks/matrix-member-presentation-CQHvq18l.cjs +1 -0
  40. package/dist/chunks/matrix-member-presentation-CabW8mJc.js +105 -0
  41. package/dist/chunks/{matrix-operation-contract-4q53iAUW.js → matrix-operation-contract-0Nor-C71.js} +21 -21
  42. package/dist/chunks/{matrix-operation-contract-CbavkrJj.cjs → matrix-operation-contract-o9GXbiHw.cjs} +1 -1
  43. package/dist/chunks/{metric-comparison-CPx_2iqI.js → metric-comparison-Br8l0WkK.js} +1 -1
  44. package/dist/chunks/{metric-comparison-l2X7Reol.cjs → metric-comparison-DeiOjEm5.cjs} +1 -1
  45. package/dist/chunks/{operators-C8TxpM4C.js → operators-B3zZoskU.js} +28 -10
  46. package/dist/chunks/operators-DEfKaU_V.cjs +1 -0
  47. package/dist/chunks/{pivot-header-presentation-BDMb1Wlc.cjs → pivot-header-presentation-DRv-cSIP.cjs} +1 -1
  48. package/dist/chunks/{pivot-header-presentation-utM9JrgD.js → pivot-header-presentation-DW-ti5ek.js} +3 -3
  49. package/dist/chunks/{pivot-result-identity-Hm1sO9KE.cjs → pivot-result-identity-DEenUrMj.cjs} +1 -1
  50. package/dist/chunks/{pivot-result-identity-BDntll93.js → pivot-result-identity-sZc1RaIz.js} +1 -1
  51. package/dist/chunks/{pivot-result-lifecycle-QiOUMsYd.cjs → pivot-result-lifecycle-D81qcCcZ.cjs} +1 -1
  52. package/dist/chunks/{pivot-result-lifecycle-Cu9hRFAp.js → pivot-result-lifecycle-DJ40gdwk.js} +7 -7
  53. package/dist/chunks/{raw-temporal-DWuF9bt7.cjs → raw-temporal-DDTt2yv5.cjs} +1 -1
  54. package/dist/chunks/{raw-temporal-CknUT-Fp.js → raw-temporal-DHCZrFe7.js} +15 -15
  55. package/dist/chunks/{raw-temporal-contract-B3YGcvzw.cjs → raw-temporal-contract-BcbV56Rc.cjs} +1 -1
  56. package/dist/chunks/{raw-temporal-contract-BVcDonCB.js → raw-temporal-contract-CkvdtPYA.js} +1 -1
  57. package/dist/chunks/{report-preferences-dialog-DsjMwa3m.js → report-preferences-dialog-CVRJOCQu.js} +6 -6
  58. package/dist/chunks/{report-preferences-dialog-BP_EdVHP.cjs → report-preferences-dialog-DGEq-iBF.cjs} +1 -1
  59. package/dist/chunks/{report-runtime-context-DTxVBKqP.js → report-runtime-context-BlDpc-F-.js} +1 -1
  60. package/dist/chunks/{report-runtime-context-C-As8sq_.cjs → report-runtime-context-lSIvyKm2.cjs} +1 -1
  61. package/dist/chunks/{semantic-format-CyJWf8gZ.cjs → semantic-format--_VEin18.cjs} +1 -1
  62. package/dist/chunks/{semantic-format-BTEhH9ga.js → semantic-format-ew5zviaT.js} +2 -2
  63. package/dist/chunks/{source-entity-resolution-DXjCZPuO.js → source-entity-resolution-79Rihbk3.js} +121 -107
  64. package/dist/chunks/source-entity-resolution-DPjslVgx.cjs +1 -0
  65. package/dist/chunks/{switch-BmCGBb2F.js → switch-BmyuyM7e.js} +4736 -4697
  66. package/dist/chunks/switch-nDjQC2y3.cjs +139 -0
  67. package/dist/chunks/{temporal-bucket-contract-pW4c6N2M.cjs → temporal-bucket-contract-BYR6tj6F.cjs} +1 -1
  68. package/dist/chunks/{temporal-bucket-contract-Bhsl_j4B.js → temporal-bucket-contract-C-kKQ_W4.js} +1 -1
  69. package/dist/chunks/{token-types-DpYncMPp.js → token-types-BIYFAsGq.js} +1 -1
  70. package/dist/chunks/{token-types-CsKRtJp0.cjs → token-types-CkAGFhiW.cjs} +1 -1
  71. package/dist/chunks/{update-policy-CtLb9ish.cjs → update-policy-BCtFr2Qh.cjs} +1 -1
  72. package/dist/chunks/{update-policy-BoB26XrS.js → update-policy-CP_A1IVD.js} +2 -2
  73. package/dist/chunks/{validators-DgmJaRF4.js → validators-D-_IT-Xw.js} +1132 -1013
  74. package/dist/chunks/validators-ux2obZB9.cjs +1 -0
  75. package/dist/dashboard/index.cjs +1 -1
  76. package/dist/dashboard/index.js +1 -1
  77. package/dist/dashboard-authoring/index.cjs +3 -3
  78. package/dist/dashboard-authoring/index.js +157 -150
  79. package/dist/data-app-builder/index.cjs +1 -1
  80. package/dist/data-app-builder/index.js +2 -2
  81. package/dist/data-app-codegen/index.cjs +1 -1
  82. package/dist/data-app-codegen/index.js +2 -2
  83. package/dist/data-app-codegen-node/index.cjs +2 -2
  84. package/dist/data-app-codegen-node/index.js +33 -36
  85. package/dist/data-app-sdk/index.cjs +2 -2
  86. package/dist/data-app-sdk/index.js +232 -230
  87. package/dist/data-app-sdk-adapters/index.cjs +1 -1
  88. package/dist/data-app-sdk-adapters/index.js +3 -3
  89. package/dist/data-app-sdk-validation/index.cjs +1 -1
  90. package/dist/data-app-sdk-validation/index.js +5 -5
  91. package/dist/format-utils/index.cjs +1 -1
  92. package/dist/format-utils/index.js +26 -26
  93. package/dist/index.cjs +1 -1
  94. package/dist/index.js +15 -15
  95. package/dist/report-runtime-context/index.cjs +1 -1
  96. package/dist/report-runtime-context/index.js +2 -2
  97. package/dist/surfboard/index.cjs +1 -1
  98. package/dist/surfboard/index.js +2 -2
  99. package/dist/types/analytics-protocol.d.ts +256 -1
  100. package/dist/types/briefings.d.ts +46 -0
  101. package/dist/types/dashboard-assistant.d.ts +46 -1
  102. package/dist/types/dashboard-authoring.d.ts +131 -2
  103. package/dist/types/dashboard.d.ts +48 -0
  104. package/dist/types/data-app-builder.d.ts +23 -1
  105. package/dist/types/data-app-codegen-node.d.ts +23 -1
  106. package/dist/types/data-app-codegen.d.ts +23 -1
  107. package/dist/types/data-app-sdk-adapters.d.ts +23 -1
  108. package/dist/types/data-app-sdk-validation.d.ts +46 -1
  109. package/dist/types/data-app-sdk.d.ts +51 -1
  110. package/dist/types/index.cjs +1 -1
  111. package/dist/types/index.js +4 -4
  112. package/dist/types/main.d.ts +111 -1
  113. package/dist/types/shared.d.ts +46 -0
  114. package/dist/types/surfboard.d.ts +48 -0
  115. package/dist/types/types.d.ts +48 -0
  116. package/package.json +1 -1
  117. package/dist/chunks/calculated-field-identity-Cc-RlE-0.cjs +0 -1
  118. package/dist/chunks/calculated-field-identity-D7ygZ7oN.js +0 -1117
  119. package/dist/chunks/matrix-member-presentation-BN6VD-fr.js +0 -24
  120. package/dist/chunks/matrix-member-presentation-D82rMVDG.cjs +0 -1
  121. package/dist/chunks/operators-DrTQsJXv.cjs +0 -1
  122. package/dist/chunks/source-entity-resolution-BA8sdBbL.cjs +0 -1
  123. package/dist/chunks/switch-COujiMcB.cjs +0 -139
  124. package/dist/chunks/validators-CueUwVE4.cjs +0 -1
@@ -1,4 +1,4 @@
1
- "use strict";const J=require("./x-B6ghREd2.cjs"),C=require("react"),r=require("./switch-COujiMcB.cjs"),y=require("./index-a9nBmD-v.cjs"),e=require("react/jsx-runtime");require("./constants-C-GvudXp.cjs");const Te=require("./validators-CueUwVE4.cjs");require("./matrix-operation-contract-CbavkrJj.cjs");require("../value-format-preferences/index.cjs");const ge=require("./search-BqqhaMx9.cjs"),Fe=require("./index-B9FLuTyx.cjs"),Se=require("./save-3dYRmehL.cjs");/**
1
+ "use strict";const J=require("./x-B6ghREd2.cjs"),C=require("react"),r=require("./switch-nDjQC2y3.cjs"),y=require("./index-BSRwdFTN.cjs"),e=require("react/jsx-runtime");require("./constants-DIuhVR6J.cjs");const Te=require("./validators-ux2obZB9.cjs");require("./matrix-operation-contract-o9GXbiHw.cjs");require("../value-format-preferences/index.cjs");const ge=require("./search-BqqhaMx9.cjs"),Fe=require("./index-CCa-A-Yx.cjs"),Se=require("./save-3dYRmehL.cjs");/**
2
2
  * @license lucide-react v0.453.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -1,10 +1,10 @@
1
- import { x as ee, aO as A, q as te, aa as oe } from "./validators-DgmJaRF4.js";
2
- import "./matrix-operation-contract-4q53iAUW.js";
3
- import { f as ne, C as ie } from "./metric-comparison-CPx_2iqI.js";
1
+ import { w as ee, aW as A, o as te, ag as oe } from "./validators-D-_IT-Xw.js";
2
+ import "./matrix-operation-contract-0Nor-C71.js";
3
+ import { f as ne, C as ie } from "./metric-comparison-Br8l0WkK.js";
4
4
  import { v as O, a as re, f as se } from "./temporal-bucket-B9hMwemw.js";
5
- import { DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES as Q } from "../value-format-preferences/index.js";
6
- import { l as ae } from "./source-entity-resolution-DXjCZPuO.js";
7
- import { i as ce, a as pe } from "./matrix-card-CxTCV9HF.js";
5
+ import { DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES as W } from "../value-format-preferences/index.js";
6
+ import { m as ae } from "./source-entity-resolution-79Rihbk3.js";
7
+ import { i as ce, a as pe } from "./matrix-card-BEb6hr8i.js";
8
8
  const E = /* @__PURE__ */ new Set([
9
9
  "previous_period",
10
10
  "same_period_last_year",
@@ -14,7 +14,7 @@ const E = /* @__PURE__ */ new Set([
14
14
  function u(e) {
15
15
  return !!e && typeof e == "object" && !Array.isArray(e);
16
16
  }
17
- function W(e) {
17
+ function Q(e) {
18
18
  const t = u(e.preferences) ? e.preferences : void 0, o = t && u(t.kpiVisualOptions) ? t.kpiVisualOptions : void 0, n = t && u(t.tableVisualOptions) ? t.tableVisualOptions : void 0;
19
19
  return {
20
20
  preferences: t,
@@ -35,7 +35,7 @@ function x(e) {
35
35
  if (!u(n)) return;
36
36
  const p = n.config;
37
37
  if (u(p)) {
38
- const r = W(n), s = !!(r.kpiComparisonPresent || r.tableComparisonPresent), m = p.metricColumns, a = Array.isArray(m) ? m.flatMap(
38
+ const r = Q(n), s = !!(r.kpiComparisonPresent || r.tableComparisonPresent), m = p.metricColumns, a = Array.isArray(m) ? m.flatMap(
39
39
  (l, c) => u(l) ? [{ index: c, metric: l }] : []
40
40
  ) : [];
41
41
  if ((a.some(({ metric: l }) => "comparisonType" in l) || s) && t.push({
@@ -227,7 +227,7 @@ function U(e, t, o, n) {
227
227
  });
228
228
  }
229
229
  function F(e) {
230
- const t = W(e.card), o = t.kpiComparison ? N(t.kpiComparison, "kpi") : void 0, n = t.tableComparison ? N(t.tableComparison, "table") : void 0;
230
+ const t = Q(e.card), o = t.kpiComparison ? N(t.kpiComparison, "kpi") : void 0, n = t.tableComparison ? N(t.tableComparison, "table") : void 0;
231
231
  return { namespaces: t, kpi: o, table: n, presentation: o || n };
232
232
  }
233
233
  function fe(e) {
@@ -532,7 +532,7 @@ const S = {
532
532
  quarter: "2026-07-01",
533
533
  year: "2026-01-01"
534
534
  };
535
- function Ye(e, t, o = Q) {
535
+ function Ye(e, t, o = W) {
536
536
  return se({
537
537
  value: ye[t],
538
538
  metadata: {
@@ -566,7 +566,7 @@ function Ye(e, t, o = Q) {
566
566
  }
567
567
  });
568
568
  }
569
- function Be(e, t, o = Q) {
569
+ function Be(e, t, o = W) {
570
570
  const n = S[e], i = (t == null ? void 0 : t.presentation.mode) === "preset" ? t.presentation.preset : void 0, p = i && t && O(t, e).ok && !n.some(
571
571
  (s) => {
572
572
  var m;
@@ -1 +1 @@
1
- "use strict";const Y=require("./validators-CueUwVE4.cjs");require("./matrix-operation-contract-CbavkrJj.cjs");const Q=require("./metric-comparison-l2X7Reol.cjs"),T=require("./temporal-bucket-4YEPEKlJ.cjs"),W=require("../value-format-preferences/index.cjs"),se=require("./source-entity-resolution-BA8sdBbL.cjs"),q=require("./matrix-card-BV7OPtq_.cjs"),k=new Set(["previous_period","same_period_last_year","start_vs_end","target"]),ae=new Set([...k,"none",""]);function f(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function X(e){const t=f(e.preferences)?e.preferences:void 0,o=t&&f(t.kpiVisualOptions)?t.kpiVisualOptions:void 0,n=t&&f(t.tableVisualOptions)?t.tableVisualOptions:void 0;return{preferences:t,kpiOptions:o,kpiComparison:o&&f(o.metricComparison)?o.metricComparison:void 0,kpiComparisonPresent:!!o&&"metricComparison"in o,tableOptions:n,tableComparison:n&&f(n.metricComparison)?n.metricComparison:void 0,tableComparisonPresent:!!n&&"metricComparison"in n}}function F(e){const t=[],o=(n,r)=>{if(Array.isArray(n)){n.forEach((i,s)=>o(i,`${r}[${s}]`));return}if(!f(n))return;const p=n.config;if(f(p)){const i=X(n),s=!!(i.kpiComparisonPresent||i.tableComparisonPresent),m=p.metricColumns,a=Array.isArray(m)?m.flatMap((l,c)=>f(l)?[{index:c,metric:l}]:[]):[];if((a.some(({metric:l})=>"comparisonType"in l)||s)&&t.push({path:r,card:n,metrics:a,malformedMetricIndexes:Array.isArray(m)?m.flatMap((l,c)=>f(l)?[]:[c]):[],malformedMetricColumns:"metricColumns"in p&&!Array.isArray(m),hasLegacyPresentation:s}),"metricColumns"in p||s)return}Object.entries(n).forEach(([i,s])=>o(s,r?`${r}.${i}`:i))};return o(e,"$"),t}const Z={difference:"difference",change:"percent_change",change_difference:"both",ratio:"ratio"};function x(e,t){if(!e)return;const o=Object.fromEntries(t.flatMap(n=>typeof e[n]=="string"?[[n,e[n]]]:[]));return Object.keys(o).length?o:void 0}function ce(e,t,o){if(e!==void 0){if(!f(e)){o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:t,message:"Legacy comparison formatOptions must be an object."});return}Object.entries(e).forEach(([n,r])=>{if(n==="decimalPlaces"){(typeof r!="number"||!Number.isInteger(r)||r<0||r>6)&&o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${t}.decimalPlaces`,message:"Legacy comparison decimalPlaces must be an integer from 0 through 6."});return}n==="type"&&(r===void 0||r==="auto")||r!==void 0&&o.push({severity:"error",code:"unsupported_comparison_format",path:`${t}.${n}`,message:`Legacy comparison format option "${n}" has no canonical presentation mapping.`})})}}function B(e,t){const o=t==="kpi"?e.calculationType:e.calculatedAs,n=t==="table"&&o===void 0?"both":Z[String(o)],r=f(e.formatOptions)?e.formatOptions:void 0,p=f(e.conditionalLabels)?e.conditionalLabels:void 0,i=f(t==="kpi"?e.colorConfig:e.colors)?t==="kpi"?e.colorConfig:e.colors:void 0,s={};if(n&&(s.displayMode=n),typeof(r==null?void 0:r.decimalPlaces)=="number"&&(s.precision=r.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=p?{...x(p,["increase","decrease"]),...typeof p.noChange=="string"?{neutral:p.noChange}:typeof p.neutral=="string"?{neutral:p.neutral}:{}}:void 0;m&&Object.keys(m).length&&(s.conditionalLabels=m);const a=i?{...x(i,["increase","decrease"]),...typeof i.noChange=="string"?{neutral:i.noChange}:typeof i.neutral=="string"?{neutral:i.neutral}:{}}:void 0;return a&&Object.keys(a).length&&(s.colors=a),s}function U(e){return{...Q.COMPARISON_PRESENTATION_DEFAULTS,...e}}function J(e){return e.some(({metric:t})=>t.comparisonType==="previous_period"||t.comparisonType==="same_period_last_year"||t.comparisonType==="target"?!0:f(t.comparison)&&t.comparison.mode==="explicit")}function w(e){const t=e.card.config;return e.metrics.length===2&&(t.groupByColumns===void 0||Array.isArray(t.groupByColumns)&&t.groupByColumns.length===0)}function j(e,t,o,n){const r=t==="kpi"?["enabled","calculationType","formatOptions","showArrow","showColor","conditionalLabel","labelName","position","conditionalLabels","colorConfig","lowerIsBetter"]:["calculatedAs","indicatorStyle","formatOptions","colors","lowerIsBetter"];Object.keys(e).forEach(l=>{r.includes(l)||n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.${l}`,message:`Unknown legacy comparison presentation field "${l}" cannot be dropped automatically.`})});const p=t==="kpi"?"calculationType":"calculatedAs";e[p]!==void 0&&!Z[String(e[p])]&&n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.${p}`,message:`Legacy comparison ${p} is unsupported.`}),t==="kpi"&&e.position!==void 0&&!["left","right","top"].includes(String(e.position))&&n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.position`,message:"Legacy comparison position is unsupported."}),t==="kpi"&&e.labelName!==void 0&&typeof e.labelName!="string"&&n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.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(!f(e[l])){n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.${l}`,message:`Legacy comparison ${l} must be an object.`});return}Object.entries(e[l]).forEach(([d,b])=>{c.includes(d)?typeof b!="string"&&n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.${l}.${d}`,message:`Legacy comparison ${l}.${d} must be a string.`}):n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.${l}.${d}`,message:`Unknown legacy comparison ${l} field "${d}" cannot be dropped automatically.`})})}}),(t==="kpi"?["enabled","showArrow","showColor","conditionalLabel","lowerIsBetter"]:["lowerIsBetter"]).forEach(l=>{e[l]!==void 0&&typeof e[l]!="boolean"&&n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.${l}`,message:`Legacy comparison ${l} must be a boolean.`})}),t==="table"&&e.indicatorStyle!==void 0&&!["arrow_badge","arrow","badge","none"].includes(String(e.indicatorStyle))&&n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.indicatorStyle`,message:"Legacy comparison indicatorStyle is unsupported."}),ce(e.formatOptions,`${o}.formatOptions`,n);const m=B(e,t);Q.validateComparisonPresentationSpec(m,o).errors.forEach(l=>{n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:l.path||o,message:l.message})})}function G(e){const t=X(e.card),o=t.kpiComparison?B(t.kpiComparison,"kpi"):void 0,n=t.tableComparison?B(t.tableComparison,"table"):void 0;return{namespaces:t,kpi:o,table:n,presentation:o||n}}function pe(e){const t=f(e.preferences)?e.preferences:{},o=f(t.kpiVisualOptions)?t.kpiVisualOptions:{},n=f(o.metricComparison)?o.metricComparison:{},r=f(t.tableVisualOptions)?t.tableVisualOptions:{},p=f(r.metricComparison)?r.metricComparison:{};return o.lowerIsBetter===!0||n.lowerIsBetter===!0||p.lowerIsBetter===!0?"lower_is_better":"higher_is_better"}function le(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 me(e){const t=f(e.preferences)?e.preferences:void 0;if(!t)return;const o=f(t.kpiVisualOptions)?t.kpiVisualOptions:void 0;o&&delete o.lowerIsBetter;const n=f(t.tableVisualOptions)?t.tableVisualOptions:void 0,r=n&&f(n.metricComparison)?n.metricComparison:void 0;r&&delete r.lowerIsBetter}function ue(e){const t=F(e);if(!t.length)return{document:e,changed:!1,changes:[],diagnostics:[]};const o=[];if(t.forEach(i=>{var s,m,a,l;if(i.malformedMetricColumns&&o.push({severity:"error",code:"malformed_metric_columns",path:`${i.path}.config.metricColumns`,message:"Metric columns must be an array before comparison migration."}),i.malformedMetricIndexes.forEach(c=>{o.push({severity:"error",code:"malformed_metric_columns",path:`${i.path}.config.metricColumns[${c}]`,message:"Metric columns must contain objects before comparison migration."})}),i.metrics.forEach(({metric:c,index:d})=>{if(!("comparisonType"in c))return;const b=`${i.path}.config.metricColumns[${d}]`,g=String(c.comparisonType||"");"comparison"in c&&o.push({severity:"error",code:"conflicting_comparison_contracts",path:b,message:"Metric contains both legacy and canonical comparison configuration; resolve the conflict before migration."});const y=f(c.parameters)?c.parameters:void 0,C=y&&f(y.windowTransform)?y.windowTransform:void 0;k.has(g)&&(C==null?void 0:C.function)==="previous_period_delta"&&o.push({severity:"error",code:"conflicting_comparison_window_transform",path:b,message:"A metric cannot combine baseline comparison with previous_period_delta; resolve the authoring intent before migration."}),ae.has(g)||o.push({severity:"error",code:"unsupported_comparison_type",path:`${b}.comparisonType`,message:`Unsupported legacy metric comparison type "${g}".`}),c.comparisonType==="target"&&(typeof c.targetValue!="number"||!Number.isFinite(c.targetValue))&&o.push({severity:"error",code:"invalid_target_value",path:`${b}.targetValue`,message:"Legacy target comparison requires a finite metric targetValue."}),c.comparisonType==="start_vs_end"&&o.push({severity:"error",code:"unsupported_start_vs_end",path:`${b}.comparisonType`,message:"start_vs_end is retired and cannot be migrated automatically."}),c.targetValue!==void 0&&c.comparisonType!=="target"&&o.push({severity:"warning",code:"stray_target_value",path:`${b}.targetValue`,message:"Dead non-target targetValue will be removed without changing the baseline."})}),i.hasLegacyPresentation){const{namespaces:c,kpi:d,table:b}=G(i),g=[(s=c.kpiOptions)==null?void 0:s.lowerIsBetter,(m=c.kpiComparison)==null?void 0:m.lowerIsBetter,(a=c.tableComparison)==null?void 0:a.lowerIsBetter].filter(y=>typeof y=="boolean");new Set(g).size>1&&o.push({severity:"error",code:"conflicting_legacy_polarity",path:`${i.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"&&o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${i.path}.preferences.kpiVisualOptions.lowerIsBetter`,message:"Legacy comparison lowerIsBetter must be a boolean."}),c.kpiComparisonPresent&&!c.kpiComparison&&o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${i.path}.preferences.kpiVisualOptions.metricComparison`,message:"Legacy KPI comparison presentation must be an object."}),c.tableComparisonPresent&&!c.tableComparison&&o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${i.path}.preferences.tableVisualOptions.metricComparison`,message:"Legacy table comparison presentation must be an object."}),"comparisonPresentation"in(c.preferences||{})&&o.push({severity:"error",code:"conflicting_comparison_presentation_contracts",path:`${i.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||{})&&w(i)&&o.push({severity:"error",code:"conflicting_comparison_presentation_contracts",path:`${i.path}.preferences.metricPairComparisonEnabled`,message:"Card contains both legacy and canonical metric-pair enablement; resolve the conflict before migration."}),c.kpiComparison&&j(c.kpiComparison,"kpi",`${i.path}.preferences.kpiVisualOptions.metricComparison`,o),c.tableComparison&&j(c.tableComparison,"table",`${i.path}.preferences.tableVisualOptions.metricComparison`,o),d&&b&&JSON.stringify(U(d))!==JSON.stringify(U(b))&&o.push({severity:"error",code:"conflicting_legacy_presentation_namespaces",path:`${i.path}.preferences`,message:"KPI and table comparison presentation values disagree; resolve the conflict before migration."})}}),o.some(i=>i.severity==="error"))return{document:e,changed:!1,changes:[],diagnostics:o};const n=JSON.parse(JSON.stringify(e)),r=F(n),p=[];return r.forEach(i=>{var m;const s=pe(i.card);if(i.metrics.forEach(({metric:a,index:l})=>{if(!("comparisonType"in a))return;const c=String(a.comparisonType||""),d=`${i.path}.config.metricColumns[${l}]`,b=le(a),g=["comparisonType"];delete a.comparisonType,"targetValue"in a&&(delete a.targetValue,g.push("targetValue")),"comparisonDisplay"in a&&(delete a.comparisonDisplay,g.push("comparisonDisplay")),b?a.comparison=b:delete a.comparison,k.has(c)&&(a.comparisonPolarity=s),p.push({kind:"metric",path:d,metricId:typeof a.id=="string"?a.id:void 0,legacyType:c,comparison:b,comparisonPolarity:k.has(c)?s:void 0,removedFields:g})}),me(i.card),i.hasLegacyPresentation){const{namespaces:a,presentation:l}=G(i),c=(m=a.kpiComparison)==null?void 0:m.enabled,d={...l};typeof c=="boolean"&&J(i.metrics)&&(d.showComparison=c);const b=typeof c=="boolean"&&w(i)?c:void 0,g=typeof c=="boolean"&&!J(i.metrics)&&!w(i)?["kpiVisualOptions.metricComparison.enabled"]:void 0,y=a.preferences,C=[];i.metrics.forEach(({metric:D})=>{"comparisonPolarity"in D||(D.comparisonPolarity=s,typeof D.id=="string"&&C.push(D.id))}),Object.keys(d).length&&(y.comparisonPresentation=d),b!==void 0&&(y.metricPairComparisonEnabled=b),a.kpiOptions&&delete a.kpiOptions.metricComparison,a.tableOptions&&delete a.tableOptions.metricComparison,p.push({kind:"presentation",path:`${i.path}.preferences`,comparisonPresentation:Object.keys(d).length?d:void 0,metricPairComparisonEnabled:b,comparisonPolarityMetricIds:C,intentionallyDiscardedFields:g,removedFields:[...a.kpiComparison?["kpiVisualOptions.metricComparison"]:[],...a.tableComparison?["tableVisualOptions.metricComparison"]:[]]})}}),{document:n,changed:!0,changes:p,diagnostics:o}}const ee=["bar","horizontalBar","line","area","stackedArea","combo","stackedBar","stackedLine"],fe=new Set(ee);function te(e){return typeof e=="string"&&fe.has(e)}function de(e){return e==="detailTable"||e==="table"||e==="aggregateTable"||e==="pivotTable"||e==="custom"||te(e)}function z(e){return!!(e!=null&&e.trim())}function he(e){return z(e.sql)||z(e.normalizedPython)?"freeform":e.hasExecutableConfig?"config":"none"}const A={type:"temporal_bucket",presentation:{mode:"auto"}},_={value:"auto",label:"Automatic",format:A};function h(e,t){return{value:`pattern:${e}`,label:t,format:{type:"temporal_bucket",presentation:{mode:"pattern",pattern:e}}}}function E(e,t){return{value:`preset:${e}`,label:t,format:{type:"temporal_bucket",presentation:{mode:"preset",preset:e}}}}function v(e){return{...h(e,"Custom format…"),value:"custom",custom:!0}}const H={second:[_,h("HH:mm:ss","14:30:45 (HH:mm:ss)"),h("YYYY-MM-DD HH:mm:ss","2024-01-15 14:30:45 (YYYY-MM-DD HH:mm:ss)"),v("DD/MM/YYYY HH:mm:ss")],minute:[_,h("HH:mm","14:30 (HH:mm)"),h("YYYY-MM-DD HH:mm","2024-01-15 14:30 (YYYY-MM-DD HH:mm)"),v("DD/MM/YYYY HH:mm")],hour:[_,h("HH","14 (HH)"),h("YYYY-MM-DD HH","2024-01-15 14 (YYYY-MM-DD HH)"),v("DD/MM/YYYY HH")],day:[_,h("YYYY-MM-DD","2024-01-15 (YYYY-MM-DD)"),h("MM/DD/YYYY","01/15/2024 (MM/DD/YYYY)"),h("DD/MM/YYYY","15/01/2024 (DD/MM/YYYY)"),h("MMM DD, YYYY","Jan 15, 2024 (MMM DD, YYYY)"),h("MMMM DD, YYYY","January 15, 2024 (MMMM DD, YYYY)"),v("YYYY/MM/DD")],week:[_,E("week_of_short","Week of Jan 15, 2024"),E("week_of_long","Week of January 15, 2024"),h("YYYY-MM-DD","2024-01-15 (YYYY-MM-DD)"),v("YYYY/MM/DD")],month:[_,h("MMM YYYY","Jan 2024 (MMM YYYY)"),h("MMMM YYYY","January 2024 (MMMM YYYY)"),h("YYYY-MM","2024-01 (YYYY-MM)"),h("MM/YYYY","01/2024 (MM/YYYY)"),h("YYYY MMM","2024 Jan (YYYY MMM)"),v("YYYY/MM")],quarter:[_,E("quarter_short","Q1 2024"),E("quarter_long","1st Quarter 2024")],year:[_,h("YYYY","2024 (YYYY)"),h("YY","24 (YY)")]},be={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 oe(e,t,o=W.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES){return T.formatTemporalBucket({value:be[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:o.locale,presentation:{mode:"auto",styles:{dateStyle:o.dateStyle,dateTime:{...o.dateTime}}}}:{type:"temporal_bucket",locale:o.locale,presentation:e.presentation}})}function ge(e,t,o=W.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES){const n=H[e],r=(t==null?void 0:t.presentation.mode)==="preset"?t.presentation.preset:void 0,p=r&&t&&T.validateTemporalBucketFormatApplicability(t,e).ok&&!n.some(s=>{var m;return((m=s.format)==null?void 0:m.presentation.mode)==="preset"&&s.format.presentation.preset===r})?E(r,r):void 0;return(p?[...n,p]:n).map(s=>{if(!s.format||s.custom)return s;const m=oe(s.format,e,o);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 ye(e,t){const o=H[t];if(e.presentation.mode==="pattern"){const n=e.presentation.pattern,r=o.find(p=>{var i;return((i=p.format)==null?void 0:i.presentation.mode)==="pattern"&&p.format.presentation.pattern===n});return{value:(r==null?void 0:r.value)??"custom",customPattern:r!=null&&r.custom||!r?n:"",format:e}}if(e.presentation.mode==="preset"){const n=e.presentation.preset,r=o.find(i=>{var s;return((s=i.format)==null?void 0:s.presentation.mode)==="preset"&&i.format.presentation.preset===n}),p=T.validateTemporalBucketFormatApplicability(e,t).ok;return r?{value:r.value,customPattern:"",format:e}:p?{value:`preset:${n}`,customPattern:"",format:e}:{value:"auto",customPattern:"",format:A}}return{value:"auto",customPattern:"",format:e}}function _e(e,t,o=""){var i;const n=H[e].find(s=>s.value===t),r=t.startsWith("preset:")?t.slice(7):void 0,p=t==="custom"?{type:"temporal_bucket",presentation:{mode:"pattern",pattern:o.trim()||(((i=n==null?void 0:n.format)==null?void 0:i.presentation.mode)==="pattern"?n.format.presentation.pattern:"")}}:(n==null?void 0:n.format)??(r&&T.isTemporalBucketPreset(r)?{type:"temporal_bucket",presentation:{mode:"preset",preset:r}}:void 0);return!p||!T.validateTemporalBucketFormatApplicability(p,e).ok?A:p}function Ye(e,t){return T.validateTemporalBucketFormatApplicability(e,t).ok?e:A}function u(e){return typeof e=="string"&&e.trim().length>0?e.trim():null}function ne(e){return Array.from(new Set(e.filter(t=>!!t)))}function Ce(e){const t=u(e.table),o=u(e.schema),n=u(e.catalog)||u(e.database);return t?ne([t,o?`${o}.${t}`:null,n?`${n}.${t}`:null,n&&o?`${n}.${o}.${t}`:null]):[]}function K(e){const t=u(e.table)||u(e.tableName);return ne([u(e.name),u(e.alias),...Ce({table:t,schema:u(e.schema)||u(e.schemaName),catalog:u(e.catalog),database:u(e.database)||u(e.databaseName)})])}function ve(e,t){const o=u(e.domainId),n=u(t.domainId);if(o&&n&&o!==n)return!0;if(e.type==="dataset")return!1;const r=u(e.id),p=u(t.id);if(r&&p&&r!==p)return!0;const i=u(e.connectionId),s=u(t.connectionId);return!!(i&&s&&i!==s)}function L(e,t=!1){return u(e.table)||u(e.tableName)||(e.type!=="dataset"||t?u(e.name):null)}function R(e){return u(e.catalog)||u(e.database)||u(e.databaseName)}function S(e){return u(e.schema)||u(e.schemaName)}function I(e){return e.length===1?e[0]:void 0}function Me(e,t){const o=L(t,!0),n=R(t),r=S(t);if(!(!o||!n&&!r))return I(e.filter(p=>{const i=p;return!(L(i)!==o||n&&R(i)!==n||r&&S(i)!==r)}))}function P(e,t){if(!t||!(e!=null&&e.length))return;const o=e.filter(s=>!ve(s,t));if(t.type==="dataset"){const s=u(t.id);if(s)return I(o.filter(a=>a.type==="dataset"&&u(a.id)===s));if(u(t.domainId)){const a=u(t.name);return I(o.filter(l=>l.type==="dataset"&&u(l.name)===a))}}let n=[];if(t.type==="dataset"){const s=u(t.name);if(n=o.filter(m=>m.type==="dataset"&&u(m.name)===s),n.length===1)return n[0]}if(!!(L(t,!0)&&(R(t)||S(t))))return Me(o,t);if(n.length>1)return;const p=K(t);if(p.length===0)return;const i=o.filter(s=>K(s).some(a=>p.includes(a)));return I(i)}function N(e,t){const o=P(e,t);return o?{...t,...o}:t}function Te(e,t){const o=t||[];return o.length===0?e:{...e,baseEntity:N(o,e.baseEntity),joins:e.joins.map(n=>({...n,source:N(o,n.source),target:N(o,n.target)}))}}function Ee(e,t){if(!(e!=null&&e.joins.length))return[];const o=[e.baseEntity,...e.joins.flatMap(r=>[r.source,r.target])],n=[];return o.forEach(r=>{!P(t,r)&&!P(n,r)&&n.push(r)}),n}function M(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function O(e){return M(e)&&typeof e.name=="string"}function V(e){return!M(e)||e.kind!=="semantic"&&e.kind!=="physical"||(e.kind==="semantic"?[e.datasetId,e.datasetName,e.connectionId]:[e.databaseName,e.schemaName]).some(o=>o!==void 0&&typeof o!="string")?!1:Y.hasCompleteSemaphorSourceIdentity(e)}function $(e,t){var a,l;const o=Array.isArray(t==null?void 0:t.selectedEntities)?t.selectedEntities.filter(O):void 0,n=P(o,e),r=n?{...e,...n}:e,p="domainId"in r&&typeof r.domainId=="string"&&!!r.domainId.trim();if((t==null?void 0:t.mode)==="semanticDomain"&&!p)return;if((t==null?void 0:t.mode)!=="database"&&r.type==="dataset"){const c=se.resolveSemaphorSemanticDatasetEntity({entities:[r],semanticDomainId:t==null?void 0:t.semanticDomainId,connectionId:t==null?void 0:t.connectionId,fieldEntityType:"dataset"},{includePhysicalDatasets:!0});if(c.kind==="resolved"){const d="label"in r&&typeof r.label=="string"?r.label:void 0;return{...c.source,...d?{label:d}:{}}}}if((t==null?void 0:t.mode)==="semanticDomain")return;const i=r.connectionId||(t==null?void 0:t.connectionId),s=r.type==="dataset"&&"table"in r&&r.table?r.table:r.name;if(!i||!s)return;const m={kind:"physical",connectionId:i,connectionType:r.connectionType||(t==null?void 0:t.connectionType),tableName:s,databaseName:r.database||((a=t==null?void 0:t.dbSelection)==null?void 0:a.database),schemaName:r.schema||((l=t==null?void 0:t.dbSelection)==null?void 0:l.schema),dialect:r.dialect};return V(m)?m:void 0}function Ae(e,t){var s,m;const o=$(e,t);if(!o)return;const n=e.type==="dataset"&&"table"in e&&typeof e.table=="string"?e.table.trim():void 0,r=o.kind==="physical"?o.tableName:n,p=e.connectionId||(t==null?void 0:t.connectionId),i=r&&p?{connectionId:p,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:r}:void 0;return{source:o,...i?{executionTable:i}:{}}}function De(e){const t=M(e.dataSource)?e.dataSource:void 0;if(typeof e.sql=="string"&&e.sql.trim()){const i=[],s=Array.isArray(t==null?void 0:t.selectedEntities)?t.selectedEntities:[];for(const m of s){if(!O(m))continue;const a=Ae(m,t);a&&!i.some(l=>Y.semaphorSourcesReferToSameDataset(l.source,a.source))&&i.push(a)}return{cardId:e.id,kind:"sql",pinnedCatalogSources:i}}if(!M(e.config))return{cardId:e.id,kind:"unconfigured"};const o=[],n=q.inspectMatrixCardConfig(e);if(n.status==="invalid")return{cardId:e.id,kind:"unconfigured"};const r=n.status==="ready"?n.config:void 0;if(e.type==="matrixTable"&&!r)return{cardId:e.id,kind:"unconfigured"};r&&o.push(...q.matrixDefinitionSources(r.spec).filter(V));const p=(r==null?void 0:r.spec.joinPlan)??(M(e.config.joinPlan)?e.config.joinPlan:void 0);if(p){const i=Array.isArray(p.joins)?p.joins:[],s=[p.baseEntity];for(const a of i)M(a)&&s.push(a.source,a.target);let m=!1;for(const a of s){if(!O(a)){m=!0;continue}const l=$(a,t);l?o.push(l):m=!0}m&&(o.length=0)}else if(e.type!=="matrixTable"){const i=Array.isArray(t==null?void 0:t.selectedEntities)?t.selectedEntities:[];if(i.length===1&&O(i[0])){const s=$(i[0],t);s&&o.push(s)}}if(!o.length&&!p&&e.type!=="matrixTable"){const i=e.config.queryBaseSource;V(i)&&o.push(i)}return{cardId:e.id,kind:"config",executableSources:Y.mergeSemaphorSourcesByIdentity(o)}}function ke(e,t){return(e.kind==="config"?e.executableSources:e.kind==="sql"?e.pinnedCatalogSources.map(n=>n.source):[]).some(n=>Y.semaphorSourcesReferToSameDataset(n,t))}function Ie(e,t){if(e.kind==="config")return e.executableSources.find(o=>Y.semaphorSourcesReferToSameDataset(o,t))}function Oe(e,t){var o;return(o=re(e,t))==null?void 0:o.source}function re(e,t){if(e.kind==="sql")return e.pinnedCatalogSources.find(o=>Y.semaphorSourcesReferToSameDataset(o.source,t))}const ie=[{value:"COUNT",label:"Count"},{value:"DISTINCT",label:"Count Distinct"}],Pe=[...ie,{value:"SUM",label:"Sum"},{value:"AVG",label:"Average"},{value:"MIN",label:"Min"},{value:"MAX",label:"Max"},{value:"MEDIAN",label:"Median"}];function $e(e){return Y.normalizeAnalyticsCatalogDataType(e)==="number"?Pe:ie}exports.AUTOMATIC_TEMPORAL_BUCKET_FORMAT=A;exports.SEMAPHOR_CARTESIAN_CHART_TYPES=ee;exports.buildDashboardCardSourceIndex=De;exports.dashboardCardFilterSourceInventoryContains=ke;exports.findDashboardCardExecutableSource=Ie;exports.findDashboardCardPinnedCatalogSource=Oe;exports.findDashboardSqlPinnedCatalogSource=re;exports.findOrphanedJoinPlanEntities=Ee;exports.getFieldAggregationOptions=$e;exports.getTemporalBucketAuthoringOptions=ge;exports.getTemporalBucketAuthoringSelection=ye;exports.isSemaphorCartesianChartType=te;exports.normalizeJoinPlanEntityReferences=Te;exports.previewTemporalBucketAuthoringFormat=oe;exports.reconcileTemporalBucketAuthoringFormat=Ye;exports.resolveDashboardEntitySource=$;exports.resolveTemporalBucketAuthoringFormat=_e;exports.resolveTemporalResultOwner=he;exports.supportsCanonicalDashboardTemporalResult=de;exports.transformComparisonDocument=ue;
1
+ "use strict";const Y=require("./validators-ux2obZB9.cjs");require("./matrix-operation-contract-o9GXbiHw.cjs");const Q=require("./metric-comparison-DeiOjEm5.cjs"),T=require("./temporal-bucket-4YEPEKlJ.cjs"),W=require("../value-format-preferences/index.cjs"),se=require("./source-entity-resolution-DPjslVgx.cjs"),q=require("./matrix-card-Ii8yYSnw.cjs"),k=new Set(["previous_period","same_period_last_year","start_vs_end","target"]),ae=new Set([...k,"none",""]);function f(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function X(e){const t=f(e.preferences)?e.preferences:void 0,o=t&&f(t.kpiVisualOptions)?t.kpiVisualOptions:void 0,n=t&&f(t.tableVisualOptions)?t.tableVisualOptions:void 0;return{preferences:t,kpiOptions:o,kpiComparison:o&&f(o.metricComparison)?o.metricComparison:void 0,kpiComparisonPresent:!!o&&"metricComparison"in o,tableOptions:n,tableComparison:n&&f(n.metricComparison)?n.metricComparison:void 0,tableComparisonPresent:!!n&&"metricComparison"in n}}function F(e){const t=[],o=(n,r)=>{if(Array.isArray(n)){n.forEach((i,s)=>o(i,`${r}[${s}]`));return}if(!f(n))return;const p=n.config;if(f(p)){const i=X(n),s=!!(i.kpiComparisonPresent||i.tableComparisonPresent),m=p.metricColumns,a=Array.isArray(m)?m.flatMap((l,c)=>f(l)?[{index:c,metric:l}]:[]):[];if((a.some(({metric:l})=>"comparisonType"in l)||s)&&t.push({path:r,card:n,metrics:a,malformedMetricIndexes:Array.isArray(m)?m.flatMap((l,c)=>f(l)?[]:[c]):[],malformedMetricColumns:"metricColumns"in p&&!Array.isArray(m),hasLegacyPresentation:s}),"metricColumns"in p||s)return}Object.entries(n).forEach(([i,s])=>o(s,r?`${r}.${i}`:i))};return o(e,"$"),t}const Z={difference:"difference",change:"percent_change",change_difference:"both",ratio:"ratio"};function x(e,t){if(!e)return;const o=Object.fromEntries(t.flatMap(n=>typeof e[n]=="string"?[[n,e[n]]]:[]));return Object.keys(o).length?o:void 0}function ce(e,t,o){if(e!==void 0){if(!f(e)){o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:t,message:"Legacy comparison formatOptions must be an object."});return}Object.entries(e).forEach(([n,r])=>{if(n==="decimalPlaces"){(typeof r!="number"||!Number.isInteger(r)||r<0||r>6)&&o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${t}.decimalPlaces`,message:"Legacy comparison decimalPlaces must be an integer from 0 through 6."});return}n==="type"&&(r===void 0||r==="auto")||r!==void 0&&o.push({severity:"error",code:"unsupported_comparison_format",path:`${t}.${n}`,message:`Legacy comparison format option "${n}" has no canonical presentation mapping.`})})}}function B(e,t){const o=t==="kpi"?e.calculationType:e.calculatedAs,n=t==="table"&&o===void 0?"both":Z[String(o)],r=f(e.formatOptions)?e.formatOptions:void 0,p=f(e.conditionalLabels)?e.conditionalLabels:void 0,i=f(t==="kpi"?e.colorConfig:e.colors)?t==="kpi"?e.colorConfig:e.colors:void 0,s={};if(n&&(s.displayMode=n),typeof(r==null?void 0:r.decimalPlaces)=="number"&&(s.precision=r.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=p?{...x(p,["increase","decrease"]),...typeof p.noChange=="string"?{neutral:p.noChange}:typeof p.neutral=="string"?{neutral:p.neutral}:{}}:void 0;m&&Object.keys(m).length&&(s.conditionalLabels=m);const a=i?{...x(i,["increase","decrease"]),...typeof i.noChange=="string"?{neutral:i.noChange}:typeof i.neutral=="string"?{neutral:i.neutral}:{}}:void 0;return a&&Object.keys(a).length&&(s.colors=a),s}function U(e){return{...Q.COMPARISON_PRESENTATION_DEFAULTS,...e}}function J(e){return e.some(({metric:t})=>t.comparisonType==="previous_period"||t.comparisonType==="same_period_last_year"||t.comparisonType==="target"?!0:f(t.comparison)&&t.comparison.mode==="explicit")}function w(e){const t=e.card.config;return e.metrics.length===2&&(t.groupByColumns===void 0||Array.isArray(t.groupByColumns)&&t.groupByColumns.length===0)}function j(e,t,o,n){const r=t==="kpi"?["enabled","calculationType","formatOptions","showArrow","showColor","conditionalLabel","labelName","position","conditionalLabels","colorConfig","lowerIsBetter"]:["calculatedAs","indicatorStyle","formatOptions","colors","lowerIsBetter"];Object.keys(e).forEach(l=>{r.includes(l)||n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.${l}`,message:`Unknown legacy comparison presentation field "${l}" cannot be dropped automatically.`})});const p=t==="kpi"?"calculationType":"calculatedAs";e[p]!==void 0&&!Z[String(e[p])]&&n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.${p}`,message:`Legacy comparison ${p} is unsupported.`}),t==="kpi"&&e.position!==void 0&&!["left","right","top"].includes(String(e.position))&&n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.position`,message:"Legacy comparison position is unsupported."}),t==="kpi"&&e.labelName!==void 0&&typeof e.labelName!="string"&&n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.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(!f(e[l])){n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.${l}`,message:`Legacy comparison ${l} must be an object.`});return}Object.entries(e[l]).forEach(([d,b])=>{c.includes(d)?typeof b!="string"&&n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.${l}.${d}`,message:`Legacy comparison ${l}.${d} must be a string.`}):n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.${l}.${d}`,message:`Unknown legacy comparison ${l} field "${d}" cannot be dropped automatically.`})})}}),(t==="kpi"?["enabled","showArrow","showColor","conditionalLabel","lowerIsBetter"]:["lowerIsBetter"]).forEach(l=>{e[l]!==void 0&&typeof e[l]!="boolean"&&n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.${l}`,message:`Legacy comparison ${l} must be a boolean.`})}),t==="table"&&e.indicatorStyle!==void 0&&!["arrow_badge","arrow","badge","none"].includes(String(e.indicatorStyle))&&n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${o}.indicatorStyle`,message:"Legacy comparison indicatorStyle is unsupported."}),ce(e.formatOptions,`${o}.formatOptions`,n);const m=B(e,t);Q.validateComparisonPresentationSpec(m,o).errors.forEach(l=>{n.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:l.path||o,message:l.message})})}function G(e){const t=X(e.card),o=t.kpiComparison?B(t.kpiComparison,"kpi"):void 0,n=t.tableComparison?B(t.tableComparison,"table"):void 0;return{namespaces:t,kpi:o,table:n,presentation:o||n}}function pe(e){const t=f(e.preferences)?e.preferences:{},o=f(t.kpiVisualOptions)?t.kpiVisualOptions:{},n=f(o.metricComparison)?o.metricComparison:{},r=f(t.tableVisualOptions)?t.tableVisualOptions:{},p=f(r.metricComparison)?r.metricComparison:{};return o.lowerIsBetter===!0||n.lowerIsBetter===!0||p.lowerIsBetter===!0?"lower_is_better":"higher_is_better"}function le(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 me(e){const t=f(e.preferences)?e.preferences:void 0;if(!t)return;const o=f(t.kpiVisualOptions)?t.kpiVisualOptions:void 0;o&&delete o.lowerIsBetter;const n=f(t.tableVisualOptions)?t.tableVisualOptions:void 0,r=n&&f(n.metricComparison)?n.metricComparison:void 0;r&&delete r.lowerIsBetter}function ue(e){const t=F(e);if(!t.length)return{document:e,changed:!1,changes:[],diagnostics:[]};const o=[];if(t.forEach(i=>{var s,m,a,l;if(i.malformedMetricColumns&&o.push({severity:"error",code:"malformed_metric_columns",path:`${i.path}.config.metricColumns`,message:"Metric columns must be an array before comparison migration."}),i.malformedMetricIndexes.forEach(c=>{o.push({severity:"error",code:"malformed_metric_columns",path:`${i.path}.config.metricColumns[${c}]`,message:"Metric columns must contain objects before comparison migration."})}),i.metrics.forEach(({metric:c,index:d})=>{if(!("comparisonType"in c))return;const b=`${i.path}.config.metricColumns[${d}]`,g=String(c.comparisonType||"");"comparison"in c&&o.push({severity:"error",code:"conflicting_comparison_contracts",path:b,message:"Metric contains both legacy and canonical comparison configuration; resolve the conflict before migration."});const y=f(c.parameters)?c.parameters:void 0,C=y&&f(y.windowTransform)?y.windowTransform:void 0;k.has(g)&&(C==null?void 0:C.function)==="previous_period_delta"&&o.push({severity:"error",code:"conflicting_comparison_window_transform",path:b,message:"A metric cannot combine baseline comparison with previous_period_delta; resolve the authoring intent before migration."}),ae.has(g)||o.push({severity:"error",code:"unsupported_comparison_type",path:`${b}.comparisonType`,message:`Unsupported legacy metric comparison type "${g}".`}),c.comparisonType==="target"&&(typeof c.targetValue!="number"||!Number.isFinite(c.targetValue))&&o.push({severity:"error",code:"invalid_target_value",path:`${b}.targetValue`,message:"Legacy target comparison requires a finite metric targetValue."}),c.comparisonType==="start_vs_end"&&o.push({severity:"error",code:"unsupported_start_vs_end",path:`${b}.comparisonType`,message:"start_vs_end is retired and cannot be migrated automatically."}),c.targetValue!==void 0&&c.comparisonType!=="target"&&o.push({severity:"warning",code:"stray_target_value",path:`${b}.targetValue`,message:"Dead non-target targetValue will be removed without changing the baseline."})}),i.hasLegacyPresentation){const{namespaces:c,kpi:d,table:b}=G(i),g=[(s=c.kpiOptions)==null?void 0:s.lowerIsBetter,(m=c.kpiComparison)==null?void 0:m.lowerIsBetter,(a=c.tableComparison)==null?void 0:a.lowerIsBetter].filter(y=>typeof y=="boolean");new Set(g).size>1&&o.push({severity:"error",code:"conflicting_legacy_polarity",path:`${i.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"&&o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${i.path}.preferences.kpiVisualOptions.lowerIsBetter`,message:"Legacy comparison lowerIsBetter must be a boolean."}),c.kpiComparisonPresent&&!c.kpiComparison&&o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${i.path}.preferences.kpiVisualOptions.metricComparison`,message:"Legacy KPI comparison presentation must be an object."}),c.tableComparisonPresent&&!c.tableComparison&&o.push({severity:"error",code:"invalid_legacy_comparison_presentation",path:`${i.path}.preferences.tableVisualOptions.metricComparison`,message:"Legacy table comparison presentation must be an object."}),"comparisonPresentation"in(c.preferences||{})&&o.push({severity:"error",code:"conflicting_comparison_presentation_contracts",path:`${i.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||{})&&w(i)&&o.push({severity:"error",code:"conflicting_comparison_presentation_contracts",path:`${i.path}.preferences.metricPairComparisonEnabled`,message:"Card contains both legacy and canonical metric-pair enablement; resolve the conflict before migration."}),c.kpiComparison&&j(c.kpiComparison,"kpi",`${i.path}.preferences.kpiVisualOptions.metricComparison`,o),c.tableComparison&&j(c.tableComparison,"table",`${i.path}.preferences.tableVisualOptions.metricComparison`,o),d&&b&&JSON.stringify(U(d))!==JSON.stringify(U(b))&&o.push({severity:"error",code:"conflicting_legacy_presentation_namespaces",path:`${i.path}.preferences`,message:"KPI and table comparison presentation values disagree; resolve the conflict before migration."})}}),o.some(i=>i.severity==="error"))return{document:e,changed:!1,changes:[],diagnostics:o};const n=JSON.parse(JSON.stringify(e)),r=F(n),p=[];return r.forEach(i=>{var m;const s=pe(i.card);if(i.metrics.forEach(({metric:a,index:l})=>{if(!("comparisonType"in a))return;const c=String(a.comparisonType||""),d=`${i.path}.config.metricColumns[${l}]`,b=le(a),g=["comparisonType"];delete a.comparisonType,"targetValue"in a&&(delete a.targetValue,g.push("targetValue")),"comparisonDisplay"in a&&(delete a.comparisonDisplay,g.push("comparisonDisplay")),b?a.comparison=b:delete a.comparison,k.has(c)&&(a.comparisonPolarity=s),p.push({kind:"metric",path:d,metricId:typeof a.id=="string"?a.id:void 0,legacyType:c,comparison:b,comparisonPolarity:k.has(c)?s:void 0,removedFields:g})}),me(i.card),i.hasLegacyPresentation){const{namespaces:a,presentation:l}=G(i),c=(m=a.kpiComparison)==null?void 0:m.enabled,d={...l};typeof c=="boolean"&&J(i.metrics)&&(d.showComparison=c);const b=typeof c=="boolean"&&w(i)?c:void 0,g=typeof c=="boolean"&&!J(i.metrics)&&!w(i)?["kpiVisualOptions.metricComparison.enabled"]:void 0,y=a.preferences,C=[];i.metrics.forEach(({metric:D})=>{"comparisonPolarity"in D||(D.comparisonPolarity=s,typeof D.id=="string"&&C.push(D.id))}),Object.keys(d).length&&(y.comparisonPresentation=d),b!==void 0&&(y.metricPairComparisonEnabled=b),a.kpiOptions&&delete a.kpiOptions.metricComparison,a.tableOptions&&delete a.tableOptions.metricComparison,p.push({kind:"presentation",path:`${i.path}.preferences`,comparisonPresentation:Object.keys(d).length?d:void 0,metricPairComparisonEnabled:b,comparisonPolarityMetricIds:C,intentionallyDiscardedFields:g,removedFields:[...a.kpiComparison?["kpiVisualOptions.metricComparison"]:[],...a.tableComparison?["tableVisualOptions.metricComparison"]:[]]})}}),{document:n,changed:!0,changes:p,diagnostics:o}}const ee=["bar","horizontalBar","line","area","stackedArea","combo","stackedBar","stackedLine"],fe=new Set(ee);function te(e){return typeof e=="string"&&fe.has(e)}function de(e){return e==="detailTable"||e==="table"||e==="aggregateTable"||e==="pivotTable"||e==="custom"||te(e)}function z(e){return!!(e!=null&&e.trim())}function he(e){return z(e.sql)||z(e.normalizedPython)?"freeform":e.hasExecutableConfig?"config":"none"}const A={type:"temporal_bucket",presentation:{mode:"auto"}},_={value:"auto",label:"Automatic",format:A};function h(e,t){return{value:`pattern:${e}`,label:t,format:{type:"temporal_bucket",presentation:{mode:"pattern",pattern:e}}}}function E(e,t){return{value:`preset:${e}`,label:t,format:{type:"temporal_bucket",presentation:{mode:"preset",preset:e}}}}function v(e){return{...h(e,"Custom format…"),value:"custom",custom:!0}}const H={second:[_,h("HH:mm:ss","14:30:45 (HH:mm:ss)"),h("YYYY-MM-DD HH:mm:ss","2024-01-15 14:30:45 (YYYY-MM-DD HH:mm:ss)"),v("DD/MM/YYYY HH:mm:ss")],minute:[_,h("HH:mm","14:30 (HH:mm)"),h("YYYY-MM-DD HH:mm","2024-01-15 14:30 (YYYY-MM-DD HH:mm)"),v("DD/MM/YYYY HH:mm")],hour:[_,h("HH","14 (HH)"),h("YYYY-MM-DD HH","2024-01-15 14 (YYYY-MM-DD HH)"),v("DD/MM/YYYY HH")],day:[_,h("YYYY-MM-DD","2024-01-15 (YYYY-MM-DD)"),h("MM/DD/YYYY","01/15/2024 (MM/DD/YYYY)"),h("DD/MM/YYYY","15/01/2024 (DD/MM/YYYY)"),h("MMM DD, YYYY","Jan 15, 2024 (MMM DD, YYYY)"),h("MMMM DD, YYYY","January 15, 2024 (MMMM DD, YYYY)"),v("YYYY/MM/DD")],week:[_,E("week_of_short","Week of Jan 15, 2024"),E("week_of_long","Week of January 15, 2024"),h("YYYY-MM-DD","2024-01-15 (YYYY-MM-DD)"),v("YYYY/MM/DD")],month:[_,h("MMM YYYY","Jan 2024 (MMM YYYY)"),h("MMMM YYYY","January 2024 (MMMM YYYY)"),h("YYYY-MM","2024-01 (YYYY-MM)"),h("MM/YYYY","01/2024 (MM/YYYY)"),h("YYYY MMM","2024 Jan (YYYY MMM)"),v("YYYY/MM")],quarter:[_,E("quarter_short","Q1 2024"),E("quarter_long","1st Quarter 2024")],year:[_,h("YYYY","2024 (YYYY)"),h("YY","24 (YY)")]},be={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 oe(e,t,o=W.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES){return T.formatTemporalBucket({value:be[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:o.locale,presentation:{mode:"auto",styles:{dateStyle:o.dateStyle,dateTime:{...o.dateTime}}}}:{type:"temporal_bucket",locale:o.locale,presentation:e.presentation}})}function ge(e,t,o=W.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES){const n=H[e],r=(t==null?void 0:t.presentation.mode)==="preset"?t.presentation.preset:void 0,p=r&&t&&T.validateTemporalBucketFormatApplicability(t,e).ok&&!n.some(s=>{var m;return((m=s.format)==null?void 0:m.presentation.mode)==="preset"&&s.format.presentation.preset===r})?E(r,r):void 0;return(p?[...n,p]:n).map(s=>{if(!s.format||s.custom)return s;const m=oe(s.format,e,o);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 ye(e,t){const o=H[t];if(e.presentation.mode==="pattern"){const n=e.presentation.pattern,r=o.find(p=>{var i;return((i=p.format)==null?void 0:i.presentation.mode)==="pattern"&&p.format.presentation.pattern===n});return{value:(r==null?void 0:r.value)??"custom",customPattern:r!=null&&r.custom||!r?n:"",format:e}}if(e.presentation.mode==="preset"){const n=e.presentation.preset,r=o.find(i=>{var s;return((s=i.format)==null?void 0:s.presentation.mode)==="preset"&&i.format.presentation.preset===n}),p=T.validateTemporalBucketFormatApplicability(e,t).ok;return r?{value:r.value,customPattern:"",format:e}:p?{value:`preset:${n}`,customPattern:"",format:e}:{value:"auto",customPattern:"",format:A}}return{value:"auto",customPattern:"",format:e}}function _e(e,t,o=""){var i;const n=H[e].find(s=>s.value===t),r=t.startsWith("preset:")?t.slice(7):void 0,p=t==="custom"?{type:"temporal_bucket",presentation:{mode:"pattern",pattern:o.trim()||(((i=n==null?void 0:n.format)==null?void 0:i.presentation.mode)==="pattern"?n.format.presentation.pattern:"")}}:(n==null?void 0:n.format)??(r&&T.isTemporalBucketPreset(r)?{type:"temporal_bucket",presentation:{mode:"preset",preset:r}}:void 0);return!p||!T.validateTemporalBucketFormatApplicability(p,e).ok?A:p}function Ye(e,t){return T.validateTemporalBucketFormatApplicability(e,t).ok?e:A}function u(e){return typeof e=="string"&&e.trim().length>0?e.trim():null}function ne(e){return Array.from(new Set(e.filter(t=>!!t)))}function Ce(e){const t=u(e.table),o=u(e.schema),n=u(e.catalog)||u(e.database);return t?ne([t,o?`${o}.${t}`:null,n?`${n}.${t}`:null,n&&o?`${n}.${o}.${t}`:null]):[]}function K(e){const t=u(e.table)||u(e.tableName);return ne([u(e.name),u(e.alias),...Ce({table:t,schema:u(e.schema)||u(e.schemaName),catalog:u(e.catalog),database:u(e.database)||u(e.databaseName)})])}function ve(e,t){const o=u(e.domainId),n=u(t.domainId);if(o&&n&&o!==n)return!0;if(e.type==="dataset")return!1;const r=u(e.id),p=u(t.id);if(r&&p&&r!==p)return!0;const i=u(e.connectionId),s=u(t.connectionId);return!!(i&&s&&i!==s)}function L(e,t=!1){return u(e.table)||u(e.tableName)||(e.type!=="dataset"||t?u(e.name):null)}function R(e){return u(e.catalog)||u(e.database)||u(e.databaseName)}function S(e){return u(e.schema)||u(e.schemaName)}function I(e){return e.length===1?e[0]:void 0}function Me(e,t){const o=L(t,!0),n=R(t),r=S(t);if(!(!o||!n&&!r))return I(e.filter(p=>{const i=p;return!(L(i)!==o||n&&R(i)!==n||r&&S(i)!==r)}))}function P(e,t){if(!t||!(e!=null&&e.length))return;const o=e.filter(s=>!ve(s,t));if(t.type==="dataset"){const s=u(t.id);if(s)return I(o.filter(a=>a.type==="dataset"&&u(a.id)===s));if(u(t.domainId)){const a=u(t.name);return I(o.filter(l=>l.type==="dataset"&&u(l.name)===a))}}let n=[];if(t.type==="dataset"){const s=u(t.name);if(n=o.filter(m=>m.type==="dataset"&&u(m.name)===s),n.length===1)return n[0]}if(!!(L(t,!0)&&(R(t)||S(t))))return Me(o,t);if(n.length>1)return;const p=K(t);if(p.length===0)return;const i=o.filter(s=>K(s).some(a=>p.includes(a)));return I(i)}function N(e,t){const o=P(e,t);return o?{...t,...o}:t}function Te(e,t){const o=t||[];return o.length===0?e:{...e,baseEntity:N(o,e.baseEntity),joins:e.joins.map(n=>({...n,source:N(o,n.source),target:N(o,n.target)}))}}function Ee(e,t){if(!(e!=null&&e.joins.length))return[];const o=[e.baseEntity,...e.joins.flatMap(r=>[r.source,r.target])],n=[];return o.forEach(r=>{!P(t,r)&&!P(n,r)&&n.push(r)}),n}function M(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function O(e){return M(e)&&typeof e.name=="string"}function V(e){return!M(e)||e.kind!=="semantic"&&e.kind!=="physical"||(e.kind==="semantic"?[e.datasetId,e.datasetName,e.connectionId]:[e.databaseName,e.schemaName]).some(o=>o!==void 0&&typeof o!="string")?!1:Y.hasCompleteSemaphorSourceIdentity(e)}function $(e,t){var a,l;const o=Array.isArray(t==null?void 0:t.selectedEntities)?t.selectedEntities.filter(O):void 0,n=P(o,e),r=n?{...e,...n}:e,p="domainId"in r&&typeof r.domainId=="string"&&!!r.domainId.trim();if((t==null?void 0:t.mode)==="semanticDomain"&&!p)return;if((t==null?void 0:t.mode)!=="database"&&r.type==="dataset"){const c=se.resolveSemaphorSemanticDatasetEntity({entities:[r],semanticDomainId:t==null?void 0:t.semanticDomainId,connectionId:t==null?void 0:t.connectionId,fieldEntityType:"dataset"},{includePhysicalDatasets:!0});if(c.kind==="resolved"){const d="label"in r&&typeof r.label=="string"?r.label:void 0;return{...c.source,...d?{label:d}:{}}}}if((t==null?void 0:t.mode)==="semanticDomain")return;const i=r.connectionId||(t==null?void 0:t.connectionId),s=r.type==="dataset"&&"table"in r&&r.table?r.table:r.name;if(!i||!s)return;const m={kind:"physical",connectionId:i,connectionType:r.connectionType||(t==null?void 0:t.connectionType),tableName:s,databaseName:r.database||((a=t==null?void 0:t.dbSelection)==null?void 0:a.database),schemaName:r.schema||((l=t==null?void 0:t.dbSelection)==null?void 0:l.schema),dialect:r.dialect};return V(m)?m:void 0}function Ae(e,t){var s,m;const o=$(e,t);if(!o)return;const n=e.type==="dataset"&&"table"in e&&typeof e.table=="string"?e.table.trim():void 0,r=o.kind==="physical"?o.tableName:n,p=e.connectionId||(t==null?void 0:t.connectionId),i=r&&p?{connectionId:p,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:r}:void 0;return{source:o,...i?{executionTable:i}:{}}}function De(e){const t=M(e.dataSource)?e.dataSource:void 0;if(typeof e.sql=="string"&&e.sql.trim()){const i=[],s=Array.isArray(t==null?void 0:t.selectedEntities)?t.selectedEntities:[];for(const m of s){if(!O(m))continue;const a=Ae(m,t);a&&!i.some(l=>Y.semaphorSourcesReferToSameDataset(l.source,a.source))&&i.push(a)}return{cardId:e.id,kind:"sql",pinnedCatalogSources:i}}if(!M(e.config))return{cardId:e.id,kind:"unconfigured"};const o=[],n=q.inspectMatrixCardConfig(e);if(n.status==="invalid")return{cardId:e.id,kind:"unconfigured"};const r=n.status==="ready"?n.config:void 0;if(e.type==="matrixTable"&&!r)return{cardId:e.id,kind:"unconfigured"};r&&o.push(...q.matrixDefinitionSources(r.spec).filter(V));const p=(r==null?void 0:r.spec.joinPlan)??(M(e.config.joinPlan)?e.config.joinPlan:void 0);if(p){const i=Array.isArray(p.joins)?p.joins:[],s=[p.baseEntity];for(const a of i)M(a)&&s.push(a.source,a.target);let m=!1;for(const a of s){if(!O(a)){m=!0;continue}const l=$(a,t);l?o.push(l):m=!0}m&&(o.length=0)}else if(e.type!=="matrixTable"){const i=Array.isArray(t==null?void 0:t.selectedEntities)?t.selectedEntities:[];if(i.length===1&&O(i[0])){const s=$(i[0],t);s&&o.push(s)}}if(!o.length&&!p&&e.type!=="matrixTable"){const i=e.config.queryBaseSource;V(i)&&o.push(i)}return{cardId:e.id,kind:"config",executableSources:Y.mergeSemaphorSourcesByIdentity(o)}}function ke(e,t){return(e.kind==="config"?e.executableSources:e.kind==="sql"?e.pinnedCatalogSources.map(n=>n.source):[]).some(n=>Y.semaphorSourcesReferToSameDataset(n,t))}function Ie(e,t){if(e.kind==="config")return e.executableSources.find(o=>Y.semaphorSourcesReferToSameDataset(o,t))}function Oe(e,t){var o;return(o=re(e,t))==null?void 0:o.source}function re(e,t){if(e.kind==="sql")return e.pinnedCatalogSources.find(o=>Y.semaphorSourcesReferToSameDataset(o.source,t))}const ie=[{value:"COUNT",label:"Count"},{value:"DISTINCT",label:"Count Distinct"}],Pe=[...ie,{value:"SUM",label:"Sum"},{value:"AVG",label:"Average"},{value:"MIN",label:"Min"},{value:"MAX",label:"Max"},{value:"MEDIAN",label:"Median"}];function $e(e){return Y.normalizeAnalyticsCatalogDataType(e)==="number"?Pe:ie}exports.AUTOMATIC_TEMPORAL_BUCKET_FORMAT=A;exports.SEMAPHOR_CARTESIAN_CHART_TYPES=ee;exports.buildDashboardCardSourceIndex=De;exports.dashboardCardFilterSourceInventoryContains=ke;exports.findDashboardCardExecutableSource=Ie;exports.findDashboardCardPinnedCatalogSource=Oe;exports.findDashboardSqlPinnedCatalogSource=re;exports.findOrphanedJoinPlanEntities=Ee;exports.getFieldAggregationOptions=$e;exports.getTemporalBucketAuthoringOptions=ge;exports.getTemporalBucketAuthoringSelection=ye;exports.isSemaphorCartesianChartType=te;exports.normalizeJoinPlanEntityReferences=Te;exports.previewTemporalBucketAuthoringFormat=oe;exports.reconcileTemporalBucketAuthoringFormat=Ye;exports.resolveDashboardEntitySource=$;exports.resolveTemporalBucketAuthoringFormat=_e;exports.resolveTemporalResultOwner=he;exports.supportsCanonicalDashboardTemporalResult=de;exports.transformComparisonDocument=ue;