react-semaphor 0.1.476 → 0.1.478

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 (109) hide show
  1. package/dist/analytics-protocol/index.cjs +1 -1
  2. package/dist/analytics-protocol/index.js +9 -9
  3. package/dist/brand-studio/index.cjs +1 -1
  4. package/dist/brand-studio/index.js +4 -4
  5. package/dist/briefings/index.cjs +1 -1
  6. package/dist/briefings/index.js +4 -4
  7. package/dist/chunks/{analyze-result-contract-OgPk-zGu.cjs → analyze-result-contract-BX_nQmPN.cjs} +1 -1
  8. package/dist/chunks/{analyze-result-contract-C8s8EUL5.js → analyze-result-contract-DsiAzCYn.js} +1 -1
  9. package/dist/chunks/{saved-temporal-bucket-format-CHsXUPJI.js → card-config-utils-CyDKaPNT.js} +190 -190
  10. package/dist/chunks/card-config-utils-D3Xuu0ub.cjs +1 -0
  11. package/dist/chunks/{common-types-C1IM7gao.cjs → common-types-BCSbPclk.cjs} +1 -1
  12. package/dist/chunks/{common-types-BLPy5_E0.js → common-types-D3r4PILe.js} +1 -1
  13. package/dist/chunks/{dashboard-briefing-launcher-ZfuxdRN2.cjs → dashboard-briefing-launcher-7qAW16mO.cjs} +2 -2
  14. package/dist/chunks/{dashboard-briefing-launcher-eBsB9kr8.js → dashboard-briefing-launcher-DAhtLQPc.js} +134 -134
  15. package/dist/chunks/{dashboard-controls-BX6p6z8a.js → dashboard-controls-C_CBmEwW.js} +13 -12
  16. package/dist/chunks/{dashboard-controls-DwjEc7sO.cjs → dashboard-controls-CoVqAeKG.cjs} +10 -10
  17. package/dist/chunks/{dashboard-input-contract-JFJZgenC.cjs → dashboard-date-comparison-definition-C93wv8Ua.cjs} +1 -1
  18. package/dist/chunks/{dashboard-input-contract-BrGdGFz0.js → dashboard-date-comparison-definition-KohOqBqR.js} +19 -19
  19. package/dist/chunks/dashboard-filter-value-compatibility-BAatYtUS.js +1215 -0
  20. package/dist/chunks/dashboard-filter-value-compatibility-Bco2gN96.cjs +1 -0
  21. package/dist/chunks/{dashboard-json-BfgitBXc.js → dashboard-json-0w58H39L.js} +7 -7
  22. package/dist/chunks/dashboard-json-B3XSl7b_.cjs +1 -0
  23. package/dist/chunks/{edit-dashboard-visual-Cbougpzc.cjs → edit-dashboard-visual-BsLRKeuO.cjs} +6 -6
  24. package/dist/chunks/{edit-dashboard-visual-D80DLF7C.js → edit-dashboard-visual-BsWEU8xf.js} +277 -277
  25. package/dist/chunks/{editor-action-buttons-DjsEDQok.js → editor-action-buttons-B3CB5c__.js} +39 -39
  26. package/dist/chunks/{editor-action-buttons-BDRLfaW-.cjs → editor-action-buttons-DMLDvrJD.cjs} +1 -1
  27. package/dist/chunks/{index-CneWIz__.cjs → index--0Il-Bpd.cjs} +238 -238
  28. package/dist/chunks/{format-types-CFHQoIuk.js → index-BS0_dp0l.js} +168 -168
  29. package/dist/chunks/{index-D9S3j7_z.js → index-BvRREsU9.js} +9 -9
  30. package/dist/chunks/index-ByQgqT9d.cjs +1 -0
  31. package/dist/chunks/{index-v2MZLyus.cjs → index-CXeIDdjd.cjs} +1 -1
  32. package/dist/chunks/{index-Dv5hbC1r.js → index-DgGcVyUs.js} +35550 -35937
  33. package/dist/chunks/matrix-result-contract-CFPnlcLm.cjs +1 -0
  34. package/dist/chunks/{matrix-result-contract-BpzhImar.js → matrix-result-contract-DFfUvb1r.js} +3 -3
  35. package/dist/chunks/{temporal-bucket-CtP7hKLa.js → metric-comparison-CTexJ8V1.js} +705 -705
  36. package/dist/chunks/metric-comparison-x0lipytf.cjs +1 -0
  37. package/dist/chunks/pivot-header-presentation-8Ra1RfHg.cjs +4 -0
  38. package/dist/chunks/{pivot-header-presentation-CaERAWpl.js → pivot-header-presentation-tpb_J900.js} +118 -118
  39. package/dist/chunks/{pivot-result-identity-CIZXsI53.js → pivot-result-identity-BIeP9v8I.js} +1 -1
  40. package/dist/chunks/{pivot-result-identity-DRUlTWUq.cjs → pivot-result-identity-BVnhG2rR.cjs} +1 -1
  41. package/dist/chunks/pivot-result-lifecycle-D_bRCqaB.cjs +1 -0
  42. package/dist/chunks/{pivot-result-lifecycle-B9FTybxN.js → pivot-result-lifecycle-mjJ1rBvV.js} +7 -7
  43. package/dist/chunks/{raw-temporal-contract-U8J9RlEH.js → raw-temporal-contract-BuQIB31z.js} +1 -1
  44. package/dist/chunks/{raw-temporal-contract-D8YuxTAg.cjs → raw-temporal-contract-vnNwLy9R.cjs} +1 -1
  45. package/dist/chunks/{report-preferences-dialog-BXBlvW79.js → report-preferences-dialog-Bytgubvz.js} +25 -25
  46. package/dist/chunks/report-preferences-dialog-I0Pbn_Yb.cjs +1 -0
  47. package/dist/chunks/{report-runtime-context-DNbgCsko.js → report-runtime-context-B_pAmqxl.js} +1 -1
  48. package/dist/chunks/{report-runtime-context-RFiWq4wK.cjs → report-runtime-context-BfW4qiMJ.cjs} +1 -1
  49. package/dist/chunks/{source-entity-resolution-BDC-Qngk.cjs → source-entity-resolution-DCAAS-y8.cjs} +1 -1
  50. package/dist/chunks/{source-entity-resolution-ugN3sZUk.js → source-entity-resolution-WUstJID6.js} +1 -1
  51. package/dist/chunks/{switch-C8NihGV4.js → switch-BsGTOjuD.js} +12342 -11110
  52. package/dist/chunks/switch-Cpj3DrCZ.cjs +138 -0
  53. package/dist/chunks/{temporal-bucket-authoring-DJ9kK2wD.js → temporal-bucket-authoring-CyTCHy1K.js} +3 -3
  54. package/dist/chunks/temporal-bucket-authoring-DueSgLJU.cjs +1 -0
  55. package/dist/chunks/{temporal-bucket-contract-CZl5D7FZ.js → temporal-bucket-contract-BeOx0uYe.js} +1 -1
  56. package/dist/chunks/{temporal-bucket-contract-BD862TAa.cjs → temporal-bucket-contract-Cp-usD9Z.cjs} +1 -1
  57. package/dist/chunks/{token-types-CoHsSJ4E.cjs → token-types-D9eN35rf.cjs} +1 -1
  58. package/dist/chunks/{token-types-DfDtCqlw.js → token-types-Dvomvqw0.js} +1 -1
  59. package/dist/chunks/{update-policy-BGNXFgBU.cjs → update-policy-Buw2LmvX.cjs} +1 -1
  60. package/dist/chunks/{update-policy-BybMiM61.js → update-policy-MWg0aH3d.js} +1 -1
  61. package/dist/chunks/{validators-D-T-2HOR.js → validators-D3AarM2T.js} +662 -663
  62. package/dist/chunks/validators-DqIM0B3C.cjs +1 -0
  63. package/dist/dashboard/index.cjs +1 -1
  64. package/dist/dashboard/index.js +2 -2
  65. package/dist/dashboard-authoring/index.cjs +3 -3
  66. package/dist/dashboard-authoring/index.js +81 -79
  67. package/dist/data-app-builder/index.cjs +1 -1
  68. package/dist/data-app-builder/index.js +2 -2
  69. package/dist/data-app-codegen/index.cjs +1 -1
  70. package/dist/data-app-codegen/index.js +2 -2
  71. package/dist/data-app-codegen-node/index.cjs +1 -1
  72. package/dist/data-app-codegen-node/index.js +3 -3
  73. package/dist/data-app-sdk/index.cjs +1 -1
  74. package/dist/data-app-sdk/index.js +3 -3
  75. package/dist/data-app-sdk-adapters/index.cjs +1 -1
  76. package/dist/data-app-sdk-adapters/index.js +2 -2
  77. package/dist/data-app-sdk-validation/index.cjs +1 -1
  78. package/dist/data-app-sdk-validation/index.js +3 -3
  79. package/dist/format-utils/index.cjs +3 -3
  80. package/dist/format-utils/index.js +9 -9
  81. package/dist/index.cjs +1 -1
  82. package/dist/index.js +177 -176
  83. package/dist/report-runtime-context/index.cjs +1 -1
  84. package/dist/report-runtime-context/index.js +2 -2
  85. package/dist/surfboard/index.cjs +1 -1
  86. package/dist/surfboard/index.js +3 -3
  87. package/dist/types/briefings.d.ts +15 -2
  88. package/dist/types/dashboard-authoring.d.ts +21 -2
  89. package/dist/types/dashboard.d.ts +15 -2
  90. package/dist/types/index.cjs +1 -1
  91. package/dist/types/index.js +4 -4
  92. package/dist/types/main.d.ts +25 -6
  93. package/dist/types/shared.d.ts +15 -2
  94. package/dist/types/surfboard.d.ts +15 -2
  95. package/dist/types/types.d.ts +15 -2
  96. package/package.json +1 -1
  97. package/dist/chunks/dashboard-filter-value-compatibility-BCVF9IHg.js +0 -1026
  98. package/dist/chunks/dashboard-filter-value-compatibility-DLkdeypb.cjs +0 -1
  99. package/dist/chunks/dashboard-json-CdwYFOsc.cjs +0 -1
  100. package/dist/chunks/format-types-PSZZ7hG8.cjs +0 -1
  101. package/dist/chunks/matrix-result-contract-Bhg60NtS.cjs +0 -1
  102. package/dist/chunks/pivot-header-presentation-CePk1R6g.cjs +0 -4
  103. package/dist/chunks/pivot-result-lifecycle-CcGt_29N.cjs +0 -1
  104. package/dist/chunks/report-preferences-dialog-cSMJYqns.cjs +0 -1
  105. package/dist/chunks/saved-temporal-bucket-format-DNMtD77o.cjs +0 -1
  106. package/dist/chunks/switch-B1mZx2k9.cjs +0 -138
  107. package/dist/chunks/temporal-bucket-9Wz9Ds6H.cjs +0 -1
  108. package/dist/chunks/temporal-bucket-authoring-DSpzgXHc.cjs +0 -1
  109. package/dist/chunks/validators-DcshgK7w.cjs +0 -1
