@sisense/sdk-ui 2.16.1 → 2.18.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 (93) hide show
  1. package/dist/ai.cjs +55 -55
  2. package/dist/ai.js +780 -742
  3. package/dist/analytics-composer/node.cjs +1 -1
  4. package/dist/analytics-composer/node.js +576 -484
  5. package/dist/analytics-composer.cjs +1 -1
  6. package/dist/analytics-composer.js +6 -6
  7. package/dist/{derive-chart-family-DLwnWblo.js → derive-chart-family-BEjUaaLD.js} +707 -699
  8. package/dist/{derive-chart-family-d7eaC45K.cjs → derive-chart-family-C3PTAfzX.cjs} +13 -13
  9. package/dist/{dimensions-DvDgZ8RW.js → dimensions-CETtX6B1.js} +1 -1
  10. package/dist/{dimensions-BUWtZxix.cjs → dimensions-_D0C3KY2.cjs} +1 -1
  11. package/dist/{execute-query-CFK2R_1S.js → execute-query-CUf3Nz7H.js} +843 -842
  12. package/dist/execute-query-tRu-NooT.cjs +1 -0
  13. package/dist/index.cjs +991 -267
  14. package/dist/index.js +71497 -19352
  15. package/dist/index.umd.js +1270 -1268
  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 +26 -3
  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 +23 -11
  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 +4 -4
  25. package/dist/packages/sdk-ui/src/common-filters/utils.d.ts +19 -0
  26. package/dist/packages/sdk-ui/src/dashboard/components/editable-layout/components/editable-layout-row.d.ts +11 -0
  27. package/dist/packages/sdk-ui/src/dashboard/hooks/index.d.ts +12 -0
  28. package/dist/packages/sdk-ui/src/dashboard/hooks/use-jtd.d.ts +1 -2
  29. package/dist/packages/sdk-ui/src/dashboard/utils.d.ts +15 -0
  30. package/dist/packages/sdk-ui/src/data-source-dimensional-model/hooks/use-get-data-source-dimensions.d.ts +78 -0
  31. package/dist/packages/sdk-ui/src/data-source-dimensional-model/hooks/use-get-data-source-fields.d.ts +23 -0
  32. package/dist/packages/sdk-ui/src/data-source-dimensional-model/index.d.ts +2 -0
  33. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/index.d.ts +0 -1
  34. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/member-list.d.ts +5 -0
  35. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/pill-section.d.ts +1 -2
  36. package/dist/packages/sdk-ui/src/filters/hooks/use-get-filter-members.d.ts +6 -0
  37. package/dist/packages/sdk-ui/src/index.d.ts +1 -1
  38. package/dist/packages/sdk-ui/src/models/widget/widget-model-translator/widget-model-translator.d.ts +4 -1
  39. package/dist/packages/sdk-ui/src/models/widget/widget-model.d.ts +2 -2
  40. package/dist/packages/sdk-ui/src/pivot-table/formatters/data-cell-formatters/data-cell-color-formatter.d.ts +2 -1
  41. package/dist/packages/sdk-ui/src/pivot-table/formatters/formatter-utils.d.ts +2 -1
  42. package/dist/packages/sdk-ui/src/pivot-table/formatters/header-cell-formatters/header-cell-totals-formatter.d.ts +1 -1
  43. package/dist/packages/sdk-ui/src/pivot-table/formatters/types.d.ts +2 -1
  44. package/dist/packages/sdk-ui/src/pivot-table/hooks/use-apply-pivot-table-formatting.d.ts +1 -1
  45. package/dist/packages/sdk-ui/src/pivot-table/hooks/use-get-pivot-table-query.d.ts +1 -1
  46. package/dist/packages/sdk-ui/src/pivot-table/hooks/use-pivot-builder.d.ts +1 -1
  47. package/dist/packages/sdk-ui/src/pivot-table/hooks/use-pivot-client.d.ts +8 -0
  48. package/dist/packages/sdk-ui/src/pivot-table/hooks/use-pivot-data-loading.d.ts +2 -1
  49. package/dist/packages/sdk-ui/src/pivot-table/hooks/use-pivot-data-service.d.ts +2 -1
  50. package/dist/packages/sdk-ui/src/pivot-table/hooks/use-render-pivot.d.ts +1 -1
  51. package/dist/packages/sdk-ui/src/pivot-table/pivot-table.d.ts +32 -2
  52. package/dist/packages/sdk-ui/src/pivot-table/sorting-utils.d.ts +1 -1
  53. package/dist/packages/sdk-ui/src/props.d.ts +26 -7
  54. package/dist/packages/sdk-ui/src/query/date-formats/fiscal-date-format-replacers.d.ts +1 -0
  55. package/dist/packages/sdk-ui/src/query-execution/types.d.ts +6 -0
  56. package/dist/packages/sdk-ui/src/query-execution/use-execute-pivot-query.d.ts +0 -1
  57. package/dist/packages/sdk-ui/src/translation/resources/en.d.ts +1 -1
  58. package/dist/packages/sdk-ui/src/translation/resources/index.d.ts +2 -2
  59. package/dist/packages/sdk-ui/src/types.d.ts +100 -31
  60. package/dist/packages/sdk-ui/src/utils/data-option-location/get-data-option-by-location.d.ts +43 -0
  61. package/dist/packages/sdk-ui/src/utils/data-option-location/get-data-option-location.d.ts +46 -0
  62. package/dist/packages/sdk-ui/src/utils/data-option-location/index.d.ts +3 -0
  63. package/dist/packages/sdk-ui/src/utils/data-option-location/set-data-option-at-location.d.ts +39 -0
  64. package/dist/packages/sdk-ui/src/widget-by-id/translate-widget-drilldown-options.d.ts +2 -2
  65. package/dist/packages/sdk-ui/src/widget-by-id/translate-widget-style-options/tabber.d.ts +3 -3
  66. package/dist/packages/sdk-ui/src/widget-by-id/types.d.ts +34 -7
  67. package/dist/packages/sdk-ui/src/widgets/{chart-widget.d.ts → chart-widget/chart-widget.d.ts} +1 -1
  68. package/dist/packages/sdk-ui/src/widgets/chart-widget/index.d.ts +1 -0
  69. package/dist/packages/sdk-ui/src/widgets/{hooks/use-with-drilldown.d.ts → chart-widget/use-with-chart-widget-drilldown.d.ts} +4 -3
  70. package/dist/packages/sdk-ui/src/widgets/common/use-drilldown-core.d.ts +1 -1
  71. package/dist/packages/sdk-ui/src/widgets/hooks/use-drilldown.d.ts +4 -3
  72. package/dist/packages/sdk-ui/src/widgets/hooks/use-synced-drilldown-paths-manager.d.ts +113 -0
  73. package/dist/packages/sdk-ui/src/widgets/hooks/{use-synced-hierarchies.d.ts → use-synced-drilldown-paths.d.ts} +1 -1
  74. package/dist/packages/sdk-ui/src/widgets/pivot-table-widget/index.d.ts +1 -0
  75. package/dist/packages/sdk-ui/src/widgets/{pivot-table-widget.d.ts → pivot-table-widget/pivot-table-widget.d.ts} +20 -2
  76. package/dist/packages/sdk-ui/src/widgets/pivot-table-widget/use-with-pivot-table-widget-drilldown.d.ts +14 -0
  77. package/dist/packages/sdk-ui/src/widgets/pivot-table-widget/utils.d.ts +22 -0
  78. package/dist/packages/sdk-ui/src/widgets/tabber/tabber-buttons-widget.d.ts +19 -1
  79. package/dist/packages/sdk-ui/src/widgets/tabber/types.d.ts +22 -5
  80. package/dist/{types-Clbnx4mQ.cjs → types-BfWl5jz9.cjs} +1 -1
  81. package/dist/{types-D1mqt0Mg.js → types-CHqDjeeH.js} +1 -1
  82. package/dist/use-common-filters-BGLYpqmt.cjs +604 -0
  83. package/dist/use-common-filters-BhFFlOqU.js +56668 -0
  84. package/dist/{widget-composer-Dhl_nmhq.js → widget-composer-Cuky3UiC.js} +3 -3
  85. package/dist/{widget-composer-BaOTPn5w.cjs → widget-composer-DsBF8OC2.cjs} +1 -1
  86. package/package.json +8 -7
  87. package/dist/execute-query-CB4XfUng.cjs +0 -1
  88. package/dist/packages/sdk-ui/src/common/hooks/fusion-endpoints/use-get-data-source-fields.d.ts +0 -17
  89. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/basic-member-filter-tile.d.ts +0 -56
  90. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/use-members.d.ts +0 -14
  91. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/use-validate-members.d.ts +0 -8
  92. package/dist/use-common-filters-CCeRLdGB.js +0 -103405
  93. 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 ke=Object.defineProperty,Le=Object.defineProperties;var _e=Object.getOwnPropertyDescriptors;var ue=Object.getOwnPropertySymbols;var Ve=Object.prototype.hasOwnProperty,Ue=Object.prototype.propertyIsEnumerable;var le=(e,r,t)=>r in e?ke(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)&&le(e,t,r[t]);if(ue)for(var t of ue(r))Ue.call(r,t)&&le(e,t,r[t]);return e},E=(e,r)=>Le(e,_e(r));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const M=require("../types-BfWl5jz9.cjs"),l=require("../execute-query-tRu-NooT.cjs"),_=require("../dimensions-_D0C3KY2.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 ye{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 We extends ye{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 Qe(e,r){const t=je(e);if("find"in t)return t.find(r);const i=t;for(let n=0;n<i.length;n++){const a=i[n];if(r(a))return a}}function z(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 Ke{constructor(){this.transfomers={}}register(r){this.transfomers[r.name]=r}findApplicable(r){return Qe(this.transfomers,t=>t.isApplicable(r))}findByName(r){return this.transfomers[r]}}const Ye=e=>Object.prototype.toString.call(e).slice(8,-1),ge=e=>typeof e=="undefined",ve=e=>e===null,B=e=>typeof e!="object"||e===null||e===Object.prototype?!1:Object.getPrototypeOf(e)===null?!0:Object.getPrototypeOf(e)===Object.prototype,v=e=>B(e)&&Object.keys(e).length===0,D=e=>Array.isArray(e),He=e=>typeof e=="string",Xe=e=>typeof e=="number"&&!isNaN(e),Ge=e=>typeof e=="boolean",Ze=e=>e instanceof RegExp,k=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,fe=e=>typeof e=="number"&&isNaN(e),tr=e=>Ge(e)||ve(e)||ge(e)||Xe(e)||He(e)||he(e),ir=e=>typeof e=="bigint",nr=e=>e===1/0||e===-1/0,sr=e=>ArrayBuffer.isView(e)&&!(e instanceof DataView),ar=e=>e instanceof URL,be=e=>e.replace(/\./g,"\\."),Q=e=>e.map(String).map(be).join("."),P=e=>{const r=[];let t="";for(let n=0;n<e.length;n++){let a=e.charAt(n);if(a==="\\"&&e.charAt(n+1)==="."){t+=".",n++;continue}if(a==="."){r.push(t),t="";continue}t+=a}const i=t;return r.push(i),r};function C(e,r,t,i){return{isApplicable:e,annotation:r,transform:t,untransform:i}}const Fe=[C(ge,"undefined",()=>null,()=>{}),C(ir,"bigint",e=>e.toString(),e=>typeof BigInt!="undefined"?BigInt(e):(console.error("Please add a BigInt polyfill."),e)),C(er,"Date",e=>e.toISOString(),e=>new Date(e)),C(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}),C(Ze,"regexp",e=>""+e,e=>{const r=e.slice(1,e.lastIndexOf("/")),t=e.slice(e.lastIndexOf("/")+1);return new RegExp(r,t)}),C(L,"set",e=>[...e.values()],e=>new Set(e)),C(k,"map",e=>[...e.entries()],e=>new Map(e)),C(e=>fe(e)||nr(e),"number",e=>fe(e)?"NaN":e>0?"Infinity":"-Infinity",Number),C(e=>e===0&&1/e===-1/0,"number",()=>"-0",Number),C(ar,"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)=>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),{}),we=J(sr,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 Ee(e,r){return e!=null&&e.constructor?!!r.classRegistry.getIdentifier(e.constructor):!1}const xe=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(n=>{i[n]=e[n]}),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)}),ur=[xe,qe,Ce,we],de=(e,r)=>{const t=ce(ur,n=>n.isApplicable(e,r));if(t)return{value:t.transform(e,r),type:t.annotation(e,r)};const i=ce(Fe,n=>n.isApplicable(e,r));if(i)return{value:i.transform(e,r),type:i.annotation}},Ae={};Fe.forEach(e=>{Ae[e.annotation]=e});const lr=(e,r,t)=>{if(D(r))switch(r[0]){case"symbol":return qe.untransform(e,r,t);case"class":return xe.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=Ae[r];if(!i)throw new Error("Unknown transformation: "+r);return i.untransform(e,t)}},O=(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 cr=(e,r)=>{$e(r);for(let t=0;t<r.length;t++){const i=r[t];if(L(e))e=O(e,+i);else if(k(e)){const n=+i,a=+r[++t]==0?"key":"value",s=O(e,n);switch(a){case"key":e=s;break;case"value":e=e.get(s);break}}else e=e[i]}return e},H=(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 s=r[a];if(D(i)){const o=+s;i=i[o]}else if(B(i))i=i[s];else if(L(i)){const o=+s;i=O(i,o)}else if(k(i)){if(a===r.length-2)break;const u=+s,f=+r[++a]==0?"key":"value",y=O(i,u);switch(f){case"key":i=y;break;case"value":i=i.get(y);break}}}const n=r[r.length-1];if(D(i)?i[+n]=t(i[+n]):B(i)&&(i[n]=t(i[n])),L(i)){const a=O(i,+n),s=t(a);a!==s&&(i.delete(a),i.add(s))}if(k(i)){const a=+r[r.length-2],s=O(i,a);switch(+n==0?"key":"value"){case"key":{const u=t(s);i.set(u,i.get(s)),u!==s&&i.delete(s);break}case"value":{i.set(s,t(i.get(s)));break}}}return e};function X(e,r,t=[]){if(!e)return;if(!D(e)){z(e,(a,s)=>X(a,r,[...t,...P(s)]));return}const[i,n]=e;n&&z(n,(a,s)=>{X(a,r,[...t,...P(s)])}),r(i,t)}function fr(e,r,t){return X(r,(i,n)=>{e=H(e,n,a=>lr(a,i,t))}),e}function dr(e,r){function t(i,n){const a=cr(e,P(n));i.map(P).forEach(s=>{e=H(e,s,()=>a)})}if(D(r)){const[i,n]=r;i.forEach(a=>{e=H(e,P(a),()=>e)}),n&&z(n,t)}else z(r,t);return e}const mr=(e,r)=>B(e)||D(e)||k(e)||L(e)||Ee(e,r);function pr(e,r,t){const i=t.get(e);i?i.push(r):t.set(e,[r])}function yr(e,r){const t={};let i;return e.forEach(n=>{if(n.length<=1)return;r||(n=n.map(o=>o.map(String)).sort((o,u)=>o.length-u.length));const[a,...s]=n;a.length===0?i=s.map(Q):t[Q(a)]=s.map(Q)}),i?v(t)?[i]:[i,t]:v(t)?void 0:t}const De=(e,r,t,i,n=[],a=[],s=new Map)=>{var g;const o=tr(e);if(!o){pr(e,n,r);const m=s.get(e);if(m)return i?{transformedValue:null}:m}if(!mr(e,t)){const m=de(e,t),h=m?{transformedValue:m.value,annotations:[m.type]}:{transformedValue:e};return o||s.set(e,h),h}if(U(a,e))return{transformedValue:null};const u=de(e,t),f=(g=u==null?void 0:u.value)!=null?g:e,y=D(f)?[]:{},d={};z(f,(m,h)=>{if(h==="__proto__"||h==="constructor"||h==="prototype")throw new Error(`Detected property ${h}. This is a prototype pollution risk, please remove it from your object.`);const $=De(m,r,t,i,[...n,h],[...a,e],s);y[h]=$.transformedValue,D($.annotations)?d[h]=$.annotations:B($.annotations)&&z($.annotations,(I,N)=>{d[be(h)+"."+N]=I})});const p=v(d)?{transformedValue:y,annotations:u?[u.type]:void 0}:{transformedValue:y,annotations:u?[u.type,d]:d};return o||s.set(e,p),p};function Me(e){return Object.prototype.toString.call(e).slice(8,-1)}function me(e){return Me(e)==="Array"}function gr(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,n){const a={}.propertyIsEnumerable.call(i,r)?"enumerable":"nonenumerable";a==="enumerable"&&(e[r]=t),n&&a==="nonenumerable"&&Object.defineProperty(e,r,{value:t,enumerable:!1,writable:!0,configurable:!0})}function G(e,r={}){if(me(e))return e.map(n=>G(n,r));if(!gr(e))return e;const t=Object.getOwnPropertyNames(e),i=Object.getOwnPropertySymbols(e);return[...t,...i].reduce((n,a)=>{if(me(r.props)&&!r.props.includes(a))return n;const s=e[a],o=G(s,r);return hr(n,a,o,e,r.nonenumerable),n},{})}class c{constructor({dedupe:r=!1}={}){this.classRegistry=new We,this.symbolRegistry=new ye(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=De(r,t,this,this.dedupe),n={json:i.transformedValue};i.annotations&&(n.meta=E(F({},n.meta),{values:i.annotations}));const a=yr(t,this.dedupe);return a&&(n.meta=E(F({},n.meta),{referentialEqualities:a})),n}deserialize(r){const{json:t,meta:i}=r;let n=G(t);return i!=null&&i.values&&(n=fr(n,i.values,this)),i!=null&&i.referentialEqualities&&(n=dr(n,i.referentialEqualities)),n}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?l.Sort.None:e,br=e=>new M.JaqlElement(e.metadataItem,e.type),Z=e=>new l.DimensionalAttribute(e.name,e.expression,e.type,e.description,S(e.sort),e.dataSource,e.composeCode),ee=e=>new l.DimensionalLevelAttribute(e.name,e.expression,e.granularity,e.format,e.description,S(e.sort),e.dataSource,e.composeCode),w=e=>{switch(e.__serializable){case"DimensionalAttribute":return Z(e);case"DimensionalLevelAttribute":return ee(e);default:return e}},Te=e=>new _.DimensionalDimension(e.name,e.expression,e.attributes.map(w),e.dimensions.map(Fr),e.type,e.description,S(e.sort),e.dataSource,e.composeCode,e.defaultAttribute?w(e.defaultAttribute):void 0),Re=e=>new _.DimensionalDateDimension(e.name,e.expression,e.description,S(e.sort),e.dataSource,e.composeCode),Fr=e=>{switch(e.__serializable){case"DimensionalDimension":return Te(e);case"DimensionalDateDimension":return Re(e);default:return e}},re=e=>new l.DimensionalBaseMeasure(e.name,w(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,Z(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 l.DimensionalCalculatedMeasure(e.name,e.expression,r,e.format,e.description,S(e.sort),e.dataSource,e.composeCode)},Se=e=>new l.DimensionalMeasureTemplate(e.name,w(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}},b=e=>{switch(e.__serializable){case"MembersFilter":return new l.MembersFilter(w(e.attribute),e.members,e.config.backgroundFilter?E(F({},e.config),{backgroundFilter:b(e.config.backgroundFilter)}):e.config,e.composeCode);case"LogicalAttributeFilter":return new l.LogicalAttributeFilter(e.filters.map(t=>b(t)),e.operator,e.config,e.composeCode);case"CascadingFilter":return new l.CascadingFilter(e._filters.map(t=>b(t)),e.config,e.composeCode);case"ExcludeFilter":return new l.ExcludeFilter(b(e.filter),e.input?b(e.input):void 0,e.config,e.composeCode);case"MeasureFilter":return new l.MeasureFilter(w(e.attribute),K(e.measure),e.operatorA,e.valueA,e.operatorB,e.valueB,e.config,e.composeCode);case"RankingFilter":return new l.RankingFilter(w(e.attribute),K(e.measure),e.operator,e.count,e.config,e.composeCode);case"MeasureRankingFilter":return new l.MeasureRankingFilter(K(e.measure),e.operator,e.count,e.config,e.composeCode);case"NumericFilter":return new l.NumericFilter(w(e.attribute),e.operatorA,e.valueA,e.operatorB,e.valueB,e.config,e.composeCode);case"TextFilter":return new l.TextFilter(w(e.attribute),e.operatorA,e.valueA,e.config,e.composeCode);case"DateRangeFilter":{const{valueA:t,valueB:i}=e;return new l.DateRangeFilter(w(e.attribute),t,i,e.config,e.composeCode)}case"RelativeDateFilter":return new l.RelativeDateFilter(w(e.attribute),e.offset,e.count,e.operator,e.anchor,e.config,e.composeCode);case"CustomFilter":return new l.CustomFilter(w(e.attribute),e.jaqlExpression,e.config,e.composeCode);default:return e}};c.registerCustom({isApplicable:M.isJaqlElement,serialize:e=>e.serialize(),deserialize:e=>br(e)},"JaqlElement");c.registerCustom({isApplicable:l.isDimensionalAttribute,serialize:e=>e.serialize(),deserialize:e=>Z(e)},"DimensionalAttribute");c.registerCustom({isApplicable:l.isDimensionalLevelAttribute,serialize:e=>e.serialize(),deserialize:e=>ee(e)},"DimensionalLevelAttribute");c.registerCustom({isApplicable:_.isDimensionalDimension,serialize:e=>e.serialize(),deserialize:e=>Te(e)},"DimensionalDimension");c.registerCustom({isApplicable:_.isDimensionalDateDimension,serialize:e=>e.serialize(),deserialize:e=>Re(e)},"DimensionalDateDimension");c.registerCustom({isApplicable:l.isDimensionalBaseMeasure,serialize:e=>e.serialize(),deserialize:e=>re(e)},"DimensionalBaseMeasure");c.registerCustom({isApplicable:l.isDimensionalCalculatedMeasure,serialize:e=>e.serialize(),deserialize:e=>te(e)},"DimensionalCalculatedMeasure");c.registerCustom({isApplicable:l.isDimensionalMeasureTemplate,serialize:e=>e.serialize(),deserialize:e=>Se(e)},"DimensionalMeasureTemplate");c.registerCustom({isApplicable:l.isMembersFilter,serialize:e=>e.serialize(),deserialize:e=>b(e)},"MembersFilter");c.registerCustom({isApplicable:l.isLogicalAttributeFilter,serialize:e=>e.serialize(),deserialize:e=>b(e)},"LogicalAttributeFilter");c.registerCustom({isApplicable:l.isCascadingFilter,serialize:e=>e.serialize(),deserialize:e=>b(e)},"CascadingFilter");c.registerCustom({isApplicable:l.isExcludeFilter,serialize:e=>e.serialize(),deserialize:e=>b(e)},"ExcludeFilter");c.registerCustom({isApplicable:l.isMeasureFilter,serialize:e=>e.serialize(),deserialize:e=>b(e)},"MeasureFilter");c.registerCustom({isApplicable:l.isRankingFilter,serialize:e=>e.serialize(),deserialize:e=>b(e)},"RankingFilter");c.registerCustom({isApplicable:l.isMeasureRankingFilter,serialize:e=>e.serialize(),deserialize:e=>b(e)},"MeasureRankingFilter");c.registerCustom({isApplicable:l.isNumericFilter,serialize:e=>e.serialize(),deserialize:e=>b(e)},"NumericFilter");c.registerCustom({isApplicable:l.isTextFilter,serialize:e=>e.serialize(),deserialize:e=>b(e)},"TextFilter");c.registerCustom({isApplicable:l.isDateRangeFilter,serialize:e=>e.serialize(),deserialize:e=>b(e)},"DateRangeFilter");c.registerCustom({isApplicable:l.isRelativeDateFilter,serialize:e=>e.serialize(),deserialize:e=>b(e)},"RelativeDateFilter");c.registerCustom({isApplicable:l.isCustomFilter,serialize:e=>e.serialize(),deserialize:e=>b(e)},"CustomFilter");const qr=c,q="DM.";function A(e){return typeof e=="object"&&e!==null&&"function"in e&&"args"in e}function ie(e){return e.every(A)}function W(e){return"attribute"in e&&"config"in e}function V(e){return"left"in e&&"right"in e&&"operator"in e}function Ne(e){return!W(e)&&!V(e)}function wr(e){return e.every(r=>typeof r=="string")}function Er(e){const r=[...e].sort((a,s)=>s.name.length-a.name.length),t=new Map,i=new Map,n=new Map;for(const a of e){t.set(a.name,a);const s=[...a.columns].sort((u,f)=>f.name.length-u.name.length);n.set(a.name,s);const o=new Map;for(const u of a.columns)o.set(u.name,u);i.set(a.name,o)}return{sortedTables:r,tableColumnMap:n,tableMap:t,columnMap:i}}function Oe(e,r){if(!e.startsWith(q))throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${q}TableName.ColumnName[.Level]"`);const t=e.slice(q.length);if(!t)throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${q}TableName.ColumnName[.Level]"`);let i,n;for(const d of r.sortedTables)if(t.startsWith(d.name+".")){const p=t.slice(d.name.length+1);if(!p)throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${q}TableName.ColumnName[.Level]"`);i=d,n=p;break}if(!i){const d=t.indexOf(".");if(d===-1)throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${q}TableName.ColumnName[.Level]"`);const p=t.slice(0,d);throw new Error(`Table "${p}" not found in the data model`)}const a=r.tableColumnMap.get(i.name);if(!a)throw new Error(`Table "${i.name}" found but has no columns`);let s,o;const u=l.DateLevels.all;for(const d of a){if(n===d.name)return{table:i,column:d};if(!n.startsWith(d.name+"."))continue;const p=n.slice(d.name.length+1);if(!p)continue;const g=u.includes(p),m=l.isDatetime(d.dataType);if(g){if(m)return{table:i,column:d,level:p};s||(s=d,o=p);continue}m&&!s&&(s=d,o=p)}if(s&&o)throw u.includes(o)?new Error(`Invalid date level "${o}" in dimensional element "${e}". Column "${i.name}.${s.name}" is not a datetime column`):new Error(`Invalid date level "${o}" in dimensional element "${e}". Valid levels are: ${u.join(", ")}`);const f=n.indexOf("."),y=f===-1?n:n.slice(0,f);throw new Error(`Column "${y}" not found in table "${i.name}"`)}function xr(e,r){const{table:t,column:i,level:n}=Oe(e,r);if(n){if(!l.isDatetime(i.dataType))throw new Error(`Invalid date level "${n}" in dimensional element "${e}". Column "${t.name}.${i.name}" is not a datetime column`);const a=l.DateLevels.all;if(!a.includes(n))throw new Error(`Invalid date level "${n}" in dimensional element "${e}". Valid levels are: ${a.join(", ")}`);const s=l.DateLevels.dateOnly;if(i.dataType==="date"&&!s.includes(n))throw new Error(`Invalid level "${n}" in dimensional element "${e}". Column "${t.name}.${i.name}" is only a date column, not a datetime column`);const o=l.DateLevels.timeOnly;if(i.dataType==="time"&&!o.includes(n))throw new Error(`Invalid level "${n}" in dimensional element "${e}". Column "${t.name}.${i.name}" is only a time column, not a date column`)}return{column:i,level:n}}function ze(e){return e.type===l.MetadataTypes.TextAttribute}function Ie(e){return e.type===l.MetadataTypes.NumericAttribute}function Cr(e){return e.type===l.MetadataTypes.DateLevel}function Ar(e){return ze(e)||Ie(e)}function j(e){return e.type===l.MetadataTypes.TextAttribute?"text":e.type===l.MetadataTypes.NumericAttribute?"numeric":e.type===l.MetadataTypes.DateLevel?"date/datetime":"unknown"}function ne(e,r,t){const{column:i,level:n}=xr(e,t);return l.createAttributeHelper({expression:i.expression,dataType:i.dataType,granularity:n,format:void 0,sort:void 0,dataSource:r})}function $r(e,r,t){const{column:i,level:n}=Oe(e,t);if(n)throw new Error(`Invalid DateDimension name format: "${e}". Expected format: "${q}TableName.ColumnName"`);if(!l.isDatetime(i.dataType))throw new Error(`Invalid DateDimension name "${e}". Column "${i.name}" is not a datetime column (got ${i.dataType}).`);return _.createDateDimension({name:i.name,expression:i.expression,dataSource:r})}const Dr=e=>{const{data:r}=e,{dataSource:t,schemaIndex: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 n=[],a=[];return r.forEach((s,o)=>{const u={category:"dimensions",index:o,input:s};try{const f=ne(s,t,i);n.push(f)}catch(f){const y=f instanceof Error?f.message:"Unknown error";a.push(E(F({},u),{message:y}))}}),a.length>0?{success:!1,errors:a}:{success:!0,data:n}};function se(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.",""),n=se(l.measureFactory,t)(...r);if(!Ne(n))throw new Error(`Function "${e}" did not return a valid Measure`);return n}function Tr(e,r){const t=e.replace("filterFactory.logic.",""),n=se(l.logic,t)(...r);if(!V(n))throw new Error(`Function "${e}" did not return a valid FilterRelations`);return n}function Rr(e,r){if(e.startsWith("filterFactory.logic."))return Tr(e,r);const t=e.replace("filterFactory.",""),n=se(l.filterFactory,t)(...r);if(!W(n)&&!V(n))throw new Error(`Function "${e}" did not return a valid Filter or FilterRelations`);return n}function Sr(e,r){const i=e.split(".")[0];if(i==="measureFactory")return Mr(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 Or(e,r,t={}){const{warnUnusedContext:i=!0,errorOnUnusedContext:n=!0,allowEmptyFormula:a=!1,errorPrefix:s="customFormula validation"}=t,o={isValid:!0,errors:[],warnings:[],references:[],unusedContextKeys:[]};if(!e||e.trim().length===0)return a||(o.errors.push(`${s}args[1]: Formula cannot be empty`),o.isValid=!1),o;const u=Object.keys(r);if(u.length===0)return o.errors.push(`${s}args[2]: Context cannot be empty - custom formulas require context definitions`),o.isValid=!1,o;const f=Nr,y=new Set;let d;for(;(d=f.exec(e))!==null;){const g=d[1];y.add(g)}o.references=Array.from(y),o.references.length===0&&o.warnings.push(`${s}args[1]: No bracket references found in formula - ensure this is intentional`);const p=[];for(const g of o.references)u.includes(g)||p.push(g);if(p.length>0&&(o.isValid=!1,p.length===1?o.errors.push(`${s}args[1]: Reference [${p[0]}] not found in context. Available keys: ${u.join(", ")}`):o.errors.push(`${s}args[1]: References [${p.join("], [")}] not found in context. Available keys: ${u.join(", ")}`)),(i||n)&&u.length>0){const g=u.filter(m=>!o.references.includes(m));if(o.unusedContextKeys=g,g.length>0){const m=`${s}args[2]: Context keys [${g.join(", ")}] are defined but not used in formula`;n?(o.errors.push(m),o.isValid=!1):i&&o.warnings.push(m)}}return o}function zr(e,r,t={}){const i=Or(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 Ir(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 n={};for(const[a,s]of Object.entries(i)){const o=`args[2].${a}`;if(A(s))n[`${a}`]=x({data:s,context:{dataSource:r.dataSource,schemaIndex:r.schemaIndex,pathPrefix:o}});else if(typeof s=="string"&&s.startsWith(q))try{n[`${a}`]=ne(s,r.dataSource,r.schemaIndex)}catch(u){const f=u instanceof Error?u.message:"Unknown error";throw new Error(`${o}: ${f}`)}else if(s&&typeof s=="object"&&"kind"in s)n[`${a}`]=s;else throw new Error(`${o}: Invalid context value for key '${a}'. Expected a function call or attribute reference (${q}...), but got: ${typeof s}`)}e[2]=n}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(!Ar(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be string or numeric type, got ${j(t)} attribute`)}function T(e,r){const t=ae(e,r);if(!Ie(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be numeric type, got ${j(t)} attribute`)}function R(e,r){const t=ae(e,r);if(!ze(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be string type, got ${j(t)} attribute`)}function Pr(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 Br(e,r){const t=Pr(e,r);if(!l.isMembersFilter(t))throw new Error(`${r.pathPrefix}args[0]: exclude filter only accepts members filter, got ${t.__serializable||"unknown"} filter`)}const kr={"measureFactory.customFormula":Ir,"filterFactory.equals":pe,"filterFactory.doesntEqual":pe,"filterFactory.greaterThan":T,"filterFactory.greaterThanOrEqual":T,"filterFactory.lessThan":T,"filterFactory.lessThanOrEqual":T,"filterFactory.between":T,"filterFactory.betweenNotEqual":T,"filterFactory.numeric":T,"filterFactory.contains":R,"filterFactory.doesntContain":R,"filterFactory.startsWith":R,"filterFactory.doesntStartWith":R,"filterFactory.endsWith":R,"filterFactory.doesntEndWith":R,"filterFactory.like":R,"filterFactory.exclude":Br};function Lr(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 oe(e){return _r[`${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(q))try{return ne(e,r,t)}catch(n){const a=n instanceof Error?n.message:"Unknown error";throw new Error(`${i}: ${a}`)}throw new Error(`${i}: Invalid attribute "${e}". Expected format: "${q}TableName.ColumnName[.Level]"`)}function Wr(e,r,t,i){if(e.startsWith(q))try{return $r(e,r,t)}catch(n){const a=n instanceof Error?n.message:"Unknown error";throw new Error(`${i}: ${a}`)}throw new Error(`${i}: Invalid date dimension string "${e}". Expected format: "${q}TableName.ColumnName"`)}function jr(e){const r=e.data,{argSchema:t,dataSource:i,schemaIndex:n,pathPrefix:a}=e.context,s=a;if(r===void 0){if(t.required)throw new Error(`${s}: Required argument is missing (expected ${t.type})`);return}switch(t.type){case"string":if(typeof r!="string")throw new Error(`${s}: Expected string, got ${typeof r}`);return r;case"number":if(typeof r!="number")throw new Error(`${s}: Expected number, got ${typeof r}`);return r;case"boolean":if(typeof r!="boolean")throw new Error(`${s}: Expected boolean, got ${typeof r}`);return r;case"string[]":if(!Array.isArray(r))throw new Error(`${s}: Expected array of strings, got ${typeof r}. Example: ["value1", "value2"]`);if(!r.every(o=>typeof o=="string"))throw new Error(`${s}: Expected array of strings, but contains non-string values`);return r;case"number[]":if(!Array.isArray(r))throw new Error(`${s}: Expected array of numbers, got ${typeof r}. Example: [10, 20]`);if(!r.every(o=>typeof o=="number"))throw new Error(`${s}: Expected array of numbers, but contains non-number values`);return r;case"Attribute":if(typeof r!="string")throw new Error(`${s}: Expected attribute string, got ${typeof r}. Example: "DM.Commerce.Revenue"`);return Y(r,i,n,s);case"Attribute[]":if(!Array.isArray(r))throw new Error(`${s}: Expected array of attributes, got ${typeof r}. Example: ["DM.Commerce.AgeRange"]`);return r.map((o,u)=>{if(typeof o!="string")throw new Error(`${s}[${u}]: Expected attribute string, got ${typeof o}`);return Y(o,i,n,`${s}[${u}]`)});case"Measure":case"BaseMeasure":if(!A(r))throw new Error(`${s}: Expected measure function call, got ${typeof r}. Example: {"function": "measureFactory.sum", "args": ["DM.Commerce.Revenue"]}`);return x({data:r,context:{dataSource:i,schemaIndex:n,pathPrefix:s}});case"Measure[]":if(!Array.isArray(r))throw new Error(`${s}: Expected array of measure function calls, got ${typeof r}`);return r.map((o,u)=>{if(!A(o))throw new Error(`${s}[${u}]: Expected measure function call, got ${typeof o}`);return x({data:o,context:{dataSource:i,schemaIndex:n,pathPrefix:`${s}[${u}]: `}})});case"Filter":if(!A(r))throw new Error(`${s}: Expected filter function call, got ${typeof r}. Example: {"function": "filterFactory.contains", "args": ["DM.Brand.Brand", "Apple"]}`);return x({data:r,context:{dataSource:i,schemaIndex:n,pathPrefix:s}});case"Filter[]":if(!Array.isArray(r))throw new Error(`${s}: Expected array of filter function calls, got ${typeof r}`);return r.map((o,u)=>{if(!A(o))throw new Error(`${s}[${u}]: Expected filter function call, got ${typeof o}`);return x({data:o,context:{dataSource:i,schemaIndex:n,pathPrefix:`${s}[${u}]: `}})});case"FilterRelationsNode":if(Array.isArray(r))return r.map((o,u)=>{if(!A(o))throw new Error(`${s}[${u}]: Expected filter function call, got ${typeof o}`);return x({data:o,context:{dataSource:i,schemaIndex:n,pathPrefix:`${s}[${u}]: `}})});if(A(r))return x({data:r,context:{dataSource:i,schemaIndex:n,pathPrefix:s}});throw new Error(`${s}: Expected filter function call or array of filters, got ${typeof r}`);case"DateDimension":if(typeof r!="string")throw new Error(`${s}: Expected date dimension string, got ${typeof r}. Example: "DM.Commerce.Date"`);return Wr(r,i,n,s);case"LevelAttribute":{if(typeof r!="string")throw new Error(`${s}: Expected date attribute string, got ${typeof r}. Example: "DM.Commerce.Date.Years"`);const o=Y(r,i,n,s);if(!Cr(o))throw new Error(`${s}: Attribute must be date/datetime type, got ${j(o)} attribute`);return o}case"Measure | number":if(typeof r=="number")return r;if(A(r))return x({data:r,context:{dataSource:i,schemaIndex:n,pathPrefix:s}});throw new Error(`${s}: Expected measure function call or number, got ${typeof r}`);case"Date | string":if(typeof r=="string"){if(Jr(r))return r;throw new Error(`${s}: Expected valid ISO date string or Date object, got invalid date string "${r}"`)}else{if(r instanceof Date)return r;throw new Error(`${s}: Expected date string or Date object, got ${typeof r}`)}case"string | number":if(typeof r=="string"||typeof r=="number")return r;throw new Error(`${s}: Expected string or number, got ${typeof r}`);case"BaseFilterConfig":case"MembersFilterConfig":case"CustomFormulaContext":case"any":if(r==null&&t.required)throw new Error(`${s}: Required argument is null/undefined`);return r;default:return r}}function x(e){const{data:r}=e,{dataSource:t,schemaIndex:i,pathPrefix:n}=e.context,{function:a,args:s}=r,o=n?`${n}.`:"",u=oe(a);if(!u)throw new Error(`${o}function: Unknown function "${a}"`);const f=Vr(a),y=Ur(a);if(s.length<f)throw new Error(`${o}function: Expected at least ${f} arguments, got ${s.length}`);if(s.length>y)throw new Error(`${o}function: Expected at most ${y} arguments, got ${s.length}`);const d=[],p=[];for(let m=0;m<Math.max(s.length,u.length);m++){const h=u[`${m}`],$=s[`${m}`],I=o?`${o}args[${m}]`:`args[${m}]`;if($===void 0){h!=null&&h.required&&p.push(`${I}: Missing required argument (expected ${h.type})`);continue}if(!h){p.push(`${I}: Unexpected argument`);continue}try{const N=jr({data:$,context:{dataSource:t,schemaIndex:i,pathPrefix:I,argSchema:h}});d.push(N)}catch(N){const Be=N instanceof Error?N.message:"Unknown error";p.push(Be)}}if(p.length>0){const m=p.join("; ");throw new Error(m)}const g=Lr(a);if(g)try{g(d,{dataSource:t,schemaIndex:i,pathPrefix:o})}catch(m){const h=m instanceof Error?m.message:"Unknown validation error";throw new Error(h)}return Sr(a,d)}function Pe(e){const{attribute:r,config:t}=e;if(l.isMembersFilter(e)&&l.isLevelAttribute(r)){const{granularity:i}=r;return l.members(r,e.members.map(n=>i==="Years"&&!isNaN(Number(n))?`${n}-01-01T00:00:00`:n),t)}return e}function Qr(e){let r=[];for(const t of e)V(t)?r=l.mergeFiltersOrFilterRelations(t,r):r=l.mergeFiltersOrFilterRelations([Pe(t)],r);return r!=null?r:[]}const Kr=e=>{const{data:r}=e,{dataSource:t,schemaIndex:i}=e.context,n=[],a=[];return r.forEach((s,o)=>{const u={category:"filters",index:o,input:s};try{const f=x({data:s,context:{dataSource:t,schemaIndex:i,pathPrefix:""}});!V(f)&&!W(f)?a.push(E(F({},u),{message:"Invalid filter JSON"})):n.push(f)}catch(f){const y=f instanceof Error?f.message:"Unknown error";a.push(E(F({},u),{message:y}))}}),a.length>0?{success:!1,errors:a}:{success:!0,data:Qr(n)}},Yr=e=>{const{data:r}=e,{dataSource:t,schemaIndex:i}=e.context;return r?ie(r)?Kr({data:r,context:{dataSource:t,schemaIndex: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:[]}},vr=e=>{const{data:r}=e,{dataSource:t,schemaIndex:i}=e.context,n=[],a=[];return r.forEach((s,o)=>{const u={category:"highlights",index:o,input:s};try{const f=x({data:s,context:{dataSource:t,schemaIndex:i,pathPrefix:""}});W(f)?n.push(Pe(f)):a.push(E(F({},u),{message:"Invalid filter JSON"}))}catch(f){const y=f instanceof Error?f.message:"Unknown error";a.push(E(F({},u),{message:y}))}}),a.length>0?{success:!1,errors:a}:{success:!0,data:n}},Hr=e=>{const{data:r}=e,{dataSource:t,schemaIndex:i}=e.context;return r?ie(r)?vr({data:r,context:{dataSource:t,schemaIndex: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:[]}},Xr=e=>{const{data:r}=e,{dataSource:t,schemaIndex:i}=e.context,n=[],a=[];return r.forEach((s,o)=>{const u={category:"measures",index:o,input:s};try{const f=x({data:s,context:{dataSource:t,schemaIndex:i,pathPrefix:""}});Ne(f)?n.push(f):a.push(E(F({},u),{message:"Invalid measure JSON"}))}catch(f){const y=f instanceof Error?f.message:"Unknown error";a.push(E(F({},u),{message:y}))}}),a.length>0?{success:!1,errors:a}:{success:!0,data:n}},Gr=e=>{const{data:r}=e,{dataSource:t,schemaIndex:i}=e.context;return r?ie(r)?Xr({data:r,context:{dataSource:t,schemaIndex: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:[]}},Zr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context,n=Er(i),a=[],s=p=>{const g=p();return g.success?g.data:(a.push(...g.errors),null)},o=s(()=>Dr({data:r.dimensions||[],context:{dataSource:t,schemaIndex:n}})),u=s(()=>Gr({data:r.measures||[],context:{dataSource:t,schemaIndex:n}})),f=s(()=>Yr({data:r.filters||[],context:{dataSource:t,schemaIndex:n}}));let y=null;return r.highlights&&(y=s(()=>Hr({data:r.highlights||[],context:{dataSource:t,schemaIndex:n}}))),a.length>0?{success:!1,errors:a}:{success:!0,data:F({dataSource:l.convertDataSource(t),dimensions:o||[],measures:u||[],filters:f||[]},y&&{highlights:y})}};function et(e){const{filters:r,relations:t}=l.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),n=l.prepareQueryParams(i,r);return l.getJaqlQueryPayload(n,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=Zr;exports.translateQueryToJaql=rt;