@sisense/sdk-ui 2.16.1 → 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/ai.cjs +54 -54
  2. package/dist/ai.js +779 -741
  3. package/dist/analytics-composer/node.cjs +1 -1
  4. package/dist/analytics-composer/node.js +410 -379
  5. package/dist/analytics-composer.cjs +1 -1
  6. package/dist/analytics-composer.js +6 -6
  7. package/dist/{derive-chart-family-d7eaC45K.cjs → derive-chart-family-B_cR1yhw.cjs} +3 -3
  8. package/dist/{derive-chart-family-DLwnWblo.js → derive-chart-family-DkuTQGOE.js} +333 -333
  9. package/dist/{dimensions-BUWtZxix.cjs → dimensions-DI9h9IJH.cjs} +1 -1
  10. package/dist/{dimensions-DvDgZ8RW.js → dimensions-Gma5tFmd.js} +1 -1
  11. package/dist/execute-query-CdhSHTTA.cjs +1 -0
  12. package/dist/{execute-query-CFK2R_1S.js → execute-query-l7jejslh.js} +867 -865
  13. package/dist/index.cjs +970 -246
  14. package/dist/index.js +70584 -18085
  15. package/dist/index.umd.js +1269 -1267
  16. package/dist/packages/sdk-ui/src/ai/get-nlg-insights-from-widget.d.ts +46 -0
  17. package/dist/packages/sdk-ui/src/ai/index.d.ts +1 -0
  18. package/dist/packages/sdk-ui/src/analytics-composer/nlq-v3-translator/common.d.ts +2 -1
  19. package/dist/packages/sdk-ui/src/analytics-composer/nlq-v3-translator/process-function/filter-processors.d.ts +0 -9
  20. package/dist/packages/sdk-ui/src/analytics-composer/nlq-v3-translator/types.d.ts +1 -1
  21. package/dist/packages/sdk-ui/src/analytics-composer/types.d.ts +2 -2
  22. package/dist/packages/sdk-ui/src/api/rest-api.d.ts +1 -1
  23. package/dist/packages/sdk-ui/src/app/client-application.d.ts +5 -5
  24. package/dist/packages/sdk-ui/src/chart-options-processor/data-points.d.ts +3 -4
  25. package/dist/packages/sdk-ui/src/dashboard/hooks/use-jtd.d.ts +1 -2
  26. package/dist/packages/sdk-ui/src/data-source-dimensional-model/hooks/use-get-data-source-dimensions.d.ts +78 -0
  27. package/dist/packages/sdk-ui/src/data-source-dimensional-model/hooks/use-get-data-source-fields.d.ts +23 -0
  28. package/dist/packages/sdk-ui/src/data-source-dimensional-model/index.d.ts +2 -0
  29. package/dist/packages/sdk-ui/src/index.d.ts +1 -1
  30. package/dist/packages/sdk-ui/src/models/widget/widget-model-translator/widget-model-translator.d.ts +4 -1
  31. package/dist/packages/sdk-ui/src/pivot-table/formatters/data-cell-formatters/data-cell-color-formatter.d.ts +2 -1
  32. package/dist/packages/sdk-ui/src/pivot-table/formatters/formatter-utils.d.ts +2 -1
  33. package/dist/packages/sdk-ui/src/pivot-table/formatters/header-cell-formatters/header-cell-totals-formatter.d.ts +1 -1
  34. package/dist/packages/sdk-ui/src/pivot-table/formatters/types.d.ts +2 -1
  35. package/dist/packages/sdk-ui/src/pivot-table/hooks/use-apply-pivot-table-formatting.d.ts +1 -1
  36. package/dist/packages/sdk-ui/src/pivot-table/hooks/use-get-pivot-table-query.d.ts +1 -1
  37. package/dist/packages/sdk-ui/src/pivot-table/hooks/use-pivot-builder.d.ts +1 -1
  38. package/dist/packages/sdk-ui/src/pivot-table/hooks/use-pivot-client.d.ts +8 -0
  39. package/dist/packages/sdk-ui/src/pivot-table/hooks/use-pivot-data-loading.d.ts +2 -1
  40. package/dist/packages/sdk-ui/src/pivot-table/hooks/use-pivot-data-service.d.ts +2 -1
  41. package/dist/packages/sdk-ui/src/pivot-table/hooks/use-render-pivot.d.ts +1 -1
  42. package/dist/packages/sdk-ui/src/pivot-table/pivot-table.d.ts +32 -2
  43. package/dist/packages/sdk-ui/src/pivot-table/sorting-utils.d.ts +1 -1
  44. package/dist/packages/sdk-ui/src/props.d.ts +11 -0
  45. package/dist/packages/sdk-ui/src/query-execution/use-execute-pivot-query.d.ts +0 -1
  46. package/dist/packages/sdk-ui/src/translation/resources/en.d.ts +1 -1
  47. package/dist/packages/sdk-ui/src/translation/resources/index.d.ts +2 -2
  48. package/dist/packages/sdk-ui/src/types.d.ts +40 -25
  49. package/dist/packages/sdk-ui/src/widgets/pivot-table-widget.d.ts +19 -1
  50. package/dist/{types-Clbnx4mQ.cjs → types-Hki4GrUY.cjs} +1 -1
  51. package/dist/{types-D1mqt0Mg.js → types-ofTjqFFK.js} +1 -1
  52. package/dist/use-common-filters-Bh4KYWy_.cjs +604 -0
  53. package/dist/use-common-filters-D5yiZCTg.js +56547 -0
  54. package/dist/{widget-composer-Dhl_nmhq.js → widget-composer-By61s921.js} +3 -3
  55. package/dist/{widget-composer-BaOTPn5w.cjs → widget-composer-BzzTf8UH.cjs} +1 -1
  56. package/package.json +8 -7
  57. package/dist/execute-query-CB4XfUng.cjs +0 -1
  58. package/dist/packages/sdk-ui/src/common/hooks/fusion-endpoints/use-get-data-source-fields.d.ts +0 -17
  59. package/dist/use-common-filters-CCeRLdGB.js +0 -103405
  60. package/dist/use-common-filters-DOn2HdBv.cjs +0 -1325
