react-semaphor 0.1.449 → 0.1.453

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 (134) hide show
  1. package/dist/analytics-protocol/index.cjs +1 -1
  2. package/dist/analytics-protocol/index.js +115 -109
  3. package/dist/appearance/index.cjs +1 -1
  4. package/dist/appearance/index.js +1 -1
  5. package/dist/brand-studio/index.cjs +4 -4
  6. package/dist/brand-studio/index.js +15 -13
  7. package/dist/briefings/index.cjs +1 -1
  8. package/dist/briefings/index.js +39 -2131
  9. package/dist/chunks/{analyze-result-contract-BHb7sUUW.cjs → analyze-result-contract-Dxw66nUG.cjs} +1 -1
  10. package/dist/chunks/{analyze-result-contract-T-0Ntzys.js → analyze-result-contract-GHKFwThg.js} +1 -1
  11. package/dist/chunks/canonical-result-keys-Drc2x-lf.cjs +1 -0
  12. package/dist/chunks/canonical-result-keys-KLk__J_O.js +466 -0
  13. package/dist/chunks/color-CJvdlFM_.js +2162 -0
  14. package/dist/chunks/color-CyB5o13F.cjs +4 -0
  15. package/dist/chunks/{common-types-CQ6SHfLk.cjs → common-types-Ci66eflG.cjs} +1 -1
  16. package/dist/chunks/{common-types-B7Jk3Rtj.js → common-types-F6qk6PPS.js} +1 -1
  17. package/dist/chunks/contracts-CoCOpd_i.js +11 -0
  18. package/dist/chunks/contracts-CtB2VONT.cjs +1 -0
  19. package/dist/chunks/{dashboard-briefing-launcher-DCHiEkLE.js → dashboard-briefing-launcher-CFpX0WX3.js} +86 -84
  20. package/dist/chunks/dashboard-briefing-launcher-mUXWuiOZ.cjs +26 -0
  21. package/dist/chunks/{dashboard-controls-DwRFCcHV.js → dashboard-controls-BeYAmOJc.js} +15 -13
  22. package/dist/chunks/{dashboard-controls-CaFioayc.cjs → dashboard-controls-SoNubIu1.cjs} +1 -1
  23. package/dist/chunks/dashboard-json-BublPnQ4.cjs +1 -0
  24. package/dist/chunks/{dashboard-json-WoILbfTe.js → dashboard-json-DeLUagVV.js} +25 -23
  25. package/dist/chunks/edit-dashboard-visual-CrvPcO7A.cjs +172 -0
  26. package/dist/chunks/{edit-dashboard-visual-ciFhxqaI.js → edit-dashboard-visual-Go0h82DR.js} +6925 -6947
  27. package/dist/chunks/editor-action-buttons-1Lo0fIh7.cjs +16 -0
  28. package/dist/chunks/{editor-action-buttons-BPo_45pM.js → editor-action-buttons-BFNtjFzO.js} +41 -39
  29. package/dist/chunks/format-types-CFHQoIuk.js +1350 -0
  30. package/dist/chunks/format-types-PSZZ7hG8.cjs +1 -0
  31. package/dist/chunks/index-B3ZugihZ.js +3713 -0
  32. package/dist/chunks/{index-CPuawpXJ.js → index-BsH32bn1.js} +47472 -47845
  33. package/dist/chunks/index-ByFbacH7.cjs +1 -0
  34. package/dist/chunks/index-CACdoqu3.js +318 -0
  35. package/dist/chunks/index-DSKR3nKn.js +421 -0
  36. package/dist/chunks/index-DjiIh_9n.cjs +4 -0
  37. package/dist/chunks/index-F25jnH0p.cjs +1 -0
  38. package/dist/chunks/index-q12_nNUS.cjs +1392 -0
  39. package/dist/chunks/{metric-comparison-97zHGEx5.js → metric-comparison-D0T0MKRK.js} +1 -1
  40. package/dist/chunks/{metric-comparison-CUAJ8n4y.cjs → metric-comparison-DYR3RXam.cjs} +1 -1
  41. package/dist/chunks/pivot-header-presentation-DcfPaCiy.cjs +4 -0
  42. package/dist/chunks/pivot-header-presentation-nk604qc1.js +557 -0
  43. package/dist/chunks/{pivot-result-identity-CwJWpKI7.js → pivot-result-identity-C43Ai5Kr.js} +1 -1
  44. package/dist/chunks/{pivot-result-identity-CDLRT-YG.cjs → pivot-result-identity-CRUokNgm.cjs} +1 -1
  45. package/dist/chunks/pivot-result-lifecycle-4kSe0Hk1.js +1642 -0
  46. package/dist/chunks/pivot-result-lifecycle-BiJepH5S.cjs +1 -0
  47. package/dist/chunks/raw-temporal-contract-BF7PjBY9.js +64 -0
  48. package/dist/chunks/raw-temporal-contract-CxbRFwnd.cjs +1 -0
  49. package/dist/chunks/report-preferences-dialog-BEVZAE3m.cjs +1 -0
  50. package/dist/chunks/report-preferences-dialog-BNV7qXYH.js +723 -0
  51. package/dist/chunks/{report-runtime-context-bCy3CVzK.js → report-runtime-context-BJQDu2fV.js} +1 -1
  52. package/dist/chunks/{report-runtime-context-C8LZFsqV.cjs → report-runtime-context-DjYqLV-c.cjs} +1 -1
  53. package/dist/chunks/saved-temporal-bucket-format-DiZdQXOL.js +924 -0
  54. package/dist/chunks/saved-temporal-bucket-format-Gfbh4IiP.cjs +1 -0
  55. package/dist/chunks/switch-CjJ6FHYJ.cjs +138 -0
  56. package/dist/chunks/{switch-BXet-Sno.js → switch-DgLwr7O-.js} +4352 -5249
  57. package/dist/chunks/temporal-bucket-Dnj8qT9l.cjs +1 -0
  58. package/dist/chunks/temporal-bucket-FBZGrDCe.js +560 -0
  59. package/dist/chunks/temporal-bucket-authoring-7hv2laOG.cjs +1 -0
  60. package/dist/chunks/temporal-bucket-authoring-FIRnJz0e.js +221 -0
  61. package/dist/chunks/{temporal-bucket-contract-_F6vNhhH.js → temporal-bucket-contract-BQOj6Frl.js} +1 -1
  62. package/dist/chunks/{temporal-bucket-contract-ChDBWX8I.cjs → temporal-bucket-contract-anl4h-vg.cjs} +1 -1
  63. package/dist/chunks/{token-types-BHR58aTy.js → token-types-CRpQJ4kv.js} +1 -1
  64. package/dist/chunks/{token-types-BdQ8kHBm.cjs → token-types-D0i0IUX3.cjs} +1 -1
  65. package/dist/chunks/{update-policy-BxvYMYz0.cjs → update-policy-C1i9bgsy.cjs} +1 -1
  66. package/dist/chunks/{update-policy-g0rCQ9BM.js → update-policy-CaJz9aPG.js} +1 -1
  67. package/dist/chunks/{validators-Cs74WVie.js → validators-DeMXwRON.js} +253 -233
  68. package/dist/chunks/validators-Dm7Kpz6p.cjs +1 -0
  69. package/dist/dashboard/index.cjs +1 -1
  70. package/dist/dashboard/index.js +2 -2
  71. package/dist/dashboard-authoring/index.cjs +3 -3
  72. package/dist/dashboard-authoring/index.js +32 -29
  73. package/dist/data-app-builder/index.cjs +1 -1
  74. package/dist/data-app-builder/index.js +2 -2
  75. package/dist/data-app-codegen/index.cjs +1 -1
  76. package/dist/data-app-codegen/index.js +2 -2
  77. package/dist/data-app-codegen-node/index.cjs +1 -1
  78. package/dist/data-app-codegen-node/index.js +3 -3
  79. package/dist/data-app-sdk/index.cjs +1 -1
  80. package/dist/data-app-sdk/index.js +3 -3
  81. package/dist/data-app-sdk-adapters/index.cjs +1 -1
  82. package/dist/data-app-sdk-adapters/index.js +2 -2
  83. package/dist/data-app-sdk-validation/index.cjs +1 -1
  84. package/dist/data-app-sdk-validation/index.js +3 -3
  85. package/dist/format-utils/index.cjs +3 -3
  86. package/dist/format-utils/index.js +162 -145
  87. package/dist/index.cjs +1 -1
  88. package/dist/index.js +157 -155
  89. package/dist/report-runtime-context/index.cjs +1 -1
  90. package/dist/report-runtime-context/index.js +2 -2
  91. package/dist/style.css +1 -1
  92. package/dist/surfboard/index.cjs +1 -1
  93. package/dist/surfboard/index.js +3 -3
  94. package/dist/types/analytics-protocol.d.ts +37 -0
  95. package/dist/types/briefings.d.ts +718 -7
  96. package/dist/types/dashboard-assistant.d.ts +18 -0
  97. package/dist/types/dashboard-authoring.d.ts +52 -2
  98. package/dist/types/dashboard.d.ts +128 -0
  99. package/dist/types/data-app-sdk-validation.d.ts +13 -0
  100. package/dist/types/data-app-sdk.d.ts +13 -0
  101. package/dist/types/format-utils.d.ts +190 -3
  102. package/dist/types/index.cjs +1 -1
  103. package/dist/types/index.js +4 -4
  104. package/dist/types/main.d.ts +103 -12
  105. package/dist/types/shared.d.ts +5 -0
  106. package/dist/types/surfboard.d.ts +129 -1
  107. package/dist/types/types.d.ts +98 -6
  108. package/dist/types/value-format-preferences.d.ts +3 -0
  109. package/package.json +2 -1
  110. package/dist/chunks/card-config-utils-15sRtebL.cjs +0 -1
  111. package/dist/chunks/card-config-utils-BYZ5MJOh.js +0 -16
  112. package/dist/chunks/dashboard-briefing-launcher-DDgDr2s3.cjs +0 -26
  113. package/dist/chunks/dashboard-json-CYtvwtvj.cjs +0 -1
  114. package/dist/chunks/edit-dashboard-visual-DwKcvlsF.cjs +0 -177
  115. package/dist/chunks/editor-action-buttons-BVmsk0Aj.cjs +0 -16
  116. package/dist/chunks/format-types-CSv0V7mm.cjs +0 -1
  117. package/dist/chunks/format-types-DZGgYj39.js +0 -1663
  118. package/dist/chunks/index-CJdxSyQq.js +0 -2578
  119. package/dist/chunks/index-DPv8_Ild.cjs +0 -1395
  120. package/dist/chunks/index-DRlMUglg.cjs +0 -4
  121. package/dist/chunks/pivot-result-lifecycle-BBabQ_da.js +0 -914
  122. package/dist/chunks/pivot-result-lifecycle-DPc0ANwk.cjs +0 -4
  123. package/dist/chunks/presentation-execution-BLfPTGX_.js +0 -637
  124. package/dist/chunks/presentation-execution-BTV-Q43g.cjs +0 -1
  125. package/dist/chunks/report-preferences-dialog-D9ZCGh9l.js +0 -691
  126. package/dist/chunks/report-preferences-dialog-DaqTEcac.cjs +0 -1
  127. package/dist/chunks/switch-Cjk6G06r.cjs +0 -138
  128. package/dist/chunks/temporal-bucket-BnPxGrAi.js +0 -446
  129. package/dist/chunks/temporal-bucket-authoring-CPTwHzvs.cjs +0 -1
  130. package/dist/chunks/temporal-bucket-authoring-CgOuakGW.js +0 -205
  131. package/dist/chunks/temporal-bucket-pMnV-4Nj.cjs +0 -1
  132. package/dist/chunks/temporal-result-owner-6peubmhU.js +0 -443
  133. package/dist/chunks/temporal-result-owner-f6-i65Fb.cjs +0 -1
  134. package/dist/chunks/validators-9D4KBqKD.cjs +0 -1
