@sisense/sdk-ui 2.15.0 → 2.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai.cjs +418 -28
- package/dist/ai.js +2080 -2112
- package/dist/analytics-composer/node.cjs +1 -1
- package/dist/analytics-composer/node.js +1004 -1466
- package/dist/analytics-composer.cjs +51 -51
- package/dist/analytics-composer.js +556 -565
- package/dist/{derive-chart-family-DHOhho50.js → derive-chart-family-DLwnWblo.js} +7991 -7878
- package/dist/derive-chart-family-d7eaC45K.cjs +190 -0
- package/dist/{dimensions-CtINdhqK.cjs → dimensions-BUWtZxix.cjs} +1 -1
- package/dist/{dimensions-Biz7anQc.js → dimensions-DvDgZ8RW.js} +1 -1
- package/dist/{execute-query-k_ytd_Rf.cjs → execute-query-CB4XfUng.cjs} +1 -1
- package/dist/{execute-query-D1JOjJ8n.js → execute-query-CFK2R_1S.js} +681 -643
- package/dist/index.cjs +1549 -32
- package/dist/index.js +14125 -13178
- package/dist/index.umd.js +2724 -393
- package/dist/packages/sdk-ui/src/analytics-composer/nlq-v3-translator/process-function/filter-processors.d.ts +9 -0
- package/dist/packages/sdk-ui/src/app/client-application.d.ts +9 -0
- package/dist/packages/sdk-ui/src/chart/restructured-charts/highchart-based-charts/cartesians/helpers/highchart-options/get-legacy-cartesian-chart-options.d.ts +2 -1
- package/dist/packages/sdk-ui/src/chart/restructured-charts/highchart-based-charts/cartesians/stackable/streamgraph-chart/helpers/chart-data.d.ts +8 -0
- package/dist/packages/sdk-ui/src/chart/restructured-charts/highchart-based-charts/cartesians/stackable/streamgraph-chart/helpers/design-options.d.ts +12 -0
- package/dist/packages/sdk-ui/src/chart/restructured-charts/highchart-based-charts/cartesians/stackable/streamgraph-chart/highchart-options/axes.d.ts +13 -0
- package/dist/packages/sdk-ui/src/chart/restructured-charts/highchart-based-charts/cartesians/stackable/streamgraph-chart/highchart-options/highcharts-options-builder.d.ts +8 -0
- package/dist/packages/sdk-ui/src/chart/restructured-charts/highchart-based-charts/cartesians/stackable/streamgraph-chart/highchart-options/plot-options.d.ts +19 -0
- package/dist/packages/sdk-ui/src/chart/restructured-charts/highchart-based-charts/cartesians/stackable/streamgraph-chart/streamgraph-chart-builder.d.ts +8 -0
- package/dist/packages/sdk-ui/src/chart/restructured-charts/highchart-based-charts/cartesians/stackable/streamgraph-chart/types.d.ts +24 -0
- package/dist/packages/sdk-ui/src/chart/restructured-charts/highchart-based-charts/cartesians/types.d.ts +1 -1
- package/dist/packages/sdk-ui/src/chart/restructured-charts/highchart-based-charts/types.d.ts +1 -1
- package/dist/packages/sdk-ui/src/chart/restructured-charts/types.d.ts +7 -7
- package/dist/packages/sdk-ui/src/chart-options-processor/chart-options-service.d.ts +27 -1
- package/dist/packages/sdk-ui/src/chart-options-processor/translations/design-options.d.ts +1 -0
- package/dist/packages/sdk-ui/src/chart-options-processor/translations/pie-plot-options.d.ts +11 -1
- package/dist/packages/sdk-ui/src/chart-options-processor/translations/types.d.ts +5 -4
- package/dist/packages/sdk-ui/src/charts/table/styles/style-constants.d.ts +1 -1
- package/dist/packages/sdk-ui/src/common-filters/selection-utils.d.ts +2 -2
- package/dist/packages/sdk-ui/src/filters/components/filters-panel/constants.d.ts +9 -0
- package/dist/packages/sdk-ui/src/index.d.ts +1 -0
- package/dist/packages/sdk-ui/src/no-results-overlay/images/index.d.ts +1 -1
- package/dist/packages/sdk-ui/src/pivot-table/hooks/use-render-pivot.d.ts +5 -1
- package/dist/packages/sdk-ui/src/pivot-table/pivot-table.d.ts +1 -0
- package/dist/packages/sdk-ui/src/props.d.ts +32 -1
- package/dist/packages/sdk-ui/src/streamgraph-chart.d.ts +42 -0
- package/dist/packages/sdk-ui/src/styled/index.d.ts +4 -0
- package/dist/packages/sdk-ui/src/styled/with-css-selector-prefix.d.ts +2 -0
- package/dist/packages/sdk-ui/src/theme-provider/default-theme-settings.d.ts +1 -0
- package/dist/packages/sdk-ui/src/theme-provider/theme-context.d.ts +3 -1
- package/dist/packages/sdk-ui/src/theme-provider/utils.d.ts +8 -0
- package/dist/packages/sdk-ui/src/types.d.ts +84 -4
- package/dist/packages/sdk-ui/src/widget-by-id/translate-widget-style-options/translate-widget-style-options.d.ts +2 -2
- package/dist/packages/sdk-ui/src/widget-by-id/types.d.ts +1 -0
- package/dist/packages/sdk-ui/src/widgets/common/drilldown-utils.d.ts +17 -2
- package/dist/packages/sdk-ui/src/widgets/hooks/use-drilldown.d.ts +2 -3
- package/dist/packages/sdk-ui/src/widgets/hooks/use-with-drilldown.d.ts +1 -1
- package/dist/{types-B8jkBXCe.cjs → types-Clbnx4mQ.cjs} +1 -1
- package/dist/{types-DZhBEm3K.js → types-D1mqt0Mg.js} +2 -8
- package/dist/{use-common-filters-8MsC7-0N.js → use-common-filters-CCeRLdGB.js} +44102 -33465
- package/dist/use-common-filters-DOn2HdBv.cjs +1325 -0
- package/dist/{widget-composer-DBwcb3ao.cjs → widget-composer-BaOTPn5w.cjs} +1 -1
- package/dist/{widget-composer-D-ktDgUE.js → widget-composer-Dhl_nmhq.js} +115 -111
- package/package.json +8 -9
- package/dist/derive-chart-family-0J_WPLDy.cjs +0 -190
- package/dist/packages/sdk-ui/src/common/icons/edit-pencil-icon.d.ts +0 -3
- package/dist/use-common-filters-DlP4xqST.cjs +0 -846
|
@@ -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 D=require("../types-B8jkBXCe.cjs"),u=require("../execute-query-k_ytd_Rf.cjs"),J=require("../dimensions-CtINdhqK.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,M=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(M(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 Me(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)=>{Me(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(Me(r),r.length===0)return t(e);let i=e;for(let a=0;a<r.length-1;a++){const n=r[a];if(M(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(M(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(!M(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(M(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)||M(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 De=(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=M(f)?[]:{},b={};O(f,(d,p)=>{if(p==="__proto__"||p==="constructor"||p==="prototype")throw new Error(`Detected property ${p}. This is a prototype pollution risk, please remove it from your object.`);const $=De(d,r,t,i,[...s,p],[...a,e],n);y[p]=$.transformedValue,M($.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=De(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 D.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:D.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 Mr(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 Dr(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 Dr(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 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 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`)}const Br={"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};function Pr(e){return Br[`${e}`]}const kr={"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:!0},{type:"Date | string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.dateRelative":[{type:"LevelAttribute",required:!0},{type:"number",required:!0},{type:"string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.dateRelativeFrom":[{type:"LevelAttribute",required:!0},{type:"number",required:!0},{type:"string",required:!0},{type:"BaseFilterConfig",required:!1}],"filterFactory.dateRelativeTo":[{type:"LevelAttribute",required:!0},{type:"number",required:!0},{type:"string",required:!0},{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 kr[`${e}`]}function Ir(e){const r=ue(e);return r?r.filter(t=>t.required).length:0}function _r(e){const r=ue(e);return r?r.length:0}function Lr(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 Vr(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(Lr(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=Ir(a),y=_r(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=Vr({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=Pr(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 Ur(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 Jr=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:Ur(s)}},Qr=e=>{const{data:r}=e,{dataSource:t,tables:i}=e.context;return r?ne(r)?Jr({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:[]}},Wr=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}},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:"highlights",index:-1,input:r,message:'Invalid highlights 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:"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}},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:"measures",index:-1,input:r,message:'Invalid measures 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=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(()=>Yr({data:r.measures||[],context:{dataSource:t,tables:i}})),l=a(()=>Qr({data:r.filters||[],context:{dataSource:t,tables:i}}));let f=null;return r.highlights&&(f=a(()=>jr({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 Xr(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 Gr(e,r,t=!1){const i=Xr(e),s=u.prepareQueryParams(i,r);return u.getJaqlQueryPayload(s,t)}exports.EMPTY_EXPANDED_QUERY_MODEL=D.EMPTY_EXPANDED_QUERY_MODEL;exports.EMPTY_SIMPLE_QUERY_MODEL=D.EMPTY_SIMPLE_QUERY_MODEL;exports.isByIdDashboardCodeParams=D.isByIdDashboardCodeParams;exports.isByIdWidgetCodeParams=D.isByIdWidgetCodeParams;exports.isClientSideDashboardCodeParams=D.isClientSideDashboardCodeParams;exports.isClientSideWidgetCodeParams=D.isClientSideWidgetCodeParams;exports.CustomSuperJSON=qr;exports.translateQueryJSON=Hr;exports.translateQueryToJaql=Gr;
|
|
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;
|