@@ -1 +1 @@
1
- "use strict";var Ie=Object.defineProperty,_e=Object.defineProperties;var Le=Object.getOwnPropertyDescriptors;var le=Object.getOwnPropertySymbols;var Ve=Object.prototype.hasOwnProperty,Ue=Object.prototype.propertyIsEnumerable;var ce=(e,r,t)=>r in e?Ie(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,F=(e,r)=>{for(var t in r||(r={}))Ve.call(r,t)&&ce(e,t,r[t]);if(le)for(var t of le(r))Ue.call(r,t)&&ce(e,t,r[t]);return e},w=(e,r)=>_e(e,Le(r));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const M=require("../types-Clbnx4mQ.cjs"),u=require("../execute-query-CB4XfUng.cjs"),J=require("../dimensions-BUWtZxix.cjs");class Je{constructor(){this.keyToValue=new Map,this.valueToKey=new Map}set(r,t){this.keyToValue.set(r,t),this.valueToKey.set(t,r)}getByKey(r){return this.keyToValue.get(r)}getByValue(r){return this.valueToKey.get(r)}clear(){this.keyToValue.clear(),this.valueToKey.clear()}}class ge{constructor(r){this.generateIdentifier=r,this.kv=new Je}register(r,t){this.kv.getByValue(r)||(t||(t=this.generateIdentifier(r)),this.kv.set(t,r))}clear(){this.kv.clear()}getIdentifier(r){return this.kv.getByValue(r)}getValue(r){return this.kv.getByKey(r)}}class Qe extends ge{constructor(){super(r=>r.name),this.classToAllowedProps=new Map}register(r,t){typeof t=="object"?(t.allowProps&&this.classToAllowedProps.set(r,t.allowProps),super.register(r,t.identifier)):super.register(r,t)}getAllowedProps(r){return this.classToAllowedProps.get(r)}}function We(e){if("values"in Object)return Object.values(e);const r=[];for(const t in e)e.hasOwnProperty(t)&&r.push(e[t]);return r}function je(e,r){const t=We(e);if("find"in t)return t.find(r);const i=t;for(let s=0;s<i.length;s++){const a=i[s];if(r(a))return a}}function O(e,r){Object.entries(e).forEach(([t,i])=>r(i,t))}function U(e,r){return e.indexOf(r)!==-1}function fe(e,r){for(let t=0;t<e.length;t++){const i=e[t];if(r(i))return i}}class Ke{constructor(){this.transfomers={}}register(r){this.transfomers[r.name]=r}findApplicable(r){return je(this.transfomers,t=>t.isApplicable(r))}findByName(r){return this.transfomers[r]}}const Ye=e=>Object.prototype.toString.call(e).slice(8,-1),be=e=>typeof e=="undefined",He=e=>e===null,I=e=>typeof e!="object"||e===null||e===Object.prototype?!1:Object.getPrototypeOf(e)===null?!0:Object.getPrototypeOf(e)===Object.prototype,G=e=>I(e)&&Object.keys(e).length===0,D=e=>Array.isArray(e),Xe=e=>typeof e=="string",Ge=e=>typeof e=="number"&&!isNaN(e),Ze=e=>typeof e=="boolean",ve=e=>e instanceof RegExp,_=e=>e instanceof Map,L=e=>e instanceof Set,he=e=>Ye(e)==="Symbol",er=e=>e instanceof Date&&!isNaN(e.valueOf()),rr=e=>e instanceof Error,de=e=>typeof e=="number"&&isNaN(e),tr=e=>Ze(e)||He(e)||be(e)||Ge(e)||Xe(e)||he(e),ir=e=>typeof e=="bigint",sr=e=>e===1/0||e===-1/0,nr=e=>ArrayBuffer.isView(e)&&!(e instanceof DataView),ar=e=>e instanceof URL,Fe=e=>e.replace(/\./g,"\\."),Y=e=>e.map(String).map(Fe).join("."),k=e=>{const r=[];let t="";for(let s=0;s<e.length;s++){let a=e.charAt(s);if(a==="\\"&&e.charAt(s+1)==="."){t+=".",s++;continue}if(a==="."){r.push(t),t="";continue}t+=a}const i=t;return r.push(i),r};function A(e,r,t,i){return{isApplicable:e,annotation:r,transform:t,untransform:i}}const qe=[A(be,"undefined",()=>null,()=>{}),A(ir,"bigint",e=>e.toString(),e=>typeof BigInt!="undefined"?BigInt(e):(console.error("Please add a BigInt polyfill."),e)),A(er,"Date",e=>e.toISOString(),e=>new Date(e)),A(rr,"Error",(e,r)=>{const t={name:e.name,message:e.message};return r.allowedErrorProps.forEach(i=>{t[i]=e[i]}),t},(e,r)=>{const t=new Error(e.message);return t.name=e.name,t.stack=e.stack,r.allowedErrorProps.forEach(i=>{t[i]=e[i]}),t}),A(ve,"regexp",e=>""+e,e=>{const r=e.slice(1,e.lastIndexOf("/")),t=e.slice(e.lastIndexOf("/")+1);return new RegExp(r,t)}),A(L,"set",e=>[...e.values()],e=>new Set(e)),A(_,"map",e=>[...e.entries()],e=>new Map(e)),A(e=>de(e)||sr(e),"number",e=>de(e)?"NaN":e>0?"Infinity":"-Infinity",Number),A(e=>e===0&&1/e===-1/0,"number",()=>"-0",Number),A(ar,"URL",e=>e.toString(),e=>new URL(e))];function Q(e,r,t,i){return{isApplicable:e,annotation:r,transform:t,untransform:i}}const we=Q((e,r)=>he(e)?!!r.symbolRegistry.getIdentifier(e):!1,(e,r)=>["symbol",r.symbolRegistry.getIdentifier(e)],e=>e.description,(e,r,t)=>{const i=t.symbolRegistry.getValue(r[1]);if(!i)throw new Error("Trying to deserialize unknown symbol");return i}),or=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,Uint8ClampedArray].reduce((e,r)=>(e[r.name]=r,e),{}),Ee=Q(nr,e=>["typed-array",e.constructor.name],e=>[...e],(e,r)=>{const t=or[r[1]];if(!t)throw new Error("Trying to deserialize unknown typed array");return new t(e)});function Ae(e,r){return e!=null&&e.constructor?!!r.classRegistry.getIdentifier(e.constructor):!1}const Ce=Q(Ae,(e,r)=>["class",r.classRegistry.getIdentifier(e.constructor)],(e,r)=>{const t=r.classRegistry.getAllowedProps(e.constructor);if(!t)return F({},e);const i={};return t.forEach(s=>{i[s]=e[s]}),i},(e,r,t)=>{const i=t.classRegistry.getValue(r[1]);if(!i)throw new Error(`Trying to deserialize unknown class '${r[1]}' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564`);return Object.assign(Object.create(i.prototype),e)}),xe=Q((e,r)=>!!r.customTransformerRegistry.findApplicable(e),(e,r)=>["custom",r.customTransformerRegistry.findApplicable(e).name],(e,r)=>r.customTransformerRegistry.findApplicable(e).serialize(e),(e,r,t)=>{const i=t.customTransformerRegistry.findByName(r[1]);if(!i)throw new Error("Trying to deserialize unknown custom value");return i.deserialize(e)}),ur=[Ce,we,xe,Ee],ye=(e,r)=>{const t=fe(ur,s=>s.isApplicable(e,r));if(t)return{value:t.transform(e,r),type:t.annotation(e,r)};const i=fe(qe,s=>s.isApplicable(e,r));if(i)return{value:i.transform(e,r),type:i.annotation}},$e={};qe.forEach(e=>{$e[e.annotation]=e});const lr=(e,r,t)=>{if(D(r))switch(r[0]){case"symbol":return we.untransform(e,r,t);case"class":return Ce.untransform(e,r,t);case"custom":return xe.untransform(e,r,t);case"typed-array":return Ee.untransform(e,r,t);default:throw new Error("Unknown transformation: "+r)}else{const i=$e[r];if(!i)throw new Error("Unknown transformation: "+r);return i.untransform(e,t)}},z=(e,r)=>{if(r>e.size)throw new Error("index out of bounds");const t=e.keys();for(;r>0;)t.next(),r--;return t.next().value};function De(e){if(U(e,"__proto__"))throw new Error("__proto__ is not allowed as a property");if(U(e,"prototype"))throw new Error("prototype is not allowed as a property");if(U(e,"constructor"))throw new Error("constructor is not allowed as a property")}const cr=(e,r)=>{De(r);for(let t=0;t<r.length;t++){const i=r[t];if(L(e))e=z(e,+i);else if(_(e)){const s=+i,a=+r[++t]==0?"key":"value",n=z(e,s);switch(a){case"key":e=n;break;case"value":e=e.get(n);break}}else e=e[i]}return e},Z=(e,r,t)=>{if(De(r),r.length===0)return t(e);let i=e;for(let a=0;a<r.length-1;a++){const n=r[a];if(D(i)){const o=+n;i=i[o]}else if(I(i))i=i[n];else if(L(i)){const o=+n;i=z(i,o)}else if(_(i)){if(a===r.length-2)break;const l=+n,f=+r[++a]==0?"key":"value",y=z(i,l);switch(f){case"key":i=y;break;case"value":i=i.get(y);break}}}const s=r[r.length-1];if(D(i)?i[+s]=t(i[+s]):I(i)&&(i[s]=t(i[s])),L(i)){const a=z(i,+s),n=t(a);a!==n&&(i.delete(a),i.add(n))}if(_(i)){const a=+r[r.length-2],n=z(i,a);switch(+s==0?"key":"value"){case"key":{const l=t(n);i.set(l,i.get(n)),l!==n&&i.delete(n);break}case"value":{i.set(n,t(i.get(n)));break}}}return e};function v(e,r,t=[]){if(!e)return;if(!D(e)){O(e,(a,n)=>v(a,r,[...t,...k(n)]));return}const[i,s]=e;s&&O(s,(a,n)=>{v(a,r,[...t,...k(n)])}),r(i,t)}function fr(e,r,t){return v(r,(i,s)=>{e=Z(e,s,a=>lr(a,i,t))}),e}function dr(e,r){function t(i,s){const a=cr(e,k(s));i.map(k).forEach(n=>{e=Z(e,n,()=>a)})}if(D(r)){const[i,s]=r;i.forEach(a=>{e=Z(e,k(a),()=>e)}),s&&O(s,t)}else O(r,t);return e}const yr=(e,r)=>I(e)||D(e)||_(e)||L(e)||Ae(e,r);function pr(e,r,t){const i=t.get(e);i?i.push(r):t.set(e,[r])}function mr(e,r){const t={};let i;return e.forEach(s=>{if(s.length<=1)return;r||(s=s.map(o=>o.map(String)).sort((o,l)=>o.length-l.length));const[a,...n]=s;a.length===0?i=n.map(Y):t[Y(a)]=n.map(Y)}),i?G(t)?[i]:[i,t]:G(t)?void 0:t}const Me=(e,r,t,i,s=[],a=[],n=new Map)=>{var h;const o=tr(e);if(!o){pr(e,s,r);const d=n.get(e);if(d)return i?{transformedValue:null}:d}if(!yr(e,t)){const d=ye(e,t),p=d?{transformedValue:d.value,annotations:[d.type]}:{transformedValue:e};return o||n.set(e,p),p}if(U(a,e))return{transformedValue:null};const l=ye(e,t),f=(h=l==null?void 0:l.value)!=null?h:e,y=D(f)?[]:{},b={};O(f,(d,p)=>{if(p==="__proto__"||p==="constructor"||p==="prototype")throw new Error(`Detected property ${p}. This is a prototype pollution risk, please remove it from your object.`);const $=Me(d,r,t,i,[...s,p],[...a,e],n);y[p]=$.transformedValue,D($.annotations)?b[p]=$.annotations:I($.annotations)&&O($.annotations,(P,T)=>{b[Fe(p)+"."+T]=P})});const m=G(b)?{transformedValue:y,annotations:l?[l.type]:void 0}:{transformedValue:y,annotations:l?[l.type,b]:b};return o||n.set(e,m),m};function Re(e){return Object.prototype.toString.call(e).slice(8,-1)}function pe(e){return Re(e)==="Array"}function gr(e){if(Re(e)!=="Object")return!1;const r=Object.getPrototypeOf(e);return!!r&&r.constructor===Object&&r===Object.prototype}function br(e,r,t,i,s){const a={}.propertyIsEnumerable.call(i,r)?"enumerable":"nonenumerable";a==="enumerable"&&(e[r]=t),s&&a==="nonenumerable"&&Object.defineProperty(e,r,{value:t,enumerable:!1,writable:!0,configurable:!0})}function ee(e,r={}){if(pe(e))return e.map(s=>ee(s,r));if(!gr(e))return e;const t=Object.getOwnPropertyNames(e),i=Object.getOwnPropertySymbols(e);return[...t,...i].reduce((s,a)=>{if(pe(r.props)&&!r.props.includes(a))return s;const n=e[a],o=ee(n,r);return br(s,a,o,e,r.nonenumerable),s},{})}class c{constructor({dedupe:r=!1}={}){this.classRegistry=new Qe,this.symbolRegistry=new ge(t=>{var i;return(i=t.description)!=null?i:""}),this.customTransformerRegistry=new Ke,this.allowedErrorProps=[],this.dedupe=r}serialize(r){const t=new Map,i=Me(r,t,this,this.dedupe),s={json:i.transformedValue};i.annotations&&(s.meta=w(F({},s.meta),{values:i.annotations}));const a=mr(t,this.dedupe);return a&&(s.meta=w(F({},s.meta),{referentialEqualities:a})),s}deserialize(r){const{json:t,meta:i}=r;let s=ee(t);return i!=null&&i.values&&(s=fr(s,i.values,this)),i!=null&&i.referentialEqualities&&(s=dr(s,i.referentialEqualities)),s}stringify(r){return JSON.stringify(this.serialize(r))}parse(r){return this.deserialize(JSON.parse(r))}registerClass(r,t){this.classRegistry.register(r,t)}registerSymbol(r,t){this.symbolRegistry.register(r,t)}registerCustom(r,t){this.customTransformerRegistry.register(F({name:t},r))}allowErrorProps(...r){this.allowedErrorProps.push(...r)}}c.defaultInstance=new c;c.serialize=c.defaultInstance.serialize.bind(c.defaultInstance);c.deserialize=c.defaultInstance.deserialize.bind(c.defaultInstance);c.stringify=c.defaultInstance.stringify.bind(c.defaultInstance);c.parse=c.defaultInstance.parse.bind(c.defaultInstance);c.registerClass=c.defaultInstance.registerClass.bind(c.defaultInstance);c.registerSymbol=c.defaultInstance.registerSymbol.bind(c.defaultInstance);c.registerCustom=c.defaultInstance.registerCustom.bind(c.defaultInstance);c.allowErrorProps=c.defaultInstance.allowErrorProps.bind(c.defaultInstance);const N=e=>e===void 0?u.Sort.None:e,hr=e=>new M.JaqlElement(e.metadataItem,e.type),re=e=>new u.DimensionalAttribute(e.name,e.expression,e.type,e.description,N(e.sort),e.dataSource,e.composeCode),te=e=>new u.DimensionalLevelAttribute(e.name,e.expression,e.granularity,e.format,e.description,N(e.sort),e.dataSource,e.composeCode),q=e=>{switch(e.__serializable){case"DimensionalAttribute":return re(e);case"DimensionalLevelAttribute":return te(e);default:return e}},Se=e=>new J.DimensionalDimension(e.name,e.expression,e.attributes.map(q),e.dimensions.map(Fr),e.type,e.description,N(e.sort),e.dataSource,e.composeCode,e.defaultAttribute?q(e.defaultAttribute):void 0),Ne=e=>new J.DimensionalDateDimension(e.name,e.expression,e.description,N(e.sort),e.dataSource,e.composeCode),Fr=e=>{switch(e.__serializable){case"DimensionalDimension":return Se(e);case"DimensionalDateDimension":return Ne(e);default:return e}},ie=e=>new u.DimensionalBaseMeasure(e.name,q(e.attribute),e.aggregation,e.format,e.description,N(e.sort),e.dataSource,e.composeCode),se=e=>{const r=Object.fromEntries(Object.entries(e.context).map(([t,i])=>{if(i&&typeof i=="object"&&"__serializable"in i)switch(i.__serializable){case"DimensionalAttribute":return[t,re(i)];case"DimensionalLevelAttribute":return[t,te(i)];case"DimensionalBaseMeasure":return[t,ie(i)];case"DimensionalCalculatedMeasure":return[t,se(i)];default:return[t,i]}return[t,i]}));return new u.DimensionalCalculatedMeasure(e.name,e.expression,r,e.format,e.description,N(e.sort),e.dataSource,e.composeCode)},Te=e=>new u.DimensionalMeasureTemplate(e.name,q(e.attribute),e.format,e.description,N(e.sort),e.dataSource,e.composeCode),H=e=>{switch(e.__serializable){case"DimensionalBaseMeasure":return ie(e);case"DimensionalCalculatedMeasure":return se(e);case"DimensionalMeasureTemplate":return Te(e);default:return e}},g=e=>{switch(e.__serializable){case"MembersFilter":return new u.MembersFilter(q(e.attribute),e.members,e.config.backgroundFilter?w(F({},e.config),{backgroundFilter:g(e.config.backgroundFilter)}):e.config,e.composeCode);case"LogicalAttributeFilter":return new u.LogicalAttributeFilter(e.filters.map(t=>g(t)),e.operator,e.config,e.composeCode);case"CascadingFilter":return new u.CascadingFilter(e._filters.map(t=>g(t)),e.config,e.composeCode);case"ExcludeFilter":return new u.ExcludeFilter(g(e.filter),e.input?g(e.input):void 0,e.config,e.composeCode);case"MeasureFilter":return new u.MeasureFilter(q(e.attribute),H(e.measure),e.operatorA,e.valueA,e.operatorB,e.valueB,e.config,e.composeCode);case"RankingFilter":return new u.RankingFilter(q(e.attribute),H(e.measure),e.operator,e.count,e.config,e.composeCode);case"MeasureRankingFilter":return new u.MeasureRankingFilter(H(e.measure),e.operator,e.count,e.config,e.composeCode);case"NumericFilter":return new u.NumericFilter(q(e.attribute),e.operatorA,e.valueA,e.operatorB,e.valueB,e.config,e.composeCode);case"TextFilter":return new u.TextFilter(q(e.attribute),e.operatorA,e.valueA,e.config,e.composeCode);case"DateRangeFilter":{const{valueA:t,valueB:i}=e;return new u.DateRangeFilter(q(e.attribute),t,i,e.config,e.composeCode)}case"RelativeDateFilter":return new u.RelativeDateFilter(q(e.attribute),e.offset,e.count,e.operator,e.anchor,e.config,e.composeCode);case"CustomFilter":return new u.CustomFilter(q(e.attribute),e.jaqlExpression,e.config,e.composeCode);default:return e}};c.registerCustom({isApplicable:M.isJaqlElement,serialize:e=>e.serialize(),deserialize:e=>hr(e)},"JaqlElement");c.registerCustom({isApplicable:u.isDimensionalAttribute,serialize:e=>e.serialize(),deserialize:e=>re(e)},"DimensionalAttribute");c.registerCustom({isApplicable:u.isDimensionalLevelAttribute,serialize:e=>e.serialize(),deserialize:e=>te(e)},"DimensionalLevelAttribute");c.registerCustom({isApplicable:J.isDimensionalDimension,serialize:e=>e.serialize(),deserialize:e=>Se(e)},"DimensionalDimension");c.registerCustom({isApplicable:J.isDimensionalDateDimension,serialize:e=>e.serialize(),deserialize:e=>Ne(e)},"DimensionalDateDimension");c.registerCustom({isApplicable:u.isDimensionalBaseMeasure,serialize:e=>e.serialize(),deserialize:e=>ie(e)},"DimensionalBaseMeasure");c.registerCustom({isApplicable:u.isDimensionalCalculatedMeasure,serialize:e=>e.serialize(),deserialize:e=>se(e)},"DimensionalCalculatedMeasure");c.registerCustom({isApplicable:u.isDimensionalMeasureTemplate,serialize:e=>e.serialize(),deserialize:e=>Te(e)},"DimensionalMeasureTemplate");c.registerCustom({isApplicable:u.isMembersFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"MembersFilter");c.registerCustom({isApplicable:u.isLogicalAttributeFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"LogicalAttributeFilter");c.registerCustom({isApplicable:u.isCascadingFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"CascadingFilter");c.registerCustom({isApplicable:u.isExcludeFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"ExcludeFilter");c.registerCustom({isApplicable:u.isMeasureFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"MeasureFilter");c.registerCustom({isApplicable:u.isRankingFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"RankingFilter");c.registerCustom({isApplicable:u.isMeasureRankingFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"MeasureRankingFilter");c.registerCustom({isApplicable:u.isNumericFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"NumericFilter");c.registerCustom({isApplicable:u.isTextFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"TextFilter");c.registerCustom({isApplicable:u.isDateRangeFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"DateRangeFilter");c.registerCustom({isApplicable:u.isRelativeDateFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"RelativeDateFilter");c.registerCustom({isApplicable:u.isCustomFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"CustomFilter");const qr=c,B="DM.";function x(e){return typeof e=="object"&&e!==null&&"function"in e&&"args"in e}function ne(e){return e.every(x)}function W(e){return"attribute"in e&&"config"in e}function V(e){return"left"in e&&"right"in e&&"operator"in e}function ze(e){return!W(e)&&!V(e)}function wr(e){return e.every(r=>typeof r=="string")}function Er(e){const r=e.split(".");if(r.length<3||`${r[0]}.`!==B)throw new Error(`Invalid attribute name format: "${e}". Expected format: "${B}TableName.ColumnName[.Level]"`);const t=r[1],i=r[2];let s;return r.length===4&&(s=r[3]),{tableName:t,columnName:i,level:s}}function Ar(e,r){const{tableName:t,columnName:i,level:s}=Er(e),a=r.find(o=>o.name===t);if(!a)throw new Error(`Table "${t}" not found in the data model`);const n=a.columns.find(o=>o.name===i);if(!n)throw new Error(`Column "${i}" not found in table "${t}"`);if(s){if(!u.isDatetime(n.dataType))throw new Error(`Invalid date level "${s}" in attribute "${e}". Column "${t}.${i}" is not a datetime column`);const o=u.DateLevels.all;if(!o.includes(s))throw new Error(`Invalid date level "${s}" in attribute "${e}". Valid levels are: ${o.join(", ")}`);const l=u.DateLevels.dateOnly;if(n.dataType==="date"&&!l.includes(s))throw new Error(`Invalid level "${s}" in attribute "${e}". Column "${t}.${i}" is only a date column, not a datetime column`);const f=u.DateLevels.timeOnly;if(n.dataType==="time"&&!f.includes(s))throw new Error(`Invalid level "${s}" in attribute "${e}". Column "${t}.${i}" is only a time column, not a date column`)}return{field:n,level:s}}function Oe(e){return e.type===u.MetadataTypes.TextAttribute}function Be(e){return e.type===u.MetadataTypes.NumericAttribute}function Cr(e){return e.type===u.MetadataTypes.DateLevel}function xr(e){return Oe(e)||Be(e)}function j(e){return e.type===u.MetadataTypes.TextAttribute?"text":e.type===u.MetadataTypes.NumericAttribute?"numeric":e.type===u.MetadataTypes.DateLevel?"date/datetime":"unknown"}function ae(e,r,t){const{field:i,level:s}=Ar(e,t);return u.createAttributeHelper({expression:i.expression,dataType:i.dataType,granularity:s,format:void 0,sort:void 0,dataSource:r})}const $r=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context;if(!r)return{success:!0,data:[]};if(!wr(r))return{success:!1,errors:[{category:"dimensions",index:-1,input:r,message:"Invalid dimensions JSON. Expected an array of strings."}]};const s=[],a=[];return r.forEach((n,o)=>{const l={category:"dimensions",index:o,input:n};try{const f=ae(n,t,i);s.push(f)}catch(f){const y=f instanceof Error?f.message:"Unknown error";a.push(w(F({},l),{message:y}))}}),a.length>0?{success:!1,errors:a}:{success:!0,data:s}};function oe(e,r){const t=Reflect.get(e,r);if(typeof t!="function")throw new Error(`Function "${r}" not found or is not a function`);return t}function Dr(e,r){const t=e.replace("measureFactory.",""),s=oe(u.measureFactory,t)(...r);if(!ze(s))throw new Error(`Function "${e}" did not return a valid Measure`);return s}function Mr(e,r){const t=e.replace("filterFactory.logic.",""),s=oe(u.logic,t)(...r);if(!V(s))throw new Error(`Function "${e}" did not return a valid FilterRelations`);return s}function Rr(e,r){if(e.startsWith("filterFactory.logic."))return Mr(e,r);const t=e.replace("filterFactory.",""),s=oe(u.filterFactory,t)(...r);if(!W(s)&&!V(s))throw new Error(`Function "${e}" did not return a valid Filter or FilterRelations`);return s}function Sr(e,r){const i=e.split(".")[0];if(i==="measureFactory")return Dr(e,r);if(i==="filterFactory")return Rr(e,r);throw new Error(`Unsupported factory: "${i}". Supported factories: measureFactory, filterFactory`)}const Nr=/\[([a-zA-Z_][a-zA-Z0-9_.-]*)\]/g;function Tr(e,r,t={}){const{warnUnusedContext:i=!0,errorOnUnusedContext:s=!0,allowEmptyFormula:a=!1,errorPrefix:n="customFormula validation"}=t,o={isValid:!0,errors:[],warnings:[],references:[],unusedContextKeys:[]};if(!e||e.trim().length===0)return a||(o.errors.push(`${n}args[1]: Formula cannot be empty`),o.isValid=!1),o;const l=Object.keys(r);if(l.length===0)return o.errors.push(`${n}args[2]: Context cannot be empty - custom formulas require context definitions`),o.isValid=!1,o;const f=Nr,y=new Set;let b;for(;(b=f.exec(e))!==null;){const h=b[1];y.add(h)}o.references=Array.from(y),o.references.length===0&&o.warnings.push(`${n}args[1]: No bracket references found in formula - ensure this is intentional`);const m=[];for(const h of o.references)l.includes(h)||m.push(h);if(m.length>0&&(o.isValid=!1,m.length===1?o.errors.push(`${n}args[1]: Reference [${m[0]}] not found in context. Available keys: ${l.join(", ")}`):o.errors.push(`${n}args[1]: References [${m.join("], [")}] not found in context. Available keys: ${l.join(", ")}`)),(i||s)&&l.length>0){const h=l.filter(d=>!o.references.includes(d));if(o.unusedContextKeys=h,h.length>0){const d=`${n}args[2]: Context keys [${h.join(", ")}] are defined but not used in formula`;s?(o.errors.push(d),o.isValid=!1):i&&o.warnings.push(d)}}return o}function zr(e,r,t={}){const i=Tr(e,r,t);if(!i.isValid)throw new Error(i.errors.join("; "));i.warnings.length>0&&console.warn("Formula validation warnings:",i.warnings.join("; "))}function Or(e,r){if(e.length<3)throw new Error(`${r.pathPrefix}Expected at least 3 arguments for customFormula`);const t=e[1],i=e[2];zr(t,i,{errorPrefix:`${r.pathPrefix}`,errorOnUnusedContext:!0,allowEmptyFormula:!1});const s={};for(const[a,n]of Object.entries(i)){const o=`args[2].${a}`;if(x(n))s[`${a}`]=E({data:n,context:{dataSource:r.dataSource,tables:r.tables,pathPrefix:o}});else if(typeof n=="string"&&n.startsWith(B))try{s[`${a}`]=ae(n,r.dataSource,r.tables)}catch(l){const f=l instanceof Error?l.message:"Unknown error";throw new Error(`${o}: ${f}`)}else if(n&&typeof n=="object"&&"kind"in n)s[`${a}`]=n;else throw new Error(`${o}: Invalid context value for key '${a}'. Expected a function call or attribute reference (${B}...), but got: ${typeof n}`)}e[2]=s}function K(e,r){const t=e[0];if(!t||typeof t!="object"||!("type"in t))throw new Error(`${r.pathPrefix}args[0]: Expected attribute as first argument`);return t}function me(e,r){const t=K(e,r);if(!xr(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be string or numeric type, got ${j(t)} attribute`)}function R(e,r){const t=K(e,r);if(!Be(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be numeric type, got ${j(t)} attribute`)}function S(e,r){const t=K(e,r);if(!Oe(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be string type, got ${j(t)} attribute`)}function C(e,r){const t=K(e,r);if(!Cr(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be date/datetime type, got ${j(t)} attribute`)}function Br(e,r){const t=e[0];if(!t||typeof t!="object"||!("attribute"in t))throw new Error(`${r.pathPrefix}args[0]: Expected filter as first argument`);return t}function Pr(e,r){const t=Br(e,r);if(!u.isMembersFilter(t))throw new Error(`${r.pathPrefix}args[0]: exclude filter only accepts members filter, got ${t.__serializable||"unknown"} filter`)}const kr={"measureFactory.customFormula":Or,"filterFactory.equals":me,"filterFactory.doesntEqual":me,"filterFactory.greaterThan":R,"filterFactory.greaterThanOrEqual":R,"filterFactory.lessThan":R,"filterFactory.lessThanOrEqual":R,"filterFactory.between":R,"filterFactory.betweenNotEqual":R,"filterFactory.numeric":R,"filterFactory.contains":S,"filterFactory.doesntContain":S,"filterFactory.startsWith":S,"filterFactory.doesntStartWith":S,"filterFactory.endsWith":S,"filterFactory.doesntEndWith":S,"filterFactory.like":S,"filterFactory.dateFrom":C,"filterFactory.dateTo":C,"filterFactory.dateRange":C,"filterFactory.dateRelative":C,"filterFactory.dateRelativeFrom":C,"filterFactory.dateRelativeTo":C,"filterFactory.thisYear":C,"filterFactory.thisMonth":C,"filterFactory.thisQuarter":C,"filterFactory.today":C,"filterFactory.exclude":Pr};function Ir(e){return kr[`${e}`]}const _r={"measureFactory.sum":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.average":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.avg":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.min":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.max":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.median":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.count":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.countDistinct":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.aggregate":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.constant":[{type:"number",required:!0}],"measureFactory.customFormula":[{type:"string",required:!0},{type:"string",required:!0},{type:"CustomFormulaContext",required:!0}],"measureFactory.add":[{type:"Measure | number",required:!0},{type:"Measure | number",required:!0},{type:"string",required:!1},{type:"boolean",required:!1}],"measureFactory.subtract":[{type:"Measure | number",required:!0},{type:"Measure | number",required:!0},{type:"string",required:!1},{type:"boolean",required:!1}],"measureFactory.multiply":[{type:"Measure | number",required:!0},{type:"Measure | number",required:!0},{type:"string",required:!1},{type:"boolean",required:!1}],"measureFactory.divide":[{type:"Measure | number",required:!0},{type:"Measure | number",required:!0},{type:"string",required:!1},{type:"boolean",required:!1}],"measureFactory.measuredValue":[{type:"Measure",required:!0},{type:"Filter[]",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.rank":[{type:"Measure",required:!0},{type:"string",required:!1},{type:"string",required:!1},{type:"string",required:!1},{type:"Attribute[]",required:!1}],"measureFactory.trend":[{type:"Measure",required:!0},{type:"string",required:!1},{type:"any",required:!1}],"measureFactory.forecast":[{type:"Measure",required:!0},{type:"string",required:!1},{type:"any",required:!1}],"measureFactory.yearToDateSum":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.quarterToDateSum":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.monthToDateSum":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.weekToDateSum":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.runningSum":[{type:"Measure",required:!0},{type:"boolean",required:!1},{type:"string",required:!1}],"measureFactory.growth":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.growthRate":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.growthPastWeek":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.growthPastMonth":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.growthPastQuarter":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.growthPastYear":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.difference":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.diffPastWeek":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.diffPastMonth":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.diffPastQuarter":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.diffPastYear":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.pastDay":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.pastWeek":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.pastMonth":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.pastQuarter":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.pastYear":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.contribution":[{type:"Measure",required:!0},{type:"string",required:!1}],"filterFactory.union":[{type:"Filter[]",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.intersection":[{type:"Filter[]",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.exclude":[{type:"Filter",required:!0},{type:"Filter",required:!1},{type:"BaseFilterConfig",required:!1}],"filterFactory.contains":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.doesntContain":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.startsWith":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.doesntStartWith":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.endsWith":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.doesntEndWith":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.like":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.equals":[{type:"Attribute",required:!0},{type:"string | number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.doesntEqual":[{type:"Attribute",required:!0},{type:"string | number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.greaterThan":[{type:"Attribute",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.greaterThanOrEqual":[{type:"Attribute",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.lessThan":[{type:"Attribute",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.lessThanOrEqual":[{type:"Attribute",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.between":[{type:"Attribute",required:!0},{type:"number",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.betweenNotEqual":[{type:"Attribute",required:!0},{type:"number",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.numeric":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"number",required:!1},{type:"string",required:!1},{type:"number",required:!1},{type:"BaseFilterConfig",required:!1}],"filterFactory.members":[{type:"Attribute",required:!0},{type:"string[]",required:!0},{type:"MembersFilterConfig",required:!1}],"filterFactory.dateFrom":[{type:"LevelAttribute",required:!0},{type:"Date | string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.dateTo":[{type:"LevelAttribute",required:!0},{type:"Date | string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.dateRange":[{type:"LevelAttribute",required:!0},{type:"Date | string",required:!1},{type:"Date | string",required:!1},{type:"BaseFilterConfig",required:!1}],"filterFactory.dateRelative":[{type:"LevelAttribute",required:!0},{type:"number",required:!0},{type:"number",required:!0},{type:"Date | string",required:!1},{type:"BaseFilterConfig",required:!1}],"filterFactory.dateRelativeFrom":[{type:"LevelAttribute",required:!0},{type:"number",required:!0},{type:"number",required:!0},{type:"Date | string",required:!1},{type:"BaseFilterConfig",required:!1}],"filterFactory.dateRelativeTo":[{type:"LevelAttribute",required:!0},{type:"number",required:!0},{type:"number",required:!0},{type:"Date | string",required:!1},{type:"BaseFilterConfig",required:!1}],"filterFactory.thisYear":[{type:"DateDimension",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.thisMonth":[{type:"DateDimension",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.thisQuarter":[{type:"DateDimension",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.today":[{type:"DateDimension",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureEquals":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureGreaterThan":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureGreaterThanOrEqual":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureLessThan":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureLessThanOrEqual":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureBetween":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureBetweenNotEqual":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.topRanking":[{type:"Attribute",required:!0},{type:"Measure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.bottomRanking":[{type:"Attribute",required:!0},{type:"Measure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureTopRanking":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureBottomRanking":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.cascading":[{type:"Filter[]",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.logic.and":[{type:"FilterRelationsNode",required:!0},{type:"FilterRelationsNode",required:!0}],"filterFactory.logic.or":[{type:"FilterRelationsNode",required:!0},{type:"FilterRelationsNode",required:!0}]};function ue(e){return _r[`${e}`]}function Lr(e){const r=ue(e);return r?r.filter(t=>t.required).length:0}function Vr(e){const r=ue(e);return r?r.length:0}function Ur(e){if(typeof e!="string")return!1;const r=Date.parse(e);if(!(!isNaN(r)&&e.length>=10))return!1;const i=new Date(e);return!isNaN(i.getTime())&&i.toISOString().startsWith(e.substring(0,10))}function X(e,r,t,i){if(e.startsWith(B))try{return ae(e,r,t)}catch(s){const a=s instanceof Error?s.message:"Unknown error";throw new Error(`${i}: ${a}`)}throw new Error(`${i}: Invalid attribute "${e}". Expected format: "${B}TableName.ColumnName[.Level]"`)}function Jr(e){const r=e.data,{argSchema:t,dataSource:i,tables:s,pathPrefix:a}=e.context,n=a;if(r===void 0){if(t.required)throw new Error(`${n}: Required argument is missing (expected ${t.type})`);return}switch(t.type){case"string":if(typeof r!="string")throw new Error(`${n}: Expected string, got ${typeof r}`);return r;case"number":if(typeof r!="number")throw new Error(`${n}: Expected number, got ${typeof r}`);return r;case"boolean":if(typeof r!="boolean")throw new Error(`${n}: Expected boolean, got ${typeof r}`);return r;case"string[]":if(!Array.isArray(r))throw new Error(`${n}: Expected array of strings, got ${typeof r}. Example: ["value1", "value2"]`);if(!r.every(o=>typeof o=="string"))throw new Error(`${n}: Expected array of strings, but contains non-string values`);return r;case"number[]":if(!Array.isArray(r))throw new Error(`${n}: Expected array of numbers, got ${typeof r}. Example: [10, 20]`);if(!r.every(o=>typeof o=="number"))throw new Error(`${n}: Expected array of numbers, but contains non-number values`);return r;case"Attribute":if(typeof r!="string")throw new Error(`${n}: Expected attribute string, got ${typeof r}. Example: "DM.Commerce.Revenue"`);return X(r,i,s,n);case"Attribute[]":if(!Array.isArray(r))throw new Error(`${n}: Expected array of attributes, got ${typeof r}. Example: ["DM.Commerce.AgeRange"]`);return r.map((o,l)=>{if(typeof o!="string")throw new Error(`${n}[${l}]: Expected attribute string, got ${typeof o}`);return X(o,i,s,`${n}[${l}]`)});case"Measure":case"BaseMeasure":if(!x(r))throw new Error(`${n}: Expected measure function call, got ${typeof r}. Example: {"function": "measureFactory.sum", "args": ["DM.Commerce.Revenue"]}`);return E({data:r,context:{dataSource:i,tables:s,pathPrefix:n}});case"Measure[]":if(!Array.isArray(r))throw new Error(`${n}: Expected array of measure function calls, got ${typeof r}`);return r.map((o,l)=>{if(!x(o))throw new Error(`${n}[${l}]: Expected measure function call, got ${typeof o}`);return E({data:o,context:{dataSource:i,tables:s,pathPrefix:`${n}[${l}]: `}})});case"Filter":if(!x(r))throw new Error(`${n}: Expected filter function call, got ${typeof r}. Example: {"function": "filterFactory.contains", "args": ["DM.Brand.Brand", "Apple"]}`);return E({data:r,context:{dataSource:i,tables:s,pathPrefix:n}});case"Filter[]":if(!Array.isArray(r))throw new Error(`${n}: Expected array of filter function calls, got ${typeof r}`);return r.map((o,l)=>{if(!x(o))throw new Error(`${n}[${l}]: Expected filter function call, got ${typeof o}`);return E({data:o,context:{dataSource:i,tables:s,pathPrefix:`${n}[${l}]: `}})});case"FilterRelationsNode":if(Array.isArray(r))return r.map((o,l)=>{if(!x(o))throw new Error(`${n}[${l}]: Expected filter function call, got ${typeof o}`);return E({data:o,context:{dataSource:i,tables:s,pathPrefix:`${n}[${l}]: `}})});if(x(r))return E({data:r,context:{dataSource:i,tables:s,pathPrefix:n}});throw new Error(`${n}: Expected filter function call or array of filters, got ${typeof r}`);case"DateDimension":case"LevelAttribute":if(typeof r!="string")throw new Error(`${n}: Expected date attribute string, got ${typeof r}. Example: "DM.Commerce.Date.Years"`);return X(r,i,s,n);case"Measure | number":if(typeof r=="number")return r;if(x(r))return E({data:r,context:{dataSource:i,tables:s,pathPrefix:n}});throw new Error(`${n}: Expected measure function call or number, got ${typeof r}`);case"Date | string":if(typeof r=="string"){if(Ur(r))return r;throw new Error(`${n}: Expected valid ISO date string or Date object, got invalid date string "${r}"`)}else{if(r instanceof Date)return r;throw new Error(`${n}: Expected date string or Date object, got ${typeof r}`)}case"string | number":if(typeof r=="string"||typeof r=="number")return r;throw new Error(`${n}: Expected string or number, got ${typeof r}`);case"BaseFilterConfig":case"MembersFilterConfig":case"CustomFormulaContext":case"any":if(r==null&&t.required)throw new Error(`${n}: Required argument is null/undefined`);return r;default:return r}}function E(e){const{data:r}=e,{dataSource:t,tables:i,pathPrefix:s}=e.context,{function:a,args:n}=r,o=s?`${s}.`:"",l=ue(a);if(!l)throw new Error(`${o}function: Unknown function "${a}"`);const f=Lr(a),y=Vr(a);if(n.length<f)throw new Error(`${o}function: Expected at least ${f} arguments, got ${n.length}`);if(n.length>y)throw new Error(`${o}function: Expected at most ${y} arguments, got ${n.length}`);const b=[],m=[];for(let d=0;d<Math.max(n.length,l.length);d++){const p=l[`${d}`],$=n[`${d}`],P=o?`${o}args[${d}]`:`args[${d}]`;if($===void 0){p!=null&&p.required&&m.push(`${P}: Missing required argument (expected ${p.type})`);continue}if(!p){m.push(`${P}: Unexpected argument`);continue}try{const T=Jr({data:$,context:{dataSource:t,tables:i,pathPrefix:P,argSchema:p}});b.push(T)}catch(T){const ke=T instanceof Error?T.message:"Unknown error";m.push(ke)}}if(m.length>0){const d=m.join("; ");throw new Error(d)}const h=Ir(a);if(h)try{h(b,{dataSource:t,tables:i,pathPrefix:o})}catch(d){const p=d instanceof Error?d.message:"Unknown validation error";throw new Error(p)}return Sr(a,b)}function Pe(e){const{attribute:r,config:t}=e;if(u.isMembersFilter(e)&&u.isLevelAttribute(r)){const{granularity:i}=r;return u.members(r,e.members.map(s=>i==="Years"&&!isNaN(Number(s))?`${s}-01-01T00:00:00`:s),t)}return e}function Qr(e){let r=[];for(const t of e)V(t)?r=u.mergeFiltersOrFilterRelations(t,r):r=u.mergeFiltersOrFilterRelations([Pe(t)],r);return r!=null?r:[]}const Wr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context,s=[],a=[];return r.forEach((n,o)=>{const l={category:"filters",index:o,input:n};try{const f=E({data:n,context:{dataSource:t,tables:i,pathPrefix:""}});!V(f)&&!W(f)?a.push(w(F({},l),{message:"Invalid filter JSON"})):s.push(f)}catch(f){const y=f instanceof Error?f.message:"Unknown error";a.push(w(F({},l),{message:y}))}}),a.length>0?{success:!1,errors:a}:{success:!0,data:Qr(s)}},jr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context;return r?ne(r)?Wr({data:r,context:{dataSource:t,tables:i}}):{success:!1,errors:[{category:"filters",index:-1,input:r,message:'Invalid filters JSON. Expected an array of function calls with "function" and "args" properties.'}]}:{success:!0,data:[]}},Kr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context,s=[],a=[];return r.forEach((n,o)=>{const l={category:"highlights",index:o,input:n};try{const f=E({data:n,context:{dataSource:t,tables:i,pathPrefix:""}});W(f)?s.push(Pe(f)):a.push(w(F({},l),{message:"Invalid filter JSON"}))}catch(f){const y=f instanceof Error?f.message:"Unknown error";a.push(w(F({},l),{message:y}))}}),a.length>0?{success:!1,errors:a}:{success:!0,data:s}},Yr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context;return r?ne(r)?Kr({data:r,context:{dataSource:t,tables:i}}):{success:!1,errors:[{category:"highlights",index:-1,input:r,message:'Invalid highlights JSON. Expected an array of function calls with "function" and "args" properties.'}]}:{success:!0,data:[]}},Hr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context,s=[],a=[];return r.forEach((n,o)=>{const l={category:"measures",index:o,input:n};try{const f=E({data:n,context:{dataSource:t,tables:i,pathPrefix:""}});ze(f)?s.push(f):a.push(w(F({},l),{message:"Invalid measure JSON"}))}catch(f){const y=f instanceof Error?f.message:"Unknown error";a.push(w(F({},l),{message:y}))}}),a.length>0?{success:!1,errors:a}:{success:!0,data:s}},Xr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context;return r?ne(r)?Hr({data:r,context:{dataSource:t,tables:i}}):{success:!1,errors:[{category:"measures",index:-1,input:r,message:'Invalid measures JSON. Expected an array of function calls with "function" and "args" properties.'}]}:{success:!0,data:[]}},Gr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context,s=[],a=b=>{const m=b();return m.success?m.data:(s.push(...m.errors),null)},n=a(()=>$r({data:r.dimensions||[],context:{dataSource:t,tables:i}})),o=a(()=>Xr({data:r.measures||[],context:{dataSource:t,tables:i}})),l=a(()=>jr({data:r.filters||[],context:{dataSource:t,tables:i}}));let f=null;return r.highlights&&(f=a(()=>Yr({data:r.highlights||[],context:{dataSource:t,tables:i}}))),s.length>0?{success:!1,errors:s}:{success:!0,data:F({dataSource:u.convertDataSource(t),dimensions:n||[],measures:o||[],filters:l||[]},f&&{highlights:f})}};function Zr(e){const{filters:r,relations:t}=u.getFilterListAndRelationsJaql(e.filters||[]);return{dataSource:e.dataSource,dimensions:e.dimensions,measures:e.measures,filters:r,filterRelations:t,highlights:e.highlights}}function vr(e,r,t=!1){const i=Zr(e),s=u.prepareQueryParams(i,r);return u.getJaqlQueryPayload(s,t)}exports.EMPTY_EXPANDED_QUERY_MODEL=M.EMPTY_EXPANDED_QUERY_MODEL;exports.EMPTY_SIMPLE_QUERY_MODEL=M.EMPTY_SIMPLE_QUERY_MODEL;exports.isByIdDashboardCodeParams=M.isByIdDashboardCodeParams;exports.isByIdWidgetCodeParams=M.isByIdWidgetCodeParams;exports.isClientSideDashboardCodeParams=M.isClientSideDashboardCodeParams;exports.isClientSideWidgetCodeParams=M.isClientSideWidgetCodeParams;exports.CustomSuperJSON=qr;exports.translateQueryJSON=Gr;exports.translateQueryToJaql=vr;
1
+ "use strict";var _e=Object.defineProperty,Le=Object.defineProperties;var Ve=Object.getOwnPropertyDescriptors;var ue=Object.getOwnPropertySymbols;var Ue=Object.prototype.hasOwnProperty,Je=Object.prototype.propertyIsEnumerable;var le=(e,r,t)=>r in e?_e(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,F=(e,r)=>{for(var t in r||(r={}))Ue.call(r,t)&&le(e,t,r[t]);if(ue)for(var t of ue(r))Je.call(r,t)&&le(e,t,r[t]);return e},w=(e,r)=>Le(e,Ve(r));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const M=require("../types-Hki4GrUY.cjs"),u=require("../execute-query-CdhSHTTA.cjs"),L=require("../dimensions-DI9h9IJH.cjs");class We{constructor(){this.keyToValue=new Map,this.valueToKey=new Map}set(r,t){this.keyToValue.set(r,t),this.valueToKey.set(t,r)}getByKey(r){return this.keyToValue.get(r)}getByValue(r){return this.valueToKey.get(r)}clear(){this.keyToValue.clear(),this.valueToKey.clear()}}class me{constructor(r){this.generateIdentifier=r,this.kv=new We}register(r,t){this.kv.getByValue(r)||(t||(t=this.generateIdentifier(r)),this.kv.set(t,r))}clear(){this.kv.clear()}getIdentifier(r){return this.kv.getByValue(r)}getValue(r){return this.kv.getByKey(r)}}class Qe extends me{constructor(){super(r=>r.name),this.classToAllowedProps=new Map}register(r,t){typeof t=="object"?(t.allowProps&&this.classToAllowedProps.set(r,t.allowProps),super.register(r,t.identifier)):super.register(r,t)}getAllowedProps(r){return this.classToAllowedProps.get(r)}}function je(e){if("values"in Object)return Object.values(e);const r=[];for(const t in e)e.hasOwnProperty(t)&&r.push(e[t]);return r}function Ke(e,r){const t=je(e);if("find"in t)return t.find(r);const i=t;for(let s=0;s<i.length;s++){const a=i[s];if(r(a))return a}}function O(e,r){Object.entries(e).forEach(([t,i])=>r(i,t))}function U(e,r){return e.indexOf(r)!==-1}function ce(e,r){for(let t=0;t<e.length;t++){const i=e[t];if(r(i))return i}}class Ye{constructor(){this.transfomers={}}register(r){this.transfomers[r.name]=r}findApplicable(r){return Ke(this.transfomers,t=>t.isApplicable(r))}findByName(r){return this.transfomers[r]}}const He=e=>Object.prototype.toString.call(e).slice(8,-1),ge=e=>typeof e=="undefined",Xe=e=>e===null,k=e=>typeof e!="object"||e===null||e===Object.prototype?!1:Object.getPrototypeOf(e)===null?!0:Object.getPrototypeOf(e)===Object.prototype,H=e=>k(e)&&Object.keys(e).length===0,D=e=>Array.isArray(e),Ge=e=>typeof e=="string",Ze=e=>typeof e=="number"&&!isNaN(e),ve=e=>typeof e=="boolean",er=e=>e instanceof RegExp,I=e=>e instanceof Map,_=e=>e instanceof Set,be=e=>He(e)==="Symbol",rr=e=>e instanceof Date&&!isNaN(e.valueOf()),tr=e=>e instanceof Error,fe=e=>typeof e=="number"&&isNaN(e),ir=e=>ve(e)||Xe(e)||ge(e)||Ze(e)||Ge(e)||be(e),sr=e=>typeof e=="bigint",nr=e=>e===1/0||e===-1/0,ar=e=>ArrayBuffer.isView(e)&&!(e instanceof DataView),or=e=>e instanceof URL,he=e=>e.replace(/\./g,"\\."),j=e=>e.map(String).map(he).join("."),B=e=>{const r=[];let t="";for(let s=0;s<e.length;s++){let a=e.charAt(s);if(a==="\\"&&e.charAt(s+1)==="."){t+=".",s++;continue}if(a==="."){r.push(t),t="";continue}t+=a}const i=t;return r.push(i),r};function A(e,r,t,i){return{isApplicable:e,annotation:r,transform:t,untransform:i}}const Fe=[A(ge,"undefined",()=>null,()=>{}),A(sr,"bigint",e=>e.toString(),e=>typeof BigInt!="undefined"?BigInt(e):(console.error("Please add a BigInt polyfill."),e)),A(rr,"Date",e=>e.toISOString(),e=>new Date(e)),A(tr,"Error",(e,r)=>{const t={name:e.name,message:e.message};return r.allowedErrorProps.forEach(i=>{t[i]=e[i]}),t},(e,r)=>{const t=new Error(e.message);return t.name=e.name,t.stack=e.stack,r.allowedErrorProps.forEach(i=>{t[i]=e[i]}),t}),A(er,"regexp",e=>""+e,e=>{const r=e.slice(1,e.lastIndexOf("/")),t=e.slice(e.lastIndexOf("/")+1);return new RegExp(r,t)}),A(_,"set",e=>[...e.values()],e=>new Set(e)),A(I,"map",e=>[...e.entries()],e=>new Map(e)),A(e=>fe(e)||nr(e),"number",e=>fe(e)?"NaN":e>0?"Infinity":"-Infinity",Number),A(e=>e===0&&1/e===-1/0,"number",()=>"-0",Number),A(or,"URL",e=>e.toString(),e=>new URL(e))];function J(e,r,t,i){return{isApplicable:e,annotation:r,transform:t,untransform:i}}const qe=J((e,r)=>be(e)?!!r.symbolRegistry.getIdentifier(e):!1,(e,r)=>["symbol",r.symbolRegistry.getIdentifier(e)],e=>e.description,(e,r,t)=>{const i=t.symbolRegistry.getValue(r[1]);if(!i)throw new Error("Trying to deserialize unknown symbol");return i}),ur=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,Uint8ClampedArray].reduce((e,r)=>(e[r.name]=r,e),{}),we=J(ar,e=>["typed-array",e.constructor.name],e=>[...e],(e,r)=>{const t=ur[r[1]];if(!t)throw new Error("Trying to deserialize unknown typed array");return new t(e)});function Ee(e,r){return e!=null&&e.constructor?!!r.classRegistry.getIdentifier(e.constructor):!1}const Ae=J(Ee,(e,r)=>["class",r.classRegistry.getIdentifier(e.constructor)],(e,r)=>{const t=r.classRegistry.getAllowedProps(e.constructor);if(!t)return F({},e);const i={};return t.forEach(s=>{i[s]=e[s]}),i},(e,r,t)=>{const i=t.classRegistry.getValue(r[1]);if(!i)throw new Error(`Trying to deserialize unknown class '${r[1]}' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564`);return Object.assign(Object.create(i.prototype),e)}),Ce=J((e,r)=>!!r.customTransformerRegistry.findApplicable(e),(e,r)=>["custom",r.customTransformerRegistry.findApplicable(e).name],(e,r)=>r.customTransformerRegistry.findApplicable(e).serialize(e),(e,r,t)=>{const i=t.customTransformerRegistry.findByName(r[1]);if(!i)throw new Error("Trying to deserialize unknown custom value");return i.deserialize(e)}),lr=[Ae,qe,Ce,we],de=(e,r)=>{const t=ce(lr,s=>s.isApplicable(e,r));if(t)return{value:t.transform(e,r),type:t.annotation(e,r)};const i=ce(Fe,s=>s.isApplicable(e,r));if(i)return{value:i.transform(e,r),type:i.annotation}},xe={};Fe.forEach(e=>{xe[e.annotation]=e});const cr=(e,r,t)=>{if(D(r))switch(r[0]){case"symbol":return qe.untransform(e,r,t);case"class":return Ae.untransform(e,r,t);case"custom":return Ce.untransform(e,r,t);case"typed-array":return we.untransform(e,r,t);default:throw new Error("Unknown transformation: "+r)}else{const i=xe[r];if(!i)throw new Error("Unknown transformation: "+r);return i.untransform(e,t)}},z=(e,r)=>{if(r>e.size)throw new Error("index out of bounds");const t=e.keys();for(;r>0;)t.next(),r--;return t.next().value};function $e(e){if(U(e,"__proto__"))throw new Error("__proto__ is not allowed as a property");if(U(e,"prototype"))throw new Error("prototype is not allowed as a property");if(U(e,"constructor"))throw new Error("constructor is not allowed as a property")}const fr=(e,r)=>{$e(r);for(let t=0;t<r.length;t++){const i=r[t];if(_(e))e=z(e,+i);else if(I(e)){const s=+i,a=+r[++t]==0?"key":"value",n=z(e,s);switch(a){case"key":e=n;break;case"value":e=e.get(n);break}}else e=e[i]}return e},X=(e,r,t)=>{if($e(r),r.length===0)return t(e);let i=e;for(let a=0;a<r.length-1;a++){const n=r[a];if(D(i)){const o=+n;i=i[o]}else if(k(i))i=i[n];else if(_(i)){const o=+n;i=z(i,o)}else if(I(i)){if(a===r.length-2)break;const l=+n,f=+r[++a]==0?"key":"value",y=z(i,l);switch(f){case"key":i=y;break;case"value":i=i.get(y);break}}}const s=r[r.length-1];if(D(i)?i[+s]=t(i[+s]):k(i)&&(i[s]=t(i[s])),_(i)){const a=z(i,+s),n=t(a);a!==n&&(i.delete(a),i.add(n))}if(I(i)){const a=+r[r.length-2],n=z(i,a);switch(+s==0?"key":"value"){case"key":{const l=t(n);i.set(l,i.get(n)),l!==n&&i.delete(n);break}case"value":{i.set(n,t(i.get(n)));break}}}return e};function G(e,r,t=[]){if(!e)return;if(!D(e)){O(e,(a,n)=>G(a,r,[...t,...B(n)]));return}const[i,s]=e;s&&O(s,(a,n)=>{G(a,r,[...t,...B(n)])}),r(i,t)}function dr(e,r,t){return G(r,(i,s)=>{e=X(e,s,a=>cr(a,i,t))}),e}function yr(e,r){function t(i,s){const a=fr(e,B(s));i.map(B).forEach(n=>{e=X(e,n,()=>a)})}if(D(r)){const[i,s]=r;i.forEach(a=>{e=X(e,B(a),()=>e)}),s&&O(s,t)}else O(r,t);return e}const pr=(e,r)=>k(e)||D(e)||I(e)||_(e)||Ee(e,r);function mr(e,r,t){const i=t.get(e);i?i.push(r):t.set(e,[r])}function gr(e,r){const t={};let i;return e.forEach(s=>{if(s.length<=1)return;r||(s=s.map(o=>o.map(String)).sort((o,l)=>o.length-l.length));const[a,...n]=s;a.length===0?i=n.map(j):t[j(a)]=n.map(j)}),i?H(t)?[i]:[i,t]:H(t)?void 0:t}const De=(e,r,t,i,s=[],a=[],n=new Map)=>{var h;const o=ir(e);if(!o){mr(e,s,r);const d=n.get(e);if(d)return i?{transformedValue:null}:d}if(!pr(e,t)){const d=de(e,t),p=d?{transformedValue:d.value,annotations:[d.type]}:{transformedValue:e};return o||n.set(e,p),p}if(U(a,e))return{transformedValue:null};const l=de(e,t),f=(h=l==null?void 0:l.value)!=null?h:e,y=D(f)?[]:{},b={};O(f,(d,p)=>{if(p==="__proto__"||p==="constructor"||p==="prototype")throw new Error(`Detected property ${p}. This is a prototype pollution risk, please remove it from your object.`);const $=De(d,r,t,i,[...s,p],[...a,e],n);y[p]=$.transformedValue,D($.annotations)?b[p]=$.annotations:k($.annotations)&&O($.annotations,(P,T)=>{b[he(p)+"."+T]=P})});const m=H(b)?{transformedValue:y,annotations:l?[l.type]:void 0}:{transformedValue:y,annotations:l?[l.type,b]:b};return o||n.set(e,m),m};function Me(e){return Object.prototype.toString.call(e).slice(8,-1)}function ye(e){return Me(e)==="Array"}function br(e){if(Me(e)!=="Object")return!1;const r=Object.getPrototypeOf(e);return!!r&&r.constructor===Object&&r===Object.prototype}function hr(e,r,t,i,s){const a={}.propertyIsEnumerable.call(i,r)?"enumerable":"nonenumerable";a==="enumerable"&&(e[r]=t),s&&a==="nonenumerable"&&Object.defineProperty(e,r,{value:t,enumerable:!1,writable:!0,configurable:!0})}function Z(e,r={}){if(ye(e))return e.map(s=>Z(s,r));if(!br(e))return e;const t=Object.getOwnPropertyNames(e),i=Object.getOwnPropertySymbols(e);return[...t,...i].reduce((s,a)=>{if(ye(r.props)&&!r.props.includes(a))return s;const n=e[a],o=Z(n,r);return hr(s,a,o,e,r.nonenumerable),s},{})}class c{constructor({dedupe:r=!1}={}){this.classRegistry=new Qe,this.symbolRegistry=new me(t=>{var i;return(i=t.description)!=null?i:""}),this.customTransformerRegistry=new Ye,this.allowedErrorProps=[],this.dedupe=r}serialize(r){const t=new Map,i=De(r,t,this,this.dedupe),s={json:i.transformedValue};i.annotations&&(s.meta=w(F({},s.meta),{values:i.annotations}));const a=gr(t,this.dedupe);return a&&(s.meta=w(F({},s.meta),{referentialEqualities:a})),s}deserialize(r){const{json:t,meta:i}=r;let s=Z(t);return i!=null&&i.values&&(s=dr(s,i.values,this)),i!=null&&i.referentialEqualities&&(s=yr(s,i.referentialEqualities)),s}stringify(r){return JSON.stringify(this.serialize(r))}parse(r){return this.deserialize(JSON.parse(r))}registerClass(r,t){this.classRegistry.register(r,t)}registerSymbol(r,t){this.symbolRegistry.register(r,t)}registerCustom(r,t){this.customTransformerRegistry.register(F({name:t},r))}allowErrorProps(...r){this.allowedErrorProps.push(...r)}}c.defaultInstance=new c;c.serialize=c.defaultInstance.serialize.bind(c.defaultInstance);c.deserialize=c.defaultInstance.deserialize.bind(c.defaultInstance);c.stringify=c.defaultInstance.stringify.bind(c.defaultInstance);c.parse=c.defaultInstance.parse.bind(c.defaultInstance);c.registerClass=c.defaultInstance.registerClass.bind(c.defaultInstance);c.registerSymbol=c.defaultInstance.registerSymbol.bind(c.defaultInstance);c.registerCustom=c.defaultInstance.registerCustom.bind(c.defaultInstance);c.allowErrorProps=c.defaultInstance.allowErrorProps.bind(c.defaultInstance);const S=e=>e===void 0?u.Sort.None:e,Fr=e=>new M.JaqlElement(e.metadataItem,e.type),v=e=>new u.DimensionalAttribute(e.name,e.expression,e.type,e.description,S(e.sort),e.dataSource,e.composeCode),ee=e=>new u.DimensionalLevelAttribute(e.name,e.expression,e.granularity,e.format,e.description,S(e.sort),e.dataSource,e.composeCode),q=e=>{switch(e.__serializable){case"DimensionalAttribute":return v(e);case"DimensionalLevelAttribute":return ee(e);default:return e}},Re=e=>new L.DimensionalDimension(e.name,e.expression,e.attributes.map(q),e.dimensions.map(qr),e.type,e.description,S(e.sort),e.dataSource,e.composeCode,e.defaultAttribute?q(e.defaultAttribute):void 0),Ne=e=>new L.DimensionalDateDimension(e.name,e.expression,e.description,S(e.sort),e.dataSource,e.composeCode),qr=e=>{switch(e.__serializable){case"DimensionalDimension":return Re(e);case"DimensionalDateDimension":return Ne(e);default:return e}},re=e=>new u.DimensionalBaseMeasure(e.name,q(e.attribute),e.aggregation,e.format,e.description,S(e.sort),e.dataSource,e.composeCode),te=e=>{const r=Object.fromEntries(Object.entries(e.context).map(([t,i])=>{if(i&&typeof i=="object"&&"__serializable"in i)switch(i.__serializable){case"DimensionalAttribute":return[t,v(i)];case"DimensionalLevelAttribute":return[t,ee(i)];case"DimensionalBaseMeasure":return[t,re(i)];case"DimensionalCalculatedMeasure":return[t,te(i)];default:return[t,i]}return[t,i]}));return new u.DimensionalCalculatedMeasure(e.name,e.expression,r,e.format,e.description,S(e.sort),e.dataSource,e.composeCode)},Se=e=>new u.DimensionalMeasureTemplate(e.name,q(e.attribute),e.format,e.description,S(e.sort),e.dataSource,e.composeCode),K=e=>{switch(e.__serializable){case"DimensionalBaseMeasure":return re(e);case"DimensionalCalculatedMeasure":return te(e);case"DimensionalMeasureTemplate":return Se(e);default:return e}},g=e=>{switch(e.__serializable){case"MembersFilter":return new u.MembersFilter(q(e.attribute),e.members,e.config.backgroundFilter?w(F({},e.config),{backgroundFilter:g(e.config.backgroundFilter)}):e.config,e.composeCode);case"LogicalAttributeFilter":return new u.LogicalAttributeFilter(e.filters.map(t=>g(t)),e.operator,e.config,e.composeCode);case"CascadingFilter":return new u.CascadingFilter(e._filters.map(t=>g(t)),e.config,e.composeCode);case"ExcludeFilter":return new u.ExcludeFilter(g(e.filter),e.input?g(e.input):void 0,e.config,e.composeCode);case"MeasureFilter":return new u.MeasureFilter(q(e.attribute),K(e.measure),e.operatorA,e.valueA,e.operatorB,e.valueB,e.config,e.composeCode);case"RankingFilter":return new u.RankingFilter(q(e.attribute),K(e.measure),e.operator,e.count,e.config,e.composeCode);case"MeasureRankingFilter":return new u.MeasureRankingFilter(K(e.measure),e.operator,e.count,e.config,e.composeCode);case"NumericFilter":return new u.NumericFilter(q(e.attribute),e.operatorA,e.valueA,e.operatorB,e.valueB,e.config,e.composeCode);case"TextFilter":return new u.TextFilter(q(e.attribute),e.operatorA,e.valueA,e.config,e.composeCode);case"DateRangeFilter":{const{valueA:t,valueB:i}=e;return new u.DateRangeFilter(q(e.attribute),t,i,e.config,e.composeCode)}case"RelativeDateFilter":return new u.RelativeDateFilter(q(e.attribute),e.offset,e.count,e.operator,e.anchor,e.config,e.composeCode);case"CustomFilter":return new u.CustomFilter(q(e.attribute),e.jaqlExpression,e.config,e.composeCode);default:return e}};c.registerCustom({isApplicable:M.isJaqlElement,serialize:e=>e.serialize(),deserialize:e=>Fr(e)},"JaqlElement");c.registerCustom({isApplicable:u.isDimensionalAttribute,serialize:e=>e.serialize(),deserialize:e=>v(e)},"DimensionalAttribute");c.registerCustom({isApplicable:u.isDimensionalLevelAttribute,serialize:e=>e.serialize(),deserialize:e=>ee(e)},"DimensionalLevelAttribute");c.registerCustom({isApplicable:L.isDimensionalDimension,serialize:e=>e.serialize(),deserialize:e=>Re(e)},"DimensionalDimension");c.registerCustom({isApplicable:L.isDimensionalDateDimension,serialize:e=>e.serialize(),deserialize:e=>Ne(e)},"DimensionalDateDimension");c.registerCustom({isApplicable:u.isDimensionalBaseMeasure,serialize:e=>e.serialize(),deserialize:e=>re(e)},"DimensionalBaseMeasure");c.registerCustom({isApplicable:u.isDimensionalCalculatedMeasure,serialize:e=>e.serialize(),deserialize:e=>te(e)},"DimensionalCalculatedMeasure");c.registerCustom({isApplicable:u.isDimensionalMeasureTemplate,serialize:e=>e.serialize(),deserialize:e=>Se(e)},"DimensionalMeasureTemplate");c.registerCustom({isApplicable:u.isMembersFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"MembersFilter");c.registerCustom({isApplicable:u.isLogicalAttributeFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"LogicalAttributeFilter");c.registerCustom({isApplicable:u.isCascadingFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"CascadingFilter");c.registerCustom({isApplicable:u.isExcludeFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"ExcludeFilter");c.registerCustom({isApplicable:u.isMeasureFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"MeasureFilter");c.registerCustom({isApplicable:u.isRankingFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"RankingFilter");c.registerCustom({isApplicable:u.isMeasureRankingFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"MeasureRankingFilter");c.registerCustom({isApplicable:u.isNumericFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"NumericFilter");c.registerCustom({isApplicable:u.isTextFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"TextFilter");c.registerCustom({isApplicable:u.isDateRangeFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"DateRangeFilter");c.registerCustom({isApplicable:u.isRelativeDateFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"RelativeDateFilter");c.registerCustom({isApplicable:u.isCustomFilter,serialize:e=>e.serialize(),deserialize:e=>g(e)},"CustomFilter");const wr=c,x="DM.";function C(e){return typeof e=="object"&&e!==null&&"function"in e&&"args"in e}function ie(e){return e.every(C)}function W(e){return"attribute"in e&&"config"in e}function V(e){return"left"in e&&"right"in e&&"operator"in e}function Te(e){return!W(e)&&!V(e)}function Er(e){return e.every(r=>typeof r=="string")}function ze(e){const r=e.split(".");if(r.length<3||`${r[0]}.`!==x)throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${x}TableName.ColumnName[.Level]"`);const t=r[1],i=r[2];let s;return r.length===4&&(s=r[3]),{tableName:t,columnName:i,level:s}}function Oe(e,r,t){const i=t.find(a=>a.name===e);if(!i)throw new Error(`Table "${e}" not found in the data model`);const s=i.columns.find(a=>a.name===r);if(!s)throw new Error(`Column "${r}" not found in table "${e}"`);return{table:i,column:s}}function Ar(e,r){const{tableName:t,columnName:i,level:s}=ze(e),{column:a}=Oe(t,i,r);if(s){if(!u.isDatetime(a.dataType))throw new Error(`Invalid date level "${s}" in dimensional element "${e}". Column "${t}.${i}" is not a datetime column`);const n=u.DateLevels.all;if(!n.includes(s))throw new Error(`Invalid date level "${s}" in dimensional element "${e}". Valid levels are: ${n.join(", ")}`);const o=u.DateLevels.dateOnly;if(a.dataType==="date"&&!o.includes(s))throw new Error(`Invalid level "${s}" in dimensional element "${e}". Column "${t}.${i}" is only a date column, not a datetime column`);const l=u.DateLevels.timeOnly;if(a.dataType==="time"&&!l.includes(s))throw new Error(`Invalid level "${s}" in dimensional element "${e}". Column "${t}.${i}" is only a time column, not a date column`)}return{column:a,level:s}}function Pe(e){return e.type===u.MetadataTypes.TextAttribute}function Be(e){return e.type===u.MetadataTypes.NumericAttribute}function Cr(e){return e.type===u.MetadataTypes.DateLevel}function xr(e){return Pe(e)||Be(e)}function Q(e){return e.type===u.MetadataTypes.TextAttribute?"text":e.type===u.MetadataTypes.NumericAttribute?"numeric":e.type===u.MetadataTypes.DateLevel?"date/datetime":"unknown"}function se(e,r,t){const{column:i,level:s}=Ar(e,t);return u.createAttributeHelper({expression:i.expression,dataType:i.dataType,granularity:s,format:void 0,sort:void 0,dataSource:r})}function $r(e,r,t){const{tableName:i,columnName:s,level:a}=ze(e);if(a)throw new Error(`Invalid DateDimension name format: "${e}". Expected format: "${x}TableName.ColumnName"`);const{column:n}=Oe(i,s,t);if(!u.isDatetime(n.dataType))throw new Error(`Invalid DateDimension name "${e}". Column "${i}.${s}" is not a datetime column (got ${n.dataType}).`);return L.createDateDimension({name:s,expression:n.expression,dataSource:r})}const Dr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context;if(!r)return{success:!0,data:[]};if(!Er(r))return{success:!1,errors:[{category:"dimensions",index:-1,input:r,message:"Invalid dimensions JSON. Expected an array of strings."}]};const s=[],a=[];return r.forEach((n,o)=>{const l={category:"dimensions",index:o,input:n};try{const f=se(n,t,i);s.push(f)}catch(f){const y=f instanceof Error?f.message:"Unknown error";a.push(w(F({},l),{message:y}))}}),a.length>0?{success:!1,errors:a}:{success:!0,data:s}};function ne(e,r){const t=Reflect.get(e,r);if(typeof t!="function")throw new Error(`Function "${r}" not found or is not a function`);return t}function Mr(e,r){const t=e.replace("measureFactory.",""),s=ne(u.measureFactory,t)(...r);if(!Te(s))throw new Error(`Function "${e}" did not return a valid Measure`);return s}function Rr(e,r){const t=e.replace("filterFactory.logic.",""),s=ne(u.logic,t)(...r);if(!V(s))throw new Error(`Function "${e}" did not return a valid FilterRelations`);return s}function Nr(e,r){if(e.startsWith("filterFactory.logic."))return Rr(e,r);const t=e.replace("filterFactory.",""),s=ne(u.filterFactory,t)(...r);if(!W(s)&&!V(s))throw new Error(`Function "${e}" did not return a valid Filter or FilterRelations`);return s}function Sr(e,r){const i=e.split(".")[0];if(i==="measureFactory")return Mr(e,r);if(i==="filterFactory")return Nr(e,r);throw new Error(`Unsupported factory: "${i}". Supported factories: measureFactory, filterFactory`)}const Tr=/\[([a-zA-Z_][a-zA-Z0-9_.-]*)\]/g;function zr(e,r,t={}){const{warnUnusedContext:i=!0,errorOnUnusedContext:s=!0,allowEmptyFormula:a=!1,errorPrefix:n="customFormula validation"}=t,o={isValid:!0,errors:[],warnings:[],references:[],unusedContextKeys:[]};if(!e||e.trim().length===0)return a||(o.errors.push(`${n}args[1]: Formula cannot be empty`),o.isValid=!1),o;const l=Object.keys(r);if(l.length===0)return o.errors.push(`${n}args[2]: Context cannot be empty - custom formulas require context definitions`),o.isValid=!1,o;const f=Tr,y=new Set;let b;for(;(b=f.exec(e))!==null;){const h=b[1];y.add(h)}o.references=Array.from(y),o.references.length===0&&o.warnings.push(`${n}args[1]: No bracket references found in formula - ensure this is intentional`);const m=[];for(const h of o.references)l.includes(h)||m.push(h);if(m.length>0&&(o.isValid=!1,m.length===1?o.errors.push(`${n}args[1]: Reference [${m[0]}] not found in context. Available keys: ${l.join(", ")}`):o.errors.push(`${n}args[1]: References [${m.join("], [")}] not found in context. Available keys: ${l.join(", ")}`)),(i||s)&&l.length>0){const h=l.filter(d=>!o.references.includes(d));if(o.unusedContextKeys=h,h.length>0){const d=`${n}args[2]: Context keys [${h.join(", ")}] are defined but not used in formula`;s?(o.errors.push(d),o.isValid=!1):i&&o.warnings.push(d)}}return o}function Or(e,r,t={}){const i=zr(e,r,t);if(!i.isValid)throw new Error(i.errors.join("; "));i.warnings.length>0&&console.warn("Formula validation warnings:",i.warnings.join("; "))}function Pr(e,r){if(e.length<3)throw new Error(`${r.pathPrefix}Expected at least 3 arguments for customFormula`);const t=e[1],i=e[2];Or(t,i,{errorPrefix:`${r.pathPrefix}`,errorOnUnusedContext:!0,allowEmptyFormula:!1});const s={};for(const[a,n]of Object.entries(i)){const o=`args[2].${a}`;if(C(n))s[`${a}`]=E({data:n,context:{dataSource:r.dataSource,tables:r.tables,pathPrefix:o}});else if(typeof n=="string"&&n.startsWith(x))try{s[`${a}`]=se(n,r.dataSource,r.tables)}catch(l){const f=l instanceof Error?l.message:"Unknown error";throw new Error(`${o}: ${f}`)}else if(n&&typeof n=="object"&&"kind"in n)s[`${a}`]=n;else throw new Error(`${o}: Invalid context value for key '${a}'. Expected a function call or attribute reference (${x}...), but got: ${typeof n}`)}e[2]=s}function ae(e,r){const t=e[0];if(!t||typeof t!="object"||!("type"in t))throw new Error(`${r.pathPrefix}args[0]: Expected attribute as first argument`);return t}function pe(e,r){const t=ae(e,r);if(!xr(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be string or numeric type, got ${Q(t)} attribute`)}function R(e,r){const t=ae(e,r);if(!Be(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be numeric type, got ${Q(t)} attribute`)}function N(e,r){const t=ae(e,r);if(!Pe(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be string type, got ${Q(t)} attribute`)}function Br(e,r){const t=e[0];if(!t||typeof t!="object"||!("attribute"in t))throw new Error(`${r.pathPrefix}args[0]: Expected filter as first argument`);return t}function kr(e,r){const t=Br(e,r);if(!u.isMembersFilter(t))throw new Error(`${r.pathPrefix}args[0]: exclude filter only accepts members filter, got ${t.__serializable||"unknown"} filter`)}const Ir={"measureFactory.customFormula":Pr,"filterFactory.equals":pe,"filterFactory.doesntEqual":pe,"filterFactory.greaterThan":R,"filterFactory.greaterThanOrEqual":R,"filterFactory.lessThan":R,"filterFactory.lessThanOrEqual":R,"filterFactory.between":R,"filterFactory.betweenNotEqual":R,"filterFactory.numeric":R,"filterFactory.contains":N,"filterFactory.doesntContain":N,"filterFactory.startsWith":N,"filterFactory.doesntStartWith":N,"filterFactory.endsWith":N,"filterFactory.doesntEndWith":N,"filterFactory.like":N,"filterFactory.exclude":kr};function _r(e){return Ir[`${e}`]}const Lr={"measureFactory.sum":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.average":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.avg":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.min":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.max":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.median":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.count":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.countDistinct":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.aggregate":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.constant":[{type:"number",required:!0}],"measureFactory.customFormula":[{type:"string",required:!0},{type:"string",required:!0},{type:"CustomFormulaContext",required:!0}],"measureFactory.add":[{type:"Measure | number",required:!0},{type:"Measure | number",required:!0},{type:"string",required:!1},{type:"boolean",required:!1}],"measureFactory.subtract":[{type:"Measure | number",required:!0},{type:"Measure | number",required:!0},{type:"string",required:!1},{type:"boolean",required:!1}],"measureFactory.multiply":[{type:"Measure | number",required:!0},{type:"Measure | number",required:!0},{type:"string",required:!1},{type:"boolean",required:!1}],"measureFactory.divide":[{type:"Measure | number",required:!0},{type:"Measure | number",required:!0},{type:"string",required:!1},{type:"boolean",required:!1}],"measureFactory.measuredValue":[{type:"Measure",required:!0},{type:"Filter[]",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.rank":[{type:"Measure",required:!0},{type:"string",required:!1},{type:"string",required:!1},{type:"string",required:!1},{type:"Attribute[]",required:!1}],"measureFactory.trend":[{type:"Measure",required:!0},{type:"string",required:!1},{type:"any",required:!1}],"measureFactory.forecast":[{type:"Measure",required:!0},{type:"string",required:!1},{type:"any",required:!1}],"measureFactory.yearToDateSum":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.quarterToDateSum":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.monthToDateSum":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.weekToDateSum":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.runningSum":[{type:"Measure",required:!0},{type:"boolean",required:!1},{type:"string",required:!1}],"measureFactory.growth":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.growthRate":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.growthPastWeek":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.growthPastMonth":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.growthPastQuarter":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.growthPastYear":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.difference":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.diffPastWeek":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.diffPastMonth":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.diffPastQuarter":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.diffPastYear":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.pastDay":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.pastWeek":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.pastMonth":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.pastQuarter":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.pastYear":[{type:"Measure",required:!0},{type:"string",required:!1}],"measureFactory.contribution":[{type:"Measure",required:!0},{type:"string",required:!1}],"filterFactory.union":[{type:"Filter[]",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.intersection":[{type:"Filter[]",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.exclude":[{type:"Filter",required:!0},{type:"Filter",required:!1},{type:"BaseFilterConfig",required:!1}],"filterFactory.contains":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.doesntContain":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.startsWith":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.doesntStartWith":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.endsWith":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.doesntEndWith":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.like":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.equals":[{type:"Attribute",required:!0},{type:"string | number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.doesntEqual":[{type:"Attribute",required:!0},{type:"string | number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.greaterThan":[{type:"Attribute",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.greaterThanOrEqual":[{type:"Attribute",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.lessThan":[{type:"Attribute",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.lessThanOrEqual":[{type:"Attribute",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.between":[{type:"Attribute",required:!0},{type:"number",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.betweenNotEqual":[{type:"Attribute",required:!0},{type:"number",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.numeric":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"number",required:!1},{type:"string",required:!1},{type:"number",required:!1},{type:"BaseFilterConfig",required:!1}],"filterFactory.members":[{type:"Attribute",required:!0},{type:"string[]",required:!0},{type:"MembersFilterConfig",required:!1}],"filterFactory.dateFrom":[{type:"LevelAttribute",required:!0},{type:"Date | string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.dateTo":[{type:"LevelAttribute",required:!0},{type:"Date | string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.dateRange":[{type:"LevelAttribute",required:!0},{type:"Date | string",required:!1},{type:"Date | string",required:!1},{type:"BaseFilterConfig",required:!1}],"filterFactory.dateRelative":[{type:"LevelAttribute",required:!0},{type:"number",required:!0},{type:"number",required:!0},{type:"Date | string",required:!1},{type:"BaseFilterConfig",required:!1}],"filterFactory.dateRelativeFrom":[{type:"LevelAttribute",required:!0},{type:"number",required:!0},{type:"number",required:!0},{type:"Date | string",required:!1},{type:"BaseFilterConfig",required:!1}],"filterFactory.dateRelativeTo":[{type:"LevelAttribute",required:!0},{type:"number",required:!0},{type:"number",required:!0},{type:"Date | string",required:!1},{type:"BaseFilterConfig",required:!1}],"filterFactory.thisYear":[{type:"DateDimension",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.thisMonth":[{type:"DateDimension",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.thisQuarter":[{type:"DateDimension",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.today":[{type:"DateDimension",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureEquals":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureGreaterThan":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureGreaterThanOrEqual":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureLessThan":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureLessThanOrEqual":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureBetween":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureBetweenNotEqual":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.topRanking":[{type:"Attribute",required:!0},{type:"Measure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.bottomRanking":[{type:"Attribute",required:!0},{type:"Measure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureTopRanking":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.measureBottomRanking":[{type:"BaseMeasure",required:!0},{type:"number",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.cascading":[{type:"Filter[]",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.logic.and":[{type:"FilterRelationsNode",required:!0},{type:"FilterRelationsNode",required:!0}],"filterFactory.logic.or":[{type:"FilterRelationsNode",required:!0},{type:"FilterRelationsNode",required:!0}]};function oe(e){return Lr[`${e}`]}function Vr(e){const r=oe(e);return r?r.filter(t=>t.required).length:0}function Ur(e){const r=oe(e);return r?r.length:0}function Jr(e){if(typeof e!="string"||!/^\d{4}-\d{2}-\d{2}/.test(e))return!1;const t=Date.parse(e);if(isNaN(t)||e.length<10)return!1;const i=new Date(e);return!isNaN(i.getTime())}function Y(e,r,t,i){if(e.startsWith(x))try{return se(e,r,t)}catch(s){const a=s instanceof Error?s.message:"Unknown error";throw new Error(`${i}: ${a}`)}throw new Error(`${i}: Invalid attribute "${e}". Expected format: "${x}TableName.ColumnName[.Level]"`)}function Wr(e,r,t,i){if(e.startsWith(x))try{return $r(e,r,t)}catch(s){const a=s instanceof Error?s.message:"Unknown error";throw new Error(`${i}: ${a}`)}throw new Error(`${i}: Invalid date dimension string "${e}". Expected format: "${x}TableName.ColumnName"`)}function Qr(e){const r=e.data,{argSchema:t,dataSource:i,tables:s,pathPrefix:a}=e.context,n=a;if(r===void 0){if(t.required)throw new Error(`${n}: Required argument is missing (expected ${t.type})`);return}switch(t.type){case"string":if(typeof r!="string")throw new Error(`${n}: Expected string, got ${typeof r}`);return r;case"number":if(typeof r!="number")throw new Error(`${n}: Expected number, got ${typeof r}`);return r;case"boolean":if(typeof r!="boolean")throw new Error(`${n}: Expected boolean, got ${typeof r}`);return r;case"string[]":if(!Array.isArray(r))throw new Error(`${n}: Expected array of strings, got ${typeof r}. Example: ["value1", "value2"]`);if(!r.every(o=>typeof o=="string"))throw new Error(`${n}: Expected array of strings, but contains non-string values`);return r;case"number[]":if(!Array.isArray(r))throw new Error(`${n}: Expected array of numbers, got ${typeof r}. Example: [10, 20]`);if(!r.every(o=>typeof o=="number"))throw new Error(`${n}: Expected array of numbers, but contains non-number values`);return r;case"Attribute":if(typeof r!="string")throw new Error(`${n}: Expected attribute string, got ${typeof r}. Example: "DM.Commerce.Revenue"`);return Y(r,i,s,n);case"Attribute[]":if(!Array.isArray(r))throw new Error(`${n}: Expected array of attributes, got ${typeof r}. Example: ["DM.Commerce.AgeRange"]`);return r.map((o,l)=>{if(typeof o!="string")throw new Error(`${n}[${l}]: Expected attribute string, got ${typeof o}`);return Y(o,i,s,`${n}[${l}]`)});case"Measure":case"BaseMeasure":if(!C(r))throw new Error(`${n}: Expected measure function call, got ${typeof r}. Example: {"function": "measureFactory.sum", "args": ["DM.Commerce.Revenue"]}`);return E({data:r,context:{dataSource:i,tables:s,pathPrefix:n}});case"Measure[]":if(!Array.isArray(r))throw new Error(`${n}: Expected array of measure function calls, got ${typeof r}`);return r.map((o,l)=>{if(!C(o))throw new Error(`${n}[${l}]: Expected measure function call, got ${typeof o}`);return E({data:o,context:{dataSource:i,tables:s,pathPrefix:`${n}[${l}]: `}})});case"Filter":if(!C(r))throw new Error(`${n}: Expected filter function call, got ${typeof r}. Example: {"function": "filterFactory.contains", "args": ["DM.Brand.Brand", "Apple"]}`);return E({data:r,context:{dataSource:i,tables:s,pathPrefix:n}});case"Filter[]":if(!Array.isArray(r))throw new Error(`${n}: Expected array of filter function calls, got ${typeof r}`);return r.map((o,l)=>{if(!C(o))throw new Error(`${n}[${l}]: Expected filter function call, got ${typeof o}`);return E({data:o,context:{dataSource:i,tables:s,pathPrefix:`${n}[${l}]: `}})});case"FilterRelationsNode":if(Array.isArray(r))return r.map((o,l)=>{if(!C(o))throw new Error(`${n}[${l}]: Expected filter function call, got ${typeof o}`);return E({data:o,context:{dataSource:i,tables:s,pathPrefix:`${n}[${l}]: `}})});if(C(r))return E({data:r,context:{dataSource:i,tables:s,pathPrefix:n}});throw new Error(`${n}: Expected filter function call or array of filters, got ${typeof r}`);case"DateDimension":if(typeof r!="string")throw new Error(`${n}: Expected date dimension string, got ${typeof r}. Example: "DM.Commerce.Date"`);return Wr(r,i,s,n);case"LevelAttribute":{if(typeof r!="string")throw new Error(`${n}: Expected date attribute string, got ${typeof r}. Example: "DM.Commerce.Date.Years"`);const o=Y(r,i,s,n);if(!Cr(o))throw new Error(`${n}: Attribute must be date/datetime type, got ${Q(o)} attribute`);return o}case"Measure | number":if(typeof r=="number")return r;if(C(r))return E({data:r,context:{dataSource:i,tables:s,pathPrefix:n}});throw new Error(`${n}: Expected measure function call or number, got ${typeof r}`);case"Date | string":if(typeof r=="string"){if(Jr(r))return r;throw new Error(`${n}: Expected valid ISO date string or Date object, got invalid date string "${r}"`)}else{if(r instanceof Date)return r;throw new Error(`${n}: Expected date string or Date object, got ${typeof r}`)}case"string | number":if(typeof r=="string"||typeof r=="number")return r;throw new Error(`${n}: Expected string or number, got ${typeof r}`);case"BaseFilterConfig":case"MembersFilterConfig":case"CustomFormulaContext":case"any":if(r==null&&t.required)throw new Error(`${n}: Required argument is null/undefined`);return r;default:return r}}function E(e){const{data:r}=e,{dataSource:t,tables:i,pathPrefix:s}=e.context,{function:a,args:n}=r,o=s?`${s}.`:"",l=oe(a);if(!l)throw new Error(`${o}function: Unknown function "${a}"`);const f=Vr(a),y=Ur(a);if(n.length<f)throw new Error(`${o}function: Expected at least ${f} arguments, got ${n.length}`);if(n.length>y)throw new Error(`${o}function: Expected at most ${y} arguments, got ${n.length}`);const b=[],m=[];for(let d=0;d<Math.max(n.length,l.length);d++){const p=l[`${d}`],$=n[`${d}`],P=o?`${o}args[${d}]`:`args[${d}]`;if($===void 0){p!=null&&p.required&&m.push(`${P}: Missing required argument (expected ${p.type})`);continue}if(!p){m.push(`${P}: Unexpected argument`);continue}try{const T=Qr({data:$,context:{dataSource:t,tables:i,pathPrefix:P,argSchema:p}});b.push(T)}catch(T){const Ie=T instanceof Error?T.message:"Unknown error";m.push(Ie)}}if(m.length>0){const d=m.join("; ");throw new Error(d)}const h=_r(a);if(h)try{h(b,{dataSource:t,tables:i,pathPrefix:o})}catch(d){const p=d instanceof Error?d.message:"Unknown validation error";throw new Error(p)}return Sr(a,b)}function ke(e){const{attribute:r,config:t}=e;if(u.isMembersFilter(e)&&u.isLevelAttribute(r)){const{granularity:i}=r;return u.members(r,e.members.map(s=>i==="Years"&&!isNaN(Number(s))?`${s}-01-01T00:00:00`:s),t)}return e}function jr(e){let r=[];for(const t of e)V(t)?r=u.mergeFiltersOrFilterRelations(t,r):r=u.mergeFiltersOrFilterRelations([ke(t)],r);return r!=null?r:[]}const Kr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context,s=[],a=[];return r.forEach((n,o)=>{const l={category:"filters",index:o,input:n};try{const f=E({data:n,context:{dataSource:t,tables:i,pathPrefix:""}});!V(f)&&!W(f)?a.push(w(F({},l),{message:"Invalid filter JSON"})):s.push(f)}catch(f){const y=f instanceof Error?f.message:"Unknown error";a.push(w(F({},l),{message:y}))}}),a.length>0?{success:!1,errors:a}:{success:!0,data:jr(s)}},Yr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context;return r?ie(r)?Kr({data:r,context:{dataSource:t,tables:i}}):{success:!1,errors:[{category:"filters",index:-1,input:r,message:'Invalid filters JSON. Expected an array of function calls with "function" and "args" properties.'}]}:{success:!0,data:[]}},Hr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context,s=[],a=[];return r.forEach((n,o)=>{const l={category:"highlights",index:o,input:n};try{const f=E({data:n,context:{dataSource:t,tables:i,pathPrefix:""}});W(f)?s.push(ke(f)):a.push(w(F({},l),{message:"Invalid filter JSON"}))}catch(f){const y=f instanceof Error?f.message:"Unknown error";a.push(w(F({},l),{message:y}))}}),a.length>0?{success:!1,errors:a}:{success:!0,data:s}},Xr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context;return r?ie(r)?Hr({data:r,context:{dataSource:t,tables:i}}):{success:!1,errors:[{category:"highlights",index:-1,input:r,message:'Invalid highlights JSON. Expected an array of function calls with "function" and "args" properties.'}]}:{success:!0,data:[]}},Gr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context,s=[],a=[];return r.forEach((n,o)=>{const l={category:"measures",index:o,input:n};try{const f=E({data:n,context:{dataSource:t,tables:i,pathPrefix:""}});Te(f)?s.push(f):a.push(w(F({},l),{message:"Invalid measure JSON"}))}catch(f){const y=f instanceof Error?f.message:"Unknown error";a.push(w(F({},l),{message:y}))}}),a.length>0?{success:!1,errors:a}:{success:!0,data:s}},Zr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context;return r?ie(r)?Gr({data:r,context:{dataSource:t,tables:i}}):{success:!1,errors:[{category:"measures",index:-1,input:r,message:'Invalid measures JSON. Expected an array of function calls with "function" and "args" properties.'}]}:{success:!0,data:[]}},vr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context,s=[],a=b=>{const m=b();return m.success?m.data:(s.push(...m.errors),null)},n=a(()=>Dr({data:r.dimensions||[],context:{dataSource:t,tables:i}})),o=a(()=>Zr({data:r.measures||[],context:{dataSource:t,tables:i}})),l=a(()=>Yr({data:r.filters||[],context:{dataSource:t,tables:i}}));let f=null;return r.highlights&&(f=a(()=>Xr({data:r.highlights||[],context:{dataSource:t,tables:i}}))),s.length>0?{success:!1,errors:s}:{success:!0,data:F({dataSource:u.convertDataSource(t),dimensions:n||[],measures:o||[],filters:l||[]},f&&{highlights:f})}};function et(e){const{filters:r,relations:t}=u.getFilterListAndRelationsJaql(e.filters||[]);return{dataSource:e.dataSource,dimensions:e.dimensions,measures:e.measures,filters:r,filterRelations:t,highlights:e.highlights}}function rt(e,r,t=!1){const i=et(e),s=u.prepareQueryParams(i,r);return u.getJaqlQueryPayload(s,t)}exports.EMPTY_EXPANDED_QUERY_MODEL=M.EMPTY_EXPANDED_QUERY_MODEL;exports.EMPTY_SIMPLE_QUERY_MODEL=M.EMPTY_SIMPLE_QUERY_MODEL;exports.isByIdDashboardCodeParams=M.isByIdDashboardCodeParams;exports.isByIdWidgetCodeParams=M.isByIdWidgetCodeParams;exports.isClientSideDashboardCodeParams=M.isClientSideDashboardCodeParams;exports.isClientSideWidgetCodeParams=M.isClientSideWidgetCodeParams;exports.CustomSuperJSON=wr;exports.translateQueryJSON=vr;exports.translateQueryToJaql=rt;