react-semaphor 0.1.494 → 0.1.496
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analytics-protocol/index.cjs +1 -1
- package/dist/analytics-protocol/index.js +233 -218
- package/dist/brand-studio/index.cjs +1 -1
- package/dist/brand-studio/index.js +4 -4
- package/dist/briefings/index.cjs +1 -1
- package/dist/briefings/index.js +5 -5
- package/dist/chunks/calculated-field-identity-Cq9GwHfE.js +1266 -0
- package/dist/chunks/calculated-field-identity-DTfyvvLC.cjs +1 -0
- package/dist/chunks/{constants-D47EhfJR.js → constants-CC3WKmqC.js} +14 -14
- package/dist/chunks/{constants-BMfm1XgO.cjs → constants-DIuhVR6J.cjs} +1 -1
- package/dist/chunks/{dashboard-briefing-launcher-DQFa0Ti1.js → dashboard-briefing-launcher-Bbz4cwHb.js} +9 -9
- package/dist/chunks/{dashboard-briefing-launcher-nWBKnd0X.cjs → dashboard-briefing-launcher-CM6LTGw5.cjs} +1 -1
- package/dist/chunks/{dashboard-controls-BbPWWVO-.cjs → dashboard-controls-B2nrczJl.cjs} +1 -1
- package/dist/chunks/{dashboard-controls-DWpnRtQI.js → dashboard-controls-BsgADy-S.js} +11 -11
- package/dist/chunks/{dashboard-date-comparison-definition-CKXgDzSB.js → dashboard-date-comparison-definition-Bqti6YAo.js} +1 -1
- package/dist/chunks/{dashboard-date-comparison-definition-DCIUwJnZ.cjs → dashboard-date-comparison-definition-C69F-zaC.cjs} +1 -1
- package/dist/chunks/{dashboard-json-DyTQysQF.js → dashboard-json-CA-BChbt.js} +7 -7
- package/dist/chunks/{dashboard-json-BFJNDHxv.cjs → dashboard-json-CwRRBSSL.cjs} +1 -1
- package/dist/chunks/edit-dashboard-visual-BlS27LDw.cjs +172 -0
- package/dist/chunks/{edit-dashboard-visual-D-gauuNQ.js → edit-dashboard-visual-CEiPgdkX.js} +7903 -7939
- package/dist/chunks/{editor-action-buttons-DMgnHVY1.js → editor-action-buttons-6HBjjcfK.js} +6 -6
- package/dist/chunks/{editor-action-buttons-B7YezrkC.cjs → editor-action-buttons-kk2BNiTe.cjs} +1 -1
- package/dist/chunks/{field-aggregations-J7de9KZm.js → field-aggregations-C8kZqMTD.js} +11 -11
- package/dist/chunks/{field-aggregations-hx8odlTh.cjs → field-aggregations-naKZ7S2Q.cjs} +1 -1
- package/dist/chunks/{index-DXQsuuMQ.cjs → index-BSRwdFTN.cjs} +226 -225
- package/dist/chunks/{index-Df4YBtX5.cjs → index-CCa-A-Yx.cjs} +1 -1
- package/dist/chunks/{index-CPWfCksu.js → index-Cgoz65yM.js} +39519 -38739
- package/dist/chunks/{index-BDtC8et3.js → index-oll4m-qi.js} +11 -11
- package/dist/chunks/{matrix-analytical-definition-DAFStKt2.js → matrix-analytical-definition-B1xhoCak.js} +1 -1
- package/dist/chunks/{matrix-analytical-definition-B3p3vF0K.cjs → matrix-analytical-definition-BK5y9XHH.cjs} +1 -1
- package/dist/chunks/{matrix-card-5R39CCdj.js → matrix-card-BEb6hr8i.js} +2 -2
- package/dist/chunks/{matrix-card-DzkJRoM4.cjs → matrix-card-Ii8yYSnw.cjs} +1 -1
- package/dist/chunks/{matrix-control-sources-BWbqiGmN.cjs → matrix-control-sources-CdegRBcA.cjs} +1 -1
- package/dist/chunks/{matrix-control-sources-DxjWV8ry.js → matrix-control-sources-cbYmqWNg.js} +5 -5
- package/dist/chunks/{matrix-definition-Z80mIEfu.cjs → matrix-definition-CSNthxru.cjs} +1 -1
- package/dist/chunks/{matrix-definition-BcJi7qGZ.js → matrix-definition-CZM5-YJX.js} +1 -1
- package/dist/chunks/{matrix-formatter-3QR1mqhn.cjs → matrix-formatter-C19PZAal.cjs} +1 -1
- package/dist/chunks/{matrix-formatter-youWVghC.js → matrix-formatter-CiXzpX6X.js} +27 -27
- package/dist/chunks/matrix-member-presentation-CQHvq18l.cjs +1 -0
- package/dist/chunks/matrix-member-presentation-CabW8mJc.js +105 -0
- package/dist/chunks/{matrix-operation-contract-D5I-t3i7.js → matrix-operation-contract-0Nor-C71.js} +21 -21
- package/dist/chunks/{matrix-operation-contract-BiUMcd6G.cjs → matrix-operation-contract-o9GXbiHw.cjs} +1 -1
- package/dist/chunks/{metric-comparison-vr9j4Z_Z.js → metric-comparison-Br8l0WkK.js} +1 -1
- package/dist/chunks/{metric-comparison-D1VRq5Os.cjs → metric-comparison-DeiOjEm5.cjs} +1 -1
- package/dist/chunks/{operators-C8TxpM4C.js → operators-B3zZoskU.js} +28 -10
- package/dist/chunks/operators-DEfKaU_V.cjs +1 -0
- package/dist/chunks/{pivot-header-presentation-Dcd4IBM5.cjs → pivot-header-presentation-DRv-cSIP.cjs} +1 -1
- package/dist/chunks/{pivot-header-presentation-BslEo_4O.js → pivot-header-presentation-DW-ti5ek.js} +3 -3
- package/dist/chunks/{pivot-result-identity-CmvwpG4K.cjs → pivot-result-identity-DEenUrMj.cjs} +1 -1
- package/dist/chunks/{pivot-result-identity-CMz27nri.js → pivot-result-identity-sZc1RaIz.js} +1 -1
- package/dist/chunks/{pivot-result-lifecycle-H_pntnd9.cjs → pivot-result-lifecycle-D81qcCcZ.cjs} +1 -1
- package/dist/chunks/{pivot-result-lifecycle-BCoOFUiU.js → pivot-result-lifecycle-DJ40gdwk.js} +7 -7
- package/dist/chunks/{raw-temporal-DcHmXurp.cjs → raw-temporal-DDTt2yv5.cjs} +1 -1
- package/dist/chunks/{raw-temporal-YWo1GEmr.js → raw-temporal-DHCZrFe7.js} +15 -15
- package/dist/chunks/{raw-temporal-contract-Bg1mtRGE.cjs → raw-temporal-contract-BcbV56Rc.cjs} +1 -1
- package/dist/chunks/{raw-temporal-contract-DY-Jd4Sc.js → raw-temporal-contract-CkvdtPYA.js} +1 -1
- package/dist/chunks/{report-preferences-dialog-Bt8T3To1.js → report-preferences-dialog-CVRJOCQu.js} +6 -6
- package/dist/chunks/{report-preferences-dialog-oT-C29vV.cjs → report-preferences-dialog-DGEq-iBF.cjs} +1 -1
- package/dist/chunks/{report-runtime-context-nCHl3uHC.js → report-runtime-context-BlDpc-F-.js} +1 -1
- package/dist/chunks/{report-runtime-context-Bb0ejvVq.cjs → report-runtime-context-lSIvyKm2.cjs} +1 -1
- package/dist/chunks/{semantic-format-CMPIcb8l.cjs → semantic-format--_VEin18.cjs} +1 -1
- package/dist/chunks/{semantic-format-UvUAyZS-.js → semantic-format-ew5zviaT.js} +2 -2
- package/dist/chunks/{source-entity-resolution-Dm4in31q.js → source-entity-resolution-79Rihbk3.js} +121 -107
- package/dist/chunks/source-entity-resolution-DPjslVgx.cjs +1 -0
- package/dist/chunks/{switch-DHOv6xHT.js → switch-BmyuyM7e.js} +4736 -4697
- package/dist/chunks/switch-nDjQC2y3.cjs +139 -0
- package/dist/chunks/{temporal-bucket-contract-CPuYzg7A.cjs → temporal-bucket-contract-BYR6tj6F.cjs} +1 -1
- package/dist/chunks/{temporal-bucket-contract-Bx5TJXF3.js → temporal-bucket-contract-C-kKQ_W4.js} +1 -1
- package/dist/chunks/{token-types-5buW2I6f.js → token-types-BIYFAsGq.js} +1 -1
- package/dist/chunks/{token-types-hl08eNuY.cjs → token-types-CkAGFhiW.cjs} +1 -1
- package/dist/chunks/{update-policy-BP_2uCgs.cjs → update-policy-BCtFr2Qh.cjs} +1 -1
- package/dist/chunks/{update-policy-D3I1J2kl.js → update-policy-CP_A1IVD.js} +2 -2
- package/dist/chunks/{validators-BpJDwDnG.js → validators-D-_IT-Xw.js} +1134 -1013
- package/dist/chunks/validators-ux2obZB9.cjs +1 -0
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +1 -1
- package/dist/dashboard-authoring/index.cjs +3 -3
- package/dist/dashboard-authoring/index.js +157 -150
- package/dist/data-app-builder/index.cjs +1 -1
- package/dist/data-app-builder/index.js +2 -2
- package/dist/data-app-codegen/index.cjs +1 -1
- package/dist/data-app-codegen/index.js +2 -2
- package/dist/data-app-codegen-node/index.cjs +2 -2
- package/dist/data-app-codegen-node/index.js +33 -36
- package/dist/data-app-sdk/index.cjs +2 -2
- package/dist/data-app-sdk/index.js +232 -230
- package/dist/data-app-sdk-adapters/index.cjs +1 -1
- package/dist/data-app-sdk-adapters/index.js +3 -3
- package/dist/data-app-sdk-validation/index.cjs +1 -1
- package/dist/data-app-sdk-validation/index.js +5 -5
- package/dist/format-utils/index.cjs +1 -1
- package/dist/format-utils/index.js +26 -26
- package/dist/index.cjs +1 -1
- package/dist/index.js +15 -15
- package/dist/report-runtime-context/index.cjs +1 -1
- package/dist/report-runtime-context/index.js +2 -2
- package/dist/style.css +1 -1
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +2 -2
- package/dist/types/analytics-protocol.d.ts +265 -1
- package/dist/types/briefings.d.ts +55 -0
- package/dist/types/dashboard-assistant.d.ts +55 -1
- package/dist/types/dashboard-authoring.d.ts +140 -2
- package/dist/types/dashboard.d.ts +57 -0
- package/dist/types/data-app-builder.d.ts +32 -1
- package/dist/types/data-app-codegen-node.d.ts +32 -1
- package/dist/types/data-app-codegen.d.ts +32 -1
- package/dist/types/data-app-sdk-adapters.d.ts +32 -1
- package/dist/types/data-app-sdk-validation.d.ts +55 -1
- package/dist/types/data-app-sdk.d.ts +60 -1
- package/dist/types/format-utils.d.ts +9 -0
- package/dist/types/index.cjs +1 -1
- package/dist/types/index.js +4 -4
- package/dist/types/main.d.ts +122 -1
- package/dist/types/shared.d.ts +55 -0
- package/dist/types/surfboard.d.ts +57 -0
- package/dist/types/types.d.ts +57 -0
- package/package.json +1 -1
- package/dist/chunks/calculated-field-identity-CSabKrXt.js +0 -1117
- package/dist/chunks/calculated-field-identity-D4VOHjBJ.cjs +0 -1
- package/dist/chunks/edit-dashboard-visual-Dtacp_qY.cjs +0 -172
- package/dist/chunks/matrix-member-presentation-BEWAH5xK.js +0 -24
- package/dist/chunks/matrix-member-presentation-DtLGyv8w.cjs +0 -1
- package/dist/chunks/operators-DrTQsJXv.cjs +0 -1
- package/dist/chunks/source-entity-resolution-DeH38dTU.cjs +0 -1
- package/dist/chunks/switch-CatLIoK-.cjs +0 -139
- package/dist/chunks/validators-4dRtYUI1.cjs +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Q=Object.defineProperty;var ee=(e,t,r)=>t in e?Q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var b=(e,t,r)=>ee(e,typeof t!="symbol"?t+"":t,r);const h=require("./validators-4dRtYUI1.cjs"),w=require("../value-format-preferences/index.cjs"),g=require("./temporal-bucket-4YEPEKlJ.cjs"),te=require("./raw-temporal-contract-Bg1mtRGE.cjs"),re=require("./index-F25jnH0p.cjs");let I;function p(e,t){const r=e.format;return r(t)}function ae(e,t){if(I??(I=p(new Intl.NumberFormat("en-US",{useGrouping:!1,maximumFractionDigits:6}),"9007199254740993.000009")==="9007199254740993.000009"),!I)throw new RangeError("This runtime cannot format exact decimal strings.");const r=Number(e);if(!Number.isFinite(r)||r===0&&e!=="0")throw new RangeError("Exact value is outside the Intl formatting range; use raw text.");return p(t,e)}function _(e){return typeof e=="number"?e<0:e.value.startsWith("-")}function N(e){return typeof e=="number"?Math.abs(e):_(e)?{...e,value:e.value.slice(1)}:e}function V(e,t){return typeof e=="number"?e*t:{kind:"exact_number",type:"decimal",value:h.scaleExactDecimal(e.value,t)}}function F(e,t){return t===0?e:typeof e=="number"?e/10**t:{kind:"exact_number",type:"decimal",value:h.scaleExactDecimal(e.value,`1e-${t}`)}}function v(e,t){return typeof e=="number"?t.format(e):ae(e.value,t)}function A(e){if(!e)return!1;const t=e.toLowerCase().replace("_","-");return t==="en-in"||t.startsWith("en-in-")}function L(e,t){const r=N(e),a=i=>typeof r=="number"?r>=i:h.compareExactDecimal(r.value,String(i))>=0;return a(1e12)?{power:12,suffix:"T"}:a(1e9)?{power:9,suffix:"B"}:A(t)&&a(1e7)?{power:7,suffix:"Cr"}:a(1e6)?{power:6,suffix:"M"}:A(t)&&a(1e5)?{power:5,suffix:"L"}:a(1e3)?{power:3,suffix:"K"}:{power:0,suffix:""}}function C(e,t){try{const r=x(t);return L(e,r)}catch{return L(e,"en-US")}}function ne(e){try{return new Intl.NumberFormat(e),!0}catch{return!1}}function x(e){return e&&ne(e)?e:"en-US"}function z(e,t){if(e==null||Number.isNaN(e))return"";const r=x(t==null?void 0:t.locale);let a=e;if(t!=null&&t.multiplyBy&&(a=V(a,t.multiplyBy)),t!=null&&t.useSuffix){const{power:n,suffix:c}=C(a,r);a=F(a,n);const m=v(a,new Intl.NumberFormat(r,{minimumFractionDigits:(t==null?void 0:t.minimumFractionDigits)??0,maximumFractionDigits:(t==null?void 0:t.maximumFractionDigits)??2,useGrouping:(t==null?void 0:t.useGrouping)??!0}));return`${(t==null?void 0:t.prefix)??""}${m}${c}${(t==null?void 0:t.suffix)??""}`}const i=v(a,new Intl.NumberFormat(r,{minimumFractionDigits:(t==null?void 0:t.minimumFractionDigits)??0,maximumFractionDigits:(t==null?void 0:t.maximumFractionDigits)??2,useGrouping:(t==null?void 0:t.useGrouping)??!0}));if(t!=null&&t.negativeInParentheses&&_(a)){const n=i.replace("-","");return`(${(t==null?void 0:t.prefix)??""}${n}${(t==null?void 0:t.suffix)??""})`}return`${(t==null?void 0:t.prefix)??""}${i}${(t==null?void 0:t.suffix)??""}`}function R(e,t){if(e==null||Number.isNaN(e))return"";const r=x(t==null?void 0:t.locale),a=(t==null?void 0:t.currency)||"USD",i=_(e),n=!!(t!=null&&t.negativeInParentheses&&i),c=n?N(e):e;try{if(t!=null&&t.useSuffix){const{power:l,suffix:o}=C(c,r),s=F(c,l),f=`${v(s,new Intl.NumberFormat(r,{style:"currency",currency:a,minimumFractionDigits:(t==null?void 0:t.minimumFractionDigits)??0,maximumFractionDigits:(t==null?void 0:t.maximumFractionDigits)??2,useGrouping:(t==null?void 0:t.useGrouping)??!0}))}${o}`;return n?`(${f})`:f}const m=v(c,new Intl.NumberFormat(r,{style:"currency",currency:a,minimumFractionDigits:(t==null?void 0:t.minimumFractionDigits)??0,maximumFractionDigits:(t==null?void 0:t.maximumFractionDigits)??2,useGrouping:(t==null?void 0:t.useGrouping)??!0}));return n?`(${m})`:m}catch{const m=N(e),l=t!=null&&t.useSuffix?C(m,r):{power:0,suffix:""},o=z(F(m,l.power),{locale:r,minimumFractionDigits:(t==null?void 0:t.minimumFractionDigits)??0,maximumFractionDigits:(t==null?void 0:t.maximumFractionDigits)??2,useGrouping:(t==null?void 0:t.useGrouping)??!0}),s=`${a} ${o}${l.suffix}`;return i?t!=null&&t.negativeInParentheses?`(${s})`:`-${s}`:s}}function M(e,t){if(e==null||Number.isNaN(e))return"";const r=x(t==null?void 0:t.locale),i=(t==null?void 0:t.alreadyPercent)??(t==null?void 0:t.percentValueMode)==="whole"?F(e,2):e;return v(i,new Intl.NumberFormat(r,{style:"percent",minimumFractionDigits:(t==null?void 0:t.minimumFractionDigits)??0,maximumFractionDigits:(t==null?void 0:t.maximumFractionDigits)??2,useGrouping:(t==null?void 0:t.useGrouping)??!0}))}function P(e,t){if(e==null||Number.isNaN(e))return"";const r=x(t==null?void 0:t.locale);return v(e,new Intl.NumberFormat(r,{notation:"scientific",minimumFractionDigits:(t==null?void 0:t.minimumFractionDigits)??0,maximumFractionDigits:(t==null?void 0:t.maximumFractionDigits)??2}))}function O(e,t){if(e==null||Number.isNaN(e))return"";const r=t.scale===void 0?e:V(e,t.scale),a=t.negativeStyle==="parentheses"&&_(r),i=a?N(r):r,n={style:t.type==="number"?"decimal":t.type,locale:t.locale,currency:t.currency,minimumFractionDigits:t.minimumFractionDigits,maximumFractionDigits:t.maximumFractionDigits,useGrouping:t.useGrouping,percentValueMode:t.percentValueMode,useSuffix:t.compact};let c;switch(t.type){case"currency":c=R(i,n);break;case"percent":c=M(i,n);break;case"scientific":c=P(i,n);break;default:c=z(i,n);break}const m=`${t.prefix??""}${c}${t.suffix??""}`;return a?`(${m})`:m}function ie(e,t,r="en-US"){if(e==null||typeof e=="number"&&isNaN(e))return"";const a=x((t==null?void 0:t.locale)||r),i=(t==null?void 0:t.style)||"decimal",n=i==="decimal"?"number":i;return n==="currency"&&new Intl.NumberFormat(a,{style:"currency",currency:(t==null?void 0:t.currency)||"USD"}),O(e,{type:n,locale:a,currency:n==="currency"?(t==null?void 0:t.currency)||"USD":void 0,minimumFractionDigits:(t==null?void 0:t.minimumFractionDigits)??0,maximumFractionDigits:(t==null?void 0:t.maximumFractionDigits)??2,useGrouping:(t==null?void 0:t.useGrouping)??!0,percentValueMode:n==="percent"?(t==null?void 0:t.percentValueMode)??"whole":void 0,scale:t==null?void 0:t.scale,compact:t==null?void 0:t.compact,negativeStyle:t==null?void 0:t.negativeStyle,prefix:t==null?void 0:t.prefix,suffix:t==null?void 0:t.suffix})}function ce(e,t,r){const a={style:t==="currency"?"currency":t==="percent"?"percent":"decimal",locale:r==null?void 0:r.locale,currency:r==null?void 0:r.currency,minimumFractionDigits:r==null?void 0:r.decimalPlaces,maximumFractionDigits:r==null?void 0:r.decimalPlaces,useSuffix:r==null?void 0:r.useSuffix,prefix:r==null?void 0:r.prefix,suffix:r==null?void 0:r.suffix,negativeInParentheses:r==null?void 0:r.negativeInParentheses,multiplyBy:r==null?void 0:r.multiplyBy};switch(t){case"currency":return R(e,a);case"percent":return M(e,a);case"scientific":return P(e,a);default:return z(e,a)}}const se=["type","locale","minimumFractionDigits","maximumFractionDigits","useGrouping","prefix","suffix","negativeStyle","compact","scale","currency","percentValueMode"];function G(e){if(!g.isPlainJsonRecord(e))return{ok:!1,issues:[{path:"$",message:"Numeric format must be an object."}]};const t=[],r=new Set(se);Object.keys(e).filter(n=>!r.has(n)).forEach(n=>t.push({path:n,message:`Unknown property "${n}".`})),e.type!=="number"&&e.type!=="currency"&&e.type!=="percent"&&e.type!=="scientific"&&t.push({path:"type",message:"Expected number, currency, percent, or scientific."});const a=e.locale===void 0?void 0:w.canonicalizeSupportedLocale(e.locale);e.locale!==void 0&&!a&&t.push({path:"locale",message:"Expected a supported BCP 47 locale."});const i=e.currency===void 0?void 0:w.canonicalizeSupportedCurrencyCode(e.currency);e.currency!==void 0&&!i&&t.push({path:"currency",message:"Expected a supported ISO 4217 currency code."});for(const n of["minimumFractionDigits","maximumFractionDigits"]){const c=e[n];c!==void 0&&(!Number.isInteger(c)||typeof c!="number"||c<0||c>20)&&t.push({path:n,message:"Expected an integer from 0 to 20."})}typeof e.minimumFractionDigits=="number"&&typeof e.maximumFractionDigits=="number"&&e.minimumFractionDigits>e.maximumFractionDigits&&t.push({path:"maximumFractionDigits",message:"Must be greater than or equal to minimumFractionDigits."});for(const n of["useGrouping","compact"])e[n]!==void 0&&typeof e[n]!="boolean"&&t.push({path:n,message:"Expected a boolean."});for(const n of["prefix","suffix"])e[n]!==void 0&&typeof e[n]!="string"&&t.push({path:n,message:"Expected a string."});return e.negativeStyle!==void 0&&e.negativeStyle!=="minus"&&e.negativeStyle!=="parentheses"&&t.push({path:"negativeStyle",message:"Expected minus or parentheses."}),e.percentValueMode!==void 0&&e.percentValueMode!=="fraction"&&e.percentValueMode!=="whole"&&t.push({path:"percentValueMode",message:"Expected fraction or whole."}),e.scale!==void 0&&(typeof e.scale!="number"||!Number.isFinite(e.scale))&&t.push({path:"scale",message:"Expected a finite number."}),t.length>0?{ok:!1,issues:t}:{ok:!0,value:{type:e.type,...a?{locale:a}:{},...e.minimumFractionDigits!==void 0?{minimumFractionDigits:e.minimumFractionDigits}:{},...e.maximumFractionDigits!==void 0?{maximumFractionDigits:e.maximumFractionDigits}:{},...e.useGrouping!==void 0?{useGrouping:e.useGrouping}:{},...e.prefix!==void 0?{prefix:e.prefix}:{},...e.suffix!==void 0?{suffix:e.suffix}:{},...e.negativeStyle!==void 0?{negativeStyle:e.negativeStyle}:{},...e.compact!==void 0?{compact:e.compact}:{},...e.scale!==void 0?{scale:e.scale}:{},...i?{currency:i}:{},...e.percentValueMode!==void 0?{percentValueMode:e.percentValueMode}:{}}}}function me(e){const t=G(e);if(!t.ok)return t;const r=[];return t.value.locale||r.push({path:"locale",message:"Resolved numeric formats require an explicit locale."}),t.value.minimumFractionDigits===void 0&&r.push({path:"minimumFractionDigits",message:"Resolved numeric formats require minimumFractionDigits."}),t.value.maximumFractionDigits===void 0&&r.push({path:"maximumFractionDigits",message:"Resolved numeric formats require maximumFractionDigits."}),t.value.type==="currency"&&!t.value.currency&&r.push({path:"currency",message:"Resolved currency formats require an explicit currency."}),r.length>0?{ok:!1,issues:r}:t}function ue(e){var a;const t=new Set;if(e.snapshot.resolvedFormats.forEach((i,n)=>{if(i.format.type!=="temporal_bucket"){if(i.scope.attachmentIndex!==void 0)throw new Error(`resolvedFormats.${n}.scope.attachmentIndex is not valid for a card export`);if(i.scope.dashboardId!==e.expectedScope.dashboardId||i.scope.cardId!==e.expectedScope.cardId)throw new Error(`resolvedFormats.${n}.scope must match the executing dashboard/card`);if(i.target.kind!=="column")throw new Error(`resolvedFormats.${n}.target must identify an export column`);if(t.has(i.target.columnKey))throw new Error(`resolvedFormats.${n} duplicates export column "${i.target.columnKey}"`);t.add(i.target.columnKey)}}),!e.useFormattedValues)return;if(!((a=e.visibleColumns)!=null&&a.length))throw new Error("visibleColumns must identify every formatted export column");const r=e.visibleColumns.find(i=>!t.has(i));if(r)throw new Error(`resolvedFormats is missing visible export column "${r}"`)}function Z(e,t){const r=new Intl.NumberFormat(e,{style:"currency",currency:t}).resolvedOptions();return{minimumFractionDigits:r.minimumFractionDigits,maximumFractionDigits:r.maximumFractionDigits}}function oe(e){if(e.minimumFractionDigits!==void 0||e.maximumFractionDigits!==void 0){const r=e.minimumFractionDigits??0;return{minimumFractionDigits:r,maximumFractionDigits:e.maximumFractionDigits??Math.max(r,2)}}const t=e.type==="percent"?1:e.type==="scientific"?2:0;return{minimumFractionDigits:t,maximumFractionDigits:t}}function le(e,t,r){const a=w.canonicalizeSupportedLocale(e.locale)??t.locale,i=e.type==="number"||e.type==="currency"?w.canonicalizeSupportedCurrencyCode(r):void 0;if(!(e.type==="currency"||i!==void 0))return{...e,locale:a,...oe(e)};const c=i??w.canonicalizeSupportedCurrencyCode(e.currency)??t.defaultCurrency,m=Z(a,c),l=m.minimumFractionDigits??0,o=m.maximumFractionDigits??l,s=e.minimumFractionDigits??Math.min(l,e.maximumFractionDigits??l),d=e.maximumFractionDigits??Math.max(s,o);return{...e,type:"currency",locale:a,currency:c,minimumFractionDigits:s,maximumFractionDigits:d}}class S extends Error{constructor(r,a){super(a);b(this,"code");this.name="RawTemporalFormatContractError",this.code=r}}const de=["SSSSSSSSS","SSSSSSSS","SSSSSSS","SSSSSS","SSSSS","SSSS","SSS","SS","S"],q=/^(\d{4})-(\d{2})-(\d{2})$/,U=/^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{1,9}))?)?$/,B=/^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{1,9}))?)?(Z|[+-]\d{2}:\d{2})$/,fe=["yyyy","MMMM","LLLL","zzz","XXX","MMM","LLL","yy","MM","dd","HH","hh","mm","ss","M","d","H","h","m","s","a"],ge=new Set(["HH","H","hh","h","mm","m","ss","s","a",...de]),ye=new Set(["zzz","XXX"]),k=new Set(["short","medium","long"]);function y(e,t){return Object.keys(e).length===t.length&&t.every(a=>a in e)}function u(e){throw new S("invalid_raw_temporal_format",e)}function j(e){if(!e||e.trim()!==e||e.length>256)return u("date_fns patterns must be non-empty, trimmed, and at most 256 characters.");const t=[],r=i=>{const n=t[t.length-1];(n==null?void 0:n.kind)==="literal"?n.value+=i:t.push({kind:"literal",value:i})};let a=0;for(;a<e.length;){if(e[a]==="'"){if(e[a+1]==="'"){r("'"),a+=2;continue}let c="",m=!1;for(a+=1;a<e.length;){if(e[a]==="'"){if(e[a+1]==="'"){c+="'",a+=2;continue}m=!0,a+=1;break}c+=e[a],a+=1}if(!m)return u("date_fns pattern has an unclosed quote.");r(c);continue}if(e[a]==="S"){let c=a+1;for(;e[c]==="S";)c+=1;const m=e.slice(a,c);if(m.length>9)return u("date_fns fractional-second tokens support at most nine digits.");t.push({kind:"token",value:m}),a=c;continue}const i=fe.find(c=>e.startsWith(c,a));if(i){t.push({kind:"token",value:i}),a+=i.length;continue}const n=e[a];if(/[A-Za-z]/.test(n))return u(`Unsupported date_fns pattern token beginning at "${e.slice(a)}".`);r(n),a+=1}return t.some(i=>i.kind==="token")?t:u("date_fns patterns must contain at least one token.")}function H(e,t){if(e==="semaphor_tokens"){const r=g.tokenizeTemporalBucketPattern(t);r.ok||u(r.message);return}j(t)}function he(e){return!g.isPlainJsonRecord(e)||!y(e,["dateStyle","dateTime"])?u("Automatic raw temporal styles are incomplete."):k.has(e.dateStyle)?!g.isPlainJsonRecord(e.dateTime)||!y(e.dateTime,["dateStyle","timeStyle"])||!k.has(e.dateTime.dateStyle)||!k.has(e.dateTime.timeStyle)?u("Automatic dateTime styles are incomplete or invalid."):{dateStyle:e.dateStyle,dateTime:{dateStyle:e.dateTime.dateStyle,timeStyle:e.dateTime.timeStyle}}:u("Automatic dateStyle is invalid.")}function $(e){const t=["type","locale","calendarTimezone","presentation"],r=[...t,"sourceTimezone"];if(!g.isPlainJsonRecord(e)||!y(e,t)&&!y(e,r)||e.type!=="raw_temporal")return u("Resolved raw temporal format has an invalid shape.");const a=w.canonicalizeSupportedLocale(e.locale);return a?typeof e.calendarTimezone!="string"||!h.isValidIanaTimeZone(e.calendarTimezone)?u("Raw temporal calendarTimezone must be a valid IANA timezone."):e.sourceTimezone!==void 0&&(typeof e.sourceTimezone!="string"||!h.isValidIanaTimeZone(e.sourceTimezone))?u("Raw temporal sourceTimezone must be a valid IANA timezone."):g.isPlainJsonRecord(e.presentation)?e.presentation.mode==="auto"?y(e.presentation,["mode","styles"])?{type:"raw_temporal",locale:a,calendarTimezone:e.calendarTimezone,...e.sourceTimezone?{sourceTimezone:e.sourceTimezone}:{},presentation:{mode:"auto",styles:he(e.presentation.styles)}}:u("Automatic raw temporal presentation has unknown fields."):e.presentation.mode!=="pattern"||!y(e.presentation,["mode","dialect","pattern"])||e.presentation.dialect!=="semaphor_tokens"&&e.presentation.dialect!=="date_fns"||typeof e.presentation.pattern!="string"?u("Pattern raw temporal presentation has an invalid shape."):(H(e.presentation.dialect,e.presentation.pattern),{type:"raw_temporal",locale:a,calendarTimezone:e.calendarTimezone,...e.sourceTimezone?{sourceTimezone:e.sourceTimezone}:{},presentation:{mode:"pattern",dialect:e.presentation.dialect,pattern:e.presentation.pattern}}):u("Raw temporal presentation must be an object."):u("Raw temporal locale is invalid or unsupported.")}function Se(e){var m,l,o;if(e.format){if(!g.isPlainJsonRecord(e.format))return u("Authored raw temporal format has an invalid shape.");const s=Object.keys(e.format);if(!s.includes("type")||!s.includes("presentation")||s.some(f=>f!=="type"&&f!=="presentation"&&f!=="timezone"&&f!=="sourceTimezone")||e.format.type!=="raw_temporal"||!g.isPlainJsonRecord(e.format.presentation))return u("Authored raw temporal format has an invalid shape.");const d=e.format.presentation;if(d.mode==="auto"){if(!y(d,["mode"]))return u("Automatic authored raw temporal format has unknown fields.")}else{if(d.mode!=="pattern"||!y(d,["mode","dialect","pattern"])||d.dialect!=="semaphor_tokens"&&d.dialect!=="date_fns"||typeof d.pattern!="string")return u("Authored raw temporal pattern has an invalid shape.");H(d.dialect,d.pattern)}}const t=(m=e.format)==null?void 0:m.timezone,r=(l=e.format)==null?void 0:l.sourceTimezone,a=t&&t!=="auto"?t:e.calendar.tz,i=r&&r!=="auto"?r==="local"?Intl.DateTimeFormat().resolvedOptions().timeZone:r:void 0;if(t!==void 0&&t!=="auto"&&!h.isValidIanaTimeZone(a)||i!==void 0&&!h.isValidIanaTimeZone(i))return u("Authored raw temporal timezone is invalid.");const n=((o=e.format)==null?void 0:o.presentation)??{mode:"auto"},c={type:"raw_temporal",locale:e.preferences.locale,calendarTimezone:a,...i?{sourceTimezone:i}:{},presentation:n.mode==="pattern"?{...n}:{mode:"auto",styles:{dateStyle:e.preferences.dateStyle,dateTime:{...e.preferences.dateTime}}}};return $(c)}function we(e){if(q.test(e))return"date";if(B.test(e))return"instant";if(U.test(e))return"wall_datetime"}function ve(e){const t=new Set;let r=!1;for(const a of e.values){if(a===null)continue;r=!0;const i=we(a);i&&t.add(i)}if(!r)return{status:"empty"};if(t.size===0)return{status:"invalid_only"};if(t.size>1)throw new S("mixed_sql_temporal_semantics",`Declared SQL temporal column "${e.columnKey}" mixes date, wall-datetime, or instant semantics. Normalize it to one kind.`);return{status:"classified",metadata:{kind:"raw_temporal",valueKind:[...t][0]}}}function xe(e){return{version:1,columns:Object.fromEntries([...e].map(([t,r])=>[t,r.status==="classified"?r.metadata.valueKind:r.status]))}}function Y(e){if(!g.isPlainJsonRecord(e)||e.version!==1||!g.isPlainJsonRecord(e.columns)||Object.keys(e).some(a=>a!=="version"&&a!=="columns"))throw new S("invalid_raw_temporal_format","Raw temporal chunk classification evidence is malformed.");const t={},r=new Set(["empty","invalid_only","date","wall_datetime","instant"]);for(const[a,i]of Object.entries(e.columns)){if(!a.trim()||!r.has(i))throw new S("invalid_raw_temporal_format","Raw temporal chunk classification evidence contains an invalid column or status.");t[a]=i}return{version:1,columns:t}}function Te(e){if(e.length===0)return;const t=e.map(Y),r=Object.keys(t[0].columns).sort();for(let a=1;a<t.length;a+=1){const i=Object.keys(t[a].columns).sort();if(i.length!==r.length||i.some((n,c)=>n!==r[c]))throw new S("invalid_raw_temporal_format","Raw temporal chunk classification evidence has inconsistent columns.")}for(const a of r)if(new Set(t.map(n=>n.columns[a]).filter(n=>n!=="empty"&&n!=="invalid_only")).size>1)throw new S("mixed_sql_temporal_semantics",`Declared SQL temporal column "${a}" has inconsistent semantics across export chunks. Normalize it to one kind.`)}function De(e){return e%4===0&&(e%100!==0||e%400===0)}function Ne(e,t){return t===2?De(e)?29:28:[4,6,9,11].includes(t)?30:31}function Fe(e){return e.year>=1&&e.year<=9999&&e.month>=1&&e.month<=12&&e.day>=1&&e.day<=Ne(e.year,e.month)&&e.hour>=0&&e.hour<=23&&e.minute>=0&&e.minute<=59&&e.second>=0&&e.second<=59}function _e(e){return{year:Number(e[1]),month:Number(e[2]),day:Number(e[3]),hour:Number(e[4]??0),minute:Number(e[5]??0),second:Number(e[6]??0),fraction:e[7]??""}}function ze(e,t){const r=t==="date"?e.match(q):t==="wall_datetime"?e.match(U):e.match(B);if(!r)return{status:"invalid_shape"};const a=_e(r);if(!Fe(a))return{status:"out_of_range"};if(t==="instant"){const i=r[8];if(i&&i!=="Z"){const[c,m]=i.slice(1).split(":").map(Number);if(c>23||m>59)return{status:"out_of_range"}}const n=new Date(e.replace(" ","T"));return Number.isNaN(n.getTime())?{status:"out_of_range"}:{status:"valid",fields:a,instant:n}}return{status:"valid",fields:a}}function E(e){const t=new Date(0);return t.setUTCFullYear(e.year,e.month-1,e.day),t.setUTCHours(e.hour,e.minute,e.second,0),t}function J(e,t){const r=e.fraction?`.${e.fraction.padEnd(3,"0").slice(0,3)}`:"";return re.fromZonedTime(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}T${String(e.hour).padStart(2,"0")}:${String(e.minute).padStart(2,"0")}:${String(e.second).padStart(2,"0")}${r}`,t)}function ke(e,t){const r=new Map,a=new Map;let i,n,c,m;return{number(l,o=1){let s=r.get(o);return s||(s=new Intl.NumberFormat(e,{useGrouping:!1,minimumIntegerDigits:o,maximumFractionDigits:0}),r.set(o,s)),s.format(l)},month(l,o,s){var T;const d=`${o}:${s?"standalone":"contextual"}`;let f=a.get(d);if(!f){const D={calendar:"gregory",timeZone:"UTC",month:o};s||(D.day="numeric"),f=new Intl.DateTimeFormat(e,D),a.set(d,f)}return((T=f.formatToParts(l).find(D=>D.type==="month"))==null?void 0:T.value)??""},dayPeriod(l){var o;return i??(i=new Intl.DateTimeFormat(e,{calendar:"gregory",timeZone:"UTC",hour:"numeric",hour12:!0})),((o=i.formatToParts(l).find(s=>s.type==="dayPeriod"))==null?void 0:o.value)??""},instantFields(l){n??(n=new Intl.DateTimeFormat("en-CA",{calendar:"gregory",numberingSystem:"latn",timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23"}));const o=n.formatToParts(l),s=d=>{var f;return Number((f=o.find(T=>T.type===d))==null?void 0:f.value)};return{year:s("year"),month:s("month"),day:s("day"),hour:s("hour"),minute:s("minute"),second:s("second"),fraction:""}},timezoneName(l){var o;return c??(c=new Intl.DateTimeFormat(e,{calendar:"gregory",timeZone:t,timeZoneName:"short"})),((o=c.formatToParts(l).find(s=>s.type==="timeZoneName"))==null?void 0:o.value)??""},timezoneOffset(l){var d;m??(m=new Intl.DateTimeFormat("en-US",{calendar:"gregory",timeZone:t,timeZoneName:"longOffset"}));const o=(d=m.formatToParts(l).find(f=>f.type==="timeZoneName"))==null?void 0:d.value;if(!o)return u("Unable to resolve the instant timezone offset.");const s=o.replace(/^GMT/,"");return s===""||/^[+-]00:00$/.test(s)?"Z":s}}}function Ce(e,t,r,a,i){if(/^S{1,9}$/.test(e)){const n=t.fraction.padEnd(e.length,"0").slice(0,e.length);return a.number(Number(n),e.length)}switch(e){case"YYYY":case"yyyy":return a.number(t.year,4);case"YY":case"yy":return a.number(t.year%100,2);case"MMMM":return a.month(r,"long",!1);case"LLLL":return a.month(r,"long",!0);case"MMM":return a.month(r,"short",!1);case"LLL":return a.month(r,"short",!0);case"MM":return a.number(t.month,2);case"M":return a.number(t.month);case"DD":case"dd":return a.number(t.day,2);case"d":return a.number(t.day);case"HH":return a.number(t.hour,2);case"H":return a.number(t.hour);case"hh":return a.number(t.hour%12||12,2);case"h":return a.number(t.hour%12||12);case"mm":return a.number(t.minute,2);case"m":return a.number(t.minute);case"ss":return a.number(t.second,2);case"s":return a.number(t.second);case"a":return a.dayPeriod(r);case"zzz":return i?a.timezoneName(i):u("Timezone pattern tokens require an instant value.");case"XXX":return i?a.timezoneOffset(i):u("Timezone pattern tokens require an instant value.");default:return u(`Unsupported raw temporal pattern token "${e}".`)}}function Ee(e,t,r,a){const i=E(t);return e.map(n=>n.kind==="literal"?n.value:Ce(n.value,t,i,r,a)).join("")}function W(e,t,r){const a=t==="date_fns"?j(r):(()=>{const n=g.tokenizeTemporalBucketPattern(r);return n.ok?n.segments:u(n.message)})(),i=a.filter(n=>n.kind==="token").map(n=>n.value);return e==="date"&&i.some(n=>ge.has(n))?u("Date patterns cannot contain time tokens."):e!=="instant"&&i.some(n=>ye.has(n))?u("Timezone pattern tokens require an instant value."):a}function Re(e){W(e.valueKind??"instant",e.dialect,e.pattern)}function Me(e,t,r,a){const i=W(e.valueKind,r,a),n=ke(t.locale,t.calendarTimezone);return c=>{const m=e.valueKind==="wall_datetime"&&t.sourceTimezone?J(c.fields,t.sourceTimezone):void 0,l=e.valueKind==="instant"?{...n.instantFields(c.instant),fraction:c.fields.fraction}:m?{...n.instantFields(m),fraction:c.fields.fraction}:c.fields;return Ee(i,l,n,c.instant??m)}}function Pe(e,t){const r=t.presentation.mode==="auto"?t.presentation.styles:u("Automatic raw temporal formatting requires styles.");if(e.valueKind==="date"){const c=new Intl.DateTimeFormat(t.locale,{calendar:"gregory",timeZone:"UTC",dateStyle:r.dateStyle});return m=>c.format(E(m.fields))}const a=e.valueKind==="instant",i=!a&&r.dateTime.timeStyle==="long"?"medium":r.dateTime.timeStyle,n=new Intl.DateTimeFormat(t.locale,{calendar:"gregory",timeZone:a||e.valueKind==="wall_datetime"&&t.sourceTimezone?t.calendarTimezone:"UTC",dateStyle:r.dateTime.dateStyle,timeStyle:i});return c=>a?n.format(c.instant):e.valueKind==="wall_datetime"&&t.sourceTimezone?n.format(J(c.fields,t.sourceTimezone)):n.format(E(c.fields))}function K(e,t,r){return{ok:!1,text:e,diagnostic:{code:r,message:`Raw temporal ${t.valueKind} value is ${r==="invalid_raw_temporal_value"?"malformed":"out of range"}.`}}}function X(e){const t=te.parseRawTemporalValueMetadata(e.metadata),r=$(e.format),a=r.presentation.mode==="auto"?Pe(t,r):Me(t,r,r.presentation.dialect,r.presentation.pattern);return i=>{if(i===null)return{ok:!0,text:"",status:"empty"};const n=ze(i,t.valueKind);return n.status==="invalid_shape"?K(i,t,"invalid_raw_temporal_value"):n.status==="out_of_range"?K(i,t,"out_of_range_raw_temporal_value"):{ok:!0,text:a(n),status:"formatted"}}}function $e(e){return X({metadata:e.metadata,format:e.format})(e.value)}exports.RawTemporalFormatContractError=S;exports.assertRawTemporalChunkClassificationAgreement=Te;exports.classifyDeclaredSqlTemporalColumn=ve;exports.createRawTemporalChunkClassificationEvidence=xe;exports.formatCurrency=R;exports.formatNumber=z;exports.formatNumberCustom=ce;exports.formatNumberWithColumnSettings=ie;exports.formatNumericCanonical=O;exports.formatPercent=M;exports.formatRawTemporalValue=$e;exports.formatScientific=P;exports.parseNumericCanonicalFormat=G;exports.parseRawTemporalChunkClassificationEvidence=Y;exports.parseResolvedNumericCanonicalFormat=me;exports.parseResolvedRawTemporalFormat=$;exports.prepareRawTemporalFormatter=X;exports.resolveCurrencyFractionDigits=Z;exports.resolveNumericPresentation=le;exports.resolveRawTemporalFormat=Se;exports.validateCardExportNumericPresentationSnapshot=ue;exports.validateRawTemporalPattern=Re;
|
|
1
|
+
"use strict";var Q=Object.defineProperty;var ee=(e,t,r)=>t in e?Q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var b=(e,t,r)=>ee(e,typeof t!="symbol"?t+"":t,r);const h=require("./validators-ux2obZB9.cjs"),w=require("../value-format-preferences/index.cjs"),g=require("./temporal-bucket-4YEPEKlJ.cjs"),te=require("./raw-temporal-contract-BcbV56Rc.cjs"),re=require("./index-F25jnH0p.cjs");let I;function p(e,t){const r=e.format;return r(t)}function ae(e,t){if(I??(I=p(new Intl.NumberFormat("en-US",{useGrouping:!1,maximumFractionDigits:6}),"9007199254740993.000009")==="9007199254740993.000009"),!I)throw new RangeError("This runtime cannot format exact decimal strings.");const r=Number(e);if(!Number.isFinite(r)||r===0&&e!=="0")throw new RangeError("Exact value is outside the Intl formatting range; use raw text.");return p(t,e)}function _(e){return typeof e=="number"?e<0:e.value.startsWith("-")}function N(e){return typeof e=="number"?Math.abs(e):_(e)?{...e,value:e.value.slice(1)}:e}function V(e,t){return typeof e=="number"?e*t:{kind:"exact_number",type:"decimal",value:h.scaleExactDecimal(e.value,t)}}function F(e,t){return t===0?e:typeof e=="number"?e/10**t:{kind:"exact_number",type:"decimal",value:h.scaleExactDecimal(e.value,`1e-${t}`)}}function v(e,t){return typeof e=="number"?t.format(e):ae(e.value,t)}function A(e){if(!e)return!1;const t=e.toLowerCase().replace("_","-");return t==="en-in"||t.startsWith("en-in-")}function L(e,t){const r=N(e),a=i=>typeof r=="number"?r>=i:h.compareExactDecimal(r.value,String(i))>=0;return a(1e12)?{power:12,suffix:"T"}:a(1e9)?{power:9,suffix:"B"}:A(t)&&a(1e7)?{power:7,suffix:"Cr"}:a(1e6)?{power:6,suffix:"M"}:A(t)&&a(1e5)?{power:5,suffix:"L"}:a(1e3)?{power:3,suffix:"K"}:{power:0,suffix:""}}function C(e,t){try{const r=x(t);return L(e,r)}catch{return L(e,"en-US")}}function ne(e){try{return new Intl.NumberFormat(e),!0}catch{return!1}}function x(e){return e&&ne(e)?e:"en-US"}function z(e,t){if(e==null||Number.isNaN(e))return"";const r=x(t==null?void 0:t.locale);let a=e;if(t!=null&&t.multiplyBy&&(a=V(a,t.multiplyBy)),t!=null&&t.useSuffix){const{power:n,suffix:c}=C(a,r);a=F(a,n);const m=v(a,new Intl.NumberFormat(r,{minimumFractionDigits:(t==null?void 0:t.minimumFractionDigits)??0,maximumFractionDigits:(t==null?void 0:t.maximumFractionDigits)??2,useGrouping:(t==null?void 0:t.useGrouping)??!0}));return`${(t==null?void 0:t.prefix)??""}${m}${c}${(t==null?void 0:t.suffix)??""}`}const i=v(a,new Intl.NumberFormat(r,{minimumFractionDigits:(t==null?void 0:t.minimumFractionDigits)??0,maximumFractionDigits:(t==null?void 0:t.maximumFractionDigits)??2,useGrouping:(t==null?void 0:t.useGrouping)??!0}));if(t!=null&&t.negativeInParentheses&&_(a)){const n=i.replace("-","");return`(${(t==null?void 0:t.prefix)??""}${n}${(t==null?void 0:t.suffix)??""})`}return`${(t==null?void 0:t.prefix)??""}${i}${(t==null?void 0:t.suffix)??""}`}function R(e,t){if(e==null||Number.isNaN(e))return"";const r=x(t==null?void 0:t.locale),a=(t==null?void 0:t.currency)||"USD",i=_(e),n=!!(t!=null&&t.negativeInParentheses&&i),c=n?N(e):e;try{if(t!=null&&t.useSuffix){const{power:l,suffix:o}=C(c,r),s=F(c,l),f=`${v(s,new Intl.NumberFormat(r,{style:"currency",currency:a,minimumFractionDigits:(t==null?void 0:t.minimumFractionDigits)??0,maximumFractionDigits:(t==null?void 0:t.maximumFractionDigits)??2,useGrouping:(t==null?void 0:t.useGrouping)??!0}))}${o}`;return n?`(${f})`:f}const m=v(c,new Intl.NumberFormat(r,{style:"currency",currency:a,minimumFractionDigits:(t==null?void 0:t.minimumFractionDigits)??0,maximumFractionDigits:(t==null?void 0:t.maximumFractionDigits)??2,useGrouping:(t==null?void 0:t.useGrouping)??!0}));return n?`(${m})`:m}catch{const m=N(e),l=t!=null&&t.useSuffix?C(m,r):{power:0,suffix:""},o=z(F(m,l.power),{locale:r,minimumFractionDigits:(t==null?void 0:t.minimumFractionDigits)??0,maximumFractionDigits:(t==null?void 0:t.maximumFractionDigits)??2,useGrouping:(t==null?void 0:t.useGrouping)??!0}),s=`${a} ${o}${l.suffix}`;return i?t!=null&&t.negativeInParentheses?`(${s})`:`-${s}`:s}}function M(e,t){if(e==null||Number.isNaN(e))return"";const r=x(t==null?void 0:t.locale),i=(t==null?void 0:t.alreadyPercent)??(t==null?void 0:t.percentValueMode)==="whole"?F(e,2):e;return v(i,new Intl.NumberFormat(r,{style:"percent",minimumFractionDigits:(t==null?void 0:t.minimumFractionDigits)??0,maximumFractionDigits:(t==null?void 0:t.maximumFractionDigits)??2,useGrouping:(t==null?void 0:t.useGrouping)??!0}))}function P(e,t){if(e==null||Number.isNaN(e))return"";const r=x(t==null?void 0:t.locale);return v(e,new Intl.NumberFormat(r,{notation:"scientific",minimumFractionDigits:(t==null?void 0:t.minimumFractionDigits)??0,maximumFractionDigits:(t==null?void 0:t.maximumFractionDigits)??2}))}function O(e,t){if(e==null||Number.isNaN(e))return"";const r=t.scale===void 0?e:V(e,t.scale),a=t.negativeStyle==="parentheses"&&_(r),i=a?N(r):r,n={style:t.type==="number"?"decimal":t.type,locale:t.locale,currency:t.currency,minimumFractionDigits:t.minimumFractionDigits,maximumFractionDigits:t.maximumFractionDigits,useGrouping:t.useGrouping,percentValueMode:t.percentValueMode,useSuffix:t.compact};let c;switch(t.type){case"currency":c=R(i,n);break;case"percent":c=M(i,n);break;case"scientific":c=P(i,n);break;default:c=z(i,n);break}const m=`${t.prefix??""}${c}${t.suffix??""}`;return a?`(${m})`:m}function ie(e,t,r="en-US"){if(e==null||typeof e=="number"&&isNaN(e))return"";const a=x((t==null?void 0:t.locale)||r),i=(t==null?void 0:t.style)||"decimal",n=i==="decimal"?"number":i;return n==="currency"&&new Intl.NumberFormat(a,{style:"currency",currency:(t==null?void 0:t.currency)||"USD"}),O(e,{type:n,locale:a,currency:n==="currency"?(t==null?void 0:t.currency)||"USD":void 0,minimumFractionDigits:(t==null?void 0:t.minimumFractionDigits)??0,maximumFractionDigits:(t==null?void 0:t.maximumFractionDigits)??2,useGrouping:(t==null?void 0:t.useGrouping)??!0,percentValueMode:n==="percent"?(t==null?void 0:t.percentValueMode)??"whole":void 0,scale:t==null?void 0:t.scale,compact:t==null?void 0:t.compact,negativeStyle:t==null?void 0:t.negativeStyle,prefix:t==null?void 0:t.prefix,suffix:t==null?void 0:t.suffix})}function ce(e,t,r){const a={style:t==="currency"?"currency":t==="percent"?"percent":"decimal",locale:r==null?void 0:r.locale,currency:r==null?void 0:r.currency,minimumFractionDigits:r==null?void 0:r.decimalPlaces,maximumFractionDigits:r==null?void 0:r.decimalPlaces,useSuffix:r==null?void 0:r.useSuffix,prefix:r==null?void 0:r.prefix,suffix:r==null?void 0:r.suffix,negativeInParentheses:r==null?void 0:r.negativeInParentheses,multiplyBy:r==null?void 0:r.multiplyBy};switch(t){case"currency":return R(e,a);case"percent":return M(e,a);case"scientific":return P(e,a);default:return z(e,a)}}const se=["type","locale","minimumFractionDigits","maximumFractionDigits","useGrouping","prefix","suffix","negativeStyle","compact","scale","currency","percentValueMode"];function G(e){if(!g.isPlainJsonRecord(e))return{ok:!1,issues:[{path:"$",message:"Numeric format must be an object."}]};const t=[],r=new Set(se);Object.keys(e).filter(n=>!r.has(n)).forEach(n=>t.push({path:n,message:`Unknown property "${n}".`})),e.type!=="number"&&e.type!=="currency"&&e.type!=="percent"&&e.type!=="scientific"&&t.push({path:"type",message:"Expected number, currency, percent, or scientific."});const a=e.locale===void 0?void 0:w.canonicalizeSupportedLocale(e.locale);e.locale!==void 0&&!a&&t.push({path:"locale",message:"Expected a supported BCP 47 locale."});const i=e.currency===void 0?void 0:w.canonicalizeSupportedCurrencyCode(e.currency);e.currency!==void 0&&!i&&t.push({path:"currency",message:"Expected a supported ISO 4217 currency code."});for(const n of["minimumFractionDigits","maximumFractionDigits"]){const c=e[n];c!==void 0&&(!Number.isInteger(c)||typeof c!="number"||c<0||c>20)&&t.push({path:n,message:"Expected an integer from 0 to 20."})}typeof e.minimumFractionDigits=="number"&&typeof e.maximumFractionDigits=="number"&&e.minimumFractionDigits>e.maximumFractionDigits&&t.push({path:"maximumFractionDigits",message:"Must be greater than or equal to minimumFractionDigits."});for(const n of["useGrouping","compact"])e[n]!==void 0&&typeof e[n]!="boolean"&&t.push({path:n,message:"Expected a boolean."});for(const n of["prefix","suffix"])e[n]!==void 0&&typeof e[n]!="string"&&t.push({path:n,message:"Expected a string."});return e.negativeStyle!==void 0&&e.negativeStyle!=="minus"&&e.negativeStyle!=="parentheses"&&t.push({path:"negativeStyle",message:"Expected minus or parentheses."}),e.percentValueMode!==void 0&&e.percentValueMode!=="fraction"&&e.percentValueMode!=="whole"&&t.push({path:"percentValueMode",message:"Expected fraction or whole."}),e.scale!==void 0&&(typeof e.scale!="number"||!Number.isFinite(e.scale))&&t.push({path:"scale",message:"Expected a finite number."}),t.length>0?{ok:!1,issues:t}:{ok:!0,value:{type:e.type,...a?{locale:a}:{},...e.minimumFractionDigits!==void 0?{minimumFractionDigits:e.minimumFractionDigits}:{},...e.maximumFractionDigits!==void 0?{maximumFractionDigits:e.maximumFractionDigits}:{},...e.useGrouping!==void 0?{useGrouping:e.useGrouping}:{},...e.prefix!==void 0?{prefix:e.prefix}:{},...e.suffix!==void 0?{suffix:e.suffix}:{},...e.negativeStyle!==void 0?{negativeStyle:e.negativeStyle}:{},...e.compact!==void 0?{compact:e.compact}:{},...e.scale!==void 0?{scale:e.scale}:{},...i?{currency:i}:{},...e.percentValueMode!==void 0?{percentValueMode:e.percentValueMode}:{}}}}function me(e){const t=G(e);if(!t.ok)return t;const r=[];return t.value.locale||r.push({path:"locale",message:"Resolved numeric formats require an explicit locale."}),t.value.minimumFractionDigits===void 0&&r.push({path:"minimumFractionDigits",message:"Resolved numeric formats require minimumFractionDigits."}),t.value.maximumFractionDigits===void 0&&r.push({path:"maximumFractionDigits",message:"Resolved numeric formats require maximumFractionDigits."}),t.value.type==="currency"&&!t.value.currency&&r.push({path:"currency",message:"Resolved currency formats require an explicit currency."}),r.length>0?{ok:!1,issues:r}:t}function ue(e){var a;const t=new Set;if(e.snapshot.resolvedFormats.forEach((i,n)=>{if(i.format.type!=="temporal_bucket"){if(i.scope.attachmentIndex!==void 0)throw new Error(`resolvedFormats.${n}.scope.attachmentIndex is not valid for a card export`);if(i.scope.dashboardId!==e.expectedScope.dashboardId||i.scope.cardId!==e.expectedScope.cardId)throw new Error(`resolvedFormats.${n}.scope must match the executing dashboard/card`);if(i.target.kind!=="column")throw new Error(`resolvedFormats.${n}.target must identify an export column`);if(t.has(i.target.columnKey))throw new Error(`resolvedFormats.${n} duplicates export column "${i.target.columnKey}"`);t.add(i.target.columnKey)}}),!e.useFormattedValues)return;if(!((a=e.visibleColumns)!=null&&a.length))throw new Error("visibleColumns must identify every formatted export column");const r=e.visibleColumns.find(i=>!t.has(i));if(r)throw new Error(`resolvedFormats is missing visible export column "${r}"`)}function Z(e,t){const r=new Intl.NumberFormat(e,{style:"currency",currency:t}).resolvedOptions();return{minimumFractionDigits:r.minimumFractionDigits,maximumFractionDigits:r.maximumFractionDigits}}function oe(e){if(e.minimumFractionDigits!==void 0||e.maximumFractionDigits!==void 0){const r=e.minimumFractionDigits??0;return{minimumFractionDigits:r,maximumFractionDigits:e.maximumFractionDigits??Math.max(r,2)}}const t=e.type==="percent"?1:e.type==="scientific"?2:0;return{minimumFractionDigits:t,maximumFractionDigits:t}}function le(e,t,r){const a=w.canonicalizeSupportedLocale(e.locale)??t.locale,i=e.type==="number"||e.type==="currency"?w.canonicalizeSupportedCurrencyCode(r):void 0;if(!(e.type==="currency"||i!==void 0))return{...e,locale:a,...oe(e)};const c=i??w.canonicalizeSupportedCurrencyCode(e.currency)??t.defaultCurrency,m=Z(a,c),l=m.minimumFractionDigits??0,o=m.maximumFractionDigits??l,s=e.minimumFractionDigits??Math.min(l,e.maximumFractionDigits??l),d=e.maximumFractionDigits??Math.max(s,o);return{...e,type:"currency",locale:a,currency:c,minimumFractionDigits:s,maximumFractionDigits:d}}class S extends Error{constructor(r,a){super(a);b(this,"code");this.name="RawTemporalFormatContractError",this.code=r}}const de=["SSSSSSSSS","SSSSSSSS","SSSSSSS","SSSSSS","SSSSS","SSSS","SSS","SS","S"],q=/^(\d{4})-(\d{2})-(\d{2})$/,U=/^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{1,9}))?)?$/,B=/^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{1,9}))?)?(Z|[+-]\d{2}:\d{2})$/,fe=["yyyy","MMMM","LLLL","zzz","XXX","MMM","LLL","yy","MM","dd","HH","hh","mm","ss","M","d","H","h","m","s","a"],ge=new Set(["HH","H","hh","h","mm","m","ss","s","a",...de]),ye=new Set(["zzz","XXX"]),k=new Set(["short","medium","long"]);function y(e,t){return Object.keys(e).length===t.length&&t.every(a=>a in e)}function u(e){throw new S("invalid_raw_temporal_format",e)}function j(e){if(!e||e.trim()!==e||e.length>256)return u("date_fns patterns must be non-empty, trimmed, and at most 256 characters.");const t=[],r=i=>{const n=t[t.length-1];(n==null?void 0:n.kind)==="literal"?n.value+=i:t.push({kind:"literal",value:i})};let a=0;for(;a<e.length;){if(e[a]==="'"){if(e[a+1]==="'"){r("'"),a+=2;continue}let c="",m=!1;for(a+=1;a<e.length;){if(e[a]==="'"){if(e[a+1]==="'"){c+="'",a+=2;continue}m=!0,a+=1;break}c+=e[a],a+=1}if(!m)return u("date_fns pattern has an unclosed quote.");r(c);continue}if(e[a]==="S"){let c=a+1;for(;e[c]==="S";)c+=1;const m=e.slice(a,c);if(m.length>9)return u("date_fns fractional-second tokens support at most nine digits.");t.push({kind:"token",value:m}),a=c;continue}const i=fe.find(c=>e.startsWith(c,a));if(i){t.push({kind:"token",value:i}),a+=i.length;continue}const n=e[a];if(/[A-Za-z]/.test(n))return u(`Unsupported date_fns pattern token beginning at "${e.slice(a)}".`);r(n),a+=1}return t.some(i=>i.kind==="token")?t:u("date_fns patterns must contain at least one token.")}function H(e,t){if(e==="semaphor_tokens"){const r=g.tokenizeTemporalBucketPattern(t);r.ok||u(r.message);return}j(t)}function he(e){return!g.isPlainJsonRecord(e)||!y(e,["dateStyle","dateTime"])?u("Automatic raw temporal styles are incomplete."):k.has(e.dateStyle)?!g.isPlainJsonRecord(e.dateTime)||!y(e.dateTime,["dateStyle","timeStyle"])||!k.has(e.dateTime.dateStyle)||!k.has(e.dateTime.timeStyle)?u("Automatic dateTime styles are incomplete or invalid."):{dateStyle:e.dateStyle,dateTime:{dateStyle:e.dateTime.dateStyle,timeStyle:e.dateTime.timeStyle}}:u("Automatic dateStyle is invalid.")}function $(e){const t=["type","locale","calendarTimezone","presentation"],r=[...t,"sourceTimezone"];if(!g.isPlainJsonRecord(e)||!y(e,t)&&!y(e,r)||e.type!=="raw_temporal")return u("Resolved raw temporal format has an invalid shape.");const a=w.canonicalizeSupportedLocale(e.locale);return a?typeof e.calendarTimezone!="string"||!h.isValidIanaTimeZone(e.calendarTimezone)?u("Raw temporal calendarTimezone must be a valid IANA timezone."):e.sourceTimezone!==void 0&&(typeof e.sourceTimezone!="string"||!h.isValidIanaTimeZone(e.sourceTimezone))?u("Raw temporal sourceTimezone must be a valid IANA timezone."):g.isPlainJsonRecord(e.presentation)?e.presentation.mode==="auto"?y(e.presentation,["mode","styles"])?{type:"raw_temporal",locale:a,calendarTimezone:e.calendarTimezone,...e.sourceTimezone?{sourceTimezone:e.sourceTimezone}:{},presentation:{mode:"auto",styles:he(e.presentation.styles)}}:u("Automatic raw temporal presentation has unknown fields."):e.presentation.mode!=="pattern"||!y(e.presentation,["mode","dialect","pattern"])||e.presentation.dialect!=="semaphor_tokens"&&e.presentation.dialect!=="date_fns"||typeof e.presentation.pattern!="string"?u("Pattern raw temporal presentation has an invalid shape."):(H(e.presentation.dialect,e.presentation.pattern),{type:"raw_temporal",locale:a,calendarTimezone:e.calendarTimezone,...e.sourceTimezone?{sourceTimezone:e.sourceTimezone}:{},presentation:{mode:"pattern",dialect:e.presentation.dialect,pattern:e.presentation.pattern}}):u("Raw temporal presentation must be an object."):u("Raw temporal locale is invalid or unsupported.")}function Se(e){var m,l,o;if(e.format){if(!g.isPlainJsonRecord(e.format))return u("Authored raw temporal format has an invalid shape.");const s=Object.keys(e.format);if(!s.includes("type")||!s.includes("presentation")||s.some(f=>f!=="type"&&f!=="presentation"&&f!=="timezone"&&f!=="sourceTimezone")||e.format.type!=="raw_temporal"||!g.isPlainJsonRecord(e.format.presentation))return u("Authored raw temporal format has an invalid shape.");const d=e.format.presentation;if(d.mode==="auto"){if(!y(d,["mode"]))return u("Automatic authored raw temporal format has unknown fields.")}else{if(d.mode!=="pattern"||!y(d,["mode","dialect","pattern"])||d.dialect!=="semaphor_tokens"&&d.dialect!=="date_fns"||typeof d.pattern!="string")return u("Authored raw temporal pattern has an invalid shape.");H(d.dialect,d.pattern)}}const t=(m=e.format)==null?void 0:m.timezone,r=(l=e.format)==null?void 0:l.sourceTimezone,a=t&&t!=="auto"?t:e.calendar.tz,i=r&&r!=="auto"?r==="local"?Intl.DateTimeFormat().resolvedOptions().timeZone:r:void 0;if(t!==void 0&&t!=="auto"&&!h.isValidIanaTimeZone(a)||i!==void 0&&!h.isValidIanaTimeZone(i))return u("Authored raw temporal timezone is invalid.");const n=((o=e.format)==null?void 0:o.presentation)??{mode:"auto"},c={type:"raw_temporal",locale:e.preferences.locale,calendarTimezone:a,...i?{sourceTimezone:i}:{},presentation:n.mode==="pattern"?{...n}:{mode:"auto",styles:{dateStyle:e.preferences.dateStyle,dateTime:{...e.preferences.dateTime}}}};return $(c)}function we(e){if(q.test(e))return"date";if(B.test(e))return"instant";if(U.test(e))return"wall_datetime"}function ve(e){const t=new Set;let r=!1;for(const a of e.values){if(a===null)continue;r=!0;const i=we(a);i&&t.add(i)}if(!r)return{status:"empty"};if(t.size===0)return{status:"invalid_only"};if(t.size>1)throw new S("mixed_sql_temporal_semantics",`Declared SQL temporal column "${e.columnKey}" mixes date, wall-datetime, or instant semantics. Normalize it to one kind.`);return{status:"classified",metadata:{kind:"raw_temporal",valueKind:[...t][0]}}}function xe(e){return{version:1,columns:Object.fromEntries([...e].map(([t,r])=>[t,r.status==="classified"?r.metadata.valueKind:r.status]))}}function Y(e){if(!g.isPlainJsonRecord(e)||e.version!==1||!g.isPlainJsonRecord(e.columns)||Object.keys(e).some(a=>a!=="version"&&a!=="columns"))throw new S("invalid_raw_temporal_format","Raw temporal chunk classification evidence is malformed.");const t={},r=new Set(["empty","invalid_only","date","wall_datetime","instant"]);for(const[a,i]of Object.entries(e.columns)){if(!a.trim()||!r.has(i))throw new S("invalid_raw_temporal_format","Raw temporal chunk classification evidence contains an invalid column or status.");t[a]=i}return{version:1,columns:t}}function Te(e){if(e.length===0)return;const t=e.map(Y),r=Object.keys(t[0].columns).sort();for(let a=1;a<t.length;a+=1){const i=Object.keys(t[a].columns).sort();if(i.length!==r.length||i.some((n,c)=>n!==r[c]))throw new S("invalid_raw_temporal_format","Raw temporal chunk classification evidence has inconsistent columns.")}for(const a of r)if(new Set(t.map(n=>n.columns[a]).filter(n=>n!=="empty"&&n!=="invalid_only")).size>1)throw new S("mixed_sql_temporal_semantics",`Declared SQL temporal column "${a}" has inconsistent semantics across export chunks. Normalize it to one kind.`)}function De(e){return e%4===0&&(e%100!==0||e%400===0)}function Ne(e,t){return t===2?De(e)?29:28:[4,6,9,11].includes(t)?30:31}function Fe(e){return e.year>=1&&e.year<=9999&&e.month>=1&&e.month<=12&&e.day>=1&&e.day<=Ne(e.year,e.month)&&e.hour>=0&&e.hour<=23&&e.minute>=0&&e.minute<=59&&e.second>=0&&e.second<=59}function _e(e){return{year:Number(e[1]),month:Number(e[2]),day:Number(e[3]),hour:Number(e[4]??0),minute:Number(e[5]??0),second:Number(e[6]??0),fraction:e[7]??""}}function ze(e,t){const r=t==="date"?e.match(q):t==="wall_datetime"?e.match(U):e.match(B);if(!r)return{status:"invalid_shape"};const a=_e(r);if(!Fe(a))return{status:"out_of_range"};if(t==="instant"){const i=r[8];if(i&&i!=="Z"){const[c,m]=i.slice(1).split(":").map(Number);if(c>23||m>59)return{status:"out_of_range"}}const n=new Date(e.replace(" ","T"));return Number.isNaN(n.getTime())?{status:"out_of_range"}:{status:"valid",fields:a,instant:n}}return{status:"valid",fields:a}}function E(e){const t=new Date(0);return t.setUTCFullYear(e.year,e.month-1,e.day),t.setUTCHours(e.hour,e.minute,e.second,0),t}function J(e,t){const r=e.fraction?`.${e.fraction.padEnd(3,"0").slice(0,3)}`:"";return re.fromZonedTime(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}T${String(e.hour).padStart(2,"0")}:${String(e.minute).padStart(2,"0")}:${String(e.second).padStart(2,"0")}${r}`,t)}function ke(e,t){const r=new Map,a=new Map;let i,n,c,m;return{number(l,o=1){let s=r.get(o);return s||(s=new Intl.NumberFormat(e,{useGrouping:!1,minimumIntegerDigits:o,maximumFractionDigits:0}),r.set(o,s)),s.format(l)},month(l,o,s){var T;const d=`${o}:${s?"standalone":"contextual"}`;let f=a.get(d);if(!f){const D={calendar:"gregory",timeZone:"UTC",month:o};s||(D.day="numeric"),f=new Intl.DateTimeFormat(e,D),a.set(d,f)}return((T=f.formatToParts(l).find(D=>D.type==="month"))==null?void 0:T.value)??""},dayPeriod(l){var o;return i??(i=new Intl.DateTimeFormat(e,{calendar:"gregory",timeZone:"UTC",hour:"numeric",hour12:!0})),((o=i.formatToParts(l).find(s=>s.type==="dayPeriod"))==null?void 0:o.value)??""},instantFields(l){n??(n=new Intl.DateTimeFormat("en-CA",{calendar:"gregory",numberingSystem:"latn",timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23"}));const o=n.formatToParts(l),s=d=>{var f;return Number((f=o.find(T=>T.type===d))==null?void 0:f.value)};return{year:s("year"),month:s("month"),day:s("day"),hour:s("hour"),minute:s("minute"),second:s("second"),fraction:""}},timezoneName(l){var o;return c??(c=new Intl.DateTimeFormat(e,{calendar:"gregory",timeZone:t,timeZoneName:"short"})),((o=c.formatToParts(l).find(s=>s.type==="timeZoneName"))==null?void 0:o.value)??""},timezoneOffset(l){var d;m??(m=new Intl.DateTimeFormat("en-US",{calendar:"gregory",timeZone:t,timeZoneName:"longOffset"}));const o=(d=m.formatToParts(l).find(f=>f.type==="timeZoneName"))==null?void 0:d.value;if(!o)return u("Unable to resolve the instant timezone offset.");const s=o.replace(/^GMT/,"");return s===""||/^[+-]00:00$/.test(s)?"Z":s}}}function Ce(e,t,r,a,i){if(/^S{1,9}$/.test(e)){const n=t.fraction.padEnd(e.length,"0").slice(0,e.length);return a.number(Number(n),e.length)}switch(e){case"YYYY":case"yyyy":return a.number(t.year,4);case"YY":case"yy":return a.number(t.year%100,2);case"MMMM":return a.month(r,"long",!1);case"LLLL":return a.month(r,"long",!0);case"MMM":return a.month(r,"short",!1);case"LLL":return a.month(r,"short",!0);case"MM":return a.number(t.month,2);case"M":return a.number(t.month);case"DD":case"dd":return a.number(t.day,2);case"d":return a.number(t.day);case"HH":return a.number(t.hour,2);case"H":return a.number(t.hour);case"hh":return a.number(t.hour%12||12,2);case"h":return a.number(t.hour%12||12);case"mm":return a.number(t.minute,2);case"m":return a.number(t.minute);case"ss":return a.number(t.second,2);case"s":return a.number(t.second);case"a":return a.dayPeriod(r);case"zzz":return i?a.timezoneName(i):u("Timezone pattern tokens require an instant value.");case"XXX":return i?a.timezoneOffset(i):u("Timezone pattern tokens require an instant value.");default:return u(`Unsupported raw temporal pattern token "${e}".`)}}function Ee(e,t,r,a){const i=E(t);return e.map(n=>n.kind==="literal"?n.value:Ce(n.value,t,i,r,a)).join("")}function W(e,t,r){const a=t==="date_fns"?j(r):(()=>{const n=g.tokenizeTemporalBucketPattern(r);return n.ok?n.segments:u(n.message)})(),i=a.filter(n=>n.kind==="token").map(n=>n.value);return e==="date"&&i.some(n=>ge.has(n))?u("Date patterns cannot contain time tokens."):e!=="instant"&&i.some(n=>ye.has(n))?u("Timezone pattern tokens require an instant value."):a}function Re(e){W(e.valueKind??"instant",e.dialect,e.pattern)}function Me(e,t,r,a){const i=W(e.valueKind,r,a),n=ke(t.locale,t.calendarTimezone);return c=>{const m=e.valueKind==="wall_datetime"&&t.sourceTimezone?J(c.fields,t.sourceTimezone):void 0,l=e.valueKind==="instant"?{...n.instantFields(c.instant),fraction:c.fields.fraction}:m?{...n.instantFields(m),fraction:c.fields.fraction}:c.fields;return Ee(i,l,n,c.instant??m)}}function Pe(e,t){const r=t.presentation.mode==="auto"?t.presentation.styles:u("Automatic raw temporal formatting requires styles.");if(e.valueKind==="date"){const c=new Intl.DateTimeFormat(t.locale,{calendar:"gregory",timeZone:"UTC",dateStyle:r.dateStyle});return m=>c.format(E(m.fields))}const a=e.valueKind==="instant",i=!a&&r.dateTime.timeStyle==="long"?"medium":r.dateTime.timeStyle,n=new Intl.DateTimeFormat(t.locale,{calendar:"gregory",timeZone:a||e.valueKind==="wall_datetime"&&t.sourceTimezone?t.calendarTimezone:"UTC",dateStyle:r.dateTime.dateStyle,timeStyle:i});return c=>a?n.format(c.instant):e.valueKind==="wall_datetime"&&t.sourceTimezone?n.format(J(c.fields,t.sourceTimezone)):n.format(E(c.fields))}function K(e,t,r){return{ok:!1,text:e,diagnostic:{code:r,message:`Raw temporal ${t.valueKind} value is ${r==="invalid_raw_temporal_value"?"malformed":"out of range"}.`}}}function X(e){const t=te.parseRawTemporalValueMetadata(e.metadata),r=$(e.format),a=r.presentation.mode==="auto"?Pe(t,r):Me(t,r,r.presentation.dialect,r.presentation.pattern);return i=>{if(i===null)return{ok:!0,text:"",status:"empty"};const n=ze(i,t.valueKind);return n.status==="invalid_shape"?K(i,t,"invalid_raw_temporal_value"):n.status==="out_of_range"?K(i,t,"out_of_range_raw_temporal_value"):{ok:!0,text:a(n),status:"formatted"}}}function $e(e){return X({metadata:e.metadata,format:e.format})(e.value)}exports.RawTemporalFormatContractError=S;exports.assertRawTemporalChunkClassificationAgreement=Te;exports.classifyDeclaredSqlTemporalColumn=ve;exports.createRawTemporalChunkClassificationEvidence=xe;exports.formatCurrency=R;exports.formatNumber=z;exports.formatNumberCustom=ce;exports.formatNumberWithColumnSettings=ie;exports.formatNumericCanonical=O;exports.formatPercent=M;exports.formatRawTemporalValue=$e;exports.formatScientific=P;exports.parseNumericCanonicalFormat=G;exports.parseRawTemporalChunkClassificationEvidence=Y;exports.parseResolvedNumericCanonicalFormat=me;exports.parseResolvedRawTemporalFormat=$;exports.prepareRawTemporalFormatter=X;exports.resolveCurrencyFractionDigits=Z;exports.resolveNumericPresentation=le;exports.resolveRawTemporalFormat=Se;exports.validateCardExportNumericPresentationSnapshot=ue;exports.validateRawTemporalPattern=Re;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
var W = Object.defineProperty;
|
|
2
2
|
var Q = (e, t, r) => t in e ? W(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
|
|
3
3
|
var b = (e, t, r) => Q(e, typeof t != "symbol" ? t + "" : t, r);
|
|
4
|
-
import {
|
|
4
|
+
import { b4 as K, b5 as J, e as T } from "./validators-D-_IT-Xw.js";
|
|
5
5
|
import { canonicalizeSupportedLocale as M, canonicalizeSupportedCurrencyCode as z } from "../value-format-preferences/index.js";
|
|
6
6
|
import { i as g, t as L } from "./temporal-bucket-B9hMwemw.js";
|
|
7
|
-
import { p as ee } from "./raw-temporal-contract-
|
|
7
|
+
import { p as ee } from "./raw-temporal-contract-CkvdtPYA.js";
|
|
8
8
|
import { f as te } from "./index-CACdoqu3.js";
|
|
9
9
|
let I;
|
|
10
10
|
function C(e, t) {
|
|
@@ -433,7 +433,7 @@ const ue = [
|
|
|
433
433
|
"SSS",
|
|
434
434
|
"SS",
|
|
435
435
|
"S"
|
|
436
|
-
],
|
|
436
|
+
], U = /^(\d{4})-(\d{2})-(\d{2})$/, Z = /^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{1,9}))?)?$/, q = /^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{1,9}))?)?(Z|[+-]\d{2}:\d{2})$/, oe = [
|
|
437
437
|
"yyyy",
|
|
438
438
|
"MMMM",
|
|
439
439
|
"LLLL",
|
|
@@ -558,7 +558,7 @@ function de(e) {
|
|
|
558
558
|
}
|
|
559
559
|
} : u("Automatic dateStyle is invalid.");
|
|
560
560
|
}
|
|
561
|
-
function
|
|
561
|
+
function H(e) {
|
|
562
562
|
const t = ["type", "locale", "calendarTimezone", "presentation"], r = [...t, "sourceTimezone"];
|
|
563
563
|
if (!g(e) || !y(e, t) && !y(e, r) || e.type !== "raw_temporal")
|
|
564
564
|
return u("Resolved raw temporal format has an invalid shape.");
|
|
@@ -636,12 +636,12 @@ function Le(e) {
|
|
|
636
636
|
}
|
|
637
637
|
}
|
|
638
638
|
};
|
|
639
|
-
return
|
|
639
|
+
return H(c);
|
|
640
640
|
}
|
|
641
641
|
function ge(e) {
|
|
642
|
-
if (
|
|
642
|
+
if (U.test(e)) return "date";
|
|
643
643
|
if (q.test(e)) return "instant";
|
|
644
|
-
if (
|
|
644
|
+
if (Z.test(e)) return "wall_datetime";
|
|
645
645
|
}
|
|
646
646
|
function Ve(e) {
|
|
647
647
|
const t = /* @__PURE__ */ new Set();
|
|
@@ -744,7 +744,7 @@ function xe(e) {
|
|
|
744
744
|
};
|
|
745
745
|
}
|
|
746
746
|
function ve(e, t) {
|
|
747
|
-
const r = t === "date" ? e.match(
|
|
747
|
+
const r = t === "date" ? e.match(U) : t === "wall_datetime" ? e.match(Z) : e.match(q);
|
|
748
748
|
if (!r) return { status: "invalid_shape" };
|
|
749
749
|
const a = xe(r);
|
|
750
750
|
if (!we(a)) return { status: "out_of_range" };
|
|
@@ -763,7 +763,7 @@ function E(e) {
|
|
|
763
763
|
const t = /* @__PURE__ */ new Date(0);
|
|
764
764
|
return t.setUTCFullYear(e.year, e.month - 1, e.day), t.setUTCHours(e.hour, e.minute, e.second, 0), t;
|
|
765
765
|
}
|
|
766
|
-
function
|
|
766
|
+
function Y(e, t) {
|
|
767
767
|
const r = e.fraction ? `.${e.fraction.padEnd(3, "0").slice(0, 3)}` : "";
|
|
768
768
|
return te(
|
|
769
769
|
`${String(e.year).padStart(4, "0")}-${String(e.month).padStart(2, "0")}-${String(e.day).padStart(2, "0")}T${String(e.hour).padStart(2, "0")}:${String(e.minute).padStart(2, "0")}:${String(e.second).padStart(2, "0")}${r}`,
|
|
@@ -943,7 +943,7 @@ function Ne(e, t, r, a) {
|
|
|
943
943
|
a
|
|
944
944
|
), n = Te(t.locale, t.calendarTimezone);
|
|
945
945
|
return (c) => {
|
|
946
|
-
const m = e.valueKind === "wall_datetime" && t.sourceTimezone ?
|
|
946
|
+
const m = e.valueKind === "wall_datetime" && t.sourceTimezone ? Y(c.fields, t.sourceTimezone) : void 0, l = e.valueKind === "instant" ? {
|
|
947
947
|
...n.instantFields(c.instant),
|
|
948
948
|
fraction: c.fields.fraction
|
|
949
949
|
} : m ? {
|
|
@@ -969,7 +969,7 @@ function Fe(e, t) {
|
|
|
969
969
|
dateStyle: r.dateTime.dateStyle,
|
|
970
970
|
timeStyle: i
|
|
971
971
|
});
|
|
972
|
-
return (c) => a ? n.format(c.instant) : e.valueKind === "wall_datetime" && t.sourceTimezone ? n.format(
|
|
972
|
+
return (c) => a ? n.format(c.instant) : e.valueKind === "wall_datetime" && t.sourceTimezone ? n.format(Y(c.fields, t.sourceTimezone)) : n.format(E(c.fields));
|
|
973
973
|
}
|
|
974
974
|
function A(e, t, r) {
|
|
975
975
|
return {
|
|
@@ -982,7 +982,7 @@ function A(e, t, r) {
|
|
|
982
982
|
};
|
|
983
983
|
}
|
|
984
984
|
function ze(e) {
|
|
985
|
-
const t = ee(e.metadata), r =
|
|
985
|
+
const t = ee(e.metadata), r = H(e.format), a = r.presentation.mode === "auto" ? Fe(t, r) : Ne(
|
|
986
986
|
t,
|
|
987
987
|
r,
|
|
988
988
|
r.presentation.dialect,
|
|
@@ -995,7 +995,7 @@ function ze(e) {
|
|
|
995
995
|
return n.status === "invalid_shape" ? A(i, t, "invalid_raw_temporal_value") : n.status === "out_of_range" ? A(i, t, "out_of_range_raw_temporal_value") : { ok: !0, text: a(n), status: "formatted" };
|
|
996
996
|
};
|
|
997
997
|
}
|
|
998
|
-
function
|
|
998
|
+
function Ue(e) {
|
|
999
999
|
return ze({
|
|
1000
1000
|
metadata: e.metadata,
|
|
1001
1001
|
format: e.format
|
|
@@ -1003,7 +1003,7 @@ function Ze(e) {
|
|
|
1003
1003
|
}
|
|
1004
1004
|
export {
|
|
1005
1005
|
S as R,
|
|
1006
|
-
|
|
1006
|
+
H as a,
|
|
1007
1007
|
ne as b,
|
|
1008
1008
|
$ as c,
|
|
1009
1009
|
O as d,
|
|
@@ -1022,6 +1022,6 @@ export {
|
|
|
1022
1022
|
Ge as q,
|
|
1023
1023
|
se as r,
|
|
1024
1024
|
ze as s,
|
|
1025
|
-
|
|
1025
|
+
Ue as t,
|
|
1026
1026
|
Ae as v
|
|
1027
1027
|
};
|
package/dist/chunks/{raw-temporal-contract-Bg1mtRGE.cjs → raw-temporal-contract-BcbV56Rc.cjs}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var l=Object.defineProperty;var i=(a,e,t)=>e in a?l(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var n=(a,e,t)=>i(a,typeof e!="symbol"?e+"":e,t);const s=require("./validators-
|
|
1
|
+
"use strict";var l=Object.defineProperty;var i=(a,e,t)=>e in a?l(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var n=(a,e,t)=>i(a,typeof e!="symbol"?e+"":e,t);const s=require("./validators-ux2obZB9.cjs");class r extends Error{constructor(t){super(t);n(this,"code");this.name="RawTemporalMetadataContractError",this.code=s.RAW_TEMPORAL_CONTRACT_ERROR_CODES.invalidMetadata}}function m(a){if(a===null||typeof a!="object"||Array.isArray(a))return!1;const e=Object.getPrototypeOf(a);return e===null||e===Object.prototype}function d(a){if(!m(a))throw new r("Raw temporal metadata must be an object.");const e=Object.keys(a);if(e.length!==2||!e.includes("kind")||!e.includes("valueKind"))throw new r("Raw temporal metadata must contain only kind and valueKind.");if(a.kind!=="raw_temporal")throw new r("Raw temporal metadata kind must be raw_temporal.");if(a.valueKind!=="date"&&a.valueKind!=="wall_datetime"&&a.valueKind!=="instant")throw new r("Raw temporal valueKind must be date, wall_datetime, or instant.");return{kind:"raw_temporal",valueKind:a.valueKind}}function w(a,e){if(!a.rawTemporal){if(e.metadataRequired)throw new r("Activated raw temporal result is missing metadata.");return}if(a.temporalBucket)throw new r("A result column cannot carry both raw and grouped temporal metadata.");const t=d(a.rawTemporal),o=t.valueKind==="date"?"date":"datetime";if(a.dataType!==o)throw new r(`${t.valueKind} raw temporal values require dataType ${o}.`);return t}exports.RawTemporalMetadataContractError=r;exports.parseRawTemporalValueMetadata=d;exports.validateRawTemporalResultColumn=w;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var d = Object.defineProperty;
|
|
2
2
|
var i = (a, e, t) => e in a ? d(a, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : a[e] = t;
|
|
3
3
|
var n = (a, e, t) => i(a, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
-
import { R as l } from "./validators-
|
|
4
|
+
import { R as l } from "./validators-D-_IT-Xw.js";
|
|
5
5
|
class r extends Error {
|
|
6
6
|
constructor(t) {
|
|
7
7
|
super(t);
|
package/dist/chunks/{report-preferences-dialog-Bt8T3To1.js → report-preferences-dialog-CVRJOCQu.js}
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsxs as o, Fragment as j, jsx as t } from "react/jsx-runtime";
|
|
2
2
|
import oe, { useState as S, useRef as X, useEffect as U, useCallback as E, useMemo as _ } from "react";
|
|
3
|
-
import { ay as ee, az as ce, aA as B, aB as $, aC as de, g as ue, h as me, i as fe, j as he, k as M, l as H, aD as ve, aE as V, b as ye, aF as pe, aG as ge, aH as Se, aI as be, aJ as Te } from "./index-
|
|
4
|
-
import { u as ae, c as F, O as W, P as we, a as Ce, B as D, b as ke, d as q, L as te, a4 as z, T as xe, F as Ne, G, I as J } from "./switch-
|
|
5
|
-
import { a as Pe } from "./report-runtime-context-
|
|
3
|
+
import { ay as ee, az as ce, aA as B, aB as $, aC as de, g as ue, h as me, i as fe, j as he, k as M, l as H, aD as ve, aE as V, b as ye, aF as pe, aG as ge, aH as Se, aI as be, aJ as Te } from "./index-Cgoz65yM.js";
|
|
4
|
+
import { u as ae, c as F, O as W, P as we, a as Ce, B as D, b as ke, d as q, L as te, a4 as z, T as xe, F as Ne, G, I as J } from "./switch-BmyuyM7e.js";
|
|
5
|
+
import { a as Pe } from "./report-runtime-context-BlDpc-F-.js";
|
|
6
6
|
import "./x-CXDkqdur.js";
|
|
7
|
-
import "./constants-
|
|
8
|
-
import "./validators-
|
|
9
|
-
import "./matrix-operation-contract-
|
|
7
|
+
import "./constants-CC3WKmqC.js";
|
|
8
|
+
import "./validators-D-_IT-Xw.js";
|
|
9
|
+
import "./matrix-operation-contract-0Nor-C71.js";
|
|
10
10
|
import { parseValueFormatPreferencesResponse as Ae, canonicalizeSupportedLocale as Ee, canonicalizeSupportedCurrencyCode as ze } from "../value-format-preferences/index.js";
|
|
11
11
|
function De(e = {}) {
|
|
12
12
|
const { authToken: i, tokenProps: a } = ee(), d = ae(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),o=require("react"),d=require("./index-DXQsuuMQ.cjs"),s=require("./switch-CatLIoK-.cjs"),V=require("./report-runtime-context-Bb0ejvVq.cjs");require("./x-B6ghREd2.cjs");require("./constants-BMfm1XgO.cjs");require("./validators-4dRtYUI1.cjs");require("./matrix-operation-contract-BiUMcd6G.cjs");const L=require("../value-format-preferences/index.cjs");function G(a={}){const{authToken:c,tokenProps:t}=d.useSemaphorContext(),m=s.useDashboardStore(p=>p.actions.applyResolvedCalendarPreferences),r=a.enabled??!0,i=(c==null?void 0:c.accessToken)??null,h=(t==null?void 0:t.apiServiceUrl)??null,[g,S]=o.useState(!1),[b,C]=o.useState(!1),[f,j]=o.useState(!1),[T,x]=o.useState(null),[w,P]=o.useState(null),v=o.useRef(i);v.current=i,o.useEffect(()=>{P(null),x(null),S(!1),C(!1),j(!1)},[i]);const N=o.useCallback(async p=>{const n=V.parseCalendarPreferencesResponse(await p.json());if(!n.ok)throw new Error("Calendar preferences response is invalid");return n.value},[]),k=o.useCallback(async()=>{if(!r||!i||!h)return;const p=i;S(!0),x(null);try{const n=await fetch(`${h}/v1/user-preferences/calendar`,{method:"GET",headers:{Authorization:`Bearer ${i}`}});if(!n.ok){const y=await n.json().catch(()=>({}));throw new Error(y.error||"Failed to fetch preferences")}const l=await N(n);v.current===p&&P(l)}catch(n){v.current===p&&x(n instanceof Error?n.message:"Unknown error")}finally{v.current===p&&S(!1)}},[i,h,r,N]);o.useEffect(()=>{r&&k()},[r,k]);const E=o.useCallback(async p=>{if(!i||!h)return x("Not authenticated"),!1;const n=i;C(!0),x(null);try{const l=await fetch(`${h}/v1/user-preferences/calendar`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify(p)});if(!l.ok){const D=await l.json().catch(()=>({}));throw new Error(D.error||"Failed to update preferences")}const y=await N(l);return v.current!==n?!1:(P(y),m(y.resolved,y.sources),!0)}catch(l){return v.current===n&&x(l instanceof Error?l.message:"Unknown error"),!1}finally{v.current===n&&C(!1)}},[i,h,m,N]),A=o.useCallback(async()=>{if(!i||!h)return x("Not authenticated"),!1;const p=i;j(!0),x(null);try{const n=await fetch(`${h}/v1/user-preferences/calendar`,{method:"DELETE",headers:{Authorization:`Bearer ${i}`}});if(!n.ok){const y=await n.json().catch(()=>({}));throw new Error(y.error||"Failed to clear preferences")}const l=await N(n);return v.current!==p?!1:(P(l),m(l.resolved,l.sources),!0)}catch(n){return v.current===p&&x(n instanceof Error?n.message:"Unknown error"),!1}finally{v.current===p&&j(!1)}},[i,h,m,N]);return{preferences:w,isLoading:g,isSaving:b,isClearing:f,error:T,updatePreferences:E,clearPreferences:A,refetch:k}}const F=[{value:"America/New_York",label:"Eastern Time (US & Canada)"},{value:"America/Chicago",label:"Central Time (US & Canada)"},{value:"America/Denver",label:"Mountain Time (US & Canada)"},{value:"America/Los_Angeles",label:"Pacific Time (US & Canada)"},{value:"America/Phoenix",label:"Arizona"},{value:"America/Anchorage",label:"Alaska"},{value:"Pacific/Honolulu",label:"Hawaii"},{value:"Europe/London",label:"London"},{value:"Europe/Paris",label:"Paris, Berlin, Rome"},{value:"Asia/Tokyo",label:"Tokyo"},{value:"Asia/Shanghai",label:"Beijing, Shanghai"},{value:"Asia/Kolkata",label:"Mumbai, New Delhi"},{value:"Australia/Sydney",label:"Sydney"},{value:"UTC",label:"UTC"}],B=[{value:0,label:"Sunday"},{value:1,label:"Monday"},{value:6,label:"Saturday"}],R="text-[10px] font-medium uppercase tracking-[0.08em] text-muted-foreground";function W(){try{const a=Intl;if(a.supportedValuesOf)return a.supportedValuesOf("timeZone")}catch{}return F.map(a=>a.value)}function H(a){if(!a)return"default";if(a.tz!==a.weekStart)return"inherited";switch(a.tz){case"viewer_tenant":return"tenant";case"viewer_organization":return"organization";case"system_default":return"system";case"session_initial":return"embedded";default:return"default"}}function U(a){const c=F.find(t=>t.value===a);return c?c.label:a}function K(a){const c=B.find(t=>t.value===a);return c?c.label:String(a)}function J({active:a,onClose:c}){const{preferences:t,isLoading:m,isSaving:r,isClearing:i,updatePreferences:h,clearPreferences:g}=G({enabled:a}),S=d.useCalendarContext(),b=(t==null?void 0:t.resolved.tz)||(S==null?void 0:S.tz)||"UTC",C=(t==null?void 0:t.resolved.weekStart)??(S==null?void 0:S.weekStart)??1,[f,j]=o.useState((t==null?void 0:t.stored)===null),[T,x]=o.useState(!1),[w,P]=o.useState(b),[v,N]=o.useState(C),[k,E]=o.useState(!1),A=o.useMemo(()=>W(),[]),p=o.useMemo(()=>A.filter(u=>!F.some(M=>M.value===u)),[A]),n=o.useMemo(()=>U(w),[w]),l=t!=null&&t.inherited?U(t.inherited.tz):"UTC",y=t!=null&&t.inherited?K(t.inherited.weekStart):"Monday",D=H(t==null?void 0:t.inheritedSources);o.useEffect(()=>{if(!a){x(!1);return}T||(t&&j(t.stored===null),P(b),N(C))},[a,T,t,b,C]);const O=async()=>{if(m){s.ue.error("Preferences are still loading. Please try again.");return}f?await g()?(s.ue.success("Now using default settings."),c()):s.ue.error("Failed to save preferences. Please try again."):await h({tz:w,weekStart:v})?(s.ue.success("Preferences saved."),c()):s.ue.error("Failed to save preferences. Please try again.")},_=()=>{c()},z=r||i,$=z||m;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-4 py-1",children:[e.jsxs(d.RadioGroup,{value:f?"defaults":"custom",onValueChange:u=>{x(!0),j(u==="defaults")},className:"space-y-0.5",children:[e.jsxs("label",{htmlFor:"mode-defaults",className:s.cn("flex cursor-pointer items-start gap-2 rounded-control px-2 py-1.5 hover:bg-muted/50",f&&"bg-muted/50"),onClick:()=>{x(!0),j(!0)},children:[e.jsx(d.RadioGroupItem,{value:"defaults",id:"mode-defaults",className:"mt-0.5"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("p",{className:"text-[13px] font-medium text-foreground",children:["Use ",D," defaults"]}),e.jsxs("p",{className:"text-[12px] text-muted-foreground",children:[l,", week starts ",y]})]})]}),e.jsxs("label",{htmlFor:"mode-custom",className:s.cn("flex cursor-pointer items-start gap-2 rounded-control px-2 py-1.5 hover:bg-muted/50",!f&&"bg-muted/50"),onClick:()=>{x(!0),j(!1)},children:[e.jsx(d.RadioGroupItem,{value:"custom",id:"mode-custom",className:"mt-0.5"}),e.jsx("p",{className:"flex-1 text-[13px] font-medium text-foreground",children:"Use custom settings"})]})]}),e.jsxs("div",{className:s.cn("space-y-4 border-t border-border/60 pt-4 transition-opacity",f&&"pointer-events-none opacity-50"),children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(s.Label,{className:R,children:"Timezone"}),e.jsxs(s.Popover,{open:k,onOpenChange:E,modal:!0,children:[e.jsx(s.PopoverTrigger,{asChild:!0,children:e.jsxs(s.Button,{variant:"outline",size:"xs",role:"combobox","aria-expanded":k,className:"w-full justify-between text-[12px] font-normal",disabled:f,children:[e.jsx("span",{className:"truncate",children:n}),e.jsx(d.ChevronsUpDown,{className:"ml-2 h-3.5 w-3.5 shrink-0 opacity-50"})]})}),e.jsx(s.PopoverContent,{className:"z-50 w-[--radix-popover-trigger-width] p-0",align:"start",children:e.jsxs(d.Command,{className:"overflow-visible",children:[e.jsx(d.CommandInput,{placeholder:"Search timezones…"}),e.jsxs(d.CommandList,{children:[e.jsx(d.CommandEmpty,{children:"No timezone found."}),e.jsx(d.CommandGroup,{heading:"Common",children:F.map(u=>e.jsxs(d.CommandItem,{value:`${u.value} ${u.label}`,onSelect:()=>{x(!0),P(u.value),E(!1)},children:[e.jsx(s.Check,{className:s.cn("h-3.5 w-3.5",w===u.value?"opacity-100":"opacity-0")}),e.jsx("span",{className:"flex-1",children:u.label}),e.jsx("span",{className:"text-[11px] text-muted-foreground",children:u.value})]},u.value))}),e.jsx(d.CommandSeparator,{}),e.jsx(d.CommandGroup,{heading:"All timezones",children:p.map(u=>e.jsxs(d.CommandItem,{value:u,onSelect:()=>{x(!0),P(u),E(!1)},children:[e.jsx(s.Check,{className:s.cn("h-3.5 w-3.5",w===u?"opacity-100":"opacity-0")}),u]},u))})]})]})})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(s.Label,{className:R,children:"Week starts on"}),e.jsx(d.RadioGroup,{value:String(v),onValueChange:u=>{x(!0),N(Number(u))},className:"flex gap-4",disabled:f,children:B.map(u=>e.jsxs("label",{htmlFor:`week-start-${u.value}`,className:s.cn("flex cursor-pointer items-center gap-2 text-[13px]",f&&"cursor-not-allowed"),children:[e.jsx(d.RadioGroupItem,{value:String(u.value),id:`week-start-${u.value}`,disabled:f}),u.label]},u.value))})]})]})]}),e.jsxs(d.DialogFooter,{children:[e.jsx(s.Button,{variant:"outline",size:"xs",onClick:_,disabled:z,children:"Cancel"}),e.jsx(s.Button,{size:"xs",onClick:O,disabled:$,children:z?e.jsxs(e.Fragment,{children:[e.jsx(s.LoaderCircle,{className:"h-3.5 w-3.5 animate-spin"}),"Saving…"]}):"Save"})]})]})}function Y(a={}){const{authToken:c,tokenProps:t}=d.useSemaphorContext(),m=s.useDashboardStore(n=>n.actions.applyResolvedValueFormatPreferences),r=a.enabled??!0,i=(c==null?void 0:c.accessToken)??null,h=(t==null?void 0:t.apiServiceUrl)??null,g=o.useRef(i);g.current=i;const[S,b]=o.useState(null),[C,f]=o.useState(!1),[j,T]=o.useState(!1),[x,w]=o.useState(!1),[P,v]=o.useState(null);o.useEffect(()=>{b(null),v(null),f(!1),T(!1),w(!1)},[i]);const N=o.useCallback(async n=>{const l=L.parseValueFormatPreferencesResponse(await n.json());if(!l.ok)throw new Error("Value format preferences response is invalid");return l.value},[]),k=o.useCallback(async(n,l)=>{if(!i||!h)throw new Error("Not authenticated");const y=await fetch(`${h}/v1/user-preferences/value-format`,{method:n,headers:{Authorization:`Bearer ${i}`,...l?{"Content-Type":"application/json"}:{}},body:l?JSON.stringify(l):void 0});if(!y.ok){const D=await y.json().catch(()=>({}));throw new Error(D.error||"Failed to update preferences")}return N(y)},[i,h,N]),E=o.useCallback(async()=>{if(!r||!i||!h)return;const n=i;f(!0),v(null);try{const l=await k("GET");g.current===n&&b(l)}catch(l){g.current===n&&v(l instanceof Error?l.message:"Unknown error")}finally{g.current===n&&f(!1)}},[i,h,r,k]);o.useEffect(()=>{r&&E()},[r,E]);const A=o.useCallback(async n=>{const l=i;T(!0),v(null);try{const y=await k("PATCH",n);return g.current!==l?!1:(b(y),m(y.resolved,y.sources),!0)}catch(y){return g.current===l&&v(y instanceof Error?y.message:"Unknown error"),!1}finally{g.current===l&&T(!1)}},[i,m,k]),p=o.useCallback(async()=>{const n=i;w(!0),v(null);try{const l=await k("DELETE");return g.current!==n?!1:(b(l),m(l.resolved,l.sources),!0)}catch(l){return g.current===n&&v(l instanceof Error?l.message:"Unknown error"),!1}finally{g.current===n&&w(!1)}},[i,m,k]);return{preferences:S,isLoading:C,isSaving:j,isClearing:x,error:P,updatePreferences:A,clearPreferences:p,refetch:E}}const I=["locale","dateStyle","dateTime.dateStyle","dateTime.timeStyle","defaultCurrency"];function q(a,c){var t,m;switch(c){case"locale":return a==null?void 0:a.locale;case"dateStyle":return a==null?void 0:a.dateStyle;case"dateTime.dateStyle":return(t=a==null?void 0:a.dateTime)==null?void 0:t.dateStyle;case"dateTime.timeStyle":return(m=a==null?void 0:a.dateTime)==null?void 0:m.timeStyle;case"defaultCurrency":return a==null?void 0:a.defaultCurrency}}function Z(a){var m,r;const c=(m=a==null?void 0:a.dateTime)==null?void 0:m.dateStyle,t=(r=a==null?void 0:a.dateTime)==null?void 0:r.timeStyle;return{locale:a==null?void 0:a.locale,dateStyle:a==null?void 0:a.dateStyle,dateTime:c===void 0&&t===void 0?void 0:{dateStyle:c,timeStyle:t},defaultCurrency:a==null?void 0:a.defaultCurrency}}function Q({active:a,onClose:c}){var g,S,b,C,f,j,T;const{preferences:t,isLoading:m,isSaving:r,updatePreferences:i}=Y({enabled:a});if(!a)return null;if(!t)return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"py-2",children:e.jsx("div",{className:"flex min-h-36 items-center justify-center text-[12px] text-muted-foreground",children:m?"Loading preferences…":"Preferences unavailable."})}),e.jsxs(d.DialogFooter,{className:"justify-between sm:justify-between",children:[e.jsx(s.Button,{variant:"ghost",size:"xs",disabled:!0,children:"Reset display formats"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(s.Button,{variant:"outline",size:"xs",onClick:c,children:"Cancel"}),e.jsx(s.Button,{size:"xs",disabled:!0,children:"Save"})]})]})]});const h=[((g=t.stored)==null?void 0:g.locale)??"",((S=t.stored)==null?void 0:S.dateStyle)??"",((C=(b=t.stored)==null?void 0:b.dateTime)==null?void 0:C.dateStyle)??"",((j=(f=t.stored)==null?void 0:f.dateTime)==null?void 0:j.timeStyle)??"",((T=t.stored)==null?void 0:T.defaultCurrency)??""].join(":");return e.jsx(X,{preferences:t,isSaving:r,updatePreferences:i,onClose:c},h)}function X({preferences:a,isSaving:c,updatePreferences:t,onClose:m}){var b,C;const[r,i]=o.useState(()=>Z(a.stored)),h=(r.locale===void 0||L.canonicalizeSupportedLocale(r.locale)!==void 0)&&(r.defaultCurrency===void 0||L.canonicalizeSupportedCurrencyCode(r.defaultCurrency)!==void 0)&&(r.dateStyle===void 0||["short","medium","long"].includes(r.dateStyle))&&(((b=r.dateTime)==null?void 0:b.dateStyle)===void 0||["short","medium","long"].includes(r.dateTime.dateStyle))&&(((C=r.dateTime)==null?void 0:C.timeStyle)===void 0||["short","medium","long"].includes(r.dateTime.timeStyle)),g=async()=>{const f={...r.locale!==void 0?{locale:r.locale}:{},...r.dateStyle!==void 0?{dateStyle:r.dateStyle}:{},...r.dateTime?{dateTime:{...r.dateTime}}:{},...r.defaultCurrency!==void 0?{defaultCurrency:r.defaultCurrency}:{}},j=I.filter(w=>q(r,w)===void 0&&q(a.stored,w)!==void 0),T={...Object.keys(f).length>0?{set:f}:{},...j.length>0?{clear:j}:{}};(Object.keys(T).length===0?!0:await t(T))?(s.ue.success("Display format preferences saved."),m()):s.ue.error("Failed to save preferences. Please try again.")},S=async()=>{await t({clear:[...I]})?(s.ue.success("Display format preferences reset."),m()):s.ue.error("Failed to reset display format preferences. Please try again.")};return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"py-2",children:e.jsx(d.DisplayFormatPreferencesFields,{value:r,inherited:a.inherited,inheritedSources:a.inheritedSources,onChange:i,disabled:c})}),e.jsxs(d.DialogFooter,{className:"justify-between sm:justify-between",children:[e.jsx(s.Button,{variant:"ghost",size:"xs",onClick:S,disabled:c||a.stored===null,children:"Reset display formats"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(s.Button,{variant:"outline",size:"xs",onClick:m,disabled:c,children:"Cancel"}),e.jsx(s.Button,{size:"xs",onClick:g,disabled:c||!h,children:c?e.jsxs(e.Fragment,{children:[e.jsx(s.LoaderCircle,{className:"h-3.5 w-3.5 animate-spin"}),"Saving…"]}):"Save"})]})]})]})}function ee({open:a,onOpenChange:c}){const[t,m]=o.useState("display"),r=()=>c(!1);return e.jsx(d.Dialog,{open:a,onOpenChange:c,children:e.jsxs(d.DialogContent,{className:"rounded-control border-border/60 sm:max-w-[440px] sm:rounded-control",children:[e.jsxs(d.DialogHeader,{children:[e.jsx(d.DialogTitle,{className:"text-[15px]",children:"Report preferences"}),e.jsx(d.DialogDescription,{className:"text-[13px] leading-5",children:"Set how values and Calendar periods appear for you."})]}),e.jsxs(s.Tabs,{value:t,onValueChange:m,children:[e.jsxs(s.TabsList,{variant:"underline",className:"w-full justify-start",children:[e.jsx(s.TabsTrigger,{value:"display",children:"Display formats"}),e.jsx(s.TabsTrigger,{value:"calendar",children:"Calendar"})]}),e.jsx(s.TabsContent,{value:"display",children:e.jsx(Q,{active:a&&t==="display",onClose:r})}),e.jsx(s.TabsContent,{value:"calendar",children:e.jsx(J,{active:a&&t==="calendar",onClose:r})})]})]})})}exports.ReportPreferencesDialog=ee;
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),o=require("react"),d=require("./index-BSRwdFTN.cjs"),s=require("./switch-nDjQC2y3.cjs"),V=require("./report-runtime-context-lSIvyKm2.cjs");require("./x-B6ghREd2.cjs");require("./constants-DIuhVR6J.cjs");require("./validators-ux2obZB9.cjs");require("./matrix-operation-contract-o9GXbiHw.cjs");const L=require("../value-format-preferences/index.cjs");function G(a={}){const{authToken:c,tokenProps:t}=d.useSemaphorContext(),m=s.useDashboardStore(p=>p.actions.applyResolvedCalendarPreferences),r=a.enabled??!0,i=(c==null?void 0:c.accessToken)??null,h=(t==null?void 0:t.apiServiceUrl)??null,[g,S]=o.useState(!1),[b,C]=o.useState(!1),[f,j]=o.useState(!1),[T,x]=o.useState(null),[w,P]=o.useState(null),v=o.useRef(i);v.current=i,o.useEffect(()=>{P(null),x(null),S(!1),C(!1),j(!1)},[i]);const N=o.useCallback(async p=>{const n=V.parseCalendarPreferencesResponse(await p.json());if(!n.ok)throw new Error("Calendar preferences response is invalid");return n.value},[]),k=o.useCallback(async()=>{if(!r||!i||!h)return;const p=i;S(!0),x(null);try{const n=await fetch(`${h}/v1/user-preferences/calendar`,{method:"GET",headers:{Authorization:`Bearer ${i}`}});if(!n.ok){const y=await n.json().catch(()=>({}));throw new Error(y.error||"Failed to fetch preferences")}const l=await N(n);v.current===p&&P(l)}catch(n){v.current===p&&x(n instanceof Error?n.message:"Unknown error")}finally{v.current===p&&S(!1)}},[i,h,r,N]);o.useEffect(()=>{r&&k()},[r,k]);const E=o.useCallback(async p=>{if(!i||!h)return x("Not authenticated"),!1;const n=i;C(!0),x(null);try{const l=await fetch(`${h}/v1/user-preferences/calendar`,{method:"PATCH",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify(p)});if(!l.ok){const D=await l.json().catch(()=>({}));throw new Error(D.error||"Failed to update preferences")}const y=await N(l);return v.current!==n?!1:(P(y),m(y.resolved,y.sources),!0)}catch(l){return v.current===n&&x(l instanceof Error?l.message:"Unknown error"),!1}finally{v.current===n&&C(!1)}},[i,h,m,N]),A=o.useCallback(async()=>{if(!i||!h)return x("Not authenticated"),!1;const p=i;j(!0),x(null);try{const n=await fetch(`${h}/v1/user-preferences/calendar`,{method:"DELETE",headers:{Authorization:`Bearer ${i}`}});if(!n.ok){const y=await n.json().catch(()=>({}));throw new Error(y.error||"Failed to clear preferences")}const l=await N(n);return v.current!==p?!1:(P(l),m(l.resolved,l.sources),!0)}catch(n){return v.current===p&&x(n instanceof Error?n.message:"Unknown error"),!1}finally{v.current===p&&j(!1)}},[i,h,m,N]);return{preferences:w,isLoading:g,isSaving:b,isClearing:f,error:T,updatePreferences:E,clearPreferences:A,refetch:k}}const F=[{value:"America/New_York",label:"Eastern Time (US & Canada)"},{value:"America/Chicago",label:"Central Time (US & Canada)"},{value:"America/Denver",label:"Mountain Time (US & Canada)"},{value:"America/Los_Angeles",label:"Pacific Time (US & Canada)"},{value:"America/Phoenix",label:"Arizona"},{value:"America/Anchorage",label:"Alaska"},{value:"Pacific/Honolulu",label:"Hawaii"},{value:"Europe/London",label:"London"},{value:"Europe/Paris",label:"Paris, Berlin, Rome"},{value:"Asia/Tokyo",label:"Tokyo"},{value:"Asia/Shanghai",label:"Beijing, Shanghai"},{value:"Asia/Kolkata",label:"Mumbai, New Delhi"},{value:"Australia/Sydney",label:"Sydney"},{value:"UTC",label:"UTC"}],B=[{value:0,label:"Sunday"},{value:1,label:"Monday"},{value:6,label:"Saturday"}],R="text-[10px] font-medium uppercase tracking-[0.08em] text-muted-foreground";function W(){try{const a=Intl;if(a.supportedValuesOf)return a.supportedValuesOf("timeZone")}catch{}return F.map(a=>a.value)}function H(a){if(!a)return"default";if(a.tz!==a.weekStart)return"inherited";switch(a.tz){case"viewer_tenant":return"tenant";case"viewer_organization":return"organization";case"system_default":return"system";case"session_initial":return"embedded";default:return"default"}}function U(a){const c=F.find(t=>t.value===a);return c?c.label:a}function K(a){const c=B.find(t=>t.value===a);return c?c.label:String(a)}function J({active:a,onClose:c}){const{preferences:t,isLoading:m,isSaving:r,isClearing:i,updatePreferences:h,clearPreferences:g}=G({enabled:a}),S=d.useCalendarContext(),b=(t==null?void 0:t.resolved.tz)||(S==null?void 0:S.tz)||"UTC",C=(t==null?void 0:t.resolved.weekStart)??(S==null?void 0:S.weekStart)??1,[f,j]=o.useState((t==null?void 0:t.stored)===null),[T,x]=o.useState(!1),[w,P]=o.useState(b),[v,N]=o.useState(C),[k,E]=o.useState(!1),A=o.useMemo(()=>W(),[]),p=o.useMemo(()=>A.filter(u=>!F.some(M=>M.value===u)),[A]),n=o.useMemo(()=>U(w),[w]),l=t!=null&&t.inherited?U(t.inherited.tz):"UTC",y=t!=null&&t.inherited?K(t.inherited.weekStart):"Monday",D=H(t==null?void 0:t.inheritedSources);o.useEffect(()=>{if(!a){x(!1);return}T||(t&&j(t.stored===null),P(b),N(C))},[a,T,t,b,C]);const O=async()=>{if(m){s.ue.error("Preferences are still loading. Please try again.");return}f?await g()?(s.ue.success("Now using default settings."),c()):s.ue.error("Failed to save preferences. Please try again."):await h({tz:w,weekStart:v})?(s.ue.success("Preferences saved."),c()):s.ue.error("Failed to save preferences. Please try again.")},_=()=>{c()},z=r||i,$=z||m;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-4 py-1",children:[e.jsxs(d.RadioGroup,{value:f?"defaults":"custom",onValueChange:u=>{x(!0),j(u==="defaults")},className:"space-y-0.5",children:[e.jsxs("label",{htmlFor:"mode-defaults",className:s.cn("flex cursor-pointer items-start gap-2 rounded-control px-2 py-1.5 hover:bg-muted/50",f&&"bg-muted/50"),onClick:()=>{x(!0),j(!0)},children:[e.jsx(d.RadioGroupItem,{value:"defaults",id:"mode-defaults",className:"mt-0.5"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("p",{className:"text-[13px] font-medium text-foreground",children:["Use ",D," defaults"]}),e.jsxs("p",{className:"text-[12px] text-muted-foreground",children:[l,", week starts ",y]})]})]}),e.jsxs("label",{htmlFor:"mode-custom",className:s.cn("flex cursor-pointer items-start gap-2 rounded-control px-2 py-1.5 hover:bg-muted/50",!f&&"bg-muted/50"),onClick:()=>{x(!0),j(!1)},children:[e.jsx(d.RadioGroupItem,{value:"custom",id:"mode-custom",className:"mt-0.5"}),e.jsx("p",{className:"flex-1 text-[13px] font-medium text-foreground",children:"Use custom settings"})]})]}),e.jsxs("div",{className:s.cn("space-y-4 border-t border-border/60 pt-4 transition-opacity",f&&"pointer-events-none opacity-50"),children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(s.Label,{className:R,children:"Timezone"}),e.jsxs(s.Popover,{open:k,onOpenChange:E,modal:!0,children:[e.jsx(s.PopoverTrigger,{asChild:!0,children:e.jsxs(s.Button,{variant:"outline",size:"xs",role:"combobox","aria-expanded":k,className:"w-full justify-between text-[12px] font-normal",disabled:f,children:[e.jsx("span",{className:"truncate",children:n}),e.jsx(d.ChevronsUpDown,{className:"ml-2 h-3.5 w-3.5 shrink-0 opacity-50"})]})}),e.jsx(s.PopoverContent,{className:"z-50 w-[--radix-popover-trigger-width] p-0",align:"start",children:e.jsxs(d.Command,{className:"overflow-visible",children:[e.jsx(d.CommandInput,{placeholder:"Search timezones…"}),e.jsxs(d.CommandList,{children:[e.jsx(d.CommandEmpty,{children:"No timezone found."}),e.jsx(d.CommandGroup,{heading:"Common",children:F.map(u=>e.jsxs(d.CommandItem,{value:`${u.value} ${u.label}`,onSelect:()=>{x(!0),P(u.value),E(!1)},children:[e.jsx(s.Check,{className:s.cn("h-3.5 w-3.5",w===u.value?"opacity-100":"opacity-0")}),e.jsx("span",{className:"flex-1",children:u.label}),e.jsx("span",{className:"text-[11px] text-muted-foreground",children:u.value})]},u.value))}),e.jsx(d.CommandSeparator,{}),e.jsx(d.CommandGroup,{heading:"All timezones",children:p.map(u=>e.jsxs(d.CommandItem,{value:u,onSelect:()=>{x(!0),P(u),E(!1)},children:[e.jsx(s.Check,{className:s.cn("h-3.5 w-3.5",w===u?"opacity-100":"opacity-0")}),u]},u))})]})]})})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(s.Label,{className:R,children:"Week starts on"}),e.jsx(d.RadioGroup,{value:String(v),onValueChange:u=>{x(!0),N(Number(u))},className:"flex gap-4",disabled:f,children:B.map(u=>e.jsxs("label",{htmlFor:`week-start-${u.value}`,className:s.cn("flex cursor-pointer items-center gap-2 text-[13px]",f&&"cursor-not-allowed"),children:[e.jsx(d.RadioGroupItem,{value:String(u.value),id:`week-start-${u.value}`,disabled:f}),u.label]},u.value))})]})]})]}),e.jsxs(d.DialogFooter,{children:[e.jsx(s.Button,{variant:"outline",size:"xs",onClick:_,disabled:z,children:"Cancel"}),e.jsx(s.Button,{size:"xs",onClick:O,disabled:$,children:z?e.jsxs(e.Fragment,{children:[e.jsx(s.LoaderCircle,{className:"h-3.5 w-3.5 animate-spin"}),"Saving…"]}):"Save"})]})]})}function Y(a={}){const{authToken:c,tokenProps:t}=d.useSemaphorContext(),m=s.useDashboardStore(n=>n.actions.applyResolvedValueFormatPreferences),r=a.enabled??!0,i=(c==null?void 0:c.accessToken)??null,h=(t==null?void 0:t.apiServiceUrl)??null,g=o.useRef(i);g.current=i;const[S,b]=o.useState(null),[C,f]=o.useState(!1),[j,T]=o.useState(!1),[x,w]=o.useState(!1),[P,v]=o.useState(null);o.useEffect(()=>{b(null),v(null),f(!1),T(!1),w(!1)},[i]);const N=o.useCallback(async n=>{const l=L.parseValueFormatPreferencesResponse(await n.json());if(!l.ok)throw new Error("Value format preferences response is invalid");return l.value},[]),k=o.useCallback(async(n,l)=>{if(!i||!h)throw new Error("Not authenticated");const y=await fetch(`${h}/v1/user-preferences/value-format`,{method:n,headers:{Authorization:`Bearer ${i}`,...l?{"Content-Type":"application/json"}:{}},body:l?JSON.stringify(l):void 0});if(!y.ok){const D=await y.json().catch(()=>({}));throw new Error(D.error||"Failed to update preferences")}return N(y)},[i,h,N]),E=o.useCallback(async()=>{if(!r||!i||!h)return;const n=i;f(!0),v(null);try{const l=await k("GET");g.current===n&&b(l)}catch(l){g.current===n&&v(l instanceof Error?l.message:"Unknown error")}finally{g.current===n&&f(!1)}},[i,h,r,k]);o.useEffect(()=>{r&&E()},[r,E]);const A=o.useCallback(async n=>{const l=i;T(!0),v(null);try{const y=await k("PATCH",n);return g.current!==l?!1:(b(y),m(y.resolved,y.sources),!0)}catch(y){return g.current===l&&v(y instanceof Error?y.message:"Unknown error"),!1}finally{g.current===l&&T(!1)}},[i,m,k]),p=o.useCallback(async()=>{const n=i;w(!0),v(null);try{const l=await k("DELETE");return g.current!==n?!1:(b(l),m(l.resolved,l.sources),!0)}catch(l){return g.current===n&&v(l instanceof Error?l.message:"Unknown error"),!1}finally{g.current===n&&w(!1)}},[i,m,k]);return{preferences:S,isLoading:C,isSaving:j,isClearing:x,error:P,updatePreferences:A,clearPreferences:p,refetch:E}}const I=["locale","dateStyle","dateTime.dateStyle","dateTime.timeStyle","defaultCurrency"];function q(a,c){var t,m;switch(c){case"locale":return a==null?void 0:a.locale;case"dateStyle":return a==null?void 0:a.dateStyle;case"dateTime.dateStyle":return(t=a==null?void 0:a.dateTime)==null?void 0:t.dateStyle;case"dateTime.timeStyle":return(m=a==null?void 0:a.dateTime)==null?void 0:m.timeStyle;case"defaultCurrency":return a==null?void 0:a.defaultCurrency}}function Z(a){var m,r;const c=(m=a==null?void 0:a.dateTime)==null?void 0:m.dateStyle,t=(r=a==null?void 0:a.dateTime)==null?void 0:r.timeStyle;return{locale:a==null?void 0:a.locale,dateStyle:a==null?void 0:a.dateStyle,dateTime:c===void 0&&t===void 0?void 0:{dateStyle:c,timeStyle:t},defaultCurrency:a==null?void 0:a.defaultCurrency}}function Q({active:a,onClose:c}){var g,S,b,C,f,j,T;const{preferences:t,isLoading:m,isSaving:r,updatePreferences:i}=Y({enabled:a});if(!a)return null;if(!t)return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"py-2",children:e.jsx("div",{className:"flex min-h-36 items-center justify-center text-[12px] text-muted-foreground",children:m?"Loading preferences…":"Preferences unavailable."})}),e.jsxs(d.DialogFooter,{className:"justify-between sm:justify-between",children:[e.jsx(s.Button,{variant:"ghost",size:"xs",disabled:!0,children:"Reset display formats"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(s.Button,{variant:"outline",size:"xs",onClick:c,children:"Cancel"}),e.jsx(s.Button,{size:"xs",disabled:!0,children:"Save"})]})]})]});const h=[((g=t.stored)==null?void 0:g.locale)??"",((S=t.stored)==null?void 0:S.dateStyle)??"",((C=(b=t.stored)==null?void 0:b.dateTime)==null?void 0:C.dateStyle)??"",((j=(f=t.stored)==null?void 0:f.dateTime)==null?void 0:j.timeStyle)??"",((T=t.stored)==null?void 0:T.defaultCurrency)??""].join(":");return e.jsx(X,{preferences:t,isSaving:r,updatePreferences:i,onClose:c},h)}function X({preferences:a,isSaving:c,updatePreferences:t,onClose:m}){var b,C;const[r,i]=o.useState(()=>Z(a.stored)),h=(r.locale===void 0||L.canonicalizeSupportedLocale(r.locale)!==void 0)&&(r.defaultCurrency===void 0||L.canonicalizeSupportedCurrencyCode(r.defaultCurrency)!==void 0)&&(r.dateStyle===void 0||["short","medium","long"].includes(r.dateStyle))&&(((b=r.dateTime)==null?void 0:b.dateStyle)===void 0||["short","medium","long"].includes(r.dateTime.dateStyle))&&(((C=r.dateTime)==null?void 0:C.timeStyle)===void 0||["short","medium","long"].includes(r.dateTime.timeStyle)),g=async()=>{const f={...r.locale!==void 0?{locale:r.locale}:{},...r.dateStyle!==void 0?{dateStyle:r.dateStyle}:{},...r.dateTime?{dateTime:{...r.dateTime}}:{},...r.defaultCurrency!==void 0?{defaultCurrency:r.defaultCurrency}:{}},j=I.filter(w=>q(r,w)===void 0&&q(a.stored,w)!==void 0),T={...Object.keys(f).length>0?{set:f}:{},...j.length>0?{clear:j}:{}};(Object.keys(T).length===0?!0:await t(T))?(s.ue.success("Display format preferences saved."),m()):s.ue.error("Failed to save preferences. Please try again.")},S=async()=>{await t({clear:[...I]})?(s.ue.success("Display format preferences reset."),m()):s.ue.error("Failed to reset display format preferences. Please try again.")};return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"py-2",children:e.jsx(d.DisplayFormatPreferencesFields,{value:r,inherited:a.inherited,inheritedSources:a.inheritedSources,onChange:i,disabled:c})}),e.jsxs(d.DialogFooter,{className:"justify-between sm:justify-between",children:[e.jsx(s.Button,{variant:"ghost",size:"xs",onClick:S,disabled:c||a.stored===null,children:"Reset display formats"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(s.Button,{variant:"outline",size:"xs",onClick:m,disabled:c,children:"Cancel"}),e.jsx(s.Button,{size:"xs",onClick:g,disabled:c||!h,children:c?e.jsxs(e.Fragment,{children:[e.jsx(s.LoaderCircle,{className:"h-3.5 w-3.5 animate-spin"}),"Saving…"]}):"Save"})]})]})]})}function ee({open:a,onOpenChange:c}){const[t,m]=o.useState("display"),r=()=>c(!1);return e.jsx(d.Dialog,{open:a,onOpenChange:c,children:e.jsxs(d.DialogContent,{className:"rounded-control border-border/60 sm:max-w-[440px] sm:rounded-control",children:[e.jsxs(d.DialogHeader,{children:[e.jsx(d.DialogTitle,{className:"text-[15px]",children:"Report preferences"}),e.jsx(d.DialogDescription,{className:"text-[13px] leading-5",children:"Set how values and Calendar periods appear for you."})]}),e.jsxs(s.Tabs,{value:t,onValueChange:m,children:[e.jsxs(s.TabsList,{variant:"underline",className:"w-full justify-start",children:[e.jsx(s.TabsTrigger,{value:"display",children:"Display formats"}),e.jsx(s.TabsTrigger,{value:"calendar",children:"Calendar"})]}),e.jsx(s.TabsContent,{value:"display",children:e.jsx(Q,{active:a&&t==="display",onClose:r})}),e.jsx(s.TabsContent,{value:"calendar",children:e.jsx(J,{active:a&&t==="calendar",onClose:r})})]})]})})}exports.ReportPreferencesDialog=ee;
|
package/dist/chunks/{report-runtime-context-nCHl3uHC.js → report-runtime-context-BlDpc-F-.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { parseValueFormatPreferences as _, isReportPreferenceSource as C } from "../value-format-preferences/index.js";
|
|
2
|
-
import { e as k,
|
|
2
|
+
import { e as k, v as g } from "./validators-D-_IT-Xw.js";
|
|
3
3
|
const M = {
|
|
4
4
|
tz: "UTC",
|
|
5
5
|
weekStart: 1,
|
package/dist/chunks/{report-runtime-context-Bb0ejvVq.cjs → report-runtime-context-lSIvyKm2.cjs}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const p=require("../value-format-preferences/index.cjs"),f=require("./validators-
|
|
1
|
+
"use strict";const p=require("../value-format-preferences/index.cjs"),f=require("./validators-ux2obZB9.cjs"),g={tz:"UTC",weekStart:1,anchor:"now"},b=["tz","weekStart","anchor","fiscalCalendar"],E=["kind","yearStartMonth"],w=["calendar","valueFormat","preferenceSources"],T=["calendar","valueFormat"],y=["tz","weekStart"],F=["stored","inherited","inheritedSources","resolved","sources"],z=["locale","dateStyle","dateTime","defaultCurrency"],R=["dateStyle","timeStyle"];function o(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;const a=Object.getPrototypeOf(e);return a===null||Object.getPrototypeOf(a)===null}function n(e,a,r){const t=new Set(a);return Object.keys(e).filter(s=>!t.has(s)).map(s=>({path:r==="$"?s:`${r}.${s}`,code:"unknown_property",message:`Unknown property "${s}"`}))}function _(e){return Number.isInteger(e)&&typeof e=="number"&&e>=0&&e<=6}function d(e,a,r){if(!o(e))return{ok:!1,issues:[{path:a,code:"invalid_type",message:"Calendar preferences must be an object"}]};const t=n(e,["tz","weekStart"],a);return(!r||e.tz!==void 0)&&(typeof e.tz!="string"||!f.isValidIanaTimeZone(e.tz))&&t.push({path:`${a}.tz`,code:"invalid_timezone",message:"tz must be a valid IANA timezone"}),(!r||e.weekStart!==void 0)&&!_(e.weekStart)&&t.push({path:`${a}.weekStart`,code:"invalid_week_start",message:"weekStart must be an integer from 0 to 6"}),t.length?{ok:!1,issues:t}:{ok:!0,value:{...e.tz!==void 0?{tz:e.tz}:{},...e.weekStart!==void 0?{weekStart:e.weekStart}:{}}}}function A(e){if(e==="now")return{ok:!0,value:"now"};if(!o(e))return{ok:!1,issues:[{path:"anchor",code:"invalid_anchor",message:'anchor must be "now" or an object with an ISO timestamp'}]};const a=n(e,["iso"],"anchor"),r=e.iso;return f.parseSemaphorIsoInstant(r)===null&&a.push({path:"anchor.iso",code:"invalid_anchor",message:"anchor.iso must be an ISO timestamp with an explicit offset"}),a.length?{ok:!1,issues:a}:{ok:!0,value:{iso:r}}}function O(e){if(!o(e))return{ok:!1,issues:[{path:"fiscalCalendar",code:"invalid_fiscal_calendar",message:"fiscalCalendar must be an object"}]};const a=n(e,E,"fiscalCalendar");return e.kind!=="month_aligned"&&a.push({path:"fiscalCalendar.kind",code:"invalid_fiscal_calendar",message:'fiscalCalendar.kind must be "month_aligned"'}),(!Number.isInteger(e.yearStartMonth)||typeof e.yearStartMonth!="number"||e.yearStartMonth<1||e.yearStartMonth>12)&&a.push({path:"fiscalCalendar.yearStartMonth",code:"invalid_fiscal_calendar",message:"fiscalCalendar.yearStartMonth must be an integer from 1 to 12"}),a.length?{ok:!1,issues:a}:{ok:!0,value:{kind:"month_aligned",yearStartMonth:e.yearStartMonth}}}function C(e){if(!o(e))return{ok:!1,issues:[{path:"$",code:"invalid_type",message:"Calendar context must be an object"}]};const a=n(e,b,"$");(typeof e.tz!="string"||!f.isValidIanaTimeZone(e.tz))&&a.push({path:"tz",code:"invalid_timezone",message:"tz must be a valid IANA timezone"}),_(e.weekStart)||a.push({path:"weekStart",code:"invalid_week_start",message:"weekStart must be an integer from 0 to 6"});const r=A(e.anchor);r.ok||a.push(...r.issues);let t;if(e.fiscalCalendar!==void 0){const s=O(e.fiscalCalendar);s.ok?t=s.value:a.push(...s.issues)}return a.length||!r.ok?{ok:!1,issues:a}:{ok:!0,value:{tz:e.tz,weekStart:e.weekStart,anchor:r.value,...t?{fiscalCalendar:t}:{}}}}function l(e,a,r){if(!p.isReportPreferenceSource(e)){r.push({path:a,code:"invalid_preference_source",message:"Preference source is invalid"});return}return e}function k(e,a){if(!o(e))return{ok:!1,issues:[{path:a,code:"invalid_type",message:"Calendar preference sources must be an object"}]};const r=n(e,y,a),t=l(e.tz,`${a}.tz`,r),s=l(e.weekStart,`${a}.weekStart`,r);return r.length||!t||!s?{ok:!1,issues:r}:{ok:!0,value:{tz:t,weekStart:s}}}function $(e){if(!o(e))return{ok:!1,issues:[{path:"$",code:"invalid_type",message:"Calendar preference response must be an object"}]};const a=n(e,F,"$"),r=e.stored===null?{ok:!0,value:null}:d(e.stored,"stored",!0),t=d(e.inherited,"inherited",!1),s=k(e.inheritedSources,"inheritedSources"),c=d(e.resolved,"resolved",!1),i=k(e.sources,"sources");for(const u of[r,t,s,c,i])u.ok||a.push(...u.issues);return a.length||!r.ok||!t.ok||!s.ok||!c.ok||!i.ok?{ok:!1,issues:a}:{ok:!0,value:{stored:r.value,inherited:t.value,inheritedSources:s.value,resolved:c.value,sources:i.value}}}function P(e){if(!o(e))return{ok:!1,issues:[{path:"preferenceSources",code:"invalid_type",message:"preferenceSources must be an object"}]};const a=n(e,T,"preferenceSources"),r=e.calendar,t=e.valueFormat;if(o(r)||a.push({path:"preferenceSources.calendar",code:"invalid_type",message:"Calendar preference sources must be an object"}),o(t)||a.push({path:"preferenceSources.valueFormat",code:"invalid_type",message:"Value-format preference sources must be an object"}),!o(r)||!o(t))return{ok:!1,issues:a};a.push(...n(r,y,"preferenceSources.calendar"),...n(t,z,"preferenceSources.valueFormat"));const s=t.dateTime;o(s)?a.push(...n(s,R,"preferenceSources.valueFormat.dateTime")):a.push({path:"preferenceSources.valueFormat.dateTime",code:"invalid_type",message:"Datetime preference sources must be an object"});const c=l(r.tz,"preferenceSources.calendar.tz",a),i=l(r.weekStart,"preferenceSources.calendar.weekStart",a),u=l(t.locale,"preferenceSources.valueFormat.locale",a),m=l(t.dateStyle,"preferenceSources.valueFormat.dateStyle",a),S=o(s)?l(s.dateStyle,"preferenceSources.valueFormat.dateTime.dateStyle",a):void 0,v=o(s)?l(s.timeStyle,"preferenceSources.valueFormat.dateTime.timeStyle",a):void 0,h=l(t.defaultCurrency,"preferenceSources.valueFormat.defaultCurrency",a);return a.length||!c||!i||!u||!m||!S||!v||!h?{ok:!1,issues:a}:{ok:!0,value:{calendar:{tz:c,weekStart:i},valueFormat:{locale:u,dateStyle:m,dateTime:{dateStyle:S,timeStyle:v},defaultCurrency:h}}}}function j(e){var t;const a=p.parseValueFormatPreferences(e);if(!a.ok)return{ok:!1,issues:a.issues.map(s=>({path:`valueFormat.${s.path}`,code:"invalid_value_format",message:s.message}))};const r=a.value;return r.locale===void 0||r.dateStyle===void 0||((t=r.dateTime)==null?void 0:t.dateStyle)===void 0||r.dateTime.timeStyle===void 0||r.defaultCurrency===void 0?{ok:!1,issues:[{path:"valueFormat",code:"invalid_value_format",message:"Resolved value-format preferences must be complete"}]}:{ok:!0,value:{locale:r.locale,dateStyle:r.dateStyle,dateTime:{dateStyle:r.dateTime.dateStyle,timeStyle:r.dateTime.timeStyle},defaultCurrency:r.defaultCurrency}}}function N(e){if(!o(e))return{ok:!1,issues:[{path:"$",code:"invalid_type",message:"Report runtime context must be an object"}]};const a=n(e,w,"$"),r=C(e.calendar),t=j(e.valueFormat),s=P(e.preferenceSources);return r.ok||a.push(...r.issues.map(c=>({...c,path:c.path==="$"?"calendar":`calendar.${c.path}`}))),t.ok||a.push(...t.issues),s.ok||a.push(...s.issues),a.length||!r.ok||!t.ok||!s.ok?{ok:!1,issues:a}:{ok:!0,value:{calendar:r.value,valueFormat:t.value,preferenceSources:s.value}}}exports.DEFAULT_CALENDAR_CONTEXT=g;exports.parseCalendarContext=C;exports.parseCalendarPreferencesResponse=$;exports.parseReportRuntimeContext=N;
|