@sisense/sdk-ui 2.16.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 CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var _t=Object.defineProperty,Kt=Object.defineProperties;var Xt=Object.getOwnPropertyDescriptors;var Ce=Object.getOwnPropertySymbols;var Ve=Object.prototype.hasOwnProperty,Ue=Object.prototype.propertyIsEnumerable;var ve=(e,t,n)=>t in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,w=(e,t)=>{for(var n in t||(t={}))Ve.call(t,n)&&ve(e,n,t[n]);if(Ce)for(var n of Ce(t))Ue.call(t,n)&&ve(e,n,t[n]);return e},$=(e,t)=>Kt(e,Xt(t));var je=(e,t)=>{var n={};for(var s in e)Ve.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(e!=null&&Ce)for(var s of Ce(e))t.indexOf(s)<0&&Ue.call(e,s)&&(n[s]=e[s]);return n};var N=(e,t,n)=>ve(e,typeof t!="symbol"?t+"":t,n);var Q=(e,t,n)=>new Promise((s,a)=>{var d=p=>{try{h(n.next(p))}catch(C){a(C)}},l=p=>{try{h(n.throw(p))}catch(C){a(C)}},h=p=>p.done?s(p.value):Promise.resolve(p.value).then(d,l);h((n=n.apply(e,t)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./use-common-filters-CkQznSEt.cjs"),r=require("./derive-chart-family-d7eaC45K.cjs"),f=require("react"),J=require("./execute-query-CB4XfUng.cjs"),de=require("./widget-composer-BaOTPn5w.cjs"),ie=require("react/jsx-runtime");function Jt(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const Z=Jt(f);class Yt extends o.Subscribable{constructor(t,n){super(),this.client=t,this.setOptions(n),this.bindMethods(),this.updateResult()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){var n;const s=this.options;this.options=this.client.defaultMutationOptions(t),o.shallowEqualObjects(s,this.options)||this.client.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.currentMutation,observer:this}),(n=this.currentMutation)==null||n.setOptions(this.options)}onUnsubscribe(){if(!this.hasListeners()){var t;(t=this.currentMutation)==null||t.removeObserver(this)}}onMutationUpdate(t){this.updateResult();const n={listeners:!0};t.type==="success"?n.onSuccess=!0:t.type==="error"&&(n.onError=!0),this.notify(n)}getCurrentResult(){return this.currentResult}reset(){this.currentMutation=void 0,this.updateResult(),this.notify({listeners:!0})}mutate(t,n){return this.mutateOptions=n,this.currentMutation&&this.currentMutation.removeObserver(this),this.currentMutation=this.client.getMutationCache().build(this.client,$(w({},this.options),{variables:typeof t!="undefined"?t:this.options.variables})),this.currentMutation.addObserver(this),this.currentMutation.execute()}updateResult(){const t=this.currentMutation?this.currentMutation.state:o.getDefaultState(),n=t.status==="loading",s=$(w({},t),{isLoading:n,isPending:n,isSuccess:t.status==="success",isError:t.status==="error",isIdle:t.status==="idle",mutate:this.mutate,reset:this.reset});this.currentResult=s}notify(t){o.notifyManager.batch(()=>{if(this.mutateOptions&&this.hasListeners()){if(t.onSuccess){var n,s,a,d;(n=(s=this.mutateOptions).onSuccess)==null||n.call(s,this.currentResult.data,this.currentResult.variables,this.currentResult.context),(a=(d=this.mutateOptions).onSettled)==null||a.call(d,this.currentResult.data,null,this.currentResult.variables,this.currentResult.context)}else if(t.onError){var l,h,p,C;(l=(h=this.mutateOptions).onError)==null||l.call(h,this.currentResult.error,this.currentResult.variables,this.currentResult.context),(p=(C=this.mutateOptions).onSettled)==null||p.call(C,void 0,this.currentResult.error,this.currentResult.variables,this.currentResult.context)}}t.listeners&&this.listeners.forEach(({listener:m})=>{m(this.currentResult)})})}}function Ie(e,t,n){const s=o.parseMutationArgs(e,t),a=o.useQueryClient({context:s.context}),[d]=Z.useState(()=>new Yt(a,s));Z.useEffect(()=>{d.setOptions(s)},[d,s]);const l=o.useSyncExternalStore(Z.useCallback(p=>d.subscribe(o.notifyManager.batchCalls(p)),[d]),()=>d.getCurrentResult(),()=>d.getCurrentResult()),h=Z.useCallback((p,C)=>{d.mutate(p,C).catch(en)},[d]);if(l.error&&o.shouldThrowError(d.options.useErrorBoundary,[l.error]))throw l.error;return $(w({},l),{mutate:h,mutateAsync:l.mutate})}function en(){}const it=f.createContext({}),tn=()=>f.useContext(it),at=({children:e})=>{const[t,n]=f.useState({}),s=f.useCallback((l,h)=>{var p;return`${l}_${(p=h==null?void 0:h.dashboardId)!=null?p:""}`},[]),a=f.useCallback((l,h,p)=>{n(C=>$(w({},C),{[s(h,p)]:l}))},[s]),d=f.useCallback((l,h)=>t[s(l,h)],[t,s]);return r.jsx(it.Provider,{value:{saveChatId:a,getChatId:d},children:e})};class lt{constructor(t,n=!1){N(this,"httpClient");N(this,"getChatContexts",()=>Q(this,null,function*(){return(yield this.httpClient.get("api/datasources//"))||[]}));N(this,"getNlgInsights",t=>this.httpClient.post("api/v2/ai/nlg/queryResult",t));N(this,"getQueryRecommendations",(t,n)=>this.httpClient.get(`api/v2/ai/recommendations/query/${t}/${n.numOfRecommendations}${n.userPrompt?"?userPrompt="+encodeURIComponent(n.userPrompt):""}`));N(this,"getNlqResult",(t,n)=>this.httpClient.post(`api/v2/ai/nlq/query/${t}`,n));N(this,"setLlmConfig",t=>this.httpClient.post("api/v2/settings/ai/llmProvider",t).catch(n=>{console.error("Unable to set llm config",n)}));N(this,"getAllChats",()=>Q(this,null,function*(){return this.volatile?[]:this.httpClient.get("api/v2/ai/chats")}));N(this,"getChatById",t=>this.httpClient.get(`api/v2/ai/chats/${t}`));N(this,"createChat",(t,n)=>this.httpClient.post("api/v2/ai/chats",{sourceId:t,volatile:this.volatile,contextDetails:n}));N(this,"postChat",(t,n)=>this.httpClient.post(`api/v2/ai/chats/${t}`,n));N(this,"deleteChatHistory",t=>this.httpClient.delete(`api/v2/ai/chats/${t}/history`));N(this,"sendFeedback",t=>this.httpClient.post("api/v2/ai/feedback",t));N(this,"ai",{getNlgInsights:this.getNlgInsights,getNlqResult:this.getNlqResult,getQueryRecommendations:this.getQueryRecommendations,setLlmConfig:this.setLlmConfig,sendFeedback:this.sendFeedback,chat:{getAll:this.getAllChats,getById:this.getChatById,create:this.createChat,post:this.postChat,clearHistory:this.deleteChatHistory}});this.volatile=n,this.httpClient=t}}const nn=new o.QueryClient({defaultOptions:{queries:{refetchOnWindowFocus:!1,refetchOnMount:!1}}}),Ne=f.createContext(void 0),G=()=>f.useContext(Ne),rn=({children:e,volatile:t})=>{const{app:n}=o.useSisenseContext(),s=f.useMemo(()=>n?new lt(n.httpClient,t):void 0,[n,t]);return r.jsx(Ne.Provider,{value:s,children:r.jsx(o.QueryClientProvider,{client:nn,children:e})})};function on({children:e,volatile:t}){return r.jsx(at,{children:r.jsx(rn,{volatile:t,children:e})})}function ct(e){var t,n;if("jaql"in e)return e;{const s=J.convertJaqlDataSource(e.dataSource),{filters:a=[],relations:d}=J.getFilterListAndRelationsJaql(e.filters),{metadata:l,filterRelations:h}=J.getJaqlQueryPayload({dataSource:e.dataSource,attributes:(t=e.dimensions)!=null?t:[],measures:(n=e.measures)!=null?n:[],filters:a,filterRelations:d,highlights:[]},!0),p={jaql:{datasource:s,metadata:l,filterRelations:h}};return e.verbosity&&(p.verbosity=e.verbosity),p}}const ye=(e,t=!0)=>{const n=f.useMemo(()=>ct(e),[e]),s=G(),{data:a,error:d,isError:l,isLoading:h,isSuccess:p,refetch:C}=o.useQuery({queryKey:["getNlgInsights",n,s],queryFn:()=>s==null?void 0:s.ai.getNlgInsights(n),select:m=>{var b;return(b=m==null?void 0:m.data)==null?void 0:b.answer},enabled:!!s&&t});return{isLoading:h,isError:l,isSuccess:p,data:a,error:d,refetch:f.useCallback(()=>{C()},[C])}},sn=e=>{const s=e,{enabled:t}=s,n=je(s,["enabled"]);return ye(n,t)},an=o.withTracking("useGetNlgInsights")(sn),dt=["indicator","column","line","table","pie","bar"];function Fe(e){const{dataSource:t,query:n,chartTypes:s}=e;return{contextTitle:typeof t=="string"?t:t.title,request:{text:n,timezone:"UTC",chartTypes:s!=null?s:[...dt]}}}function ut(e,t){return Q(this,null,function*(){const{contextTitle:n,request:s}=Fe(e),a=yield t.ai.getNlqResult(n,s);return{widgetProps:a?de.toWidgetProps(a,{useCustomizedStyleOptions:e.enableAxisTitlesInWidgetProps||!1}):void 0,nlqResult:a}})}const ln=e=>{const{contextTitle:t,request:n}=Fe(e),s=G(),a=["getNlqResult",t,n,s],{isLoading:d,isError:l,isSuccess:h,data:p,error:C,refetch:m}=o.useQuery({queryKey:a,queryFn:()=>s?ut(e,s).then(b=>b.widgetProps):Promise.reject("No API available"),enabled:!!s&&e.enabled});return{isLoading:d,isError:l,isSuccess:h,data:p,error:C,refetch:f.useCallback(()=>{m()},[m])}},cn=o.withTracking("useGetNlqResult")(ln),pt=4,ht=e=>{const{contextTitle:t,count:n,enableAxisTitlesInWidgetProps:s,enabled:a,customPrompt:d}=e,l=G(),h=n!=null?n:pt,p=(a===void 0||a===!0)&&h>0,{isLoading:C,isError:m,isSuccess:b,data:i,error:u,refetch:c}=o.useQuery({queryKey:["getQueryRecommendations",t,h,l],queryFn:()=>l==null?void 0:l.ai.getQueryRecommendations(t,w({numOfRecommendations:h},d?{userPrompt:d}:null)),enabled:!!l&&p}),x=f.useMemo(()=>i==null?void 0:i.map(g=>$(w({},g),{widgetProps:g.jaql?de.toWidgetProps(g,{useCustomizedStyleOptions:s}):void 0})),[i,s]);return{isLoading:p?C:!1,isError:m,isSuccess:b,data:x!=null?x:void 0,error:u,refetch:f.useCallback(()=>{c()},[c])}},dn=o.withTracking("useGetQueryRecommendations")(ht),gt=Object.freeze({enableFollowupQuestions:!1,enableHeader:!0,enableInsights:!0,numOfRecommendations:4,numOfRecentPrompts:5}),Ct=f.createContext(w({},gt)),U=()=>f.useContext(Ct),un=({children:e,value:t})=>{const{t:n}=r.useTranslation(),s=Object.entries(t).reduce((a,[d,l])=>(l!==void 0&&(a[d]=l),a),$(w({},gt),{inputPromptText:n("ai.config.inputPromptText"),welcomeText:n("ai.config.welcomeText"),suggestionsWelcomeText:n("ai.config.suggestionsWelcomeText")}));return r.jsx(Ct.Provider,{value:s,children:e})},Be="chatHistory",pn=e=>{const t=G(),{hideHistory:n}=U();return o.useQuery({queryKey:[Be,e,t],queryFn:()=>Q(exports,null,function*(){if(!t||!e)return;if(n)return[];const s=yield t.ai.chat.getById(e);return s==null?void 0:s.chatHistory}),enabled:!!t&&!!e})},ft=e=>{const t=G(),n=o.useQueryClient();return Ie({mutationFn:()=>Q(exports,null,function*(){if(!(!t||!e))return t.ai.chat.clearHistory(e)}),onError:s=>{console.error("Error when clearing history:",s)},onSettled:()=>{e&&n.setQueriesData([Be,e],[])}})},Oe=e=>{const{data:t,isLoading:n,isError:s}=pn(e),{mutate:a}=ft(e);return f.useEffect(()=>{s&&a()},[s,a]),{history:t,isLoading:n,isError:s}},hn=()=>{const e=G(),{data:t,isLoading:n,fetchStatus:s}=o.useQuery({queryKey:["getDataTopics",e],queryFn:()=>Q(exports,null,function*(){if(e)return e.getChatContexts()}),enabled:!!e});return{data:t,isLoading:n,fetchStatus:s}},gn=()=>{const e=G(),{data:t,isLoading:n}=o.useQuery({queryKey:["getAllChats",e],queryFn:()=>e==null?void 0:e.ai.chat.getAll(),enabled:!!e});return{data:t!=null?t:[],isLoading:n}},Cn=(e,t,n)=>{const s=o.useQueryClient(),a=G(),d=Ie({mutationFn:()=>Q(exports,null,function*(){if(!(!a||!e))return a.ai.chat.create(e,n)}),onSuccess:()=>s.invalidateQueries(["getAllChats"])});return f.useEffect(()=>{t&&d.isIdle&&d.mutate()},[t,d]),d},fn=(e,t)=>{switch(e.responseType=e.responseType.toLowerCase(),e.responseType){case"nlq":return{content:JSON.stringify(e.data),role:"assistant",type:"nlq"};case"text":case"error":return{content:e.data.answer,role:"assistant"};default:throw Error(`${t}${JSON.stringify(e)}`)}},xn=(e,t)=>{const n=o.useQueryClient(),s=f.useCallback(p=>{e&&n.setQueriesData([Be,e],C=>C&&[...C,p])},[n,e]),{t:a}=r.useTranslation(),d=G(),{mutate:l,isLoading:h}=Ie({mutationFn:p=>Q(exports,null,function*(){if(!(!d||!e))return d.ai.chat.post(e,{text:p,options:{enableFollowup:t}})}),onMutate:p=>{s({content:p,role:"user"})},onError:p=>{p instanceof Error&&(console.error("Error when sending message:",p.message),s({content:a(`ai.errors.${p.interpolationOptions.errorCode}`,{defaultValue:a("ai.errors.unexpectedChatResponse")}),role:"assistant"}))},onSuccess:p=>{if(!p)return;const C=a("ai.errors.unknownResponse");s(fn(p,C))}});return{mutate:l,isLoading:h}},He=(e,t,n=!1)=>{var m;const{data:s,isLoading:a}=gn(),d=tn(),l=d.getChatId(e,t)||((m=s.find(b=>{var i;return b.contextTitle===e&&((i=b.contextDetails)==null?void 0:i.dashboardId)===(t==null?void 0:t.dashboardId)}))==null?void 0:m.chatId),{isError:h,data:p,isSuccess:C}=Cn(e,n&&!a&&!l,t);return f.useEffect(()=>{C&&p&&!l&&d.saveChatId(p.chatId,e,t)},[p,C,e,t,l,d]),{chatId:l,isLoading:a,isError:h}},xt=e=>f.useMemo(()=>{if(e!=null&&e.length){const t=e[e.length-1];if(Ae(t))return JSON.parse(t.content)}return null},[e]),Ae=e=>!!e&&"type"in e&&e.type==="nlq",mn=e=>!!e&&"type"in e&&e.type==="text",mt=(e,t)=>{const{t:n}=r.useTranslation(),{enableFollowupQuestions:s}=U(),{chatId:a,isError:d}=He(e,t,!0),[l,h]=f.useState(null),{history:p,isLoading:C,isError:m}=Oe(a);f.useEffect(()=>{d?h(new J.TranslatableError("ai.errors.chatUnavailable")):m&&h(new J.TranslatableError("ai.errors.fetchHistory"))},[d,m,n]);const{mutate:b,isLoading:i}=xn(a,s),u=xt(p);return{chatId:a,history:p!=null?p:[],lastNlqResponse:u,sendMessage:b,isAwaitingResponse:i,isLoading:C,lastError:l}},yn=({contextTitle:e,contextDetails:t})=>{const{chatId:n}=He(e,t),{history:s}=Oe(n);return xt(s)},bn=({contextTitle:e,contextDetails:t})=>{const{chatId:n}=He(e,t),{history:s}=Oe(n);return f.useMemo(()=>{if(s!=null&&s.length){const a=s.slice().reverse().find(Ae);if(a)return JSON.parse(a.content)}return null},[s])},kn=500,vn=500,jn=500,wn=900,Tn=o.styled.div`
1
+ "use strict";var _t=Object.defineProperty,Kt=Object.defineProperties;var Xt=Object.getOwnPropertyDescriptors;var Ce=Object.getOwnPropertySymbols;var Ve=Object.prototype.hasOwnProperty,Ue=Object.prototype.propertyIsEnumerable;var ve=(e,t,n)=>t in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,w=(e,t)=>{for(var n in t||(t={}))Ve.call(t,n)&&ve(e,n,t[n]);if(Ce)for(var n of Ce(t))Ue.call(t,n)&&ve(e,n,t[n]);return e},$=(e,t)=>Kt(e,Xt(t));var je=(e,t)=>{var n={};for(var s in e)Ve.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(e!=null&&Ce)for(var s of Ce(e))t.indexOf(s)<0&&Ue.call(e,s)&&(n[s]=e[s]);return n};var N=(e,t,n)=>ve(e,typeof t!="symbol"?t+"":t,n);var Q=(e,t,n)=>new Promise((s,a)=>{var d=p=>{try{h(n.next(p))}catch(C){a(C)}},l=p=>{try{h(n.throw(p))}catch(C){a(C)}},h=p=>p.done?s(p.value):Promise.resolve(p.value).then(d,l);h((n=n.apply(e,t)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./use-common-filters-DOn2HdBv.cjs"),r=require("./derive-chart-family-d7eaC45K.cjs"),f=require("react"),J=require("./execute-query-CB4XfUng.cjs"),de=require("./widget-composer-BaOTPn5w.cjs"),ie=require("react/jsx-runtime");function Jt(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const Z=Jt(f);class Yt extends o.Subscribable{constructor(t,n){super(),this.client=t,this.setOptions(n),this.bindMethods(),this.updateResult()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){var n;const s=this.options;this.options=this.client.defaultMutationOptions(t),o.shallowEqualObjects(s,this.options)||this.client.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.currentMutation,observer:this}),(n=this.currentMutation)==null||n.setOptions(this.options)}onUnsubscribe(){if(!this.hasListeners()){var t;(t=this.currentMutation)==null||t.removeObserver(this)}}onMutationUpdate(t){this.updateResult();const n={listeners:!0};t.type==="success"?n.onSuccess=!0:t.type==="error"&&(n.onError=!0),this.notify(n)}getCurrentResult(){return this.currentResult}reset(){this.currentMutation=void 0,this.updateResult(),this.notify({listeners:!0})}mutate(t,n){return this.mutateOptions=n,this.currentMutation&&this.currentMutation.removeObserver(this),this.currentMutation=this.client.getMutationCache().build(this.client,$(w({},this.options),{variables:typeof t!="undefined"?t:this.options.variables})),this.currentMutation.addObserver(this),this.currentMutation.execute()}updateResult(){const t=this.currentMutation?this.currentMutation.state:o.getDefaultState(),n=t.status==="loading",s=$(w({},t),{isLoading:n,isPending:n,isSuccess:t.status==="success",isError:t.status==="error",isIdle:t.status==="idle",mutate:this.mutate,reset:this.reset});this.currentResult=s}notify(t){o.notifyManager.batch(()=>{if(this.mutateOptions&&this.hasListeners()){if(t.onSuccess){var n,s,a,d;(n=(s=this.mutateOptions).onSuccess)==null||n.call(s,this.currentResult.data,this.currentResult.variables,this.currentResult.context),(a=(d=this.mutateOptions).onSettled)==null||a.call(d,this.currentResult.data,null,this.currentResult.variables,this.currentResult.context)}else if(t.onError){var l,h,p,C;(l=(h=this.mutateOptions).onError)==null||l.call(h,this.currentResult.error,this.currentResult.variables,this.currentResult.context),(p=(C=this.mutateOptions).onSettled)==null||p.call(C,void 0,this.currentResult.error,this.currentResult.variables,this.currentResult.context)}}t.listeners&&this.listeners.forEach(({listener:m})=>{m(this.currentResult)})})}}function Ie(e,t,n){const s=o.parseMutationArgs(e,t),a=o.useQueryClient({context:s.context}),[d]=Z.useState(()=>new Yt(a,s));Z.useEffect(()=>{d.setOptions(s)},[d,s]);const l=o.useSyncExternalStore(Z.useCallback(p=>d.subscribe(o.notifyManager.batchCalls(p)),[d]),()=>d.getCurrentResult(),()=>d.getCurrentResult()),h=Z.useCallback((p,C)=>{d.mutate(p,C).catch(en)},[d]);if(l.error&&o.shouldThrowError(d.options.useErrorBoundary,[l.error]))throw l.error;return $(w({},l),{mutate:h,mutateAsync:l.mutate})}function en(){}const it=f.createContext({}),tn=()=>f.useContext(it),at=({children:e})=>{const[t,n]=f.useState({}),s=f.useCallback((l,h)=>{var p;return`${l}_${(p=h==null?void 0:h.dashboardId)!=null?p:""}`},[]),a=f.useCallback((l,h,p)=>{n(C=>$(w({},C),{[s(h,p)]:l}))},[s]),d=f.useCallback((l,h)=>t[s(l,h)],[t,s]);return r.jsx(it.Provider,{value:{saveChatId:a,getChatId:d},children:e})};class lt{constructor(t,n=!1){N(this,"httpClient");N(this,"getChatContexts",()=>Q(this,null,function*(){return(yield this.httpClient.get("api/datasources//"))||[]}));N(this,"getNlgInsights",t=>this.httpClient.post("api/v2/ai/nlg/queryResult",t));N(this,"getQueryRecommendations",(t,n)=>this.httpClient.get(`api/v2/ai/recommendations/query/${t}/${n.numOfRecommendations}${n.userPrompt?"?userPrompt="+encodeURIComponent(n.userPrompt):""}`));N(this,"getNlqResult",(t,n)=>this.httpClient.post(`api/v2/ai/nlq/query/${t}`,n));N(this,"setLlmConfig",t=>this.httpClient.post("api/v2/settings/ai/llmProvider",t).catch(n=>{console.error("Unable to set llm config",n)}));N(this,"getAllChats",()=>Q(this,null,function*(){return this.volatile?[]:this.httpClient.get("api/v2/ai/chats")}));N(this,"getChatById",t=>this.httpClient.get(`api/v2/ai/chats/${t}`));N(this,"createChat",(t,n)=>this.httpClient.post("api/v2/ai/chats",{sourceId:t,volatile:this.volatile,contextDetails:n}));N(this,"postChat",(t,n)=>this.httpClient.post(`api/v2/ai/chats/${t}`,n));N(this,"deleteChatHistory",t=>this.httpClient.delete(`api/v2/ai/chats/${t}/history`));N(this,"sendFeedback",t=>this.httpClient.post("api/v2/ai/feedback",t));N(this,"ai",{getNlgInsights:this.getNlgInsights,getNlqResult:this.getNlqResult,getQueryRecommendations:this.getQueryRecommendations,setLlmConfig:this.setLlmConfig,sendFeedback:this.sendFeedback,chat:{getAll:this.getAllChats,getById:this.getChatById,create:this.createChat,post:this.postChat,clearHistory:this.deleteChatHistory}});this.volatile=n,this.httpClient=t}}const nn=new o.QueryClient({defaultOptions:{queries:{refetchOnWindowFocus:!1,refetchOnMount:!1}}}),Ne=f.createContext(void 0),G=()=>f.useContext(Ne),rn=({children:e,volatile:t})=>{const{app:n}=o.useSisenseContext(),s=f.useMemo(()=>n?new lt(n.httpClient,t):void 0,[n,t]);return r.jsx(Ne.Provider,{value:s,children:r.jsx(o.QueryClientProvider,{client:nn,children:e})})};function on({children:e,volatile:t}){return r.jsx(at,{children:r.jsx(rn,{volatile:t,children:e})})}function ct(e){var t,n;if("jaql"in e)return e;{const s=J.convertJaqlDataSource(e.dataSource),{filters:a=[],relations:d}=J.getFilterListAndRelationsJaql(e.filters),{metadata:l,filterRelations:h}=J.getJaqlQueryPayload({dataSource:e.dataSource,attributes:(t=e.dimensions)!=null?t:[],measures:(n=e.measures)!=null?n:[],filters:a,filterRelations:d,highlights:[]},!0),p={jaql:{datasource:s,metadata:l,filterRelations:h}};return e.verbosity&&(p.verbosity=e.verbosity),p}}const ye=(e,t=!0)=>{const n=f.useMemo(()=>ct(e),[e]),s=G(),{data:a,error:d,isError:l,isLoading:h,isSuccess:p,refetch:C}=o.useQuery({queryKey:["getNlgInsights",n,s],queryFn:()=>s==null?void 0:s.ai.getNlgInsights(n),select:m=>{var b;return(b=m==null?void 0:m.data)==null?void 0:b.answer},enabled:!!s&&t});return{isLoading:h,isError:l,isSuccess:p,data:a,error:d,refetch:f.useCallback(()=>{C()},[C])}},sn=e=>{const s=e,{enabled:t}=s,n=je(s,["enabled"]);return ye(n,t)},an=o.withTracking("useGetNlgInsights")(sn),dt=["indicator","column","line","table","pie","bar"];function Fe(e){const{dataSource:t,query:n,chartTypes:s}=e;return{contextTitle:typeof t=="string"?t:t.title,request:{text:n,timezone:"UTC",chartTypes:s!=null?s:[...dt]}}}function ut(e,t){return Q(this,null,function*(){const{contextTitle:n,request:s}=Fe(e),a=yield t.ai.getNlqResult(n,s);return{widgetProps:a?de.toWidgetProps(a,{useCustomizedStyleOptions:e.enableAxisTitlesInWidgetProps||!1}):void 0,nlqResult:a}})}const ln=e=>{const{contextTitle:t,request:n}=Fe(e),s=G(),a=["getNlqResult",t,n,s],{isLoading:d,isError:l,isSuccess:h,data:p,error:C,refetch:m}=o.useQuery({queryKey:a,queryFn:()=>s?ut(e,s).then(b=>b.widgetProps):Promise.reject("No API available"),enabled:!!s&&e.enabled});return{isLoading:d,isError:l,isSuccess:h,data:p,error:C,refetch:f.useCallback(()=>{m()},[m])}},cn=o.withTracking("useGetNlqResult")(ln),pt=4,ht=e=>{const{contextTitle:t,count:n,enableAxisTitlesInWidgetProps:s,enabled:a,customPrompt:d}=e,l=G(),h=n!=null?n:pt,p=(a===void 0||a===!0)&&h>0,{isLoading:C,isError:m,isSuccess:b,data:i,error:u,refetch:c}=o.useQuery({queryKey:["getQueryRecommendations",t,h,l],queryFn:()=>l==null?void 0:l.ai.getQueryRecommendations(t,w({numOfRecommendations:h},d?{userPrompt:d}:null)),enabled:!!l&&p}),x=f.useMemo(()=>i==null?void 0:i.map(g=>$(w({},g),{widgetProps:g.jaql?de.toWidgetProps(g,{useCustomizedStyleOptions:s}):void 0})),[i,s]);return{isLoading:p?C:!1,isError:m,isSuccess:b,data:x!=null?x:void 0,error:u,refetch:f.useCallback(()=>{c()},[c])}},dn=o.withTracking("useGetQueryRecommendations")(ht),gt=Object.freeze({enableFollowupQuestions:!1,enableHeader:!0,enableInsights:!0,numOfRecommendations:4,numOfRecentPrompts:5}),Ct=f.createContext(w({},gt)),U=()=>f.useContext(Ct),un=({children:e,value:t})=>{const{t:n}=r.useTranslation(),s=Object.entries(t).reduce((a,[d,l])=>(l!==void 0&&(a[d]=l),a),$(w({},gt),{inputPromptText:n("ai.config.inputPromptText"),welcomeText:n("ai.config.welcomeText"),suggestionsWelcomeText:n("ai.config.suggestionsWelcomeText")}));return r.jsx(Ct.Provider,{value:s,children:e})},Be="chatHistory",pn=e=>{const t=G(),{hideHistory:n}=U();return o.useQuery({queryKey:[Be,e,t],queryFn:()=>Q(exports,null,function*(){if(!t||!e)return;if(n)return[];const s=yield t.ai.chat.getById(e);return s==null?void 0:s.chatHistory}),enabled:!!t&&!!e})},ft=e=>{const t=G(),n=o.useQueryClient();return Ie({mutationFn:()=>Q(exports,null,function*(){if(!(!t||!e))return t.ai.chat.clearHistory(e)}),onError:s=>{console.error("Error when clearing history:",s)},onSettled:()=>{e&&n.setQueriesData([Be,e],[])}})},Oe=e=>{const{data:t,isLoading:n,isError:s}=pn(e),{mutate:a}=ft(e);return f.useEffect(()=>{s&&a()},[s,a]),{history:t,isLoading:n,isError:s}},hn=()=>{const e=G(),{data:t,isLoading:n,fetchStatus:s}=o.useQuery({queryKey:["getDataTopics",e],queryFn:()=>Q(exports,null,function*(){if(e)return e.getChatContexts()}),enabled:!!e});return{data:t,isLoading:n,fetchStatus:s}},gn=()=>{const e=G(),{data:t,isLoading:n}=o.useQuery({queryKey:["getAllChats",e],queryFn:()=>e==null?void 0:e.ai.chat.getAll(),enabled:!!e});return{data:t!=null?t:[],isLoading:n}},Cn=(e,t,n)=>{const s=o.useQueryClient(),a=G(),d=Ie({mutationFn:()=>Q(exports,null,function*(){if(!(!a||!e))return a.ai.chat.create(e,n)}),onSuccess:()=>s.invalidateQueries(["getAllChats"])});return f.useEffect(()=>{t&&d.isIdle&&d.mutate()},[t,d]),d},fn=(e,t)=>{switch(e.responseType=e.responseType.toLowerCase(),e.responseType){case"nlq":return{content:JSON.stringify(e.data),role:"assistant",type:"nlq"};case"text":case"error":return{content:e.data.answer,role:"assistant"};default:throw Error(`${t}${JSON.stringify(e)}`)}},xn=(e,t)=>{const n=o.useQueryClient(),s=f.useCallback(p=>{e&&n.setQueriesData([Be,e],C=>C&&[...C,p])},[n,e]),{t:a}=r.useTranslation(),d=G(),{mutate:l,isLoading:h}=Ie({mutationFn:p=>Q(exports,null,function*(){if(!(!d||!e))return d.ai.chat.post(e,{text:p,options:{enableFollowup:t}})}),onMutate:p=>{s({content:p,role:"user"})},onError:p=>{p instanceof Error&&(console.error("Error when sending message:",p.message),s({content:a(`ai.errors.${p.interpolationOptions.errorCode}`,{defaultValue:a("ai.errors.unexpectedChatResponse")}),role:"assistant"}))},onSuccess:p=>{if(!p)return;const C=a("ai.errors.unknownResponse");s(fn(p,C))}});return{mutate:l,isLoading:h}},He=(e,t,n=!1)=>{var m;const{data:s,isLoading:a}=gn(),d=tn(),l=d.getChatId(e,t)||((m=s.find(b=>{var i;return b.contextTitle===e&&((i=b.contextDetails)==null?void 0:i.dashboardId)===(t==null?void 0:t.dashboardId)}))==null?void 0:m.chatId),{isError:h,data:p,isSuccess:C}=Cn(e,n&&!a&&!l,t);return f.useEffect(()=>{C&&p&&!l&&d.saveChatId(p.chatId,e,t)},[p,C,e,t,l,d]),{chatId:l,isLoading:a,isError:h}},xt=e=>f.useMemo(()=>{if(e!=null&&e.length){const t=e[e.length-1];if(Ae(t))return JSON.parse(t.content)}return null},[e]),Ae=e=>!!e&&"type"in e&&e.type==="nlq",mn=e=>!!e&&"type"in e&&e.type==="text",mt=(e,t)=>{const{t:n}=r.useTranslation(),{enableFollowupQuestions:s}=U(),{chatId:a,isError:d}=He(e,t,!0),[l,h]=f.useState(null),{history:p,isLoading:C,isError:m}=Oe(a);f.useEffect(()=>{d?h(new J.TranslatableError("ai.errors.chatUnavailable")):m&&h(new J.TranslatableError("ai.errors.fetchHistory"))},[d,m,n]);const{mutate:b,isLoading:i}=xn(a,s),u=xt(p);return{chatId:a,history:p!=null?p:[],lastNlqResponse:u,sendMessage:b,isAwaitingResponse:i,isLoading:C,lastError:l}},yn=({contextTitle:e,contextDetails:t})=>{const{chatId:n}=He(e,t),{history:s}=Oe(n);return xt(s)},bn=({contextTitle:e,contextDetails:t})=>{const{chatId:n}=He(e,t),{history:s}=Oe(n);return f.useMemo(()=>{if(s!=null&&s.length){const a=s.slice().reverse().find(Ae);if(a)return JSON.parse(a.content)}return null},[s])},kn=500,vn=500,jn=500,wn=900,Tn=o.styled.div`
2
2
  box-sizing: border-box;
3
3
  position: relative;
4
4
  display: flex;
package/dist/ai.js CHANGED
@@ -36,7 +36,7 @@ var ee = (e, t, n) => new Promise((r, s) => {
36
36
  }, p = (u) => u.done ? r(u.value) : Promise.resolve(u.value).then(c, a);
37
37
  p((n = n.apply(e, t)).next());
38
38
  });
39
- import { S as Sn, s as Mn, n as Lt, g as $n, u as ke, a as Tn, b as Ln, p as Rn, Q as Rt, c as En, d as Et, e as fe, w as Je, f as v, h as D, i as L, P as It, T as In, E as Nn, j as Bn, k as Hn, l as Pn, m as Be, B as Fn, M as On, o as pe, q as Nt, r as An, t as Dn, v as zn, x as qn, y as Ce, z as ze, F as Ct, A as C, C as Wn, I as Bt, D as Zn, G as jn, H as Gn, J as xe, K as Vn, L as Un, N as Qn, O as Ht, R as _n, U as Kn } from "./use-common-filters-CxoO7TzT.js";
39
+ import { S as Sn, s as Mn, n as Lt, g as $n, u as ke, a as Tn, b as Ln, p as Rn, Q as Rt, c as En, d as Et, e as fe, w as Je, f as v, h as D, i as L, P as It, T as In, E as Nn, j as Bn, k as Hn, l as Pn, m as Be, B as Fn, M as On, o as pe, q as Nt, r as An, t as Dn, v as zn, x as qn, y as Ce, z as ze, F as Ct, A as C, C as Wn, I as Bt, D as Zn, G as jn, H as Gn, J as xe, K as Vn, L as Un, N as Qn, O as Ht, R as _n, U as Kn } from "./use-common-filters-CCeRLdGB.js";
40
40
  import { j as o, u as P, c as w, F as Z, e as Pt, i as Ve, f as Xn, h as Jn, k as Yn, t as er } from "./derive-chart-family-DLwnWblo.js";
41
41
  import * as J from "react";
42
42
  import { createContext as Ye, useState as O, useCallback as H, useContext as et, useMemo as q, useEffect as we, useRef as he, useLayoutEffect as Ie, forwardRef as tr, memo as nr } from "react";
@@ -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-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,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`)}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:!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 _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=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=Gr;exports.translateQueryToJaql=vr;
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;
@@ -1635,9 +1635,9 @@ const Pt = {
1635
1635
  ],
1636
1636
  "filterFactory.dateRange": [
1637
1637
  { type: "LevelAttribute", required: !0 },
1638
- { type: "Date | string", required: !0 },
1638
+ { type: "Date | string", required: !1 },
1639
1639
  // from
1640
- { type: "Date | string", required: !0 },
1640
+ { type: "Date | string", required: !1 },
1641
1641
  // to
1642
1642
  { type: "BaseFilterConfig", required: !1 }
1643
1643
  ],
@@ -1645,7 +1645,9 @@ const Pt = {
1645
1645
  { type: "LevelAttribute", required: !0 },
1646
1646
  { type: "number", required: !0 },
1647
1647
  // offset
1648
- { type: "string", required: !0 },
1648
+ { type: "number", required: !0 },
1649
+ // count
1650
+ { type: "Date | string", required: !1 },
1649
1651
  // anchor
1650
1652
  { type: "BaseFilterConfig", required: !1 }
1651
1653
  ],
@@ -1653,7 +1655,9 @@ const Pt = {
1653
1655
  { type: "LevelAttribute", required: !0 },
1654
1656
  { type: "number", required: !0 },
1655
1657
  // offset
1656
- { type: "string", required: !0 },
1658
+ { type: "number", required: !0 },
1659
+ // count
1660
+ { type: "Date | string", required: !1 },
1657
1661
  // anchor
1658
1662
  { type: "BaseFilterConfig", required: !1 }
1659
1663
  ],
@@ -1661,7 +1665,9 @@ const Pt = {
1661
1665
  { type: "LevelAttribute", required: !0 },
1662
1666
  { type: "number", required: !0 },
1663
1667
  // offset
1664
- { type: "string", required: !0 },
1668
+ { type: "number", required: !0 },
1669
+ // count
1670
+ { type: "Date | string", required: !1 },
1665
1671
  // anchor
1666
1672
  { type: "BaseFilterConfig", required: !1 }
1667
1673
  ],