@@ -1 +0,0 @@
1
- "use strict";const R=require("./report-runtime-context-C8LZFsqV.cjs"),o=require("../value-format-preferences/index.cjs"),j=require("./temporal-bucket-pMnV-4Nj.cjs");function S(r){if(!r)return!1;const e=r.toLowerCase().replace("_","-");return e==="en-in"||e.startsWith("en-in-")}function k(r,e){const i=Math.abs(r);return i>=1e12?{divisor:1e12,suffix:"T"}:i>=1e9?{divisor:1e9,suffix:"B"}:S(e)&&i>=1e7?{divisor:1e7,suffix:"Cr"}:i>=1e6?{divisor:1e6,suffix:"M"}:S(e)&&i>=1e5?{divisor:1e5,suffix:"L"}:i>=1e3?{divisor:1e3,suffix:"K"}:{divisor:1,suffix:""}}function v(r,e){try{const i=f(e);return k(r,i)}catch{return k(r,"en-US")}}function K(r){try{return new Intl.NumberFormat(r),!0}catch{return!1}}function f(r){return r&&K(r)?r:"en-US"}function h(r,e){if(r==null||isNaN(r))return"";const i=f(e==null?void 0:e.locale);let a=r;if(e!=null&&e.multiplyBy&&(a*=e.multiplyBy),e!=null&&e.useSuffix){const{divisor:t,suffix:n}=v(a,i);a=a/t;const s=new Intl.NumberFormat(i,{minimumFractionDigits:(e==null?void 0:e.minimumFractionDigits)??0,maximumFractionDigits:(e==null?void 0:e.maximumFractionDigits)??2,useGrouping:(e==null?void 0:e.useGrouping)??!0}).format(a);return`${(e==null?void 0:e.prefix)??""}${s}${n}${(e==null?void 0:e.suffix)??""}`}const c=new Intl.NumberFormat(i,{minimumFractionDigits:(e==null?void 0:e.minimumFractionDigits)??0,maximumFractionDigits:(e==null?void 0:e.maximumFractionDigits)??2,useGrouping:(e==null?void 0:e.useGrouping)??!0}).format(a);if(e!=null&&e.negativeInParentheses&&a<0){const t=c.replace("-","");return`(${(e==null?void 0:e.prefix)??""}${t}${(e==null?void 0:e.suffix)??""})`}return`${(e==null?void 0:e.prefix)??""}${c}${(e==null?void 0:e.suffix)??""}`}function w(r,e){if(r==null||isNaN(r))return"";const i=f(e==null?void 0:e.locale),a=(e==null?void 0:e.currency)||"USD",c=r<0,t=!!(e!=null&&e.negativeInParentheses&&c),n=t?Math.abs(r):r;try{if(e!=null&&e.useSuffix){const{divisor:u,suffix:l}=v(n,i),m=n/u,F=`${new Intl.NumberFormat(i,{style:"currency",currency:a,minimumFractionDigits:(e==null?void 0:e.minimumFractionDigits)??0,maximumFractionDigits:(e==null?void 0:e.maximumFractionDigits)??2,useGrouping:(e==null?void 0:e.useGrouping)??!0}).format(m)}${l}`;return t?`(${F})`:F}const s=new Intl.NumberFormat(i,{style:"currency",currency:a,minimumFractionDigits:(e==null?void 0:e.minimumFractionDigits)??0,maximumFractionDigits:(e==null?void 0:e.maximumFractionDigits)??2,useGrouping:(e==null?void 0:e.useGrouping)??!0}).format(n);return t?`(${s})`:s}catch{const s=Math.abs(r),u=e!=null&&e.useSuffix?v(s,i):{divisor:1,suffix:""},l=h(s/u.divisor,{locale:i,minimumFractionDigits:(e==null?void 0:e.minimumFractionDigits)??0,maximumFractionDigits:(e==null?void 0:e.maximumFractionDigits)??2,useGrouping:(e==null?void 0:e.useGrouping)??!0}),m=`${a} ${l}${u.suffix}`;return c?e!=null&&e.negativeInParentheses?`(${m})`:`-${m}`:m}}function D(r,e){if(r==null||isNaN(r))return"";const i=f(e==null?void 0:e.locale),c=(e==null?void 0:e.alreadyPercent)??(e==null?void 0:e.percentValueMode)==="whole"?r/100:r;return new Intl.NumberFormat(i,{style:"percent",minimumFractionDigits:(e==null?void 0:e.minimumFractionDigits)??0,maximumFractionDigits:(e==null?void 0:e.maximumFractionDigits)??2,useGrouping:(e==null?void 0:e.useGrouping)??!0}).format(c)}function I(r,e){if(r==null||isNaN(r))return"";const i=f(e==null?void 0:e.locale);return new Intl.NumberFormat(i,{notation:"scientific",minimumFractionDigits:(e==null?void 0:e.minimumFractionDigits)??0,maximumFractionDigits:(e==null?void 0:e.maximumFractionDigits)??2}).format(r)}function N(r,e){if(r==null||Number.isNaN(r))return"";const i=e.scale===void 0?r:r*e.scale,a=e.negativeStyle==="parentheses"&&i<0,c=a?Math.abs(i):i,t={style:e.type==="number"?"decimal":e.type,locale:e.locale,currency:e.currency,minimumFractionDigits:e.minimumFractionDigits,maximumFractionDigits:e.maximumFractionDigits,useGrouping:e.useGrouping,percentValueMode:e.percentValueMode,useSuffix:e.compact};let n;switch(e.type){case"currency":n=w(c,t);break;case"percent":n=D(c,t);break;case"scientific":n=I(c,t);break;default:n=h(c,t);break}const s=`${e.prefix??""}${n}${e.suffix??""}`;return a?`(${s})`:s}function O(r,e,i="en-US"){if(r==null||isNaN(r))return"";const a=f((e==null?void 0:e.locale)||i),c=(e==null?void 0:e.style)||"decimal",t=c==="decimal"?"number":c;return t==="currency"&&new Intl.NumberFormat(a,{style:"currency",currency:(e==null?void 0:e.currency)||"USD"}),N(r,{type:t,locale:a,currency:t==="currency"?(e==null?void 0:e.currency)||"USD":void 0,minimumFractionDigits:(e==null?void 0:e.minimumFractionDigits)??0,maximumFractionDigits:(e==null?void 0:e.maximumFractionDigits)??2,useGrouping:(e==null?void 0:e.useGrouping)??!0,percentValueMode:t==="percent"?(e==null?void 0:e.percentValueMode)??"whole":void 0,scale:e==null?void 0:e.scale,compact:e==null?void 0:e.compact,negativeStyle:e==null?void 0:e.negativeStyle,prefix:e==null?void 0:e.prefix,suffix:e==null?void 0:e.suffix})}function _(r,e,i){const a={style:e==="currency"?"currency":e==="percent"?"percent":"decimal",locale:i==null?void 0:i.locale,currency:i==null?void 0:i.currency,minimumFractionDigits:i==null?void 0:i.decimalPlaces,maximumFractionDigits:i==null?void 0:i.decimalPlaces,useSuffix:i==null?void 0:i.useSuffix,prefix:i==null?void 0:i.prefix,suffix:i==null?void 0:i.suffix,negativeInParentheses:i==null?void 0:i.negativeInParentheses,multiplyBy:i==null?void 0:i.multiplyBy};switch(e){case"currency":return w(r,a);case"percent":return D(r,a);case"scientific":return I(r,a);default:return h(r,a)}}const B=["type","locale","minimumFractionDigits","maximumFractionDigits","useGrouping","prefix","suffix","negativeStyle","compact","scale","currency","percentValueMode"];function T(r){if(r===null||typeof r!="object"||Array.isArray(r))return!1;const e=Object.getPrototypeOf(r);return e===null||e===Object.prototype}function C(r){if(!T(r))return{ok:!1,issues:[{path:"$",message:"Numeric format must be an object."}]};const e=[],i=new Set(B);Object.keys(r).filter(t=>!i.has(t)).forEach(t=>e.push({path:t,message:`Unknown property "${t}".`})),r.type!=="number"&&r.type!=="currency"&&r.type!=="percent"&&r.type!=="scientific"&&e.push({path:"type",message:"Expected number, currency, percent, or scientific."});const a=r.locale===void 0?void 0:o.canonicalizeSupportedLocale(r.locale);r.locale!==void 0&&!a&&e.push({path:"locale",message:"Expected a supported BCP 47 locale."});const c=r.currency===void 0?void 0:o.canonicalizeSupportedCurrencyCode(r.currency);r.currency!==void 0&&!c&&e.push({path:"currency",message:"Expected a supported ISO 4217 currency code."});for(const t of["minimumFractionDigits","maximumFractionDigits"]){const n=r[t];n!==void 0&&(!Number.isInteger(n)||typeof n!="number"||n<0||n>20)&&e.push({path:t,message:"Expected an integer from 0 to 20."})}typeof r.minimumFractionDigits=="number"&&typeof r.maximumFractionDigits=="number"&&r.minimumFractionDigits>r.maximumFractionDigits&&e.push({path:"maximumFractionDigits",message:"Must be greater than or equal to minimumFractionDigits."});for(const t of["useGrouping","compact"])r[t]!==void 0&&typeof r[t]!="boolean"&&e.push({path:t,message:"Expected a boolean."});for(const t of["prefix","suffix"])r[t]!==void 0&&typeof r[t]!="string"&&e.push({path:t,message:"Expected a string."});return r.negativeStyle!==void 0&&r.negativeStyle!=="minus"&&r.negativeStyle!=="parentheses"&&e.push({path:"negativeStyle",message:"Expected minus or parentheses."}),r.percentValueMode!==void 0&&r.percentValueMode!=="fraction"&&r.percentValueMode!=="whole"&&e.push({path:"percentValueMode",message:"Expected fraction or whole."}),r.scale!==void 0&&(typeof r.scale!="number"||!Number.isFinite(r.scale))&&e.push({path:"scale",message:"Expected a finite number."}),e.length>0?{ok:!1,issues:e}:{ok:!0,value:{type:r.type,...a?{locale:a}:{},...r.minimumFractionDigits!==void 0?{minimumFractionDigits:r.minimumFractionDigits}:{},...r.maximumFractionDigits!==void 0?{maximumFractionDigits:r.maximumFractionDigits}:{},...r.useGrouping!==void 0?{useGrouping:r.useGrouping}:{},...r.prefix!==void 0?{prefix:r.prefix}:{},...r.suffix!==void 0?{suffix:r.suffix}:{},...r.negativeStyle!==void 0?{negativeStyle:r.negativeStyle}:{},...r.compact!==void 0?{compact:r.compact}:{},...r.scale!==void 0?{scale:r.scale}:{},...c?{currency:c}:{},...r.percentValueMode!==void 0?{percentValueMode:r.percentValueMode}:{}}}}function E(r){const e=C(r);if(!e.ok)return e;const i=[];return e.value.locale||i.push({path:"locale",message:"Resolved numeric formats require an explicit locale."}),e.value.minimumFractionDigits===void 0&&i.push({path:"minimumFractionDigits",message:"Resolved numeric formats require minimumFractionDigits."}),e.value.maximumFractionDigits===void 0&&i.push({path:"maximumFractionDigits",message:"Resolved numeric formats require maximumFractionDigits."}),e.value.type==="currency"&&!e.value.currency&&i.push({path:"currency",message:"Resolved currency formats require an explicit currency."}),i.length>0?{ok:!1,issues:i}:e}function q(r){var a;const e=new Set;if(r.snapshot.resolvedFormats.forEach((c,t)=>{if(c.format.type!=="temporal_bucket"){if(c.scope.attachmentIndex!==void 0)throw new Error(`resolvedFormats.${t}.scope.attachmentIndex is not valid for a card export`);if(c.scope.dashboardId!==r.expectedScope.dashboardId||c.scope.cardId!==r.expectedScope.cardId)throw new Error(`resolvedFormats.${t}.scope must match the executing dashboard/card`);if(c.target.kind!=="column")throw new Error(`resolvedFormats.${t}.target must identify an export column`);if(e.has(c.target.columnKey))throw new Error(`resolvedFormats.${t} duplicates export column "${c.target.columnKey}"`);e.add(c.target.columnKey)}}),!r.useFormattedValues)return;if(!((a=r.visibleColumns)!=null&&a.length))throw new Error("visibleColumns must identify every formatted export column");const i=r.visibleColumns.find(c=>!e.has(c));if(i)throw new Error(`resolvedFormats is missing visible export column "${i}"`)}function b(r,e){const i=new Intl.NumberFormat(r,{style:"currency",currency:e}).resolvedOptions();return{minimumFractionDigits:i.minimumFractionDigits,maximumFractionDigits:i.maximumFractionDigits}}function U(r){if(r.minimumFractionDigits!==void 0||r.maximumFractionDigits!==void 0){const i=r.minimumFractionDigits??0;return{minimumFractionDigits:i,maximumFractionDigits:r.maximumFractionDigits??Math.max(i,2)}}const e=r.type==="percent"?1:r.type==="scientific"?2:0;return{minimumFractionDigits:e,maximumFractionDigits:e}}function A(r,e,i){const a=o.canonicalizeSupportedLocale(r.locale)??e.locale,c=r.type==="number"||r.type==="currency"?o.canonicalizeSupportedCurrencyCode(i):void 0;if(!(r.type==="currency"||c!==void 0))return{...r,locale:a,...U(r)};const n=c??o.canonicalizeSupportedCurrencyCode(r.currency)??e.defaultCurrency,s=b(a,n),u=s.minimumFractionDigits??0,l=s.maximumFractionDigits??u,m=r.minimumFractionDigits??Math.min(u,r.maximumFractionDigits??u),$=r.maximumFractionDigits??Math.max(m,l);return{...r,type:"currency",locale:a,currency:n,minimumFractionDigits:m,maximumFractionDigits:$}}function d(r){if(r===null||typeof r!="object"||Array.isArray(r))return!1;const e=Object.getPrototypeOf(r);return e===null||e===Object.prototype}function x(r,e,i){const a=new Set(e),c=Object.keys(r).find(t=>!a.has(t));if(c)throw new Error(`${i} contains unknown property "${c}"`)}function P(r,e="scope"){if(!d(r))throw new Error(`${e} must be an object`);x(r,["dashboardId","cardId","attachmentIndex"],e);const i=typeof r.dashboardId=="string"?r.dashboardId.trim():"";if(!i)throw new Error(`${e}.dashboardId is required`);const a=typeof r.cardId=="string"?r.cardId.trim():void 0;if(r.cardId!==void 0&&!a)throw new Error(`${e}.cardId must be a non-empty string`);const c=r.attachmentIndex;if(c!==void 0&&(typeof c!="number"||!Number.isInteger(c)||c<0))throw new Error(`${e}.attachmentIndex must be a non-negative integer`);return{dashboardId:i,...a?{cardId:a}:{},...typeof c=="number"?{attachmentIndex:c}:{}}}function g(r,e,i,a){if(r.kind!==e)return;x(r,["kind",i],a);const c=typeof r[i]=="string"?r[i].trim():"";if(!c)throw new Error(`${a}.${i} is required`);return c}function L(r,e){if(!d(r))throw new Error(`${e} must be an object`);const i=g(r,"metric","metricId",e);if(i)return{kind:"metric",metricId:i};const a=g(r,"column","columnKey",e);if(a)return{kind:"column",columnKey:a};const c=g(r,"matrix_measure","measureId",e);if(c)return{kind:"matrix_measure",measureId:c};throw new Error(`${e} is not a valid numeric presentation target`)}function z(r,e){if(!d(r))throw new Error(`${e} must be an object`);if(r.kind==="field"){x(r,["kind","fieldId","role"],e);const c=typeof r.fieldId=="string"?r.fieldId.trim():"";if(!c)throw new Error(`${e}.fieldId is required`);const t=r.role;if(t!==void 0&&t!=="groupby"&&t!=="pivotby")throw new Error(`${e}.role must be groupby or pivotby`);return{kind:"field",fieldId:c,...t?{role:t}:{}}}const i=g(r,"column","columnKey",e);if(i)return{kind:"column",columnKey:i};const a=g(r,"matrix_axis","axisInstanceId",e);if(a)return{kind:"matrix_axis",axisInstanceId:a};throw new Error(`${e} is not a valid temporal bucket presentation target`)}function W(r){return[r.dashboardId,r.cardId??null,r.attachmentIndex??null]}function y(r){switch(r.kind){case"metric":return[r.kind,r.metricId];case"column":return[r.kind,r.columnKey];case"matrix_measure":return[r.kind,r.measureId];case"field":return[r.kind,r.fieldId,r.role??""];case"matrix_axis":return[r.kind,r.axisInstanceId]}}function M(r,e){return r.dashboardId===e.dashboardId&&r.cardId===e.cardId&&r.attachmentIndex===e.attachmentIndex}function G(r,e){const i=y(r),a=y(e);return i.length===a.length&&i.every((c,t)=>c===a[t])}function V(r){if(!Array.isArray(r))throw new Error("resolvedFormats must be an array");const e=new Set;return r.map((i,a)=>{var u,l;const c=`resolvedFormats.${a}`;if(!d(i))throw new Error(`${c} must be an object`);x(i,["scope","target","format"],c);const t=P(i.scope,`${c}.scope`);if(!d(i.format))throw new Error(`${c}.format must be an object`);let n;if(i.format.type==="temporal_bucket"){const m=j.parseResolvedTemporalBucketFormat(i.format);if(!m.ok)throw new Error(`${c}.format is invalid: ${((u=m.issues[0])==null?void 0:u.message)??"invalid value"}`);n={scope:t,target:z(i.target,`${c}.target`),format:m.value}}else{const m=E(i.format);if(!m.ok)throw new Error(`${c}.format is invalid: ${((l=m.issues[0])==null?void 0:l.message)??"invalid value"}`);n={scope:t,target:L(i.target,`${c}.target`),format:m.value}}const s=JSON.stringify([...W(n.scope),...y(n.target)]);if(e.has(s))throw new Error(`${c} duplicates a scoped presentation target`);return e.add(s),n})}function J(r){if(!d(r))throw new Error("presentation execution snapshot must be an object");x(r,["reportContext","resolvedFormats"],"presentation execution snapshot");const e=R.parseReportRuntimeContext(r.reportContext);if(!e.ok){const i=e.issues[0];throw new Error(`presentation execution snapshot reportContext is invalid: ${i!=null&&i.path&&i.path!=="$"?`${i.path}: `:""}${(i==null?void 0:i.message)??"invalid value"}`)}return{reportContext:e.value,resolvedFormats:V(r.resolvedFormats)}}function Y(r){const e=r.snapshot.resolvedFormats.find(i=>i.format.type!=="temporal_bucket"&&M(i.scope,r.scope)&&G(i.target,r.target));return e==null?void 0:e.format}function H(r){const e=r.snapshot.resolvedFormats.find(i=>i.format.type==="temporal_bucket"&&M(i.scope,r.scope)&&G(i.target,r.target));return e==null?void 0:e.format}function Q(r){var c;const e=new Set,i=new Set;if(r.snapshot.resolvedFormats.forEach((t,n)=>{if(t.scope.attachmentIndex!==void 0)throw new Error(`resolvedFormats.${n}.scope.attachmentIndex is not valid for a card export`);if(t.scope.dashboardId!==r.expectedScope.dashboardId||t.scope.cardId!==r.expectedScope.cardId)throw new Error(`resolvedFormats.${n}.scope must match the executing dashboard/card`);if(t.target.kind==="field"&&t.format.type==="temporal_bucket"){const s=JSON.stringify(y(t.target));if(i.has(s))throw new Error(`resolvedFormats.${n} duplicates export field "${t.target.fieldId}"`);i.add(s);return}if(t.target.kind!=="column")throw new Error(`resolvedFormats.${n}.target must identify an export column or temporal pivot field`);if(e.has(t.target.columnKey))throw new Error(`resolvedFormats.${n} duplicates export column "${t.target.columnKey}"`);e.add(t.target.columnKey)}),!r.useFormattedValues)return;if(!((c=r.visibleColumns)!=null&&c.length))throw new Error("visibleColumns must identify every formatted export column");const a=r.visibleColumns.find(t=>!e.has(t));if(a)throw new Error(`resolvedFormats is missing visible export column "${a}"`)}exports.findResolvedNumericFormat=Y;exports.findResolvedTemporalBucketFormat=H;exports.formatCurrency=w;exports.formatNumber=h;exports.formatNumberCustom=_;exports.formatNumberWithColumnSettings=O;exports.formatNumericCanonical=N;exports.formatPercent=D;exports.formatScientific=I;exports.parseNumericCanonicalFormat=C;exports.parsePresentationExecutionSnapshot=J;exports.parsePresentationScope=P;exports.parseResolvedNumericCanonicalFormat=E;exports.parseResolvedPresentationEntries=V;exports.resolveCurrencyFractionDigits=b;exports.resolveNumericPresentation=A;exports.validateCardExportNumericPresentationSnapshot=q;exports.validateCardExportPresentationSnapshot=Q;