@@ -0,0 +1 @@
1
+ "use strict";const W=require("./index-F25jnH0p.cjs");function J(t){if(!t||typeof t!="object")return!1;const e=t.type;return e==="number"||e==="currency"||e==="percent"||e==="scientific"}function l(t){const e=Object.prototype.toString.call(t);return t instanceof Date||typeof t=="object"&&e==="[object Date]"?new t.constructor(+t):typeof t=="number"||e==="[object Number]"||typeof t=="string"||e==="[object String]"?new Date(t):new Date(NaN)}function y(t,e){return t instanceof Date?new t.constructor(e):new Date(e)}const R=6048e5,K=864e5,tt=6e4,et=36e5,nt=43200,rt=1440;let at={};function x(){return at}function v(t,e){var c,d,u,m;const n=x(),r=(e==null?void 0:e.weekStartsOn)??((d=(c=e==null?void 0:e.locale)==null?void 0:c.options)==null?void 0:d.weekStartsOn)??n.weekStartsOn??((m=(u=n.locale)==null?void 0:u.options)==null?void 0:m.weekStartsOn)??0,a=l(t),i=a.getDay(),o=(i<r?7:0)+i-r;return a.setDate(a.getDate()-o),a.setHours(0,0,0,0),a}function S(t){return v(t,{weekStartsOn:1})}function B(t){const e=l(t),n=e.getFullYear(),r=y(t,0);r.setFullYear(n+1,0,4),r.setHours(0,0,0,0);const a=S(r),i=y(t,0);i.setFullYear(n,0,4),i.setHours(0,0,0,0);const o=S(i);return e.getTime()>=a.getTime()?n+1:e.getTime()>=o.getTime()?n:n-1}function I(t){const e=l(t);return e.setHours(0,0,0,0),e}function N(t){const e=l(t),n=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return n.setUTCFullYear(e.getFullYear()),+t-+n}function it(t,e){const n=I(t),r=I(e),a=+n-N(n),i=+r-N(r);return Math.round((a-i)/K)}function ot(t){const e=B(t),n=y(t,0);return n.setFullYear(e,0,4),n.setHours(0,0,0,0),S(n)}function st(t){return t instanceof Date||typeof t=="object"&&Object.prototype.toString.call(t)==="[object Date]"}function ct(t){if(!st(t)&&typeof t!="number")return!1;const e=l(t);return!isNaN(Number(e))}function ut(t){const e=l(t),n=y(t,0);return n.setFullYear(e.getFullYear(),0,1),n.setHours(0,0,0,0),n}const dt={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},ft=(t,e,n)=>{let r;const a=dt[t];return typeof a=="string"?r=a:e===1?r=a.one:r=a.other.replace("{{count}}",e.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function C(t){return(e={})=>{const n=e.width?String(e.width):t.defaultWidth;return t.formats[n]||t.formats[t.defaultWidth]}}const mt={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},ht={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},lt={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},gt={date:C({formats:mt,defaultWidth:"full"}),time:C({formats:ht,defaultWidth:"full"}),dateTime:C({formats:lt,defaultWidth:"full"})},wt={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},yt=(t,e,n,r)=>wt[t];function D(t){return(e,n)=>{const r=n!=null&&n.context?String(n.context):"standalone";let a;if(r==="formatting"&&t.formattingValues){const o=t.defaultFormattingWidth||t.defaultWidth,c=n!=null&&n.width?String(n.width):o;a=t.formattingValues[c]||t.formattingValues[o]}else{const o=t.defaultWidth,c=n!=null&&n.width?String(n.width):t.defaultWidth;a=t.values[c]||t.values[o]}const i=t.argumentCallback?t.argumentCallback(e):e;return a[i]}}const bt={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},Ot={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Mt={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},xt={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Pt={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Tt={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Dt=(t,e)=>{const n=Number(t),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},kt={ordinalNumber:Dt,era:D({values:bt,defaultWidth:"wide"}),quarter:D({values:Ot,defaultWidth:"wide",argumentCallback:t=>t-1}),month:D({values:Mt,defaultWidth:"wide"}),day:D({values:xt,defaultWidth:"wide"}),dayPeriod:D({values:Pt,defaultWidth:"wide",formattingValues:Tt,defaultFormattingWidth:"wide"})};function k(t){return(e,n={})=>{const r=n.width,a=r&&t.matchPatterns[r]||t.matchPatterns[t.defaultMatchWidth],i=e.match(a);if(!i)return null;const o=i[0],c=r&&t.parsePatterns[r]||t.parsePatterns[t.defaultParseWidth],d=Array.isArray(c)?Wt(c,g=>g.test(o)):vt(c,g=>g.test(o));let u;u=t.valueCallback?t.valueCallback(d):d,u=n.valueCallback?n.valueCallback(u):u;const m=e.slice(o.length);return{value:u,rest:m}}}function vt(t,e){for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e(t[n]))return n}function Wt(t,e){for(let n=0;n<t.length;n++)if(e(t[n]))return n}function St(t){return(e,n={})=>{const r=e.match(t.matchPattern);if(!r)return null;const a=r[0],i=e.match(t.parsePattern);if(!i)return null;let o=t.valueCallback?t.valueCallback(i[0]):i[0];o=n.valueCallback?n.valueCallback(o):o;const c=e.slice(a.length);return{value:o,rest:c}}}const Yt=/^(\d+)(th|st|nd|rd)?/i,Ft=/\d+/i,Ct={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Et={any:[/^b/i,/^(a|c)/i]},Nt={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},pt={any:[/1/i,/2/i,/3/i,/4/i]},Xt={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},qt={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},zt={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},It={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Ht={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Lt={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Qt={ordinalNumber:St({matchPattern:Yt,parsePattern:Ft,valueCallback:t=>parseInt(t,10)}),era:k({matchPatterns:Ct,defaultMatchWidth:"wide",parsePatterns:Et,defaultParseWidth:"any"}),quarter:k({matchPatterns:Nt,defaultMatchWidth:"wide",parsePatterns:pt,defaultParseWidth:"any",valueCallback:t=>t+1}),month:k({matchPatterns:Xt,defaultMatchWidth:"wide",parsePatterns:qt,defaultParseWidth:"any"}),day:k({matchPatterns:zt,defaultMatchWidth:"wide",parsePatterns:It,defaultParseWidth:"any"}),dayPeriod:k({matchPatterns:Ht,defaultMatchWidth:"any",parsePatterns:Lt,defaultParseWidth:"any"})},Z={code:"en-US",formatDistance:ft,formatLong:gt,formatRelative:yt,localize:kt,match:Qt,options:{weekStartsOn:0,firstWeekContainsDate:1}};function jt(t){const e=l(t);return it(e,ut(e))+1}function _t(t){const e=l(t),n=+S(e)-+ot(e);return Math.round(n/R)+1}function $(t,e){var m,g,P,T;const n=l(t),r=n.getFullYear(),a=x(),i=(e==null?void 0:e.firstWeekContainsDate)??((g=(m=e==null?void 0:e.locale)==null?void 0:m.options)==null?void 0:g.firstWeekContainsDate)??a.firstWeekContainsDate??((T=(P=a.locale)==null?void 0:P.options)==null?void 0:T.firstWeekContainsDate)??1,o=y(t,0);o.setFullYear(r+1,0,i),o.setHours(0,0,0,0);const c=v(o,e),d=y(t,0);d.setFullYear(r,0,i),d.setHours(0,0,0,0);const u=v(d,e);return n.getTime()>=c.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function Gt(t,e){var c,d,u,m;const n=x(),r=(e==null?void 0:e.firstWeekContainsDate)??((d=(c=e==null?void 0:e.locale)==null?void 0:c.options)==null?void 0:d.firstWeekContainsDate)??n.firstWeekContainsDate??((m=(u=n.locale)==null?void 0:u.options)==null?void 0:m.firstWeekContainsDate)??1,a=$(t,e),i=y(t,0);return i.setFullYear(a,0,r),i.setHours(0,0,0,0),v(i,e)}function Rt(t,e){const n=l(t),r=+v(n,e)-+Gt(n,e);return Math.round(r/R)+1}function s(t,e){const n=t<0?"-":"",r=Math.abs(t).toString().padStart(e,"0");return n+r}const w={y(t,e){const n=t.getFullYear(),r=n>0?n:1-n;return s(e==="yy"?r%100:r,e.length)},M(t,e){const n=t.getMonth();return e==="M"?String(n+1):s(n+1,2)},d(t,e){return s(t.getDate(),e.length)},a(t,e){const n=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(t,e){return s(t.getHours()%12||12,e.length)},H(t,e){return s(t.getHours(),e.length)},m(t,e){return s(t.getMinutes(),e.length)},s(t,e){return s(t.getSeconds(),e.length)},S(t,e){const n=e.length,r=t.getMilliseconds(),a=Math.trunc(r*Math.pow(10,n-3));return s(a,e.length)}},O={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},H={G:function(t,e,n){const r=t.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(t,e,n){if(e==="yo"){const r=t.getFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return w.y(t,e)},Y:function(t,e,n,r){const a=$(t,r),i=a>0?a:1-a;if(e==="YY"){const o=i%100;return s(o,2)}return e==="Yo"?n.ordinalNumber(i,{unit:"year"}):s(i,e.length)},R:function(t,e){const n=B(t);return s(n,e.length)},u:function(t,e){const n=t.getFullYear();return s(n,e.length)},Q:function(t,e,n){const r=Math.ceil((t.getMonth()+1)/3);switch(e){case"Q":return String(r);case"QQ":return s(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(t,e,n){const r=Math.ceil((t.getMonth()+1)/3);switch(e){case"q":return String(r);case"qq":return s(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(t,e,n){const r=t.getMonth();switch(e){case"M":case"MM":return w.M(t,e);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(t,e,n){const r=t.getMonth();switch(e){case"L":return String(r+1);case"LL":return s(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(t,e,n,r){const a=Rt(t,r);return e==="wo"?n.ordinalNumber(a,{unit:"week"}):s(a,e.length)},I:function(t,e,n){const r=_t(t);return e==="Io"?n.ordinalNumber(r,{unit:"week"}):s(r,e.length)},d:function(t,e,n){return e==="do"?n.ordinalNumber(t.getDate(),{unit:"date"}):w.d(t,e)},D:function(t,e,n){const r=jt(t);return e==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):s(r,e.length)},E:function(t,e,n){const r=t.getDay();switch(e){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(t,e,n,r){const a=t.getDay(),i=(a-r.weekStartsOn+8)%7||7;switch(e){case"e":return String(i);case"ee":return s(i,2);case"eo":return n.ordinalNumber(i,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(t,e,n,r){const a=t.getDay(),i=(a-r.weekStartsOn+8)%7||7;switch(e){case"c":return String(i);case"cc":return s(i,e.length);case"co":return n.ordinalNumber(i,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(t,e,n){const r=t.getDay(),a=r===0?7:r;switch(e){case"i":return String(a);case"ii":return s(a,e.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(t,e,n){const a=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(t,e,n){const r=t.getHours();let a;switch(r===12?a=O.noon:r===0?a=O.midnight:a=r/12>=1?"pm":"am",e){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(t,e,n){const r=t.getHours();let a;switch(r>=17?a=O.evening:r>=12?a=O.afternoon:r>=4?a=O.morning:a=O.night,e){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(t,e,n){if(e==="ho"){let r=t.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return w.h(t,e)},H:function(t,e,n){return e==="Ho"?n.ordinalNumber(t.getHours(),{unit:"hour"}):w.H(t,e)},K:function(t,e,n){const r=t.getHours()%12;return e==="Ko"?n.ordinalNumber(r,{unit:"hour"}):s(r,e.length)},k:function(t,e,n){let r=t.getHours();return r===0&&(r=24),e==="ko"?n.ordinalNumber(r,{unit:"hour"}):s(r,e.length)},m:function(t,e,n){return e==="mo"?n.ordinalNumber(t.getMinutes(),{unit:"minute"}):w.m(t,e)},s:function(t,e,n){return e==="so"?n.ordinalNumber(t.getSeconds(),{unit:"second"}):w.s(t,e)},S:function(t,e){return w.S(t,e)},X:function(t,e,n){const r=t.getTimezoneOffset();if(r===0)return"Z";switch(e){case"X":return Q(r);case"XXXX":case"XX":return b(r);case"XXXXX":case"XXX":default:return b(r,":")}},x:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"x":return Q(r);case"xxxx":case"xx":return b(r);case"xxxxx":case"xxx":default:return b(r,":")}},O:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+L(r,":");case"OOOO":default:return"GMT"+b(r,":")}},z:function(t,e,n){const r=t.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+L(r,":");case"zzzz":default:return"GMT"+b(r,":")}},t:function(t,e,n){const r=Math.trunc(t.getTime()/1e3);return s(r,e.length)},T:function(t,e,n){const r=t.getTime();return s(r,e.length)}};function L(t,e=""){const n=t>0?"-":"+",r=Math.abs(t),a=Math.trunc(r/60),i=r%60;return i===0?n+String(a):n+String(a)+e+s(i,2)}function Q(t,e){return t%60===0?(t>0?"-":"+")+s(Math.abs(t)/60,2):b(t,e)}function b(t,e=""){const n=t>0?"-":"+",r=Math.abs(t),a=s(Math.trunc(r/60),2),i=s(r%60,2);return n+a+e+i}const j=(t,e)=>{switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});case"PPPP":default:return e.date({width:"full"})}},A=(t,e)=>{switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});case"pppp":default:return e.time({width:"full"})}},Bt=(t,e)=>{const n=t.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return j(t,e);let i;switch(r){case"P":i=e.dateTime({width:"short"});break;case"PP":i=e.dateTime({width:"medium"});break;case"PPP":i=e.dateTime({width:"long"});break;case"PPPP":default:i=e.dateTime({width:"full"});break}return i.replace("{{date}}",j(r,e)).replace("{{time}}",A(a,e))},Zt={p:A,P:Bt},$t=/^D+$/,At=/^Y+$/,Ut=["D","DD","YY","YYYY"];function Vt(t){return $t.test(t)}function Jt(t){return At.test(t)}function Kt(t,e,n){const r=te(t,e,n);if(console.warn(r),Ut.includes(t))throw new RangeError(r)}function te(t,e,n){const r=t[0]==="Y"?"years":"days of the month";return`Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${e}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const ee=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,ne=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,re=/^'([^]*?)'?$/,ae=/''/g,ie=/[a-zA-Z]/;function U(t,e,n){var m,g,P,T,p,X,q,z;const r=x(),a=(n==null?void 0:n.locale)??r.locale??Z,i=(n==null?void 0:n.firstWeekContainsDate)??((g=(m=n==null?void 0:n.locale)==null?void 0:m.options)==null?void 0:g.firstWeekContainsDate)??r.firstWeekContainsDate??((T=(P=r.locale)==null?void 0:P.options)==null?void 0:T.firstWeekContainsDate)??1,o=(n==null?void 0:n.weekStartsOn)??((X=(p=n==null?void 0:n.locale)==null?void 0:p.options)==null?void 0:X.weekStartsOn)??r.weekStartsOn??((z=(q=r.locale)==null?void 0:q.options)==null?void 0:z.weekStartsOn)??0,c=l(t);if(!ct(c))throw new RangeError("Invalid time value");let d=e.match(ne).map(h=>{const f=h[0];if(f==="p"||f==="P"){const F=Zt[f];return F(h,a.formatLong)}return h}).join("").match(ee).map(h=>{if(h==="''")return{isToken:!1,value:"'"};const f=h[0];if(f==="'")return{isToken:!1,value:oe(h)};if(H[f])return{isToken:!0,value:h};if(f.match(ie))throw new RangeError("Format string contains an unescaped latin alphabet character `"+f+"`");return{isToken:!1,value:h}});a.localize.preprocessor&&(d=a.localize.preprocessor(c,d));const u={firstWeekContainsDate:i,weekStartsOn:o,locale:a};return d.map(h=>{if(!h.isToken)return h.value;const f=h.value;(!(n!=null&&n.useAdditionalWeekYearTokens)&&Jt(f)||!(n!=null&&n.useAdditionalDayOfYearTokens)&&Vt(f))&&Kt(f,e,String(t));const F=H[f[0]];return F(c,f,a.localize,u)}).join("")}function oe(t){const e=t.match(re);return e?e[1].replace(ae,"'"):t}function se(){return Object.assign({},x())}function _(t,e,n){const r=se(),a=de(t,n.timeZone,n.locale??r.locale);return"formatToParts"in a?ce(a,e):ue(a,e)}function ce(t,e){const n=t.formatToParts(e);for(let r=n.length-1;r>=0;--r)if(n[r].type==="timeZoneName")return n[r].value}function ue(t,e){const n=t.format(e).replace(/\u200E/g,""),r=/ [\w-+ ]+$/.exec(n);return r?r[0].substr(1):""}function de(t,e,n){return new Intl.DateTimeFormat(n?[n.code,"en-US"]:void 0,{timeZone:e,timeZoneName:t})}const fe=60*1e3,me={X:function(t,e,n){const r=E(n.timeZone,t);if(r===0)return"Z";switch(e){case"X":return G(r);case"XXXX":case"XX":return M(r);case"XXXXX":case"XXX":default:return M(r,":")}},x:function(t,e,n){const r=E(n.timeZone,t);switch(e){case"x":return G(r);case"xxxx":case"xx":return M(r);case"xxxxx":case"xxx":default:return M(r,":")}},O:function(t,e,n){const r=E(n.timeZone,t);switch(e){case"O":case"OO":case"OOO":return"GMT"+he(r,":");case"OOOO":default:return"GMT"+M(r,":")}},z:function(t,e,n){switch(e){case"z":case"zz":case"zzz":return _("short",t,n);case"zzzz":default:return _("long",t,n)}}};function E(t,e){const n=t?W.tzParseTimezone(t,e,!0)/fe:(e==null?void 0:e.getTimezoneOffset())??0;if(Number.isNaN(n))throw new RangeError("Invalid time zone specified: "+t);return n}function Y(t,e){const n=t<0?"-":"";let r=Math.abs(t).toString();for(;r.length<e;)r="0"+r;return n+r}function M(t,e=""){const n=t>0?"-":"+",r=Math.abs(t),a=Y(Math.floor(r/60),2),i=Y(Math.floor(r%60),2);return n+a+e+i}function G(t,e){return t%60===0?(t>0?"-":"+")+Y(Math.abs(t)/60,2):M(t,e)}function he(t,e=""){const n=t>0?"-":"+",r=Math.abs(t),a=Math.floor(r/60),i=r%60;return i===0?n+String(a):n+String(a)+e+Y(i,2)}const le=/([xXOz]+)|''|'(''|[^'])+('|$)/g;function ge(t,e,n={}){e=String(e);const r=e.match(le);if(r){const a=W.toDate(n.originalDate||t,n);e=r.reduce(function(i,o){if(o[0]==="'")return i;const c=i.indexOf(o),d=i[c-1]==="'",u=i.replace(o,"'"+me[o[0]](a,o,n)+"'");return d?u.substring(0,c-1)+u.substring(c+1):u},e)}return U(t,e,n)}function V(t,e,n){t=W.toDate(t,n);const r=W.tzParseTimezone(e,t,!0),a=new Date(t.getTime()-r),i=new Date(0);return i.setFullYear(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate()),i.setHours(a.getUTCHours(),a.getUTCMinutes(),a.getUTCSeconds(),a.getUTCMilliseconds()),i}function we(t,e,n,r){return r={...r,timeZone:e,originalDate:t},ge(V(t,e,{timeZone:r.timeZone}),n,r)}exports.constructFrom=y;exports.enUS=Z;exports.format=U;exports.formatInTimeZone=we;exports.getDefaultOptions=x;exports.getTimezoneOffsetInMilliseconds=N;exports.isNumericCanonicalFormat=J;exports.millisecondsInHour=et;exports.millisecondsInMinute=tt;exports.minutesInDay=rt;exports.minutesInMonth=nt;exports.toDate=l;exports.toZonedTime=V;
@@ -1,4 +1,4 @@
1
- "use strict";var It=Object.defineProperty;var Tt=(e,r,t)=>r in e?It(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var R=(e,r,t)=>Tt(e,typeof r!="symbol"?r+"":r,t);const $=require("./pivot-result-lifecycle-CcGt_29N.cjs"),ye=require("../value-format-preferences/index.cjs"),q=require("./validators-DcshgK7w.cjs");require("./analyze-result-contract-OgPk-zGu.cjs");const L=require("./saved-temporal-bucket-format-DNMtD77o.cjs"),M=require("./pivot-result-identity-DRUlTWUq.cjs"),Se=require("./temporal-bucket-contract-BD862TAa.cjs"),W=require("./temporal-bucket-9Wz9Ds6H.cjs"),oe=require("./temporal-bucket-authoring-DSpzgXHc.cjs"),xe=require("./raw-temporal-contract-D8YuxTAg.cjs"),ce=require("./canonical-result-keys-Cb96edol.cjs"),Ae=`import pandas as pd
1
+ "use strict";var It=Object.defineProperty;var Tt=(e,r,t)=>r in e?It(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var R=(e,r,t)=>Tt(e,typeof r!="symbol"?r+"":r,t);const $=require("./pivot-result-lifecycle-D_bRCqaB.cjs"),ye=require("../value-format-preferences/index.cjs"),q=require("./validators-DqIM0B3C.cjs");require("./analyze-result-contract-BX_nQmPN.cjs");const L=require("./card-config-utils-D3Xuu0ub.cjs"),M=require("./pivot-result-identity-BVnhG2rR.cjs"),Se=require("./temporal-bucket-contract-Cp-usD9Z.cjs"),W=require("./metric-comparison-x0lipytf.cjs"),oe=require("./temporal-bucket-authoring-DueSgLJU.cjs"),xe=require("./raw-temporal-contract-vnNwLy9R.cjs"),ce=require("./canonical-result-keys-Cb96edol.cjs"),Ae=`import pandas as pd
2
2
  df = pd.DataFrame(data) # 'data' contains the query result
3
3
  result = df.to_dict('records') # must return 'result' as [dict] type
4
4
  `;function Ct(e){return{databaseName:(e==null?void 0:e.lastSelectedDatabase)||"",schemaName:(e==null?void 0:e.lastSelectedSchema)||"",tableName:(e==null?void 0:e.lastSelectedTable)||"",datamodelId:(e==null?void 0:e.datamodelId)||""}}function U(e){return e===Ae?"":e}function Y(e,r=e.config){return oe.resolveTemporalResultOwner({hasExecutableConfig:L.hasValidCardConfig(r),sql:e.sql,normalizedPython:U(e.python||"")})}class Be extends Error{constructor(t){super(`ambiguous_temporal_grain: Temporal field "${t}" has saved presentation but no valid grouping grain. Reconfigure and resave the field.`);R(this,"code","ambiguous_temporal_grain");R(this,"fieldId");this.name="AmbiguousGroupedTemporalGrainError",this.fieldId=t}}function wt(e){return L.hasSavedTemporalBucketPresentation(e)||e.semanticTemporalPresentation!=null}function Pe(e){if(!e.id||!["date","datetime"].includes(q.normalizeAnalyticsCatalogDataType(e.dataType)))return;if(q.isSemaphorTimeGrain(e.granularity))return e;if(!wt(e))return;if(!L.readSavedTemporalBucketFormat({fieldId:e.id,dataType:e.dataType,granularity:e.granularity,format:e.format,dateFormat:e.dateFormat,customFormat:e.customFormat}).ok)throw new Be(e.id);return{...e,granularity:"day"}}function he(e){const r=e.cardConfig??e.card.config;if(!r||!e.supportsCardType(e.card.type)||oe.resolveTemporalResultOwner({hasExecutableConfig:L.hasValidCardConfig(r),sql:e.card.sql,normalizedPython:U(e.card.python||"")})!=="config")return;const t=[...(r.groupByColumns||[]).map(n=>({...n,role:"groupby"})),...e.card.type==="pivotTable"?(r.pivotByColumns||[]).map(n=>({...n,role:"pivotby"})):[]];return{cardType:e.card.type,cardConfig:r,fields:t.flatMap(n=>{const o=Pe(n);return o?[o]:[]})}}function Et(e){return he({...e,supportsCardType:r=>r==="table"})}function $t(e){return he({...e,supportsCardType:oe.isSemaphorCartesianChartType})}function De(e){return he({...e,supportsCardType:r=>r!=="detailTable"&&oe.supportsCanonicalDashboardTemporalResult(r)})}const ke=new WeakMap;function Me(e){const r=ke.get(e);if(r)return r;const t=$.parseCanonicalPivotResultTransport(e);return ke.set(e,t),t}function G(e,r){const t=e??[],n=r??[];return t.length===n.length&&t.every((o,a)=>o===n[a])}function Oe(e,r){const t=$.derivePivotResultContractExpectations({groupByFields:r.groupByColumns,metricFields:r.metricColumns,pivotByFields:r.pivotByColumns,detailFields:r.detailColumns});return G(e.expectedRoleFieldIds.groupby,t.expectedRoleFieldIds.groupby)&&G(e.expectedRoleFieldIds.metric,t.expectedRoleFieldIds.metric)&&G(e.expectedRoleFieldIds.pivotby,t.expectedRoleFieldIds.pivotby)&&G(e.expectedRoleFieldIds.detail,t.expectedRoleFieldIds.detail)&&G(e.expectedMetricAliases,t.expectedMetricAliases)}class St extends Error{constructor(t){super(`missing_resolved_temporal_format: Saved presentation is missing temporal field "${t.fieldId}" for card "${t.cardId}". Resave the report or Briefing to capture the current dashboard presentation.`);R(this,"code","missing_resolved_temporal_format");R(this,"deliveryBlocking",!0);R(this,"dashboardId");R(this,"cardId");R(this,"fieldId");this.name="MissingResolvedTemporalPresentationError",this.dashboardId=t.dashboardId,this.cardId=t.cardId,this.fieldId=t.fieldId}}class de extends Error{constructor(t){super(`missing_temporal_bucket_metadata: Result column "${t.columnKey}" is missing temporal bucket metadata for field "${t.fieldId}" on card "${t.cardId}". Refresh the report and resave the delivery if the problem persists.`);R(this,"code","missing_temporal_bucket_metadata");R(this,"deliveryBlocking",!0);R(this,"cardId");R(this,"fieldId");R(this,"columnKey");this.name="MissingTemporalResultMetadataError",this.cardId=t.cardId,this.fieldId=t.fieldId,this.columnKey=t.columnKey}}class K extends Error{constructor(t,n,o){super(`${t}: ${n}`);R(this,"deliveryBlocking",!0);this.code=t,this.context=o,this.name="DashboardTemporalBoundaryError"}}function Ke(e,r){return`${r}:${e}`}function Ne(e){var r,t;return(t=(r=e.presentation)==null?void 0:r.byFieldRole)==null?void 0:t.get(Ke(e.fieldId,e.role))}function kt(e){var t;if((((t=e.cardConfig.metricColumns)==null?void 0:t.length)||0)>0||e.binding.role!=="metric")return!1;const r=e.binding.outputKey||e.binding.rawKey;return e.columns.some(n=>{var o;return n.role==="measure"&&n.dataType==="number"&&(n.key===r||((o=n.pivotIdentity)==null?void 0:o.metricId)===q.SEMAPHOR_GENERATED_COUNT_METRIC_ID)})}function _t(e,r){return!r||r.byColumnKey.size===0?e.map(t=>({...t})):e.map(t=>{const n={...t};return r.byColumnKey.forEach((o,a)=>{Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=ge({value:t[a],presentation:o}))}),n})}function Ft(e){var u;if(!e.result||typeof e.result!="object")return!1;const r=e.result;if(e.expectedResultOwner!==void 0&&r.resultOwner!==e.expectedResultOwner)return!1;const t=e.activation;if(!t||t.cardType!=="pivotTable"&&t.fields.length===0)return!0;const n=Array.isArray(r.records)?r.records.length:void 0,o=(t.cardConfig.pivotByColumns||[]).map(d=>d.id);if(t.cardType==="pivotTable")try{const d=Me(r);if(!Oe(d.pivotResultContract,t.cardConfig))return!1;if(d.pivotResultState==="loaded_empty")return!0;const v=d.columns.filter(T=>d.pivotResultContract.columnKinds[T.key]==="pivot_metric"),h=v.filter(T=>{var g;return(((g=T.pivotIdentity)==null?void 0:g.members.length)??0)>0}),b=v.length>0&&v.every(T=>{var g;return((g=T.pivotIdentity)==null?void 0:g.members.length)===0&&M.isPivotEmptyTupleAllowed({expectedPivotFieldIds:o,classification:d.pivotResultContract.columnClassifications[T.key]})});return t.fields.every(T=>{var k;const g=M.resolveQueryColumnKeyMapEntry(d.columnKeyMap,T.id,T.role);if(!g)return!1;if(g.role==="pivotby"){const F=h.flatMap(B=>{var j;return((j=B.pivotIdentity)==null?void 0:j.members.filter(bt=>bt.fieldId===T.id))??[]});return F.length===0?b:F.every(B=>{var j;return((j=B.temporalBucket)==null?void 0:j.granularity)===T.granularity})}const C=d.columns.find(F=>F.key===(g.outputKey||g.rawKey));return((k=C==null?void 0:C.temporalBucket)==null?void 0:k.granularity)===T.granularity})}catch(d){if(d instanceof $.PivotResultLifecycleError)return!1;throw d}if(n===0)return!0;const a=r.columnKeyMap;if(!a||!a.byRole||typeof a.byRole!="object"||Array.isArray(a.byRole))return!1;const i=[...(t.cardConfig.groupByColumns||[]).map(d=>({field:d,role:"groupby"})),...(t.cardConfig.metricColumns||[]).map(d=>({field:d,role:"metric"})),...(t.cardConfig.pivotByColumns||[]).map(d=>({field:d,role:"pivotby"})),...(t.cardConfig.detailColumns||[]).map(d=>({field:d,role:"detail"}))],c=new Set(i.map(({field:d,role:v})=>`${v}:${d.id}`)),m=new Map((r.columns||[]).map(d=>[d.key,d])),l=M.resolveQueryColumnKeyMapEntry(a,q.SEMAPHOR_GENERATED_COUNT_METRIC_ID,"metric");if(l){if(!kt({cardConfig:t.cardConfig,binding:l,columns:r.columns||[]}))return!1;c.add(`metric:${q.SEMAPHOR_GENERATED_COUNT_METRIC_ID}`)}const s=Object.entries(a.byRole).flatMap(([d,v])=>Object.keys(v||{}).map(h=>`${d}:${h}`));if(s.length!==c.size||s.some(d=>!c.has(d))||i.some(({field:d,role:v})=>!M.resolveQueryColumnKeyMapEntry(a,d.id,v)))return!1;try{M.requirePivotResultColumnIdentities((r.columns||[]).map(d=>({key:d.key,pivotIdentity:d.pivotIdentity})),{expectedPivotFieldIds:o,columnClassifications:r.columnMetadata})}catch(d){if(d instanceof M.PivotResultIdentityError)return!1;throw d}const f=(r.columns||[]).filter(d=>{const v=d.pivotIdentity;return!!(v&&v.members.length>0)});return n!==0&&((u=t.cardConfig.pivotByColumns)!=null&&u.length)&&f.length===0?!1:t.fields.every(d=>{var b;const v=M.resolveQueryColumnKeyMapEntry(a,d.id,d.role);if(!v)return!1;if(v.role==="pivotby"){const g=f.flatMap(C=>{var k;return((k=C.pivotIdentity)==null?void 0:k.members)??[]}).filter(C=>C.fieldId===d.id);return f.length===0?n===0:g.length>0&&g.every(C=>{var k;return((k=C.temporalBucket)==null?void 0:k.granularity)===d.granularity})}const h=m.get(v.outputKey||v.rawKey);return((b=h==null?void 0:h.temporalBucket)==null?void 0:b.granularity)===d.granularity})}function te(e,r){const t=e.semanticTemporalPresentation,n=r==="card"?{format:e.format,dateFormat:e.dateFormat}:{format:t==null?void 0:t.format};if(!L.hasSavedTemporalBucketPresentation(n))return;const o=L.readSavedTemporalBucketFormat({fieldId:e.id,dataType:e.dataType,granularity:r==="semantic"?t==null?void 0:t.granularity:e.granularity,...r==="card"?{format:e.format,dateFormat:e.dateFormat,customFormat:e.customFormat}:{format:t==null?void 0:t.format}});if(!o.ok)throw new Error(o.error.code);return o.format}function Rt(e,r,t=ye.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES){const n=te(e,"card"),o=te(e,"semantic"),a=e.semanticTemporalPresentation;return W.resolveTemporalBucketPresentation({metadata:r,...n?{cardFormat:n}:{},...o&&a?{semanticFormat:{granularity:a.granularity,format:o}}:{},locale:t.locale,styles:{dateStyle:t.dateStyle,dateTime:t.dateTime}})}function ze(e,r=W.DEFAULT_RESOLVED_TEMPORAL_STYLE_SET,t="en-US"){var i;const n=te(e,"card"),o=((i=e.semanticTemporalPresentation)==null?void 0:i.granularity)===e.granularity?te(e,"semantic"):void 0,a=n&&n.presentation.mode!=="auto"?n:o&&o.presentation.mode!=="auto"?o:{presentation:{mode:"auto"}};return a.presentation.mode==="auto"?{type:"temporal_bucket",locale:t,presentation:{mode:"auto",styles:r}}:{type:"temporal_bucket",locale:t,presentation:a.presentation}}function xt(e){const r=e.activation;if(!r)return{byColumnKey:new Map,byFieldId:new Map,byFieldRole:new Map};if(e.resultRowCount===0)return{byColumnKey:new Map,byFieldId:new Map,byFieldRole:new Map};const t=new Map((e.columns||[]).map(l=>[l.key,l])),n=new Map,o=new Map,a=new Map,i=r.fields.reduce((l,s)=>(l.set(s.id,(l.get(s.id)||0)+1),l),new Map),c=(l,s)=>{a.set(Ke(l.id,l.role),s),i.get(l.id)===1&&o.set(l.id,s)},m=(l,s,f)=>{if(s.granularity!==l.granularity)throw new K("invalid_temporal_bucket_metadata",`Result identity "${f}" declares ${s.granularity} buckets for active ${l.granularity} field "${l.id}".`,{cardId:e.card.id,fieldId:l.id,columnKey:f});const u=e.executionSnapshot&&e.dashboardId?$.findResolvedTemporalBucketFormat({snapshot:e.executionSnapshot,scope:{dashboardId:e.dashboardId,cardId:e.card.id,...e.attachmentIndex!==void 0?{attachmentIndex:e.attachmentIndex}:{}},target:{kind:"field",fieldId:l.id,role:l.role}}):void 0;if(e.executionSnapshot&&!u)throw new St({dashboardId:e.dashboardId,cardId:e.card.id,fieldId:l.id});return{columnKey:f,fieldId:l.id,role:l.role,metadata:s,resolved:u?W.resolveTemporalBucketPresentation({metadata:s,cardFormat:u,locale:u.locale,...u.presentation.mode==="auto"?{styles:u.presentation.styles}:{}}):Rt(l,s,e.valueFormatPreferences??ye.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES)}};for(const l of r.fields){const s=M.resolveQueryColumnKeyMapEntry(e.columnKeyMap,l.id,l.role);if(!s){if(e.columns===void 0&&e.columnKeyMap===void 0&&(e.resultRowCount===void 0||e.resultRowCount===0))continue;throw new K("missing_temporal_column_binding",`Activated temporal field "${l.id}" has no authoritative result-column binding.`,{cardId:e.card.id,fieldId:l.id,columnKey:l.name})}if(s.role==="pivotby"){const h=(e.columns||[]).filter(k=>k.pivotIdentity!==void 0),b=h.flatMap(k=>{var F;return(((F=k.pivotIdentity)==null?void 0:F.members)||[]).filter(B=>B.fieldId===l.id).map(B=>({column:k,member:B}))});if(b.length===0){if(h.length===0&&(e.card.type!=="pivotTable"||e.resultRowCount===0))continue;throw new de({cardId:e.card.id,fieldId:l.id,columnKey:s.outputKey||s.rawKey})}const T=b[0];if(!T.member.temporalBucket)throw new de({cardId:e.card.id,fieldId:l.id,columnKey:T.column.key});const g=Se.validateTemporalBucketMetadata(T.member.temporalBucket);if(!g.ok||!g.value)throw new K("invalid_temporal_bucket_metadata",g.ok?`Pivot result column "${T.column.key}" has no validated temporal bucket metadata.`:g.error.message,{cardId:e.card.id,fieldId:l.id,columnKey:T.column.key});const C=m(l,g.value,T.column.key);for(const{column:k,member:F}of b)if(!F.temporalBucket||JSON.stringify(F.temporalBucket)!==JSON.stringify(T.member.temporalBucket))throw new K("invalid_temporal_bucket_metadata",`Pivot result column "${k.key}" has contradictory bucket metadata for field "${l.id}".`,{cardId:e.card.id,fieldId:l.id,columnKey:k.key});c(l,C);continue}const f=s.outputKey||s.rawKey,u=t.get(f);if(!(u!=null&&u.temporalBucket))throw new de({cardId:e.card.id,fieldId:l.id,columnKey:f});const d=Se.validateTemporalBucketResultColumn(u,{metadataRequired:!0});if(!d.ok||!d.value)throw new K("invalid_temporal_bucket_metadata",d.ok?`Result column "${f}" has no validated temporal bucket metadata.`:d.error.message,{cardId:e.card.id,fieldId:l.id,columnKey:f});const v=m(l,d.value,f);n.set(f,v),c(l,v)}return{byColumnKey:n,byFieldId:o,byFieldRole:a}}function At(e){var t,n;const r=e.role?Ne({presentation:e.presentation,fieldId:e.fieldId,role:e.role}):(n=(t=e.presentation)==null?void 0:t.byFieldId)==null?void 0:n.get(e.fieldId);return r?ge({value:e.value,presentation:r}):e.value===null||e.value===void 0?"":String(e.value)}function ge(e){if(e.value===null||e.value===void 0)return"(Blank)";if(typeof e.value!="string")throw new K("invalid_temporal_bucket_value",`Canonical temporal column "${e.presentation.columnKey}" must contain a string or null.`,{fieldId:e.presentation.fieldId,columnKey:e.presentation.columnKey});try{return W.formatTemporalBucket({value:e.value,metadata:e.presentation.metadata,format:e.presentation.resolved.format})}catch(r){throw r instanceof W.TemporalBucketContractError?new K(r.code,r.message,{fieldId:e.presentation.fieldId,columnKey:e.presentation.columnKey}):r}}class _ extends Error{constructor(r,t,n){super(`${r}: ${t}`),this.code=r,this.context=n,Object.setPrototypeOf(this,_.prototype),this.name="RawTemporalPresentationBoundaryError"}}function Le(){return{type:"raw_temporal",presentation:{mode:"auto"}}}function Bt(e){if(e.locale||e.relative||e.timezone&&e.timezone!=="auto"||e.sourceTimezone&&e.sourceTimezone!=="auto"||e.prefix||e.suffix)throw new _("invalid_raw_temporal_format","Activated raw temporal presentation contains unsupported locale, relative-time, timezone, prefix, or suffix settings.")}function Ve(e){const r=e.format;if((r==null?void 0:r.type)==="date"&&(Bt(r),r.pattern))return{type:"raw_temporal",presentation:{mode:"pattern",dialect:"semaphor_tokens",pattern:r.pattern}};if(r)throw new _("invalid_raw_temporal_format",`Raw temporal detail field "${e.id}" has an incompatible authored format.`,{fieldId:e.id});if(e.dateFormat==="custom"){if(!e.customFormat)throw new _("invalid_raw_temporal_format",`Raw temporal detail field "${e.id}" selects a custom pattern but has no customFormat.`,{fieldId:e.id});return{type:"raw_temporal",presentation:{mode:"pattern",dialect:"semaphor_tokens",pattern:e.customFormat}}}return e.dateFormat?{type:"raw_temporal",presentation:{mode:"pattern",dialect:"semaphor_tokens",pattern:e.dateFormat}}:Le()}function ae(e){var i;if(e!=null&&e.useRelativeTime)return;if(!e)return Le();if(e.useCustomFormat&&!((i=e.customFormat)!=null&&i.trim()))throw new _("invalid_raw_temporal_format","Declared SQL temporal presentation selects a custom pattern but has no customFormat.",{reason:"missing_declared_sql_custom_date_format"});const r=e.useCustomFormat&&e.customFormat?e.customFormat:e.format,t=e.timezone,n=e.sourceTimezone,o=t&&t!=="auto"?{timezone:t}:void 0,a={sourceTimezone:n&&n!=="auto"?n:"UTC"};return r?{type:"raw_temporal",...o,...a,presentation:{mode:"pattern",dialect:"date_fns",pattern:r}}:{type:"raw_temporal",...o,...a,presentation:{mode:"auto"}}}function Pt(e){return e==="instant"?"yyyy-MM-dd'T'HH:mm:ssXXX":e==="wall_datetime"?"yyyy-MM-dd'T'HH:mm:ss":"yyyy-MM-dd"}function Dt(e){$.validateRawTemporalPattern({dialect:"date_fns",pattern:e.pattern,valueKind:e.valueKind})}function Mt(e){const r=ae(e.settings);if(!r)throw new _("invalid_raw_temporal_format","Relative-time SQL presentation does not have an absolute date preview.");const t=e.valueKind??(r.presentation.mode==="pattern"?"instant":"date"),n={kind:"raw_temporal",valueKind:t},o=e.value??(t==="date"?"2023-05-15":t==="wall_datetime"?"2023-05-15T14:30:45":"2023-05-15T14:30:45Z"),a=$.prepareRawTemporalFormatter({metadata:n,format:$.resolveRawTemporalFormat({format:r,preferences:e.preferences,calendar:{tz:e.calendarTimezone}})})(o);if(!a.ok)throw new _("invalid_raw_temporal_format",a.diagnostic.message);return a.text}function Ot(e){try{return{ok:!0,text:Mt(e)}}catch(r){return{ok:!1,message:r instanceof Error?r.message:"Invalid SQL temporal presentation."}}}function ve(e){var t;const r=e.effectiveCardConfig??e.card.config;return Y(e.card,r)==="freeform"&&!!((t=e.card.sql)!=null&&t.trim())&&!U(e.card.python||"").trim()}function qe(e){var r,t;return e.type!=="table"&&e.type!=="detailTable"||!ve({card:e})?!1:Object.values(((t=(r=e.preferences)==null?void 0:r.tablePrefs)==null?void 0:t.columnSettingsMap)||{}).some(n=>{var o,a,i;return n.type==="date"&&((o=n.dateFormat)==null?void 0:o.useRelativeTime)!==!0&&((a=n.dateFormat)==null?void 0:a.useCustomFormat)===!0&&!((i=n.dateFormat.customFormat)!=null&&i.trim())})}function Kt(e){var t,n,o;if(!qe(e))return e;const r=((n=(t=e.preferences)==null?void 0:t.tablePrefs)==null?void 0:n.columnSettingsMap)||{};return{...e,preferences:{...e.preferences,tablePrefs:{...(o=e.preferences)==null?void 0:o.tablePrefs,columnSettingsMap:Object.fromEntries(Object.entries(r).map(([a,i])=>{var c,m,l;return[a,i.type==="date"&&((c=i.dateFormat)==null?void 0:c.useRelativeTime)!==!0&&((m=i.dateFormat)==null?void 0:m.useCustomFormat)===!0&&!((l=i.dateFormat.customFormat)!=null&&l.trim())?{...i,dateFormat:{...i.dateFormat,format:"",useCustomFormat:!1,customFormat:""}}:i]}))}}}}function Nt(){return{activatedColumnKeys:new Set,byColumnKey:new Map,byFieldId:new Map}}function fe(e,r){return e===void 0?{kind:"invalid",error:r}:{kind:"invalid",error:e instanceof _?e:e instanceof $.RawTemporalFormatContractError?new _(e.code,e.message,r.context):new _(r.code,e instanceof Error?e.message:r.message,r.context)}}function Ue(e){var o;if(e.cardType!=="detailTable"||e.resultOwner!=="config")return{kind:"inactive"};if(!e.result)return{kind:"loading"};const{records:r,columns:t,columnKeyMap:n}=e.result;if(!Array.isArray(r)||!Array.isArray(t)||!n)return fe(void 0,new _("missing_raw_temporal_result_contract","Activated raw temporal detail results require records, columns, and columnKeyMap atomically."));try{const a=t.filter(s=>s.rawTemporal);if(a.length===0)return{kind:"inactive"};const i=new Map((((o=e.effectiveCardConfig)==null?void 0:o.detailColumns)||[]).map(s=>[s.id,s])),c=new Map,m=new Map;for(const s of a){const f=Array.from(i).flatMap(([C,k])=>{const F=M.resolveQueryColumnKeyMapEntry(n,C,"detail");return F&&F.role==="detail"&&(F.outputKey??F.rawKey)===s.key?[{field:k,binding:F}]:[]}),u=f.length===1?f[0]:null;if(!u||typeof u.binding.rawKey!="string"||u.binding.rawKey.trim().length===0||u.binding.outputKey!==void 0&&(typeof u.binding.outputKey!="string"||u.binding.outputKey.trim().length===0))throw new _("missing_raw_temporal_column_binding",`Raw temporal result column "${s.key}" does not have one valid exact detail result binding.`,{columnKey:s.key});const{field:d,binding:v}=u,h=v.outputKey??v.rawKey,b=xe.validateRawTemporalResultColumn(s,{metadataRequired:!0});if(!b)throw new _("invalid_raw_temporal_metadata",`Raw temporal result column "${h}" has no metadata.`,{fieldId:d.id,columnKey:h});const T=$.resolveRawTemporalFormat({format:Ve(d),preferences:e.preferences,calendar:e.calendar}),g={fieldId:d.id,columnKey:h,metadata:b,format:T,formatValue:$.prepareRawTemporalFormatter({metadata:b,format:T})};for(let C=0;C<r.length;C+=1)if(!Object.prototype.hasOwnProperty.call(r[C],h)||r[C][h]===void 0)throw new _("missing_raw_temporal_result_contract",`Raw temporal result row ${C} is missing column "${h}".`,{fieldId:d.id,columnKey:h});c.set(h,g),m.set(d.id,g)}const l={activatedColumnKeys:new Set(c.keys()),byColumnKey:c,byFieldId:m};return r.length===0?{kind:"loaded_empty",presentation:l}:{kind:"loaded_valid",presentation:l}}catch(a){return fe(a,new _("invalid_raw_temporal_metadata","Activated raw temporal result metadata is invalid."))}}function je(e){var n,o,a;const r=e.effectiveCardConfig??e.card.config,t=Y(e.card,r);if(e.card.type==="detailTable"&&t==="config"){const i=!!((n=e.columns)!=null&&n.some(c=>c.rawTemporal));return i&&e.records!==void 0&&!e.columnKeyMap?{kind:"invalid",error:new _("missing_raw_temporal_result_contract","Activated raw temporal detail results require records, columns, and columnKeyMap atomically.")}:e.records!==void 0&&!i?{kind:"inactive"}:_e(Ue({cardType:e.card.type,resultOwner:t,effectiveCardConfig:r,result:e.records===void 0||!e.columns||!e.columnKeyMap?void 0:{records:e.records,columns:e.columns,columnKeyMap:e.columnKeyMap},preferences:e.preferences,calendar:e.calendar}),e)}return _e(Lt({resultOwner:t,sql:e.card.sql,normalizedPython:U(e.card.python||""),records:e.records,columns:e.columns,columnSettings:(a=(o=e.card.preferences)==null?void 0:o.tablePrefs)==null?void 0:a.columnSettingsMap,preferences:e.preferences,calendar:e.calendar}),e)}function zt(e){var n,o,a;const r=e.effectiveCardConfig??e.card.config,t=Y(e.card,r);return e.card.type==="detailTable"&&t==="config"?!!((n=e.columns)!=null&&n.some(i=>i.rawTemporal)):ve(e)?Object.values(((a=(o=e.card.preferences)==null?void 0:o.tablePrefs)==null?void 0:a.columnSettingsMap)||{}).some(i=>{var c;return i.type==="date"&&!((c=i.dateFormat)!=null&&c.useRelativeTime)}):!1}function _e(e,r){if(!r.executionSnapshot||e.kind==="inactive"||e.kind==="loading"||e.kind==="invalid")return e;if(!r.dashboardId)return{kind:"invalid",error:new _("missing_raw_temporal_result_contract","A dashboard ID is required to resolve the captured raw temporal presentation.")};const t=new Map,n=new Map;for(const o of e.presentation.activatedColumnKeys){const a=$.findResolvedRawTemporalFormat({snapshot:r.executionSnapshot,scope:{dashboardId:r.dashboardId,cardId:r.card.id,...r.attachmentIndex!==void 0?{attachmentIndex:r.attachmentIndex}:{}},target:{kind:"column",columnKey:o}});if(!a)return{kind:"invalid",error:new $.MissingResolvedRawTemporalFormatError(o)};const i=e.presentation.byColumnKey.get(o);if(!i)continue;const c={...i,format:a,formatValue:$.prepareRawTemporalFormatter({metadata:i.metadata,format:a})};t.set(i.columnKey,c),i.fieldId&&n.set(i.fieldId,c)}return{...e,presentation:{activatedColumnKeys:e.presentation.activatedColumnKeys,byColumnKey:t,byFieldId:n}}}function Lt(e){var t,n;if(e.resultOwner!=="freeform"||!((t=e.sql)!=null&&t.trim())||(n=e.normalizedPython)!=null&&n.trim())return{kind:"inactive"};const r=Object.entries(e.columnSettings||{}).filter(([,o])=>{var a;return o.type==="date"&&!((a=o.dateFormat)!=null&&a.useRelativeTime)});if(r.length===0)return{kind:"inactive"};if(!e.records)return{kind:"loading"};try{const o=new Map,a=new Set(r.map(([l])=>l)),i=new Map,c=[...e.columns||[]];for(const[l,s]of r){const f=ae(s.dateFormat);if(!f)continue;const u=$.classifyDeclaredSqlTemporalColumn({columnKey:l,values:e.records.map(b=>{if(!Object.prototype.hasOwnProperty.call(b,l))throw new _("missing_raw_temporal_result_contract",`Declared SQL temporal column "${l}" is absent from a physical result row.`,{columnKey:l});const T=b[l];return T===null||typeof T=="string"?T:String(T)})});if(i.set(l,u),u.status!=="classified")continue;let d=c.findIndex(b=>b.key===l);if(e.columns&&d<0)throw new _("missing_raw_temporal_result_contract",`Classified SQL temporal column "${l}" is absent from result columns.`,{columnKey:l});d<0&&(d=c.length,c.push({key:l,name:l,label:l,role:"dimension",dataType:"string"}));const v={...c[d],role:"date",dataType:u.metadata.valueKind==="date"?"date":"datetime",rawTemporal:u.metadata};xe.validateRawTemporalResultColumn(v,{metadataRequired:!0}),c[d]=v;const h=$.resolveRawTemporalFormat({format:f,preferences:e.preferences,calendar:e.calendar});o.set(l,{columnKey:l,metadata:u.metadata,format:h,formatValue:$.prepareRawTemporalFormatter({metadata:u.metadata,format:h})})}const m={...Nt(),activatedColumnKeys:a,byColumnKey:o};return e.records.length===0?{kind:"loaded_empty",presentation:m,adaptedColumns:c,sqlClassifications:i}:{kind:"loaded_valid",presentation:m,adaptedColumns:c,sqlClassifications:i}}catch(o){return fe(o,new _("invalid_raw_temporal_format","Declared SQL raw temporal presentation is invalid."))}}function Vt(e){if(e.value!==null&&typeof e.value!="string")return{value:e.value,label:String(e.value),result:{ok:!1,text:String(e.value),diagnostic:{code:"invalid_raw_temporal_value",message:`Raw temporal column "${e.presentation.columnKey}" must contain a string or null.`}}};const r=e.presentation.formatValue(e.value);return{value:e.value,label:r.text,result:r}}function qt(e){if(!e.result||typeof e.result!="object")return!1;const r=e.result;if(e.expectedResultOwner!==void 0&&r.resultOwner!==e.expectedResultOwner||!Array.isArray(r.records))return!1;const t=je({card:e.card,effectiveCardConfig:e.effectiveCardConfig,records:r.records,columns:r.columns,columnKeyMap:r.columnKeyMap,preferences:ye.DEFAULT_RESOLVED_VALUE_FORMAT_PREFERENCES,calendar:{tz:"UTC"}});return t.kind==="inactive"||t.kind==="loaded_empty"||t.kind==="loaded_valid"}function Fe(e){return!e||typeof e!="object"?!1:Array.isArray(e.cards)}function Ge(e){if(!e)return null;if(typeof e=="string")try{const r=JSON.parse(e);return Fe(r)?r:null}catch{return null}return Fe(e)?e:null}function be(e){var r;return(r=e==null?void 0:e.cards)!=null&&r.length?e.activeCardId&&e.cards.find(t=>t.id===e.activeCardId)||e.cards[0]:null}function Ut(e){var t;const r=(e==null?void 0:e.frameObject)??((t=e==null?void 0:e.visual)==null?void 0:t.frameObject);return be(Ge(r))}function ie(e){if(!(e!=null&&e.expectedType))return"table";const r=Array.isArray(e.expectedType)?e.expectedType[0]:e.expectedType;return Gt(r)?r:"table"}const jt=["bar","horizontalBar","line","area","stackedArea","combo","pie","doughnut","radar","polarArea","bubble","scatter","stackedBar","stackedLine","table","pivotTable","aggregateTable","detailTable","tableBuilder","kpi","pyramid","tornado","range","text","map","funnel","bullet","heatmap","treemap","custom"];function Gt(e){return jt.includes(e)}function Q(e){const r=e.position;if(typeof r=="number")return r;if(typeof r=="string"){const t=r.match(/\d+/);if(t){const n=Number(t[0]);if(!Number.isNaN(n))return n}}return Number.POSITIVE_INFINITY}function H(e){if(typeof e=="number")return{kind:"number",start:e,end:e};if(typeof e=="string"){const r=e.match(/^(\d+)$/);if(r){const o=Number(r[1]);return{kind:"number",start:o,end:o}}const t=e.match(/^(\d+)-(\d+)$/);if(t){const o=Number(t[1]),a=Number(t[2]);return{kind:"range",start:o,end:a}}const n=e.match(/^(\d+)\+$/);if(n)return{kind:"dynamic",start:Number(n[1]),end:Number.POSITIVE_INFINITY}}return null}function He(e){return!e||e.length===0?void 0:[...e].sort((t,n)=>Q(t)-Q(n))[0]}function Ie(e,r){if(!e||e.length===0)return;const t=[],n=[],o=[];e.forEach(s=>{const f=H(s.position);f&&(f.kind==="number"?t.push(s):f.kind==="range"?n.push(s):f.kind==="dynamic"&&o.push(s))});const a=t.find(s=>{const f=H(s.position);return(f==null?void 0:f.kind)==="number"&&f.start===r});if(a)return a;const c=n.sort((s,f)=>Q(s)-Q(f)).find(s=>{const f=H(s.position);return(f==null?void 0:f.kind)==="range"&&r>=f.start&&r<=f.end});if(c)return c;const l=o.map(s=>({slot:s,parsed:H(s.position)})).filter(s=>{var f;return((f=s.parsed)==null?void 0:f.kind)==="dynamic"}).sort((s,f)=>{var u,d;return(((u=s.parsed)==null?void 0:u.start)??0)-(((d=f.parsed)==null?void 0:d.start)??0)}).filter(s=>{var f;return r>=(((f=s.parsed)==null?void 0:f.start)??0)}).sort((s,f)=>{var u,d;return(((u=f.parsed)==null?void 0:u.start)??0)-(((d=s.parsed)==null?void 0:d.start)??0)})[0];return l==null?void 0:l.slot}function Ht(e,r){const t=Ie(e,r);if(t)return ie(t)}function We(e,r){var n;const t=(n=e==null?void 0:e.customCardPreferences)==null?void 0:n.slotIndex;return typeof t=="number"?t:r}function pe(e,r){var t;if(!((t=e==null?void 0:e.customCardPreferences)!=null&&t.url))return!1;if(e.type==="custom"||e.customCardPreferences.visualType==="multiple"||e.customCardPreferences.dataInputCardIds||(e.customCardPreferences.minInputs||0)>1||(e.customCardPreferences.maxInputs||0)>1)return!0;if(r&&r.length>1){const n=r.filter(o=>{var a;return typeof((a=o.customCardPreferences)==null?void 0:a.slotIndex)=="number"});if(n.length>1&&n.some(o=>o.id!==e.id))return!0}return!1}function Qe(e){const r=[];let t=-1;e.forEach((n,o)=>{const a=We(n,o);a>t&&(t=a),r[a]=n??null});for(let n=0;n<=t;n+=1)n in r||(r[n]=null);return r}function Wt(e){return e.map((r,t)=>!r.customCardPreferences||r.customCardPreferences.slotIndex===t?r:{...r,customCardPreferences:{...r.customCardPreferences,slotIndex:t}})}function Qt(e){const r=He(e);if(r)return ie(r)}function Yt(e,r,t){if(!e)return;const n=Ht(t,r);return e.type==="custom"&&n?n:e.type}function Jt(e,r,t){var v;const n={dataSource:t.dataSource,connectionId:t.connectionId,lastSelectedDatabase:t.lastSelectedDatabase,lastSelectedSchema:t.lastSelectedSchema,lastSelectedTable:t.lastSelectedTable,lastSelectedDatamodelId:t.lastSelectedDatamodelId,datamodelId:t.datamodelId},o={type:"component",visualType:"multiple",url:r.url,componentName:r.name,icon:r.icon,pluginChartType:r.chartType,minInputs:r.minInputs,maxInputs:r.maxInputs},a=r.minInputs||1,c=e.map(h=>({slot:h,parsed:H(h.position)})).filter(h=>h.parsed!==null).reduce((h,b)=>{const T=b.parsed.end;return Number.isFinite(T)?Math.max(h,T):h},-1),m=Math.max(a,c+1),l=He(e),s=l?Q(l):0;let f=!1;const u=[];for(let h=0;h<m;h+=1){const b=Ie(e,h),T=ie(b),g=!f&&h===s,C=h,k={...n,id:L.v4(),title:(g?l==null?void 0:l.label:b==null?void 0:b.label)||`Tab ${h+1}`,tabTitle:(g?l==null?void 0:l.label:b==null?void 0:b.label)||`Tab ${h+1}`,description:(g?l==null?void 0:l.description:b==null?void 0:b.description)||"",type:T,sql:"",preferences:{onClickFilter:[{columnIndex:0,expression:""}]},...g&&{customCardPreferences:{...o,slotIndex:C}},...!g&&{customCardPreferences:{slotIndex:C}}};g&&(f=!0),u.push(k)}if(!f&&u.length>0){const h=((v=u[0].customCardPreferences)==null?void 0:v.slotIndex)??0;u[0]={...u[0],type:u[0].type,customCardPreferences:{...o,slotIndex:h}}}const d=u.findIndex(h=>{var b;return!!((b=h.customCardPreferences)!=null&&b.url)});if(d>0){const[h]=u.splice(d,1);u.unshift(h)}return u}function Ye({frame:e,configCard:r,isMultiInputVisual:t}){var o;if(!t||!r)return e.cards;const n=(o=r.customCardPreferences)==null?void 0:o.dataInputCardIds;return n?Object.keys(n).sort((a,i)=>Number(a)-Number(i)).map(a=>{var c;const i=(c=n[a])==null?void 0:c.cardId;return e.cards.find(m=>m.id===i)||null}):e.cards}function Je(e,r){return r&&pe(r,e.cards)?r:e.cards.find(t=>pe(t,e.cards))||null}function Xe(e,r){var o,a;if(!e)return null;const t=r==null?void 0:r.visualType;if(t)return t;if(r!=null&&r.slots&&r.slots.length>0||((r==null?void 0:r.minInputs)||0)>1||((r==null?void 0:r.maxInputs)||0)>1||((r==null?void 0:r.dataInputs)||[]).length>1)return"multiple";const n=(o=e.customCardPreferences)==null?void 0:o.visualType;return n||((a=e.customCardPreferences)!=null&&a.dataInputCardIds?"multiple":null)}function Xt(e){return e.visualType==="multiple"||e.slots&&e.slots.length>0||(e.minInputs||0)>1||(e.maxInputs||0)>1||(e.dataInputs||[]).length>1?"multiple":"single"}function Zt(e){return Array.isArray(e)?{records:e}:e}class X extends Error{constructor(t){const n=t.cardId?`card "${t.cardId}"`:t.sheetId?`sheet "${t.sheetId}"`:`dashboard "${t.dashboardId}"`;super(`Unable to resolve ${n} while capturing report presentation. Refresh the authoring page and select the attachment again.`);R(this,"code","temporal_snapshot_target_not_found");R(this,"selection");this.name="TemporalSnapshotSelectionError",this.selection=t}}function er(e,r){var o;const t=[],n=new Map;for(const a of r){if(a.dashboardId!==e.id)throw new X(a);const i=(e.sheets||[]).filter(m=>!a.sheetId||a.sheetId===m.id);if(a.sheetId&&i.length===0)throw new X(a);let c=!a.cardId;for(const m of i){const l=(((o=m.document)==null?void 0:o.sections)||[]).flatMap(u=>u.type==="table"||u.type==="chart"?[u.card]:[]),s=(m.frames||[]).flatMap(u=>tr(u,a.cardId));s.length>0&&(c=!0);const f=[...s,...(m.cards||[]).filter(u=>!a.cardId||a.cardId===u.id),...l.filter(u=>!a.cardId||a.cardId===u.id)];for(const u of f){c=!0;const d=n.get(a.attachmentIndex)??new Set;d.has(u.id)||(d.add(u.id),n.set(a.attachmentIndex,d),t.push({card:u,...a.attachmentIndex!==void 0?{attachmentIndex:a.attachmentIndex}:{}}))}}if(!c)throw new X(a)}return t}function tr(e,r){var i;const t=r?(i=e.cards)==null?void 0:i.find(c=>c.id===r):be(e);if(!t)return[];const n=Je(e,t),o=(e.cards||[]).filter(c=>{var m;return typeof((m=c.customCardPreferences)==null?void 0:m.slotIndex)=="number"}).length>1,a=n!=null&&(Xe(n)==="multiple"||o);return!n||!a?[t]:Qe(Ye({frame:e,configCard:n,isMultiInputVisual:!0})).filter(c=>c!==null)}function rr(e){return er(e.dashboard,e.selections).flatMap(({card:r,attachmentIndex:t})=>{var s,f,u,d;const n=((s=e.resolveCardConfig)==null?void 0:s.call(e,r))??r.config,o=De({card:r,cardConfig:n}),a={dashboardId:e.dashboard.id,cardId:r.id,...t!==void 0?{attachmentIndex:t}:{}},i=o?o.fields.map(v=>({scope:a,target:{kind:"field",fieldId:v.id,role:v.role},format:ze(v,{dateStyle:e.valueFormatPreferences.dateStyle,dateTime:{...e.valueFormatPreferences.dateTime}},e.valueFormatPreferences.locale)})):[],c=[],m=Y(r,n),l=U(r.python||"");if(r.type==="detailTable"&&m==="config"){const v=(n==null?void 0:n.detailColumns)||[],h=[...((n==null?void 0:n.groupByColumns)||[]).map(g=>({field:g,role:"groupby"})),...((n==null?void 0:n.metricColumns)||[]).map(g=>({field:g,role:"metric"})),...((n==null?void 0:n.pivotByColumns)||[]).map(g=>({field:g,role:"pivotby"})),...v.map(g=>({field:g,role:"detail"}))],b=new Map,T=new Set(h.map(({field:g,role:C})=>ce.resolveCanonicalResultRawKey(g,C)));for(const{field:g}of h){const C=g.label;C&&b.set(C,(b.get(C)||0)+1)}for(const g of v){const C=q.normalizeAnalyticsCatalogDataType(g.dataType);if(C!=="date"&&C!=="datetime")continue;const k=ce.resolveCanonicalDetailResultRawKey(g),F=g.label,B=ce.resolveCanonicalResultOutputKey({label:F,labelCount:F&&b.get(F)||0,rawKey:k,rawKeys:T});if(!B)throw new X(a);c.push({scope:a,target:{kind:"column",columnKey:B},format:$.resolveRawTemporalFormat({format:Ve(g),preferences:e.valueFormatPreferences,calendar:e.calendar})})}}else if(m==="freeform"&&((f=r.sql)!=null&&f.trim())&&!l.trim())for(const[v,h]of Object.entries(((d=(u=r.preferences)==null?void 0:u.tablePrefs)==null?void 0:d.columnSettingsMap)||{})){if(h.type!=="date")continue;const b=ae(h.dateFormat);b&&c.push({scope:a,target:{kind:"column",columnKey:v},format:$.resolveRawTemporalFormat({format:b,preferences:e.valueFormatPreferences,calendar:e.calendar})})}return[...i,...c]})}function nr(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function P(e,r,t){return nr(e)?e:(t.push({field:r,message:"Expected an object."}),{})}function D(e,r,t,n){const o=new Set(t);Object.keys(e).forEach(a=>{o.has(a)||n.push({field:`${r}.${a}`,message:"Unexpected property."})})}function N(e,r,t,n,o={}){if(e==null)return;if(typeof e!="string"){n.push({field:r,message:"Expected a string."});return}const a=o.trim===!1?e:e.trim();if(!o.allowEmpty&&a.length===0){n.push({field:r,message:"Expected a non-empty string."});return}if(a.length>t){n.push({field:r,message:`Expected ${t} characters or fewer.`});return}return a}function Te(e,r,t){const n=N(e,r,2e3,t);if(n)try{return new URL(n),n}catch{t.push({field:r,message:"Expected an absolute URL."});return}}function Re(e,r,t){const n=P(e,r,t);D(n,r,["tokens","components"],t);const o={};if(n.tokens!==void 0){const a=P(n.tokens,`${r}.tokens`,t);D(a,`${r}.tokens`,["color","typography"],t);const i={};if(a.color!==void 0){const c=P(a.color,`${r}.tokens.color`,t),m=["background","foreground","muted","mutedForeground","border","primary","primaryForeground","positive","negative","warning","info"];D(c,`${r}.tokens.color`,m,t);const l={};m.forEach(s=>{const f=N(c[s],`${r}.tokens.color.${s}`,120,t);f!==void 0&&(l[s]=f)}),i.color=l}if(a.typography!==void 0){const c=P(a.typography,`${r}.tokens.typography`,t);D(c,`${r}.tokens.typography`,["fontFamily","monoFontFamily"],t);const m=N(c.fontFamily,`${r}.tokens.typography.fontFamily`,500,t,{allowEmpty:!0}),l=N(c.monoFontFamily,`${r}.tokens.typography.monoFontFamily`,500,t,{allowEmpty:!0});i.typography={...m!==void 0?{fontFamily:m}:{},...l!==void 0?{monoFontFamily:l}:{}}}o.tokens=i}if(n.components!==void 0){const a=P(n.components,`${r}.components`,t);if(D(a,`${r}.components`,["chart"],t),a.chart!==void 0){const i=P(a.chart,`${r}.components.chart`,t);D(i,`${r}.components.chart`,["palette"],t);let c;i.palette!==void 0&&(Array.isArray(i.palette)?i.palette.length>20?t.push({field:`${r}.components.chart.palette`,message:"Expected 20 colors or fewer."}):c=i.palette.map((m,l)=>N(m,`${r}.components.chart.palette.${l}`,120,t)).filter(m=>m!==void 0):t.push({field:`${r}.components.chart.palette`,message:"Expected an array."})),o.components={chart:c?{palette:c}:{}}}}return o}function or(e,r){const t="presentation.appearance",n=P(e,t,r);D(n,t,["version","schemes"],r);const o={};if(n.version!==void 0&&(typeof n.version!="number"||!Number.isFinite(n.version)?r.push({field:`${t}.version`,message:"Expected a number."}):o.version=n.version),n.schemes!==void 0){const a=P(n.schemes,`${t}.schemes`,r);D(a,`${t}.schemes`,["light","dark"],r),o.schemes={...a.light!==void 0?{light:Re(a.light,`${t}.schemes.light`,r)}:{},...a.dark!==void 0?{dark:Re(a.dark,`${t}.schemes.dark`,r)}:{}}}return o}function ar(e,r){const t="presentation.brandOverrides",n=P(e,t,r);D(n,t,["brandName","logoUrl","link"],r);const o=N(n.brandName,`${t}.brandName`,200,r),a=Te(n.logoUrl,`${t}.logoUrl`,r),i=N(n.link,`${t}.link`,120,r);return{...o!==void 0?{brandName:o}:{},...a!==void 0?{logoUrl:a}:{},...i!==void 0?{link:i}:{}}}function ir(e,r){const t="presentation.fragments",n=P(e,t,r),o=["preHeaderText","headerBannerHtml","signatureHtml","footerHtml","disclaimerHtml","unsubscribeUrl"];D(n,t,o,r);const a={};return o.forEach(i=>{const c=i==="unsubscribeUrl"?Te(n[i],`${t}.${i}`,r):N(n[i],`${t}.${i}`,i==="preHeaderText"?200:5e3,r,{trim:i==="preHeaderText"});c!==void 0&&(a[i]=c)}),a}function lr(e){const r=[],t={};if(e.appearance!==void 0&&(t.appearance=or(e.appearance,r)),e.brandOverrides!==void 0&&(t.brandOverrides=ar(e.brandOverrides,r)),e.fragments!==void 0&&(t.fragments=ir(e.fragments,r)),e.viewUrl!==void 0){const n=Te(e.viewUrl,"presentation.viewUrl",r);n!==void 0&&(t.viewUrl=n)}return{value:t,issues:r}}const Ze=["SUN","MON","TUE","WED","THU","FRI","SAT"],cr=new Map(Ze.map((e,r)=>[e,r])),dr={cadence:"weekly",hour:9,minute:0,weekdays:[1]};function sr(e){if(typeof e!="string"||e.length===0||e!==e.trim()||/^(?:(?:UTC|GMT)[+-]|[+-]\d{2}:\d{2}$)/.test(e))return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}function mr(e){return Number.isInteger(e.minute)&&e.minute>=0&&e.minute<=59&&Number.isInteger(e.hour)&&e.hour>=0&&e.hour<=23}function et(e){if(e.length===0)return null;const r=[...e].sort((t,n)=>t-n);return r.some((t,n)=>!Number.isInteger(t)||t<0||t>6||n>0&&t===r[n-1])?null:r}function ur(e){if(!mr(e))throw new Error("Choose a valid schedule time.");const r=`${e.minute} ${e.hour}`;switch(e.cadence){case"daily":return`${r} * * *`;case"weekly":{const t=et(e.weekdays);if(!t)throw new Error("Choose at least one weekday.");return`${r} * * ${t.map(n=>Ze[n]).join(",")}`}case"twice_monthly":return`${r} 1,15 * *`;case"monthly":return`${r} 1 * *`}}function tt(e){if(typeof e!="string"||e.length===0)return{ok:!1,issue:"Choose a supported schedule."};if(e!==e.trim()||e.includes(" "))return{ok:!1,issue:"Choose a supported schedule."};const r=e.split(" ");if(r.length!==5)return{ok:!1,issue:"Choose a supported schedule."};const[t,n,o,a,i]=r;if(!/^(0|[1-9]\d?)$/.test(t)||!/^(0|[1-9]\d?)$/.test(n))return{ok:!1,issue:"Choose a supported schedule."};const c=Number(t),m=Number(n);if(c>59||m>23||a!=="*")return{ok:!1,issue:"Choose a supported schedule."};if(o==="*"&&i==="*")return{ok:!0,value:{cadence:"daily",hour:m,minute:c,weekdays:[]}};if(o==="*"&&i!=="*"){const s=i.split(",").map(d=>cr.get(d));if(s.some(d=>d===void 0))return{ok:!1,issue:"Choose a supported schedule."};const f=s,u=et(f);return!u||u.some((d,v)=>d!==f[v])?{ok:!1,issue:"Choose a supported schedule."}:{ok:!0,value:{cadence:"weekly",hour:m,minute:c,weekdays:u}}}return o==="1,15"&&i==="*"?{ok:!0,value:{cadence:"twice_monthly",hour:m,minute:c,weekdays:[]}}:o==="1"&&i==="*"?{ok:!0,value:{cadence:"monthly",hour:m,minute:c,weekdays:[]}}:{ok:!1,issue:"Choose a supported schedule."}}function fr(e,r,t){return new Intl.DateTimeFormat(t,{hour:"numeric",minute:"2-digit",timeZone:"UTC"}).format(new Date(Date.UTC(2020,0,1,e,r)))}function pr(e,r){var t;if(e==="UTC")return"UTC";try{return((t=new Intl.DateTimeFormat(r,{timeZone:e,timeZoneName:"longGeneric"}).formatToParts(new Date(Date.UTC(2020,0,1))).find(o=>o.type==="timeZoneName"))==null?void 0:t.value)??e}catch{return null}}function yr(e,r,t="en-US"){const n=tt(e);if(!n.ok)return null;try{const o=fr(n.value.hour,n.value.minute,t),a=pr(r,t);if(!a)return null;switch(n.value.cadence){case"daily":return`Daily at ${o} ${a}`;case"weekly":{const i=new Intl.DateTimeFormat(t,{weekday:"long",timeZone:"UTC"});return`${n.value.weekdays.map(m=>i.format(new Date(Date.UTC(2023,0,1+m)))).join(" and ")} at ${o} ${a}`}case"twice_monthly":return`On the 1st and 15th at ${o} ${a}`;case"monthly":return`Monthly on the 1st at ${o} ${a}`}}catch{return null}}const hr=new Set(["table","aggregateTable","pivotTable","detailTable"]),gr=new Set(["bar","horizontalBar","line","area","stackedArea","combo","pie","doughnut","radar","polarArea","bubble","scatter","stackedBar","stackedLine","table","pivotTable","aggregateTable","matrixTable","detailTable","kpi","pyramid","tornado","range","map","funnel","bullet","heatmap","treemap","custom"]);function vr(e){var n,o,a;const r=gr.has(e.type)&&(e.type!=="custom"||!!((n=e.customCardPreferences)!=null&&n.url));return e.type==="text"||!r||L.isCardUnconfigured(e)?{formats:[],defaultFormat:null}:{formats:rt({cardType:e.type,allowDownload:(o=e.preferences)==null?void 0:o.allowDownload}),defaultFormat:nt({cardType:e.type,allowDownload:(a=e.preferences)==null?void 0:a.allowDownload})}}function rt(e){return e.allowDownload===!1?["pdf"]:["pdf","csv"]}function nt(e){return hr.has(e.cardType)&&e.allowDownload!==!1?"csv":"pdf"}function br(e){return e!=null&&e.role?e.type==="tenant"?e.role==="POWER_USER":["AUTHOR","ADMIN","SUPER_ADMIN"].includes(e.role):!1}function Ir(e){return e.canCreate?[...e.scheduledReportAvailable?["scheduled_report"]:[],...e.analyticalBriefingsEnabled?["analytical_briefing"]:[]]:[]}function ot(e){const r=(e==null?void 0:e.channels)??[];return r.length===1&&r[0]==="EMAIL"}function at(e){return e.body.type==="generated_analysis"?"Analytical briefing":e.body.type==="custom_message"&&e.attachments.length>0&&ot(e.deliveryConfig)?e.scheduleExpr?"Scheduled report":"On-demand report":"Plain briefing"}function Tr(e){const r=at(e),t=r==="Scheduled report"||r==="On-demand report"?"report":"briefing";return{typeLabel:r,noun:t,pluralNoun:t==="report"?"reports":"briefings"}}const re="BRIEFING",it=["markdown","html"],ne=["markdown"],Z=20,y={name:500,description:2e3,instruction:5e4,customMessage:5e4,contentTitle:500,contentSummary:2e4,contentText:5e3,contentSql:5e4,contentItem:2e3,contentCell:500,attachmentTitle:500,presentationAudience:1e3,presentationTone:500,presentationFormat:2e3,id:500},x={maxBlocks:50,maxTableRows:100,maxTableColumns:20,maxTableCellCharacters:y.contentCell,maxParagraphCharacters:y.contentText,maxFindingCharacters:y.contentText,maxListItems:100,maxKpiTiles:8};function lt(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;const r=e;if(typeof r.value!="number"||!Number.isFinite(r.value))return!1;const t=r.target;if(t===null||typeof t!="object"||Array.isArray(t))return!1;const n=t;return(n.kind==="metric"&&typeof n.metricId=="string"&&!!n.metricId.trim()||n.kind==="column"&&typeof n.columnKey=="string"&&!!n.columnKey.trim()||n.kind==="matrix_measure"&&typeof n.measureId=="string"&&!!n.measureId.trim())&&$.parseResolvedNumericCanonicalFormat(r.format).ok}function ct(e){return e==null?"":lt(e)?$.formatNumericCanonical(e.value,e.format):String(e)}function Cr(e){return[e.delta,e.percentChange].filter(r=>r!=null).map(ct).filter(Boolean).join(" / ")}const dt=new Set(it),wr=new Set(["EMAIL","WEBHOOK","SLACK","IN_APP","TELEGRAM"]),se={maxToolCalls:{min:1,max:100},maxPlanningIterations:{min:1,max:10},maxRows:{min:1,max:1e5},timeoutMs:{min:1e3,max:30*6e4}},Er=new Set(["letter","legal","a4","a3","tabloid"]),$r=new Set(["portrait","landscape"]),Sr=new Set([",",";"," "]),kr=new Set(["current","all"]),_r=new Set(["concise","balanced","detailed"]),Fr=new Set(["info","positive","warning","critical"]),Rr=new Set(["text","number","currency","percent","date","boolean"]),xr=new Set(["left","center","right"]),Ar=["pageSize","orientation","includeFilters","includeTimestamp","delimiter","includeHeaders","useFormattedValues","sheetSelection","currentSheetId","currentSheetName","filterValues","inlineFilterValues","sheetFilterValues","filterLine","controlValues","controlDefinitions","cardControlDefinitions","controlBindings","tablePreferences","dashboardInputExecutionSnapshot","selectedSheetId","cardType","allowDownload","theme"];class J extends Error{constructor(t){super(t.map(n=>`${n.field}: ${n.message}`).join("; "));R(this,"issues");this.name="BriefingContractError",this.issues=t}}function st(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function p(e,r,t){e.push({field:r,message:t})}function S(e,r,t){return st(e)?e:(p(t,r,"Expected an object."),{})}function I(e,r,t,n){const o=new Set(t);Object.keys(e).forEach(a=>{o.has(a)||p(n,r?`${r}.${a}`:a,`Unexpected field "${a}".`)})}function w(e,r,t,n){if(typeof e!="string")return p(n,r,"Expected a string."),"";const o=e.trim();return o?(o.length>t&&p(n,r,`Must be ${t} characters or fewer.`),o):(p(n,r,"Required value cannot be empty."),"")}function E(e,r,t,n){if(e==null)return;if(typeof e!="string"){p(n,r,"Expected a string.");return}const o=e.trim();if(o)return o.length>t&&p(n,r,`Must be ${t} characters or fewer.`),o}function Br(e,r,t,n){if(typeof e!="string")return p(n,r,"Expected a string."),"";const o=e.trim();return o.length>t&&p(n,r,`Must be ${t} characters or fewer.`),o}function Pr(e,r,t){if(e!=null){if(!Number.isInteger(e)||Number(e)<0){p(t,r,"Expected a non-negative integer.");return}return Number(e)}}function A(e,r,t,n={}){if(e==null)return n.required?(p(t,r,"Expected at least one evidence id."),[]):void 0;if(!Array.isArray(e))return p(t,r,"Expected an array."),n.required?[]:void 0;const o=[];return e.forEach((a,i)=>{const c=w(a,`${r}.${i}`,y.id,t);c&&!o.includes(c)&&o.push(c)}),n.required&&o.length===0&&p(t,r,"Expected at least one evidence id."),o.length>0||n.required?o:void 0}function V(e,r,t,n){return e==null?r:typeof e!="boolean"?(p(n,t,"Expected a boolean."),r):e}function Dr(e,r){return e==null?"ACTIVE":e==="ACTIVE"||e==="PAUSED"||e==="DISABLED"?e:(p(r,"status","Expected ACTIVE, PAUSED, or DISABLED."),"ACTIVE")}function Mr(e){return e.includes("@")&&e.includes(".")&&!e.includes(" ")}function mt(e,r){if(e==null)return{type:"project"};const t=S(e,"source",r),n=t.type;return n==="project"?(I(t,"source",["type"],r),{type:"project"}):n==="dashboard"?(I(t,"source",["type","dashboardId"],r),{type:"dashboard",dashboardId:w(t.dashboardId,"source.dashboardId",y.id,r)}):(p(r,"source.type","Expected project or dashboard."),{type:"project"})}function ut(e,r){const t=S(e,"body",r),n=t.type;return n==="generated_analysis"?(I(t,"body",["type","instruction"],r),{type:"generated_analysis",instruction:w(t.instruction,"body.instruction",y.instruction,r)}):n==="custom_message"?(I(t,"body",["type","message"],r),{type:"custom_message",message:Br(t.message,"body.message",y.customMessage,r)}):n==="none"?(I(t,"body",["type"],r),{type:"none"}):(p(r,"body.type","Expected generated_analysis, custom_message, or none."),{type:"none"})}function Or(e,r){if(e==null)return[...ne];if(!Array.isArray(e))return p(r,"presentation.artifactFormats","Expected an array."),[...ne];if(e.length===0)return p(r,"presentation.artifactFormats","Choose at least one artifact format."),[];const t=[];return e.forEach((n,o)=>{if(typeof n!="string"||!dt.has(n)){p(r,`presentation.artifactFormats.${o}`,"Expected markdown or html.");return}t.includes(n)||t.push(n)}),t}function ft(e,r){if(e==null)return{artifactFormats:[...ne],includeEvidence:!0,includeSql:!0};const t=S(e,"presentation",r);I(t,"presentation",["artifactFormats","includeEvidence","includeSql","audience","tone","format","appearance","brandOverrides","fragments","viewUrl"],r);const n={artifactFormats:Or(t.artifactFormats,r),includeEvidence:V(t.includeEvidence,!0,"presentation.includeEvidence",r),includeSql:V(t.includeSql,!0,"presentation.includeSql",r)},o=E(t.audience,"presentation.audience",y.presentationAudience,r),a=E(t.tone,"presentation.tone",y.presentationTone,r),i=E(t.format,"presentation.format",y.presentationFormat,r);o&&(n.audience=o),a&&(n.tone=a),i&&(n.format=i);const c=lr(t);return c.issues.forEach(m=>p(r,m.field,m.message)),Object.assign(n,c.value),n}function Kr(e,r,t){return Array.isArray(e)?(e.length===0&&p(t,r,"Expected at least one item."),e.length>x.maxListItems&&p(t,r,`Must have ${x.maxListItems} items or fewer.`),e.slice(0,x.maxListItems).map((n,o)=>w(n,`${r}.${o}`,y.contentItem,t)).filter(Boolean)):(p(t,r,"Expected an array."),[])}function Nr(e,r,t){const n=S(e,r,t);if(n.kind==="metric")return I(n,r,["kind","metricId"],t),{kind:"metric",metricId:w(n.metricId,`${r}.metricId`,y.id,t)};if(n.kind==="column")return I(n,r,["kind","columnKey"],t),{kind:"column",columnKey:w(n.columnKey,`${r}.columnKey`,y.id,t)};if(n.kind==="matrix_measure")return I(n,r,["kind","measureId"],t),{kind:"matrix_measure",measureId:w(n.measureId,`${r}.measureId`,y.id,t)};p(t,`${r}.kind`,"Expected metric, column, or matrix_measure.")}function pt(e,r,t){if(e===null||typeof e!="object"||Array.isArray(e))return;const n=S(e,r,t);if(!Object.prototype.hasOwnProperty.call(n,"target")&&!Object.prototype.hasOwnProperty.call(n,"format"))return;I(n,r,["value","target","format"],t),(typeof n.value!="number"||!Number.isFinite(n.value))&&p(t,`${r}.value`,"Expected a finite number.");const o=Nr(n.target,`${r}.target`,t),a=$.parseResolvedNumericCanonicalFormat(n.format);if(a.ok||a.issues.forEach(i=>p(t,i.path==="$"?`${r}.format`:`${r}.format.${i.path}`,i.message)),!(typeof n.value!="number"||!Number.isFinite(n.value)||!o||!a.ok))return{value:n.value,target:o,format:a.value}}function O(e,r,t){if(typeof e=="string")return e;if(typeof e=="number"){if(!Number.isFinite(e)){p(t,r,"Expected a finite number.");return}return e}const n=pt(e,r,t);if(n)return n;p(t,r,"Expected a string, number, or structured numeric value.")}function zr(e,r,t){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return typeof e=="string"&&e.length>y.contentCell?(p(t,r,`Must be ${y.contentCell} characters or fewer.`),e.slice(0,y.contentCell)):typeof e=="number"&&!Number.isFinite(e)?(p(t,r,"Expected a finite number."),null):e;const n=pt(e,r,t);return n||(p(t,r,"Expected a string, number, boolean, structured numeric value, or null."),null)}function Lr(e,r,t){if(!Array.isArray(e))return p(t,r,"Expected an array."),[];e.length===0&&p(t,r,"Expected at least one column."),e.length>x.maxTableColumns&&p(t,r,`Must have ${x.maxTableColumns} columns or fewer.`);const n=new Set;return e.slice(0,x.maxTableColumns).map((o,a)=>{const i=`${r}.${a}`,c=S(o,i,t);I(c,i,["key","label","kind","align"],t);const m=w(c.key,`${i}.key`,y.id,t);m&&(n.has(m)&&p(t,`${i}.key`,"Column key must be unique."),n.add(m));const l=w(c.label,`${i}.label`,y.contentTitle,t),s=z(c.kind,`${i}.kind`,Rr,"text, number, currency, percent, date, or boolean",t),f=z(c.align,`${i}.align`,xr,"left, center, or right",t);return{key:m,label:l,...s?{kind:s}:{},...f?{align:f}:{}}})}function Vr(e,r,t,n){if(!Array.isArray(e))return p(n,r,"Expected an array."),[];e.length>x.maxTableRows&&p(n,r,`Must have ${x.maxTableRows} rows or fewer.`);const o=new Set(t.map(a=>a.key).filter(Boolean));return e.slice(0,x.maxTableRows).map((a,i)=>{const c=`${r}.${i}`,m=S(a,c,n);return Object.keys(m).forEach(l=>{o.has(l)||p(n,`${c}.${l}`,`Unexpected table cell "${l}".`)}),Object.fromEntries(t.map(l=>[l.key,zr(m[l.key]??null,`${c}.${l.key}`,n)]))})}function qr(e,r,t){const n=`content.blocks.${r}`,o=S(e,n,t),a=o.type;if(a==="heading"){I(o,n,["type","text","level","evidenceIds"],t);const i=o.level===void 0||o.level===null?void 0:o.level===2||o.level===3?o.level:void 0;o.level!==void 0&&o.level!==null&&i===void 0&&p(t,`${n}.level`,"Expected 2 or 3.");const c=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"heading",text:w(o.text,`${n}.text`,y.contentTitle,t),...i?{level:i}:{},...c?{evidenceIds:c}:{}}}if(a==="paragraph"){I(o,n,["type","text","evidenceIds"],t);const i=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"paragraph",text:w(o.text,`${n}.text`,y.contentText,t),...i?{evidenceIds:i}:{}}}if(a==="finding"){I(o,n,["type","title","text","severity","evidenceIds"],t);const i=E(o.title,`${n}.title`,y.contentTitle,t),c=z(o.severity,`${n}.severity`,Fr,"info, positive, warning, or critical",t);return{type:"finding",...i?{title:i}:{},text:w(o.text,`${n}.text`,y.contentText,t),...c?{severity:c}:{},evidenceIds:A(o.evidenceIds,`${n}.evidenceIds`,t,{required:!0})??[]}}if(a==="bullets"||a==="actions"||a==="limitations"){I(o,n,["type","title","items","evidenceIds"],t);const i=E(o.title,`${n}.title`,y.contentTitle,t),c=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:a,...i?{title:i}:{},items:Kr(o.items,`${n}.items`,t),...c?{evidenceIds:c}:{}}}if(a==="metric"){I(o,n,["type","label","value","previousValue","delta","percentChange","unit","evidenceIds"],t);const i=O(o.value,`${n}.value`,t)??"";i===""&&p(t,`${n}.value`,"Expected a non-empty string, number, or structured numeric value.");const c=o.previousValue===void 0||o.previousValue===null?o.previousValue:O(o.previousValue,`${n}.previousValue`,t),m=o.delta===void 0||o.delta===null?o.delta:O(o.delta,`${n}.delta`,t),l=o.percentChange===void 0||o.percentChange===null?o.percentChange:O(o.percentChange,`${n}.percentChange`,t),s=E(o.unit,`${n}.unit`,y.contentTitle,t),f=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"metric",label:w(o.label,`${n}.label`,y.contentTitle,t),value:i,...c!==void 0?{previousValue:c}:{},...m!==void 0?{delta:m}:{},...l!==void 0?{percentChange:l}:{},...s?{unit:s}:{},...f?{evidenceIds:f}:{}}}if(a==="kpi_grid"){I(o,n,["type","title","tiles","evidenceIds"],t);const i=E(o.title,`${n}.title`,y.contentTitle,t),c=Array.isArray(o.tiles)?o.tiles:[];Array.isArray(o.tiles)||p(t,`${n}.tiles`,"Expected an array."),c.length===0&&p(t,`${n}.tiles`,"Expected at least one tile."),c.length>x.maxKpiTiles&&p(t,`${n}.tiles`,`Must have ${x.maxKpiTiles} tiles or fewer.`);const m=c.slice(0,x.maxKpiTiles).map((s,f)=>{const u=`${n}.tiles.${f}`,d=S(s,u,t);I(d,u,["label","value","previousValue","delta","percentChange","unit","evidenceIds"],t);const v=O(d.value,`${u}.value`,t)??"";v===""&&p(t,`${u}.value`,"Expected a non-empty string, number, or structured numeric value.");const h=d.previousValue===void 0||d.previousValue===null?d.previousValue:O(d.previousValue,`${u}.previousValue`,t),b=d.delta===void 0||d.delta===null?d.delta:O(d.delta,`${u}.delta`,t),T=d.percentChange===void 0||d.percentChange===null?d.percentChange:O(d.percentChange,`${u}.percentChange`,t),g=E(d.unit,`${u}.unit`,y.contentTitle,t),C=A(d.evidenceIds,`${u}.evidenceIds`,t);return{label:w(d.label,`${u}.label`,y.contentTitle,t),value:v,...h!==void 0?{previousValue:h}:{},...b!==void 0?{delta:b}:{},...T!==void 0?{percentChange:T}:{},...g?{unit:g}:{},...C?{evidenceIds:C}:{}}}),l=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"kpi_grid",...i?{title:i}:{},tiles:m,...l?{evidenceIds:l}:{}}}if(a==="progress"){I(o,n,["type","label","value","detail","evidenceIds"],t);const i=typeof o.value=="number"&&Number.isFinite(o.value)?o.value:0;(typeof o.value!="number"||!Number.isFinite(o.value))&&p(t,`${n}.value`,"Expected a finite number.");const c=E(o.detail,`${n}.detail`,y.contentText,t),m=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"progress",label:w(o.label,`${n}.label`,y.contentTitle,t),value:i,...c?{detail:c}:{},...m?{evidenceIds:m}:{}}}if(a==="table"){I(o,n,["type","id","title","columns","rows","caption","totalRows","evidenceIds"],t);const i=Lr(o.columns,`${n}.columns`,t),c=E(o.title,`${n}.title`,y.contentTitle,t),m=E(o.id,`${n}.id`,y.id,t),l=E(o.caption,`${n}.caption`,y.contentItem,t),s=Pr(o.totalRows,`${n}.totalRows`,t),f=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"table",...m?{id:m}:{},...c?{title:c}:{},columns:i,rows:Vr(o.rows,`${n}.rows`,i,t),...l?{caption:l}:{},...s!==void 0?{totalRows:s}:{},...f?{evidenceIds:f}:{}}}if(a==="evidence_appendix"){I(o,n,["type","title","evidenceIds"],t);const i=E(o.title,`${n}.title`,y.contentTitle,t);return{type:"evidence_appendix",...i?{title:i}:{},evidenceIds:A(o.evidenceIds,`${n}.evidenceIds`,t,{required:!0})??[]}}if(a==="sql"){I(o,n,["type","title","sql","evidenceIds"],t);const i=E(o.title,`${n}.title`,y.contentTitle,t),c=w(o.sql,`${n}.sql`,y.contentSql,t),m=A(o.evidenceIds,`${n}.evidenceIds`,t);return{type:"sql",...i?{title:i}:{},sql:c,...m?{evidenceIds:m}:{}}}return p(t,`${n}.type`,"Expected heading, paragraph, finding, bullets, metric, kpi_grid, progress, table, actions, limitations, sql, or evidence_appendix."),{type:"paragraph",text:""}}function yt(e){const r=[],t=S(e,"content",r);I(t,"content",["version","title","summary","blocks"],r),t.version!==1&&p(r,"content.version","Expected version 1.");const n=E(t.title,"content.title",y.contentTitle,r),o=E(t.summary,"content.summary",y.contentSummary,r);Array.isArray(t.blocks)||p(r,"content.blocks","Expected an array.");const a=Array.isArray(t.blocks)?t.blocks:[];a.length===0&&p(r,"content.blocks","Expected at least one block."),a.length>x.maxBlocks&&p(r,"content.blocks",`Must have ${x.maxBlocks} blocks or fewer.`);const i=a.slice(0,x.maxBlocks).map((c,m)=>qr(c,m,r));return Ce(r),{version:1,...n?{title:n}:{},...o?{summary:o}:{},blocks:i}}function Ur(e){try{return{valid:!0,value:yt(e),issues:[]}}catch(r){if(r instanceof J)return{valid:!1,issues:r.issues};throw r}}function ee(e,r,t,n){return typeof e=="string"&&t.includes(e)?e:(p(n,r,`Expected ${t.join(" or ")}.`),t[0])}function z(e,r,t,n,o){if(e!=null){if(typeof e=="string"&&t.has(e))return e;p(o,r,`Expected ${n}.`)}}function jr(e,r,t){if(e!=null){if(!Array.isArray(e)){p(t,r,"Expected an array.");return}return e}}function Gr(e,r,t){if(e!=null){if(!st(e)){p(t,r,"Expected an object.");return}return e}}function Hr(e,r,t){if(e==null)return;const n=S(e,r,t);I(n,r,Ar,t);const o={},a=z(n.pageSize,`${r}.pageSize`,Er,"letter, legal, a4, a3, or tabloid",t),i=z(n.orientation,`${r}.orientation`,$r,"portrait or landscape",t),c=z(n.delimiter,`${r}.delimiter`,Sr,"comma, semicolon, or tab",t),m=z(n.sheetSelection,`${r}.sheetSelection`,kr,"current or all",t);a&&(o.pageSize=a),i&&(o.orientation=i),c&&(o.delimiter=c),m&&(o.sheetSelection=m);for(const l of["includeFilters","includeTimestamp","includeHeaders","useFormattedValues","allowDownload"])if(!(n[l]===void 0||n[l]===null)){if(typeof n[l]!="boolean"){p(t,`${r}.${l}`,"Expected a boolean.");continue}o[l]=n[l]}for(const l of["currentSheetId","currentSheetName","filterLine","selectedSheetId","cardType","theme"]){const s=E(n[l],`${r}.${l}`,y.id,t);s&&(o[l]=s)}for(const l of["filterValues","inlineFilterValues","sheetFilterValues","controlDefinitions","cardControlDefinitions","controlBindings"]){const s=jr(n[l],`${r}.${l}`,t);s&&(o[l]=s)}for(const l of["controlValues","tablePreferences","dashboardInputExecutionSnapshot"]){const s=Gr(n[l],`${r}.${l}`,t);s&&(o[l]=s)}return Object.keys(o).length>0?o:void 0}function me(e,r,t,n){const o=E(r,t,y.attachmentTitle,n);return o&&(e.title=o),e}function ue(e,r,t,n){const o=Hr(r,t,n);return o&&(e.settings=o),e}function Wr(e,r,t){const n=`attachments.${r}`,o=S(e,n,t),a=o.type;if(a==="dashboard"){I(o,n,["type","dashboardId","format","title","settings"],t);const i=me({type:"dashboard",dashboardId:w(o.dashboardId,`${n}.dashboardId`,y.id,t),format:ee(o.format,`${n}.format`,["pdf"],t)},o.title,`${n}.title`,t);return ue(i,o.settings,`${n}.settings`,t)}if(a==="dashboard_sheet"||a==="document_sheet"){I(o,n,["type","dashboardId","sheetId","format","title","settings"],t);const i=me({type:a,dashboardId:w(o.dashboardId,`${n}.dashboardId`,y.id,t),sheetId:w(o.sheetId,`${n}.sheetId`,y.id,t),format:ee(o.format,`${n}.format`,["pdf"],t)},o.title,`${n}.title`,t);return ue(i,o.settings,`${n}.settings`,t)}if(a==="card"){I(o,n,["type","dashboardId","cardId","format","title","settings"],t);const i=me({type:"card",dashboardId:w(o.dashboardId,`${n}.dashboardId`,y.id,t),cardId:w(o.cardId,`${n}.cardId`,y.id,t),format:ee(o.format,`${n}.format`,["csv","pdf"],t)},o.title,`${n}.title`,t);return ue(i,o.settings,`${n}.settings`,t)}return p(t,`${n}.type`,"Expected dashboard, dashboard_sheet, document_sheet, or card."),{type:"dashboard",dashboardId:"",format:"pdf"}}function Qr(e){switch(e.type){case"dashboard":return`${e.type}:${e.dashboardId}:${e.format}`;case"dashboard_sheet":case"document_sheet":return`${e.type}:${e.dashboardId}:${e.sheetId}:${e.format}`;case"card":return`${e.type}:${e.dashboardId}:${e.cardId}:${e.format}`}}function ht(e,r){if(e==null)return[];if(!Array.isArray(e))return p(r,"attachments","Expected an array."),[];e.length>Z&&p(r,"attachments",`Choose ${Z} attachments or fewer.`);const t=e.slice(0,Z).map((o,a)=>Wr(o,a,r)),n=new Set;return t.forEach((o,a)=>{const i=Qr(o);n.has(i)&&p(r,`attachments.${a}`,"Duplicate attachment."),n.add(i)}),t}function gt(e,r){if(e==null)return;const t=S(e,"limits",r);I(t,"limits",Object.keys(se),r);const n={};return Object.keys(se).forEach(o=>{const a=t[o];if(a==null)return;const i=se[o];if(typeof a!="number"||!Number.isInteger(a)||a<i.min||a>i.max){p(r,`limits.${o}`,`Expected an integer between ${i.min} and ${i.max}.`);return}n[o]=a}),Object.keys(n).length>0?n:void 0}function Ce(e){if(e.length>0)throw new J(e)}function vt(e,r,t){!(e.type==="generated_analysis"||e.type==="custom_message"&&!!e.message.trim())&&r.length===0&&p(t,"body","Add briefing instructions, a custom message, or at least one attachment.")}function Yr(e,r,t){e==null||e.forEach((n,o)=>{const a=`${t}.${o}.scope`,i=n.scope.attachmentIndex;if(i===void 0)throw new $.PresentationExecutionSnapshotError(`${a}.attachmentIndex must identify the attachment that owns this presentation entry.`);const c=r[i];if(!c)throw new $.PresentationExecutionSnapshotError(`${a}.attachmentIndex must identify an existing attachment.`);if(n.scope.dashboardId!==c.dashboardId)throw new $.PresentationExecutionSnapshotError(`${a}.dashboardId must match the dashboard selected by the referenced attachment.`);if(c.type==="card"&&n.scope.cardId!==c.cardId)throw new $.PresentationExecutionSnapshotError(`${a}.cardId must match the card selected by the referenced attachment.`)})}function we(e){const r=[],t=S(e,"jobConfig",r);I(t,"jobConfig",["kind","presentationExecutionSnapshot","source","body","attachments","presentation","limits"],r),t.kind!==re&&p(r,"kind","Expected BRIEFING.");let n;try{n=$.parsePresentationExecutionSnapshot(t.presentationExecutionSnapshot)}catch(l){if(l instanceof $.PresentationExecutionSnapshotError)throw l;p(r,"jobConfig.presentationExecutionSnapshot",l instanceof Error?l.message:"Invalid presentation snapshot.")}const o=mt(t.source,r),a=ut(t.body,r),i=ht(t.attachments,r),c=ft(t.presentation,r),m=gt(t.limits,r);return vt(a,i,r),Yr(n==null?void 0:n.resolvedFormats,i,"jobConfig.presentationExecutionSnapshot.resolvedFormats"),Ce(r),{kind:re,presentationExecutionSnapshot:n,source:o,body:a,attachments:i,presentation:c,...m?{limits:m}:{}}}function Jr(e){return we({...e,kind:re})}function Ee(e,r,t,n="deliveryConfig.recipients"){const o=`${n}.${r}`,a=S(e,o,t),i=a.type;if(i==="email"){I(a,o,["type","address","name"],t);const c=w(a.address,`${o}.address`,y.id,t),m=E(a.name,`${o}.name`,y.attachmentTitle,t);return c&&!Mr(c)&&p(t,`${o}.address`,"Email address is invalid."),{type:"email",address:c,...m?{name:m}:{}}}return i==="user"?(I(a,o,["type","userId"],t),{type:"user",userId:w(a.userId,`${o}.userId`,y.id,t)}):i==="tenant_user"?(I(a,o,["type","tenantUserId"],t),{type:"tenant_user",tenantUserId:w(a.tenantUserId,`${o}.tenantUserId`,y.id,t)}):i==="group"?(I(a,o,["type","groupId"],t),{type:"group",groupId:w(a.groupId,`${o}.groupId`,y.id,t)}):(p(t,`${o}.type`,"Expected email, user, tenant_user, or group."),{type:"email",address:""})}function Xr(e,r){return e==null?[]:Array.isArray(e)?e.map((t,n)=>Ee(t,n,r)):(p(r,"deliveryConfig.recipients","Expected an array."),[])}function Zr(e,r){if(!Array.isArray(e))return p(r,"deliveryConfig.channels","Expected an array."),[];const t=[];return e.forEach((n,o)=>{if(!$e(n)){p(r,`deliveryConfig.channels.${o}`,"Expected EMAIL, WEBHOOK, SLACK, IN_APP, or TELEGRAM.");return}t.includes(n)||t.push(n)}),t}function en(e,r,t){if(e==null)return;const n=S(e,r,t),o={};return Object.entries(n).forEach(([a,i])=>{if(typeof i!="string"){p(t,`${r}.${a}`,"Expected a string.");return}o[a]=i.trim()}),Object.keys(o).length>0?o:void 0}function tn(e,r,t){if(e==null)return;const n=S(e,r,t);I(n,r,["url","method","headers","secretEncrypted"],t);const o=n.method===void 0||n.method===null?void 0:ee(n.method,`${r}.method`,["POST","PUT"],t),a=en(n.headers,`${r}.headers`,t),i=E(n.secretEncrypted,`${r}.secretEncrypted`,2e3,t);return{url:w(n.url,`${r}.url`,2e3,t),...o?{method:o}:{},...a?{headers:a}:{},...i?{secretEncrypted:i}:{}}}function rn(e,r,t){const n=S(e,r,t),o=n.type;if(o==="channel"){I(n,r,["type","channelId","channelName","isPrivate"],t);const a=E(n.channelName,`${r}.channelName`,y.attachmentTitle,t),i=n.isPrivate===void 0||n.isPrivate===null?void 0:V(n.isPrivate,!1,`${r}.isPrivate`,t);return{type:"channel",channelId:w(n.channelId,`${r}.channelId`,y.id,t),...a?{channelName:a}:{},...i!==void 0?{isPrivate:i}:{}}}return o==="dm"?(I(n,r,["type","recipient"],t),p(t,`${r}.type`,"Slack DM delivery is not supported in V1."),{type:"dm",recipient:Ee(n.recipient,0,t,`${r}.recipient`)}):(p(t,`${r}.type`,"Expected channel."),{type:"channel",channelId:""})}function nn(e,r,t){if(e==null)return;if(!Array.isArray(e)){p(t,r,"Expected an array.");return}const n=e.map((o,a)=>Ee(o,a,t,r));return n.length>0?n:void 0}function on(e,r,t){if(e==null)return;const n=S(e,r,t);I(n,r,["destination","threadMentions","postThreadDetail","includeDashboardLink","includeBriefingLink"],t);const o=nn(n.threadMentions,`${r}.threadMentions`,t),a=V(n.postThreadDetail,!0,`${r}.postThreadDetail`,t),i=V(n.includeDashboardLink,!0,`${r}.includeDashboardLink`,t),c=V(n.includeBriefingLink,!0,`${r}.includeBriefingLink`,t);return{destination:rn(n.destination,`${r}.destination`,t),...o?{threadMentions:o}:{},...n.postThreadDetail!==void 0?{postThreadDetail:a}:{},...n.includeDashboardLink!==void 0?{includeDashboardLink:i}:{},...n.includeBriefingLink!==void 0?{includeBriefingLink:c}:{}}}function an(e,r,t){const n=S(e,r,t);I(n,r,["subjectOverride","titleOverride","summaryOverride","actionBlockVisible","formatProfile","slackConfig","webhookConfig"],t);const o=z(n.formatProfile,`${r}.formatProfile`,_r,"concise, balanced, or detailed",t),a=E(n.subjectOverride,`${r}.subjectOverride`,500,t),i=E(n.titleOverride,`${r}.titleOverride`,500,t),c=E(n.summaryOverride,`${r}.summaryOverride`,2e3,t),m=V(n.actionBlockVisible,!0,`${r}.actionBlockVisible`,t),l=tn(n.webhookConfig,`${r}.webhookConfig`,t),s=on(n.slackConfig,`${r}.slackConfig`,t);return{...o?{formatProfile:o}:{},...a?{subjectOverride:a}:{},...i?{titleOverride:i}:{},...c?{summaryOverride:c}:{},...n.actionBlockVisible!==void 0?{actionBlockVisible:m}:{},...s?{slackConfig:s}:{},...l?{webhookConfig:l}:{}}}function ln(e,r){if(e==null)return;const t=S(e,"deliveryConfig.channelConfigs",r),n={};return Object.entries(t).forEach(([o,a])=>{if(!$e(o)){p(r,`deliveryConfig.channelConfigs.${o}`,"Expected a supported delivery channel.");return}n[o]=an(a,`deliveryConfig.channelConfigs.${o}`,r)}),Object.keys(n).length>0?n:void 0}function cn(e,r){var m,l,s;if(e==null)return null;const t=S(e,"deliveryConfig",r);I(t,"deliveryConfig",["recipients","channels","channelConfigs"],r);const n=ln(t.channelConfigs,r),o=Xr(t.recipients,r),a=Zr(t.channels,r),i=((l=(m=n==null?void 0:n.SLACK)==null?void 0:m.slackConfig)==null?void 0:l.destination.type)==="channel"&&!!n.SLACK.slackConfig.destination.channelId.trim();return a.some(f=>f!=="SLACK")&&o.length===0&&p(r,"deliveryConfig.recipients","Add at least one recipient or remove delivery config."),a.length===0&&p(r,"deliveryConfig.channels","Choose at least one delivery channel or remove delivery config."),a.includes("SLACK")&&!i&&p(r,"deliveryConfig.channelConfigs.SLACK.slackConfig.destination.channelId","Choose a Slack channel destination."),!a.includes("SLACK")&&((s=n==null?void 0:n.SLACK)!=null&&s.slackConfig)&&p(r,"deliveryConfig.channelConfigs.SLACK","Slack config requires SLACK in deliveryConfig.channels."),{recipients:o,channels:a,...n?{channelConfigs:n}:{}}}function le(e){const r=[],t=S(e,"draft",r);I(t,"draft",["name","description","status","scheduleExpr","timezone","source","body","attachments","presentation","limits","deliveryConfig"],r);const n=w(t.name,"name",y.name,r),o=E(t.description,"description",y.description,r)??null,a=E(t.scheduleExpr,"scheduleExpr",500,r)??null,i=E(t.timezone,"timezone",200,r)??"UTC",c=Dr(t.status,r),m=mt(t.source,r),l=ut(t.body,r),s=ht(t.attachments,r),f=ft(t.presentation,r),u=gt(t.limits,r),d=cn(t.deliveryConfig,r);return vt(l,s,r),Ce(r),{name:n,description:o,status:c,scheduleExpr:a,timezone:i,source:m,body:l,attachments:s,presentation:f,...u?{limits:u}:{},deliveryConfig:d}}function dn(e){return le(e)}function sn(e){return le(e)}function mn(e){try{return{valid:!0,value:le(e),issues:[]}}catch(r){if(r instanceof J)return{valid:!1,issues:r.issues};throw r}}function un(e){try{return{valid:!0,value:we(e),issues:[]}}catch(r){if(r instanceof J)return{valid:!1,issues:r.issues};throw r}}function fn(e){return typeof e=="string"&&dt.has(e)}function $e(e){return typeof e=="string"&&wr.has(e)}exports.AmbiguousGroupedTemporalGrainError=Be;exports.BRIEFING_ARTIFACT_FORMATS=it;exports.BRIEFING_CONTENT_LIMITS=x;exports.BRIEFING_KIND=re;exports.BRIEFING_TEXT_LIMITS=y;exports.BriefingContractError=J;exports.DEFAULT_BRIEFING_ARTIFACT_FORMATS=ne;exports.DEFAULT_BRIEFING_SCHEDULE=dr;exports.DashboardTemporalBoundaryError=K;exports.MAX_BRIEFING_ATTACHMENTS=Z;exports.PYTHON_DEFAULT_CODE=Ae;exports.RawTemporalPresentationBoundaryError=_;exports.buildBriefingJobConfig=Jr;exports.buildBriefingScheduleExpr=ur;exports.buildCreateBriefingRequest=dn;exports.buildDashboardCardTableConfig=Ct;exports.buildDashboardTemporalSnapshotEntries=rr;exports.buildSlotOrderedCards=Qe;exports.buildUpdateBriefingRequest=sn;exports.canCreateBriefingForUser=br;exports.createCardsFromSlots=Jt;exports.describeBriefingSchedule=yr;exports.findCustomVisualConfigCard=Je;exports.formatBriefingComparisonValues=Cr;exports.formatBriefingDisplayValue=ct;exports.formatGroupedTemporalFieldValue=At;exports.formatGroupedTemporalRecords=_t;exports.formatGroupedTemporalValue=ge;exports.getActiveCardFromVisualResource=Ut;exports.getActiveFrameCard=be;exports.getBriefingCardAttachmentCapability=vr;exports.getBriefingCardAttachmentFormats=rt;exports.getBriefingCreationIntents=Ir;exports.getBriefingDisplayTypeLabel=at;exports.getBriefingPresentation=Tr;exports.getConfigSlotExpectedType=Qt;exports.getCustomVisualInputCards=Ye;exports.getDefaultBriefingCardAttachmentFormat=nt;exports.getDefaultDeclaredSqlRawTemporalPattern=Pt;exports.getEffectiveCardTypeForSlot=Yt;exports.getSlotDefinitionForIndex=Ie;exports.getSlotExpectedChartType=ie;exports.getSlotIndexForCard=We;exports.hasMissingDeclaredSqlCustomDateFormat=qe;exports.inspectDeclaredSqlRawTemporalPreview=Ot;exports.isBriefingArtifactFormat=fn;exports.isBriefingDeliveryChannel=$e;exports.isBriefingNumericValue=lt;exports.isCardRawTemporalPresentationActivated=zt;exports.isCardRawTemporalResultCompatible=qt;exports.isCustomVisualConfigCard=pe;exports.isDeclaredSqlRawTemporalPresentationCard=ve;exports.isEmailOnlyBriefingDelivery=ot;exports.isGroupedTemporalResultCompatible=Ft;exports.isPivotResultContractCompatibleWithCardConfig=Oe;exports.isValidBriefingTimezone=sr;exports.normalizeBriefingContentDocument=yt;exports.normalizeBriefingDraft=le;exports.normalizeBriefingJobConfig=we;exports.normalizeDashboardCardPythonCode=U;exports.normalizeGroupedTemporalField=Pe;exports.normalizeMultiInputPayload=Zt;exports.parseBriefingScheduleExpr=tt;exports.parseCanonicalPivotResultTransportOnce=Me;exports.parseFrameObject=Ge;exports.presentRawTemporalCell=Vt;exports.reindexSlotCards=Wt;exports.repairMissingDeclaredSqlCustomDateFormat=Kt;exports.resolveCardRawTemporalPresentation=je;exports.resolveCartesianTemporalActivation=$t;exports.resolveDashboardCardResultOwner=Y;exports.resolveDashboardTemporalActivation=De;exports.resolveDeclaredSqlRawTemporalFormat=ae;exports.resolveDetailTableRawTemporalPresentation=Ue;exports.resolveGroupedTemporalFieldPresentationByRole=Ne;exports.resolveGroupedTemporalFieldSnapshotFormat=ze;exports.resolveGroupedTemporalPresentation=xt;exports.resolveMultiInputType=Xe;exports.resolveMultiInputTypeFromVisual=Xt;exports.resolveRegularTableTemporalActivation=Et;exports.validateBriefingContentDocument=Ur;exports.validateBriefingDraft=mn;exports.validateBriefingJobConfig=un;exports.validateDeclaredSqlRawTemporalPattern=Dt;