@sisense/sdk-ui 2.20.0 → 2.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai.cjs +68 -68
- package/dist/ai.js +891 -845
- package/dist/analytics-composer/node.cjs +1 -1
- package/dist/analytics-composer/node.js +1002 -858
- package/dist/analytics-composer.cjs +23 -23
- package/dist/analytics-composer.js +8 -8
- package/dist/{dimensions-Blw0p98x.js → dimensions-BiLyFpCg.js} +1 -1
- package/dist/{dimensions-CgMckRe2.cjs → dimensions-X4_igtmO.cjs} +1 -1
- package/dist/{execute-query-VxgY3tbz.js → execute-query-BEeqqDl6.js} +1499 -1491
- package/dist/execute-query-DJDE0zRU.cjs +1 -0
- package/dist/{index-0brX9D6q.cjs → index-NyouhE_A.cjs} +1 -1
- package/dist/{index-Ck90GjPy.js → index-kxX21arA.js} +15 -1
- package/dist/index.cjs +451 -436
- package/dist/index.js +24710 -23005
- package/dist/index.umd.js +689 -624
- package/dist/packages/sdk-ui/src/domains/dashboarding/common-filters/common-filters-connector.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/common-filters/selection-utils.d.ts +4 -3
- package/dist/packages/sdk-ui/src/domains/dashboarding/common-filters/types.d.ts +10 -0
- package/dist/packages/sdk-ui/src/domains/dashboarding/common-filters/use-common-filters.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/common-filters/utils.d.ts +2 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/components/content-panel.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/components/editable-layout/components/editable-layout-row.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/components/editable-layout/editable-layout.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/components/editable-layout/helpers.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/index.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/translate-dashboard-utils.d.ts +8 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/types.d.ts +9 -2
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/index.d.ts +4 -0
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/persist-dashboard-model-middleware.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/{use-dashboard-model-reducer.d.ts → dashboard-model-reducer/types.d.ts} +19 -36
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/use-dashboard-model-reducer.d.ts +9 -0
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/utils.d.ts +28 -0
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/use-dashboard-persistence.d.ts +4 -4
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/duplicate-widget/duplicate-widget-utils.d.ts +34 -0
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/duplicate-widget/index.d.ts +2 -0
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/duplicate-widget/use-duplicate-widget-menu-item.d.ts +57 -0
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/jtd/jtd-config-transformers.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/jtd/jtd-filters.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/jtd/jtd-handlers.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/jtd/jtd-types.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/jtd/jtd-widget-transforms.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/use-jtd-widget.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/use-jtd.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/use-tabber.d.ts +2 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/types.d.ts +44 -3
- package/dist/packages/sdk-ui/src/domains/dashboarding/use-composed-dashboard.d.ts +15 -3
- package/dist/packages/sdk-ui/src/domains/dashboarding/utils.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/filters/components/cascading-filter-tile/cascading-filter-tile.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/cascading-filter-tile/cascading-level-filter.d.ts +11 -1
- package/dist/packages/sdk-ui/src/domains/filters/components/cascading-filter-tile/use-cascadding-filter-tile-menu-items/use-cascadding-filter-tile-lock-menu-item.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/cascading-filter-tile/use-cascadding-filter-tile-menu-items/use-cascadding-filter-tile-menu-items.d.ts +14 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/common/reorderable-list.d.ts +32 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/criteria-filter-tile/criteria-filter-tile.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/custom-filter-tile.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/date-filter/date-range-filter-tile/date-range-filter-tile.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/date-filter/relative-date-filter-tile/relative-date-filter-tile.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/{filter-tile.d.ts → filter-tile/filter-tile.d.ts} +13 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/filter-tile/index.d.ts +1 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/filter-tile/types.d.ts +36 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/filter-tile-container.d.ts +12 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/filters-panel/types.d.ts +27 -1
- package/dist/packages/sdk-ui/src/domains/filters/components/index.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/filters/components/member-filter-tile/member-filter-tile.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/unsupported-filter-tile.d.ts +17 -1
- package/dist/packages/sdk-ui/src/domains/filters/shared/clone-filter-and-toggle-locked.d.ts +7 -0
- package/dist/packages/sdk-ui/src/domains/filters/shared/filter-tile-menu-button.d.ts +10 -0
- package/dist/packages/sdk-ui/src/domains/filters/shared/use-filter-tile-menu-items/use-filter-tile-lock-menu-item.d.ts +15 -0
- package/dist/packages/sdk-ui/src/domains/filters/shared/use-filter-tile-menu-items/use-filter-tile-menu-items.d.ts +14 -0
- package/dist/packages/sdk-ui/src/domains/formulas/index.d.ts +0 -1
- package/dist/packages/sdk-ui/src/domains/formulas/use-get-shared-formula.d.ts +20 -7
- package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-data-options/translate-boxplot-data-options.d.ts +2 -2
- package/dist/packages/sdk-ui/src/domains/widgets/components/chart-widget/chart-widget.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/chart-widget/index.d.ts +1 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/chart-widget/types.d.ts +100 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/chart-widget/use-with-chart-widget-drilldown.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/{common-widget.d.ts → common-widget/common-widget.d.ts} +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/common-widget/index.d.ts +2 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/common-widget/types.d.ts +8 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/{custom-widget.d.ts → custom-widget/custom-widget.d.ts} +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/custom-widget/index.d.ts +2 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/custom-widget/types.d.ts +71 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/pivot-table-widget/index.d.ts +1 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/pivot-table-widget/pivot-table-widget.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/pivot-table-widget/types.d.ts +141 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/pivot-table-widget/use-with-pivot-table-widget-drilldown.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/tabber-buttons-widget/types.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/table-widget/index.d.ts +2 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/{table-widget.d.ts → table-widget/table-widget.d.ts} +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/table-widget/types.d.ts +61 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/text-widget/index.d.ts +2 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/{text-widget.d.ts → text-widget/text-widget.d.ts} +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/text-widget/types.d.ts +29 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/widget/index.d.ts +2 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/widget/types.d.ts +45 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/{widget.d.ts → widget/widget.d.ts} +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-dashboard-filters.d.ts +425 -425
- package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-filters.d.ts +34 -34
- package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-style-options/index.d.ts +1 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-style-options/to-widget-dto-style.d.ts +63 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/utils.d.ts +11 -5
- package/dist/packages/sdk-ui/src/domains/widgets/helpers/header-menu-utils.d.ts +9 -0
- package/dist/packages/sdk-ui/src/domains/widgets/helpers/index.d.ts +7 -0
- package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-container/index.d.ts +2 -0
- package/dist/packages/sdk-ui/src/domains/widgets/shared/{widget-container.d.ts → widget-container/widget-container.d.ts} +7 -3
- package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header/types.d.ts +42 -0
- package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header/widget-header-info-button.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header/widget-header-toolbar.d.ts +23 -0
- package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header/widget-header.d.ts +14 -0
- package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header/widget-menu-button.d.ts +5 -0
- package/dist/packages/sdk-ui/src/domains/widgets/widget-model/widget-model-translator/widget-model-translator.d.ts +8 -1
- package/dist/packages/sdk-ui/src/domains/widgets/widget-model/widget-model.d.ts +1 -1
- package/dist/packages/sdk-ui/src/infra/api/rest-api.d.ts +2 -1
- package/dist/packages/sdk-ui/src/infra/api/types/dashboard-dto.d.ts +2 -1
- package/dist/packages/sdk-ui/src/infra/app/client-application.d.ts +17 -0
- package/dist/packages/sdk-ui/src/infra/app/settings/settings.d.ts +4 -0
- package/dist/packages/sdk-ui/src/infra/app/settings/types/deployment-props.d.ts +2 -1
- package/dist/packages/sdk-ui/src/infra/app/settings/types/features.d.ts +18 -1
- package/dist/packages/sdk-ui/src/infra/contexts/custom-widgets-provider/types.d.ts +41 -12
- package/dist/packages/sdk-ui/src/infra/contexts/custom-widgets-provider/use-execute-custom-widget-query.d.ts +12 -3
- package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/index.d.ts +5 -0
- package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/plugin-context.d.ts +15 -0
- package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/plugin-provider.d.ts +21 -0
- package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/types.d.ts +50 -0
- package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/validate-plugins.d.ts +9 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/de-de.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/en-us.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/es-ar.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/es-es.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/fr-fr.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/it-it.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ja-jp.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ko-kr.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/nl-nl.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/pt-br.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ru-ru.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/tr-tr.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/zh-cn.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/en.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/index.d.ts +28 -0
- package/dist/packages/sdk-ui/src/modules/ai/api/chat-rest-api.d.ts +5 -3
- package/dist/packages/sdk-ui/src/modules/ai/api/narration-endpoints.d.ts +25 -0
- package/dist/packages/sdk-ui/src/modules/ai/api/types.d.ts +1 -1
- package/dist/packages/sdk-ui/src/modules/ai/chart/nlq-chart-widget.d.ts +2 -2
- package/dist/packages/sdk-ui/src/modules/ai/get-nlg-insights-from-widget.d.ts +4 -1
- package/dist/packages/sdk-ui/src/modules/ai/use-get-nlq-result.d.ts +1 -1
- package/dist/packages/sdk-ui/src/modules/analytics-composer/common/utils.d.ts +2 -1
- package/dist/packages/sdk-ui/src/modules/analytics-composer/dashboard/stringify-widgets.d.ts +1 -1
- package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/translate-dimensions-from-json.d.ts +3 -2
- package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/translate-dimensions-to-json.d.ts +6 -6
- package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/translate-filters-to-json.d.ts +3 -4
- package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/translate-measures-from-json.d.ts +13 -28
- package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/translate-measures-to-json.d.ts +6 -7
- package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/types.d.ts +45 -0
- package/dist/packages/sdk-ui/src/modules/analytics-composer/types.d.ts +3 -1
- package/dist/packages/sdk-ui/src/modules/analytics-composer/widget/to-widget-code.d.ts +1 -1
- package/dist/packages/sdk-ui/src/modules/analytics-composer/widget/to-widget-props.d.ts +1 -1
- package/dist/packages/sdk-ui/src/modules/analytics-composer/widget/widget-composer.d.ts +1 -1
- package/dist/packages/sdk-ui/src/props.d.ts +19 -427
- package/dist/packages/sdk-ui/src/public-api/internal.d.ts +4 -0
- package/dist/packages/sdk-ui/src/public-api/public.d.ts +7 -7
- package/dist/packages/sdk-ui/src/public-api/sisense-internal.d.ts +6 -0
- package/dist/packages/sdk-ui/src/shared/components/alert/alert.d.ts +91 -0
- package/dist/packages/sdk-ui/src/shared/components/alert/index.d.ts +2 -0
- package/dist/packages/sdk-ui/src/shared/components/dynamic-size-container/default-size.d.ts +6 -6
- package/dist/packages/sdk-ui/src/shared/components/menu/menu-button.d.ts +2 -1
- package/dist/packages/sdk-ui/src/shared/components/quota-notification/quota-notification.d.ts +32 -0
- package/dist/packages/sdk-ui/src/shared/hooks/use-app-settings.d.ts +11 -0
- package/dist/packages/sdk-ui/src/shared/hooks/use-quota-notification.d.ts +54 -0
- package/dist/packages/sdk-ui/src/shared/hooks/use-quota-warning-dismissed.d.ts +8 -0
- package/dist/packages/sdk-ui/src/shared/icons/warning-icon.d.ts +6 -0
- package/dist/packages/sdk-ui/src/shared/icons/x-circle-icon.d.ts +6 -0
- package/dist/packages/sdk-ui/src/shared/types/menu-item.d.ts +17 -0
- package/dist/packages/sdk-ui/src/types.d.ts +113 -6
- package/dist/{use-common-filters-B2wOzse2.js → quota-notification-D6oMJal8.js} +11177 -10827
- package/dist/{use-common-filters-BCebg2_K.cjs → quota-notification-z3dv2KoH.cjs} +164 -114
- package/dist/translations/de-de.cjs +1 -1
- package/dist/translations/de-de.js +16 -2
- package/dist/translations/en-us.cjs +1 -1
- package/dist/translations/en-us.js +1 -1
- package/dist/translations/es-ar.cjs +1 -1
- package/dist/translations/es-ar.js +16 -2
- package/dist/translations/es-es.cjs +1 -1
- package/dist/translations/es-es.js +16 -2
- package/dist/translations/fr-fr.cjs +1 -1
- package/dist/translations/fr-fr.js +16 -2
- package/dist/translations/it-it.cjs +1 -1
- package/dist/translations/it-it.js +16 -2
- package/dist/translations/ja-jp.cjs +1 -1
- package/dist/translations/ja-jp.js +16 -2
- package/dist/translations/ko-kr.cjs +1 -1
- package/dist/translations/ko-kr.js +16 -2
- package/dist/translations/nl-nl.cjs +1 -1
- package/dist/translations/nl-nl.js +16 -2
- package/dist/translations/pt-br.cjs +1 -1
- package/dist/translations/pt-br.js +16 -2
- package/dist/translations/ru-ru.cjs +1 -1
- package/dist/translations/ru-ru.js +16 -2
- package/dist/translations/tr-tr.cjs +1 -1
- package/dist/translations/tr-tr.js +16 -2
- package/dist/translations/zh-cn.cjs +1 -1
- package/dist/translations/zh-cn.js +16 -2
- package/dist/{types-YU936hyL.cjs → types-CoY6F8Ma.cjs} +1 -1
- package/dist/{types-tDJE6TNR.js → types-ixSwJkxM.js} +1 -1
- package/dist/{utils-BRCTwjTN.js → utils-BP-BglHE.js} +5797 -5781
- package/dist/{utils-pvzOGByh.cjs → utils-C8YMrOdw.cjs} +36 -36
- package/dist/{widget-composer-T6nvM6Xc.js → widget-composer-CUUFoCb9.js} +3 -3
- package/dist/{widget-composer-ChJ9V_fN.cjs → widget-composer-DI4sHaNe.cjs} +3 -3
- package/package.json +13 -10
- package/dist/execute-query-CgkFRn7s.cjs +0 -1
- package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header-info-button.d.ts +0 -9
- package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header.d.ts +0 -13
- /package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/{use-dasboard-model-utils.d.ts → use-dashboard-model-utils.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var je=Object.defineProperty,Qe=Object.defineProperties;var Ke=Object.getOwnPropertyDescriptors;var me=Object.getOwnPropertySymbols;var Ye=Object.prototype.hasOwnProperty,He=Object.prototype.propertyIsEnumerable;var pe=(e,r,t)=>r in e?je(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,F=(e,r)=>{for(var t in r||(r={}))Ye.call(r,t)&&pe(e,t,r[t]);if(me)for(var t of me(r))He.call(r,t)&&pe(e,t,r[t]);return e},C=(e,r)=>Qe(e,Ke(r));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("../types-YU936hyL.cjs"),l=require("../execute-query-CgkFRn7s.cjs"),J=require("../dimensions-CgMckRe2.cjs");class Ze{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 we{constructor(r){this.generateIdentifier=r,this.kv=new Ze}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 Ge extends we{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 Xe(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 ve(e,r){const t=Xe(e);if("find"in t)return t.find(r);const s=t;for(let n=0;n<s.length;n++){const a=s[n];if(r(a))return a}}function B(e,r){Object.entries(e).forEach(([t,s])=>r(s,t))}function j(e,r){return e.indexOf(r)!==-1}function ye(e,r){for(let t=0;t<e.length;t++){const s=e[t];if(r(s))return s}}class er{constructor(){this.transfomers={}}register(r){this.transfomers[r.name]=r}findApplicable(r){return ve(this.transfomers,t=>t.isApplicable(r))}findByName(r){return this.transfomers[r]}}const rr=e=>Object.prototype.toString.call(e).slice(8,-1),qe=e=>typeof e=="undefined",tr=e=>e===null,_=e=>typeof e!="object"||e===null||e===Object.prototype?!1:Object.getPrototypeOf(e)===null?!0:Object.getPrototypeOf(e)===Object.prototype,X=e=>_(e)&&Object.keys(e).length===0,N=e=>Array.isArray(e),sr=e=>typeof e=="string",nr=e=>typeof e=="number"&&!isNaN(e),ir=e=>typeof e=="boolean",ar=e=>e instanceof RegExp,L=e=>e instanceof Map,V=e=>e instanceof Set,Ee=e=>rr(e)==="Symbol",or=e=>e instanceof Date&&!isNaN(e.valueOf()),ur=e=>e instanceof Error,ge=e=>typeof e=="number"&&isNaN(e),lr=e=>ir(e)||tr(e)||qe(e)||nr(e)||sr(e)||Ee(e),cr=e=>typeof e=="bigint",fr=e=>e===1/0||e===-1/0,dr=e=>ArrayBuffer.isView(e)&&!(e instanceof DataView),mr=e=>e instanceof URL,Ce=e=>e.replace(/\./g,"\\."),H=e=>e.map(String).map(Ce).join("."),k=e=>{const r=[];let t="";for(let n=0;n<e.length;n++){let a=e.charAt(n);if(a==="\\"&&e.charAt(n+1)==="."){t+=".",n++;continue}if(a==="."){r.push(t),t="";continue}t+=a}const s=t;return r.push(s),r};function x(e,r,t,s){return{isApplicable:e,annotation:r,transform:t,untransform:s}}const $e=[x(qe,"undefined",()=>null,()=>{}),x(cr,"bigint",e=>e.toString(),e=>typeof BigInt!="undefined"?BigInt(e):(console.error("Please add a BigInt polyfill."),e)),x(or,"Date",e=>e.toISOString(),e=>new Date(e)),x(ur,"Error",(e,r)=>{const t={name:e.name,message:e.message};return r.allowedErrorProps.forEach(s=>{t[s]=e[s]}),t},(e,r)=>{const t=new Error(e.message);return t.name=e.name,t.stack=e.stack,r.allowedErrorProps.forEach(s=>{t[s]=e[s]}),t}),x(ar,"regexp",e=>""+e,e=>{const r=e.slice(1,e.lastIndexOf("/")),t=e.slice(e.lastIndexOf("/")+1);return new RegExp(r,t)}),x(V,"set",e=>[...e.values()],e=>new Set(e)),x(L,"map",e=>[...e.entries()],e=>new Map(e)),x(e=>ge(e)||fr(e),"number",e=>ge(e)?"NaN":e>0?"Infinity":"-Infinity",Number),x(e=>e===0&&1/e===-1/0,"number",()=>"-0",Number),x(mr,"URL",e=>e.toString(),e=>new URL(e))];function Q(e,r,t,s){return{isApplicable:e,annotation:r,transform:t,untransform:s}}const xe=Q((e,r)=>Ee(e)?!!r.symbolRegistry.getIdentifier(e):!1,(e,r)=>["symbol",r.symbolRegistry.getIdentifier(e)],e=>e.description,(e,r,t)=>{const s=t.symbolRegistry.getValue(r[1]);if(!s)throw new Error("Trying to deserialize unknown symbol");return s}),pr=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,Uint8ClampedArray].reduce((e,r)=>(e[r.name]=r,e),{}),Ae=Q(dr,e=>["typed-array",e.constructor.name],e=>[...e],(e,r)=>{const t=pr[r[1]];if(!t)throw new Error("Trying to deserialize unknown typed array");return new t(e)});function De(e,r){return e!=null&&e.constructor?!!r.classRegistry.getIdentifier(e.constructor):!1}const Me=Q(De,(e,r)=>["class",r.classRegistry.getIdentifier(e.constructor)],(e,r)=>{const t=r.classRegistry.getAllowedProps(e.constructor);if(!t)return F({},e);const s={};return t.forEach(n=>{s[n]=e[n]}),s},(e,r,t)=>{const s=t.classRegistry.getValue(r[1]);if(!s)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(s.prototype),e)}),Se=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 s=t.customTransformerRegistry.findByName(r[1]);if(!s)throw new Error("Trying to deserialize unknown custom value");return s.deserialize(e)}),yr=[Me,xe,Se,Ae],he=(e,r)=>{const t=ye(yr,n=>n.isApplicable(e,r));if(t)return{value:t.transform(e,r),type:t.annotation(e,r)};const s=ye($e,n=>n.isApplicable(e,r));if(s)return{value:s.transform(e,r),type:s.annotation}},Ne={};$e.forEach(e=>{Ne[e.annotation]=e});const gr=(e,r,t)=>{if(N(r))switch(r[0]){case"symbol":return xe.untransform(e,r,t);case"class":return Me.untransform(e,r,t);case"custom":return Se.untransform(e,r,t);case"typed-array":return Ae.untransform(e,r,t);default:throw new Error("Unknown transformation: "+r)}else{const s=Ne[r];if(!s)throw new Error("Unknown transformation: "+r);return s.untransform(e,t)}},P=(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 Te(e){if(j(e,"__proto__"))throw new Error("__proto__ is not allowed as a property");if(j(e,"prototype"))throw new Error("prototype is not allowed as a property");if(j(e,"constructor"))throw new Error("constructor is not allowed as a property")}const hr=(e,r)=>{Te(r);for(let t=0;t<r.length;t++){const s=r[t];if(V(e))e=P(e,+s);else if(L(e)){const n=+s,a=+r[++t]==0?"key":"value",i=P(e,n);switch(a){case"key":e=i;break;case"value":e=e.get(i);break}}else e=e[s]}return e},v=(e,r,t)=>{if(Te(r),r.length===0)return t(e);let s=e;for(let a=0;a<r.length-1;a++){const i=r[a];if(N(s)){const o=+i;s=s[o]}else if(_(s))s=s[i];else if(V(s)){const o=+i;s=P(s,o)}else if(L(s)){if(a===r.length-2)break;const u=+i,c=+r[++a]==0?"key":"value",y=P(s,u);switch(c){case"key":s=y;break;case"value":s=s.get(y);break}}}const n=r[r.length-1];if(N(s)?s[+n]=t(s[+n]):_(s)&&(s[n]=t(s[n])),V(s)){const a=P(s,+n),i=t(a);a!==i&&(s.delete(a),s.add(i))}if(L(s)){const a=+r[r.length-2],i=P(s,a);switch(+n==0?"key":"value"){case"key":{const u=t(i);s.set(u,s.get(i)),u!==i&&s.delete(i);break}case"value":{s.set(i,t(s.get(i)));break}}}return e};function ee(e,r,t=[]){if(!e)return;if(!N(e)){B(e,(a,i)=>ee(a,r,[...t,...k(i)]));return}const[s,n]=e;n&&B(n,(a,i)=>{ee(a,r,[...t,...k(i)])}),r(s,t)}function br(e,r,t){return ee(r,(s,n)=>{e=v(e,n,a=>gr(a,s,t))}),e}function Fr(e,r){function t(s,n){const a=hr(e,k(n));s.map(k).forEach(i=>{e=v(e,i,()=>a)})}if(N(r)){const[s,n]=r;s.forEach(a=>{e=v(e,k(a),()=>e)}),n&&B(n,t)}else B(r,t);return e}const wr=(e,r)=>_(e)||N(e)||L(e)||V(e)||De(e,r);function qr(e,r,t){const s=t.get(e);s?s.push(r):t.set(e,[r])}function Er(e,r){const t={};let s;return e.forEach(n=>{if(n.length<=1)return;r||(n=n.map(o=>o.map(String)).sort((o,u)=>o.length-u.length));const[a,...i]=n;a.length===0?s=i.map(H):t[H(a)]=i.map(H)}),s?X(t)?[s]:[s,t]:X(t)?void 0:t}const Oe=(e,r,t,s,n=[],a=[],i=new Map)=>{var w;const o=lr(e);if(!o){qr(e,n,r);const m=i.get(e);if(m)return s?{transformedValue:null}:m}if(!wr(e,t)){const m=he(e,t),d=m?{transformedValue:m.value,annotations:[m.type]}:{transformedValue:e};return o||i.set(e,d),d}if(j(a,e))return{transformedValue:null};const u=he(e,t),c=(w=u==null?void 0:u.value)!=null?w:e,y=N(c)?[]:{},p={};B(c,(m,d)=>{if(d==="__proto__"||d==="constructor"||d==="prototype")throw new Error(`Detected property ${d}. This is a prototype pollution risk, please remove it from your object.`);const q=Oe(m,r,t,s,[...n,d],[...a,e],i);y[d]=q.transformedValue,N(q.annotations)?p[d]=q.annotations:_(q.annotations)&&B(q.annotations,(z,D)=>{p[Ce(d)+"."+D]=z})});const g=X(p)?{transformedValue:y,annotations:u?[u.type]:void 0}:{transformedValue:y,annotations:u?[u.type,p]:p};return o||i.set(e,g),g};function Re(e){return Object.prototype.toString.call(e).slice(8,-1)}function be(e){return Re(e)==="Array"}function Cr(e){if(Re(e)!=="Object")return!1;const r=Object.getPrototypeOf(e);return!!r&&r.constructor===Object&&r===Object.prototype}function $r(e,r,t,s,n){const a={}.propertyIsEnumerable.call(s,r)?"enumerable":"nonenumerable";a==="enumerable"&&(e[r]=t),n&&a==="nonenumerable"&&Object.defineProperty(e,r,{value:t,enumerable:!1,writable:!0,configurable:!0})}function re(e,r={}){if(be(e))return e.map(n=>re(n,r));if(!Cr(e))return e;const t=Object.getOwnPropertyNames(e),s=Object.getOwnPropertySymbols(e);return[...t,...s].reduce((n,a)=>{if(be(r.props)&&!r.props.includes(a))return n;const i=e[a],o=re(i,r);return $r(n,a,o,e,r.nonenumerable),n},{})}class f{constructor({dedupe:r=!1}={}){this.classRegistry=new Ge,this.symbolRegistry=new we(t=>{var s;return(s=t.description)!=null?s:""}),this.customTransformerRegistry=new er,this.allowedErrorProps=[],this.dedupe=r}serialize(r){const t=new Map,s=Oe(r,t,this,this.dedupe),n={json:s.transformedValue};s.annotations&&(n.meta=C(F({},n.meta),{values:s.annotations}));const a=Er(t,this.dedupe);return a&&(n.meta=C(F({},n.meta),{referentialEqualities:a})),n}deserialize(r){const{json:t,meta:s}=r;let n=re(t);return s!=null&&s.values&&(n=br(n,s.values,this)),s!=null&&s.referentialEqualities&&(n=Fr(n,s.referentialEqualities)),n}stringify(r){return JSON.stringify(this.serialize(r))}parse(r){return this.deserialize(JSON.parse(r))}registerClass(r,t){this.classRegistry.register(r,t)}registerSymbol(r,t){this.symbolRegistry.register(r,t)}registerCustom(r,t){this.customTransformerRegistry.register(F({name:t},r))}allowErrorProps(...r){this.allowedErrorProps.push(...r)}}f.defaultInstance=new f;f.serialize=f.defaultInstance.serialize.bind(f.defaultInstance);f.deserialize=f.defaultInstance.deserialize.bind(f.defaultInstance);f.stringify=f.defaultInstance.stringify.bind(f.defaultInstance);f.parse=f.defaultInstance.parse.bind(f.defaultInstance);f.registerClass=f.defaultInstance.registerClass.bind(f.defaultInstance);f.registerSymbol=f.defaultInstance.registerSymbol.bind(f.defaultInstance);f.registerCustom=f.defaultInstance.registerCustom.bind(f.defaultInstance);f.allowErrorProps=f.defaultInstance.allowErrorProps.bind(f.defaultInstance);const I=e=>e===void 0?l.Sort.None:e,xr=e=>new T.JaqlElement(e.metadataItem,e.type),ne=e=>new l.DimensionalAttribute(e.name,e.expression,e.type,e.description,I(e.sort),e.dataSource,e.composeCode),ie=e=>new l.DimensionalLevelAttribute(e.name,e.expression,e.granularity,e.format,e.description,I(e.sort),e.dataSource,e.composeCode),E=e=>{switch(e.__serializable){case"DimensionalAttribute":return ne(e);case"DimensionalLevelAttribute":return ie(e);default:return e}},Ie=e=>new J.DimensionalDimension(e.name,e.expression,e.attributes.map(E),e.dimensions.map(Ar),e.type,e.description,I(e.sort),e.dataSource,e.composeCode,e.defaultAttribute?E(e.defaultAttribute):void 0),ze=e=>new J.DimensionalDateDimension(e.name,e.expression,e.description,I(e.sort),e.dataSource,e.composeCode),Ar=e=>{switch(e.__serializable){case"DimensionalDimension":return Ie(e);case"DimensionalDateDimension":return ze(e);default:return e}},ae=e=>new l.DimensionalBaseMeasure(e.name,E(e.attribute),e.aggregation,e.format,e.description,I(e.sort),e.dataSource,e.composeCode),oe=e=>{const r=Object.fromEntries(Object.entries(e.context).map(([t,s])=>{if(s&&typeof s=="object"&&"__serializable"in s)switch(s.__serializable){case"DimensionalAttribute":return[t,ne(s)];case"DimensionalLevelAttribute":return[t,ie(s)];case"DimensionalBaseMeasure":return[t,ae(s)];case"DimensionalCalculatedMeasure":return[t,oe(s)];default:return[t,s]}return[t,s]}));return new l.DimensionalCalculatedMeasure(e.name,e.expression,r,e.format,e.description,I(e.sort),e.dataSource,e.composeCode)},Pe=e=>new l.DimensionalMeasureTemplate(e.name,E(e.attribute),e.format,e.description,I(e.sort),e.dataSource,e.composeCode),Z=e=>{switch(e.__serializable){case"DimensionalBaseMeasure":return ae(e);case"DimensionalCalculatedMeasure":return oe(e);case"DimensionalMeasureTemplate":return Pe(e);default:return e}},h=e=>{switch(e.__serializable){case"MembersFilter":return new l.MembersFilter(E(e.attribute),e.members,e.config.backgroundFilter?C(F({},e.config),{backgroundFilter:h(e.config.backgroundFilter)}):e.config,e.composeCode);case"LogicalAttributeFilter":return new l.LogicalAttributeFilter(e.filters.map(t=>h(t)),e.operator,e.config,e.composeCode);case"CascadingFilter":return new l.CascadingFilter(e._filters.map(t=>h(t)),e.config,e.composeCode);case"ExcludeFilter":return new l.ExcludeFilter(h(e.filter),e.input?h(e.input):void 0,e.config,e.composeCode);case"MeasureFilter":return new l.MeasureFilter(E(e.attribute),Z(e.measure),e.operatorA,e.valueA,e.operatorB,e.valueB,e.config,e.composeCode);case"RankingFilter":return new l.RankingFilter(E(e.attribute),Z(e.measure),e.operator,e.count,e.config,e.composeCode);case"MeasureRankingFilter":return new l.MeasureRankingFilter(Z(e.measure),e.operator,e.count,e.config,e.composeCode);case"NumericFilter":return new l.NumericFilter(E(e.attribute),e.operatorA,e.valueA,e.operatorB,e.valueB,e.config,e.composeCode);case"TextFilter":return new l.TextFilter(E(e.attribute),e.operatorA,e.valueA,e.config,e.composeCode);case"DateRangeFilter":{const{valueA:t,valueB:s}=e;return new l.DateRangeFilter(E(e.attribute),t,s,e.config,e.composeCode)}case"RelativeDateFilter":return new l.RelativeDateFilter(E(e.attribute),e.offset,e.count,e.operator,e.anchor,e.config,e.composeCode);case"CustomFilter":return new l.CustomFilter(E(e.attribute),e.jaqlExpression,e.config,e.composeCode);default:return e}};f.registerCustom({isApplicable:T.isJaqlElement,serialize:e=>e.serialize(),deserialize:e=>xr(e)},"JaqlElement");f.registerCustom({isApplicable:l.isDimensionalAttribute,serialize:e=>e.serialize(),deserialize:e=>ne(e)},"DimensionalAttribute");f.registerCustom({isApplicable:l.isDimensionalLevelAttribute,serialize:e=>e.serialize(),deserialize:e=>ie(e)},"DimensionalLevelAttribute");f.registerCustom({isApplicable:J.isDimensionalDimension,serialize:e=>e.serialize(),deserialize:e=>Ie(e)},"DimensionalDimension");f.registerCustom({isApplicable:J.isDimensionalDateDimension,serialize:e=>e.serialize(),deserialize:e=>ze(e)},"DimensionalDateDimension");f.registerCustom({isApplicable:l.isDimensionalBaseMeasure,serialize:e=>e.serialize(),deserialize:e=>ae(e)},"DimensionalBaseMeasure");f.registerCustom({isApplicable:l.isDimensionalCalculatedMeasure,serialize:e=>e.serialize(),deserialize:e=>oe(e)},"DimensionalCalculatedMeasure");f.registerCustom({isApplicable:l.isDimensionalMeasureTemplate,serialize:e=>e.serialize(),deserialize:e=>Pe(e)},"DimensionalMeasureTemplate");f.registerCustom({isApplicable:l.isMembersFilter,serialize:e=>e.serialize(),deserialize:e=>h(e)},"MembersFilter");f.registerCustom({isApplicable:l.isLogicalAttributeFilter,serialize:e=>e.serialize(),deserialize:e=>h(e)},"LogicalAttributeFilter");f.registerCustom({isApplicable:l.isCascadingFilter,serialize:e=>e.serialize(),deserialize:e=>h(e)},"CascadingFilter");f.registerCustom({isApplicable:l.isExcludeFilter,serialize:e=>e.serialize(),deserialize:e=>h(e)},"ExcludeFilter");f.registerCustom({isApplicable:l.isMeasureFilter,serialize:e=>e.serialize(),deserialize:e=>h(e)},"MeasureFilter");f.registerCustom({isApplicable:l.isRankingFilter,serialize:e=>e.serialize(),deserialize:e=>h(e)},"RankingFilter");f.registerCustom({isApplicable:l.isMeasureRankingFilter,serialize:e=>e.serialize(),deserialize:e=>h(e)},"MeasureRankingFilter");f.registerCustom({isApplicable:l.isNumericFilter,serialize:e=>e.serialize(),deserialize:e=>h(e)},"NumericFilter");f.registerCustom({isApplicable:l.isTextFilter,serialize:e=>e.serialize(),deserialize:e=>h(e)},"TextFilter");f.registerCustom({isApplicable:l.isDateRangeFilter,serialize:e=>e.serialize(),deserialize:e=>h(e)},"DateRangeFilter");f.registerCustom({isApplicable:l.isRelativeDateFilter,serialize:e=>e.serialize(),deserialize:e=>h(e)},"RelativeDateFilter");f.registerCustom({isApplicable:l.isCustomFilter,serialize:e=>e.serialize(),deserialize:e=>h(e)},"CustomFilter");const Dr=f,b="DM.";function A(e){return typeof e=="object"&&e!==null&&"function"in e&&"args"in e}function ue(e){return e.every(A)}function K(e){return"attribute"in e&&"config"in e}function U(e){return"left"in e&&"right"in e&&"operator"in e}function Be(e){return!K(e)&&!U(e)}function Mr(e){return e.every(r=>typeof r=="string")}function Sr(e){const r=[...e].sort((a,i)=>i.name.length-a.name.length),t=new Map,s=new Map,n=new Map;for(const a of e){t.set(a.name,a);const i=[...a.columns].sort((u,c)=>c.name.length-u.name.length);n.set(a.name,i);const o=new Map;for(const u of a.columns)o.set(u.name,u);s.set(a.name,o)}return{sortedTables:r,tableColumnMap:n,tableMap:t,columnMap:s}}function ke(e,r){if(!e.startsWith(b))throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${b}TableName.ColumnName[.Level]"`);const t=e.slice(b.length);if(!t)throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${b}TableName.ColumnName[.Level]"`);let s,n;for(const p of r.sortedTables)if(t.startsWith(p.name+".")){const g=t.slice(p.name.length+1);if(!g)throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${b}TableName.ColumnName[.Level]"`);s=p,n=g;break}if(!s){const p=t.indexOf(".");if(p===-1)throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${b}TableName.ColumnName[.Level]"`);const g=t.slice(0,p);throw new Error(`Table "${g}" not found in the data model`)}const a=r.tableColumnMap.get(s.name);if(!a)throw new Error(`Table "${s.name}" found but has no columns`);let i,o;const u=l.DateLevels.all;for(const p of a){if(n===p.name)return{table:s,column:p};if(!n.startsWith(p.name+"."))continue;const g=n.slice(p.name.length+1);if(!g)continue;const w=u.includes(g),m=l.isDatetime(p.dataType);if(w){if(m)return{table:s,column:p,level:g};i||(i=p,o=g);continue}m&&!i&&(i=p,o=g)}if(i&&o)throw u.includes(o)?new Error(`Invalid date level "${o}" in dimensional element "${e}". Column "${s.name}.${i.name}" is not a datetime column`):new Error(`Invalid date level "${o}" in dimensional element "${e}". Valid levels are: ${u.join(", ")}`);const c=n.indexOf("."),y=c===-1?n:n.slice(0,c);throw new Error(`Column "${y}" not found in table "${s.name}"`)}function Nr(e,r){const{table:t,column:s,level:n}=ke(e,r);if(n){if(!l.isDatetime(s.dataType))throw new Error(`Invalid date level "${n}" in dimensional element "${e}". Column "${t.name}.${s.name}" is not a datetime column`);const a=l.DateLevels.all;if(!a.includes(n))throw new Error(`Invalid date level "${n}" in dimensional element "${e}". Valid levels are: ${a.join(", ")}`);const i=l.DateLevels.dateOnly;if(s.dataType==="date"&&!i.includes(n))throw new Error(`Invalid level "${n}" in dimensional element "${e}". Column "${t.name}.${s.name}" is only a date column, not a datetime column`);const o=l.DateLevels.timeOnly;if(s.dataType==="time"&&!o.includes(n))throw new Error(`Invalid level "${n}" in dimensional element "${e}". Column "${t.name}.${s.name}" is only a time column, not a date column`)}return{column:s,level:n}}function _e(e){return e.type===l.MetadataTypes.TextAttribute}function Le(e){return e.type===l.MetadataTypes.NumericAttribute}function Tr(e){return e.type===l.MetadataTypes.DateLevel}function Or(e){return _e(e)||Le(e)}function Y(e){return e.type===l.MetadataTypes.TextAttribute?"text":e.type===l.MetadataTypes.NumericAttribute?"numeric":e.type===l.MetadataTypes.DateLevel?"date/datetime":"unknown"}function le(e,r,t){const{column:s,level:n}=Nr(e,t);return l.createAttributeHelper({expression:s.expression,dataType:s.dataType,granularity:n,format:void 0,sort:void 0,dataSource:r})}function Rr(e,r,t){const{column:s,level:n}=ke(e,t);if(n)throw new Error(`Invalid DateDimension name format: "${e}". Expected format: "${b}TableName.ColumnName"`);if(!l.isDatetime(s.dataType))throw new Error(`Invalid DateDimension name "${e}". Column "${s.name}" is not a datetime column (got ${s.dataType}).`);return J.createDateDimension({name:s.name,expression:s.expression,dataSource:r})}function S(e,r){const t=e();return t.success?t.data:(r.push(...t.errors),null)}const Ir=e=>{const{data:r}=e,{dataSource:t,schemaIndex:s}=e.context;if(!r)return{success:!0,data:[]};if(!Mr(r))return{success:!1,errors:[{category:"dimensions",index:-1,input:r,message:"Invalid dimensions JSON. Expected an array of strings."}]};const n=[],a=[];return r.forEach((i,o)=>{const u={category:"dimensions",index:o,input:i};try{const c=le(i,t,s);n.push(c)}catch(c){const y=c instanceof Error?c.message:"Unknown error";a.push(C(F({},u),{message:y}))}}),a.length>0?{success:!1,errors:a}:{success:!0,data:n}};function ce(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 zr(e,r){const t=e.replace("measureFactory.",""),n=ce(l.measureFactory,t)(...r);if(!Be(n))throw new Error(`Function "${e}" did not return a valid Measure`);return n}function Pr(e,r){const t=e.replace("filterFactory.logic.",""),n=ce(l.logic,t)(...r);if(!U(n))throw new Error(`Function "${e}" did not return a valid FilterRelations`);return n}function Br(e,r){if(e.startsWith("filterFactory.logic."))return Pr(e,r);const t=e.replace("filterFactory.",""),n=ce(l.filterFactory,t)(...r);if(!K(n)&&!U(n))throw new Error(`Function "${e}" did not return a valid Filter or FilterRelations`);return n}function kr(e,r){const s=e.split(".")[0];if(s==="measureFactory")return zr(e,r);if(s==="filterFactory")return Br(e,r);throw new Error(`Unsupported factory: "${s}". Supported factories: measureFactory, filterFactory`)}const _r=/\[([a-zA-Z_][a-zA-Z0-9_.-]*)\]/g;function Lr(e,r,t={}){const{warnUnusedContext:s=!0,errorOnUnusedContext:n=!0,allowEmptyFormula:a=!1,errorPrefix:i="customFormula validation"}=t,o={isValid:!0,errors:[],warnings:[],references:[],unusedContextKeys:[]};if(!e||e.trim().length===0)return a||(o.errors.push(`${i}args[1]: Formula cannot be empty`),o.isValid=!1),o;const u=/\b\w+\s*\[/gi,c=e.match(u);if(c){const d=c[0].replace(/\s*\[.*$/,"");o.errors.push(`${i}args[1]: Invalid syntax: '${d}' - operator cannot be used before bracket reference without parentheses`),o.isValid=!1}const y=_r,p=new Set;let g;for(;(g=y.exec(e))!==null;){const d=g[1];p.add(d)}o.references=Array.from(p);const w=Object.keys(r);if(o.references.length>0&&(/\b\w+\s*\(/gi.test(e)||o.references.every(D=>{if(!(D in r))return!1;const M=r[D];return A(M)?!1:typeof M=="string"&&M.startsWith(b)?!0:M&&typeof M=="object"&&"kind"in M?M.kind!=="measure":!1})&&(o.errors.push(`${i}args[1]: Formulas with bracket references must contain aggregate function calls`),o.isValid=!1)),o.references.length===0)return o.warnings.push(`${i}args[1]: No bracket references found in formula - ensure this is intentional`),o;if(w.length===0)return o.errors.push(`${i}args[2]: Context cannot be empty - custom formulas require context definitions`),o.isValid=!1,o;const m=[];for(const d of o.references)w.includes(d)||m.push(d);if(m.length>0&&(o.isValid=!1,m.length===1?o.errors.push(`${i}args[1]: Reference [${m[0]}] not found in context. Available keys: ${w.join(", ")}`):o.errors.push(`${i}args[1]: References [${m.join("], [")}] not found in context. Available keys: ${w.join(", ")}`)),(s||n)&&w.length>0){const d=w.filter(q=>!o.references.includes(q));if(o.unusedContextKeys=d,d.length>0){const q=`${i}args[2]: Context keys [${d.join(", ")}] are defined but not used in formula`;n?(o.errors.push(q),o.isValid=!1):s&&o.warnings.push(q)}}return o}function Vr(e,r,t={}){const s=Lr(e,r,t);if(!s.isValid)throw new Error(s.errors.join("; "));s.warnings.length>0&&console.warn("Formula validation warnings:",s.warnings.join("; "))}function Wr(e,r){if(e.length<3||e.length>5)throw new Error(`${r.pathPrefix}Expected 3, 4, or 5 arguments for customFormula (title, formula, context, format?, description?)`);const t=e[1],s=e[2];Vr(t,s,{errorPrefix:`${r.pathPrefix}`,errorOnUnusedContext:!0,allowEmptyFormula:!1});const n={};for(const[a,i]of Object.entries(s)){const o=`args[2].${a}`;if(A(i))n[`${a}`]=$({data:i,context:{dataSource:r.dataSource,schemaIndex:r.schemaIndex,pathPrefix:o}});else if(typeof i=="string"&&i.startsWith(b))try{n[`${a}`]=le(i,r.dataSource,r.schemaIndex)}catch(u){const c=u instanceof Error?u.message:"Unknown error";throw new Error(`${o}: ${c}`)}else if(i&&typeof i=="object"&&"kind"in i)n[`${a}`]=i;else throw new Error(`${o}: Invalid context value for key '${a}'. Expected a function call or attribute reference (${b}...), but got: ${typeof i}`)}e[2]=n}function fe(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 Fe(e,r){const t=fe(e,r);if(!Or(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be string or numeric type, got ${Y(t)} attribute`)}function O(e,r){const t=fe(e,r);if(!Le(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be numeric type, got ${Y(t)} attribute`)}function R(e,r){const t=fe(e,r);if(!_e(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be string type, got ${Y(t)} attribute`)}function Jr(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 Ur(e,r){const t=Jr(e,r);if(!l.isMembersFilter(t))throw new Error(`${r.pathPrefix}args[0]: exclude filter only accepts members filter, got ${t.__serializable||"unknown"} filter`)}const jr={"measureFactory.customFormula":Wr,"filterFactory.equals":Fe,"filterFactory.doesntEqual":Fe,"filterFactory.greaterThan":O,"filterFactory.greaterThanOrEqual":O,"filterFactory.lessThan":O,"filterFactory.lessThanOrEqual":O,"filterFactory.between":O,"filterFactory.betweenNotEqual":O,"filterFactory.numeric":O,"filterFactory.contains":R,"filterFactory.doesntContain":R,"filterFactory.startsWith":R,"filterFactory.doesntStartWith":R,"filterFactory.endsWith":R,"filterFactory.doesntEndWith":R,"filterFactory.like":R,"filterFactory.exclude":Ur};function Qr(e){return jr[`${e}`]}const Kr={"measureFactory.sum":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.average":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.avg":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.min":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.max":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.median":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.count":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.countDistinct":[{type:"Attribute",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.aggregate":[{type:"Attribute",required:!0},{type:"string",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"measureFactory.constant":[{type:"number",required:!0}],"measureFactory.customFormula":[{type:"string",required:!0},{type:"string",required:!0},{type:"CustomFormulaContext",required:!0},{type:"string",required:!1},{type:"string",required:!1}],"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 de(e){return Kr[`${e}`]}function Yr(e){const r=de(e);return r?r.filter(t=>t.required).length:0}function Hr(e){const r=de(e);return r?r.length:0}function Zr(e){if(typeof e!="string"||!/^\d{4}-\d{2}-\d{2}/.test(e))return!1;const t=Date.parse(e);if(isNaN(t)||e.length<10)return!1;const s=new Date(e);return!isNaN(s.getTime())}function G(e,r,t,s){if(e.startsWith(b))try{return le(e,r,t)}catch(n){const a=n instanceof Error?n.message:"Unknown error";throw new Error(`${s}: ${a}`)}throw new Error(`${s}: Invalid attribute "${e}". Expected format: "${b}TableName.ColumnName[.Level]"`)}function Gr(e,r,t,s){if(e.startsWith(b))try{return Rr(e,r,t)}catch(n){const a=n instanceof Error?n.message:"Unknown error";throw new Error(`${s}: ${a}`)}throw new Error(`${s}: Invalid date dimension string "${e}". Expected format: "${b}TableName.ColumnName"`)}function Xr(e){const r=e.data,{argSchema:t,dataSource:s,schemaIndex:n,pathPrefix:a}=e.context,i=a;if(r===void 0){if(t.required)throw new Error(`${i}: Required argument is missing (expected ${t.type})`);return}switch(t.type){case"string":if(typeof r!="string")throw new Error(`${i}: Expected string, got ${typeof r}`);return r;case"number":if(typeof r!="number")throw new Error(`${i}: Expected number, got ${typeof r}`);return r;case"boolean":if(typeof r!="boolean")throw new Error(`${i}: Expected boolean, got ${typeof r}`);return r;case"string[]":if(!Array.isArray(r))throw new Error(`${i}: Expected array of strings, got ${typeof r}. Example: ["value1", "value2"]`);if(!r.every(o=>typeof o=="string"))throw new Error(`${i}: Expected array of strings, but contains non-string values`);return r;case"number[]":if(!Array.isArray(r))throw new Error(`${i}: Expected array of numbers, got ${typeof r}. Example: [10, 20]`);if(!r.every(o=>typeof o=="number"))throw new Error(`${i}: Expected array of numbers, but contains non-number values`);return r;case"Attribute":if(typeof r!="string")throw new Error(`${i}: Expected attribute string, got ${typeof r}. Example: "DM.Commerce.Revenue"`);return G(r,s,n,i);case"Attribute[]":if(!Array.isArray(r))throw new Error(`${i}: Expected array of attributes, got ${typeof r}. Example: ["DM.Commerce.AgeRange"]`);return r.map((o,u)=>{if(typeof o!="string")throw new Error(`${i}[${u}]: Expected attribute string, got ${typeof o}`);return G(o,s,n,`${i}[${u}]`)});case"Measure":case"BaseMeasure":if(!A(r))throw new Error(`${i}: Expected measure function call, got ${typeof r}. Example: {"function": "measureFactory.sum", "args": ["DM.Commerce.Revenue"]}`);return $({data:r,context:{dataSource:s,schemaIndex:n,pathPrefix:i}});case"Measure[]":if(!Array.isArray(r))throw new Error(`${i}: Expected array of measure function calls, got ${typeof r}`);return r.map((o,u)=>{if(!A(o))throw new Error(`${i}[${u}]: Expected measure function call, got ${typeof o}`);return $({data:o,context:{dataSource:s,schemaIndex:n,pathPrefix:`${i}[${u}]`}})});case"Filter":if(!A(r))throw new Error(`${i}: Expected filter function call, got ${typeof r}. Example: {"function": "filterFactory.contains", "args": ["DM.Brand.Brand", "Apple"]}`);return $({data:r,context:{dataSource:s,schemaIndex:n,pathPrefix:i}});case"Filter[]":if(!Array.isArray(r))throw new Error(`${i}: Expected array of filter function calls, got ${typeof r}`);return r.map((o,u)=>{if(!A(o))throw new Error(`${i}[${u}]: Expected filter function call, got ${typeof o}`);return $({data:o,context:{dataSource:s,schemaIndex:n,pathPrefix:`${i}[${u}]`}})});case"FilterRelationsNode":if(Array.isArray(r))return r.map((o,u)=>{if(!A(o))throw new Error(`${i}[${u}]: Expected filter function call, got ${typeof o}`);return $({data:o,context:{dataSource:s,schemaIndex:n,pathPrefix:`${i}[${u}]`}})});if(A(r))return $({data:r,context:{dataSource:s,schemaIndex:n,pathPrefix:i}});throw new Error(`${i}: Expected filter function call or array of filters, got ${typeof r}`);case"DateDimension":if(typeof r!="string")throw new Error(`${i}: Expected date dimension string, got ${typeof r}. Example: "DM.Commerce.Date"`);return Gr(r,s,n,i);case"LevelAttribute":{if(typeof r!="string")throw new Error(`${i}: Expected date attribute string, got ${typeof r}. Example: "DM.Commerce.Date.Years"`);const o=G(r,s,n,i);if(!Tr(o))throw new Error(`${i}: Attribute must be date/datetime type, got ${Y(o)} attribute`);return o}case"Measure | number":if(typeof r=="number")return r;if(A(r))return $({data:r,context:{dataSource:s,schemaIndex:n,pathPrefix:i}});throw new Error(`${i}: Expected measure function call or number, got ${typeof r}`);case"Date | string":if(typeof r=="string"){if(Zr(r))return r;throw new Error(`${i}: Expected valid ISO date string or Date object, got invalid date string "${r}"`)}else{if(r instanceof Date)return r;throw new Error(`${i}: Expected date string or Date object, got ${typeof r}`)}case"string | number":if(typeof r=="string"||typeof r=="number")return r;throw new Error(`${i}: Expected string or number, got ${typeof r}`);case"BaseFilterConfig":case"MembersFilterConfig":case"CustomFormulaContext":case"any":if(r==null&&t.required)throw new Error(`${i}: Required argument is null/undefined`);return r;default:return r}}function $(e){const{data:r}=e,{dataSource:t,schemaIndex:s,pathPrefix:n}=e.context,{function:a,args:i}=r,o=n?`${n}.`:"",u=de(a);if(!u)throw new Error(`${o}function: Unknown function "${a}"`);const c=Yr(a),y=Hr(a);if(i.length<c)throw new Error(`${o}function: Expected at least ${c} arguments, got ${i.length}`);if(i.length>y)throw new Error(`${o}function: Expected at most ${y} arguments, got ${i.length}`);const p=[],g=[];for(let m=0;m<Math.max(i.length,u.length);m++){const d=u[`${m}`],q=i[`${m}`],z=o?`${o}args[${m}]`:`args[${m}]`;if(q===void 0){d!=null&&d.required&&g.push(`${z}: Missing required argument (expected ${d.type})`);continue}if(!d){g.push(`${z}: Unexpected argument`);continue}try{const D=Xr({data:q,context:{dataSource:t,schemaIndex:s,pathPrefix:z,argSchema:d}});p.push(D)}catch(D){const M=D instanceof Error?D.message:"Unknown error";g.push(M)}}if(g.length>0){const m=g.join("; ");throw new Error(m)}const w=Qr(a);if(w)try{w(p,{dataSource:t,schemaIndex:s,pathPrefix:o})}catch(m){const d=m instanceof Error?m.message:"Unknown validation error";throw new Error(d)}return kr(a,p)}function Ve(e){const{attribute:r,config:t}=e;if(l.isMembersFilter(e)&&l.isLevelAttribute(r)){const{granularity:s}=r,n=e.members.map(o=>s==="Years"&&!isNaN(Number(o))?`${o}-01-01T00:00:00`:o),a=l.simplifyFilterConfig(t),i=Object.keys(a).length===0?void 0:a;return l.members(r,n,i)}return e}function vr(e){let r=[];for(const t of e)U(t)?r=l.mergeFiltersOrFilterRelations(t,r):r=l.mergeFiltersOrFilterRelations([Ve(t)],r);return r!=null?r:[]}const et=e=>{const{data:r}=e,{dataSource:t,schemaIndex:s}=e.context,n=[],a=[];return r.forEach((i,o)=>{const u={category:"filters",index:o,input:i};try{const c=$({data:i,context:{dataSource:t,schemaIndex:s,pathPrefix:""}});!U(c)&&!K(c)?a.push(C(F({},u),{message:"Invalid filter JSON"})):n.push(c)}catch(c){const y=c instanceof Error?c.message:"Unknown error";a.push(C(F({},u),{message:y}))}}),a.length>0?{success:!1,errors:a}:{success:!0,data:vr(n)}},rt=e=>{const{data:r}=e,{dataSource:t,schemaIndex:s}=e.context;return r?ue(r)?et({data:r,context:{dataSource:t,schemaIndex:s}}):{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:[]}},tt=e=>{const{data:r}=e,{dataSource:t,schemaIndex:s}=e.context,n=[],a=[];return r.forEach((i,o)=>{const u={category:"highlights",index:o,input:i};try{const c=$({data:i,context:{dataSource:t,schemaIndex:s,pathPrefix:""}});K(c)?n.push(Ve(c)):a.push(C(F({},u),{message:"Invalid filter JSON"}))}catch(c){const y=c instanceof Error?c.message:"Unknown error";a.push(C(F({},u),{message:y}))}}),a.length>0?{success:!1,errors:a}:{success:!0,data:n}},st=e=>{const{data:r}=e,{dataSource:t,schemaIndex:s}=e.context;return r?ue(r)?tt({data:r,context:{dataSource:t,schemaIndex:s}}):{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:[]}},nt=e=>{const{data:r}=e,{dataSource:t,schemaIndex:s}=e.context,n=[],a=[];return r.forEach((i,o)=>{const u={category:"measures",index:o,input:i};try{const c=$({data:i,context:{dataSource:t,schemaIndex:s,pathPrefix:""}});Be(c)?n.push(c):a.push(C(F({},u),{message:"Invalid measure JSON"}))}catch(c){const y=c instanceof Error?c.message:"Unknown error";a.push(C(F({},u),{message:y}))}}),a.length>0?{success:!1,errors:a}:{success:!0,data:n}},it=e=>{const{data:r}=e,{dataSource:t,schemaIndex:s}=e.context;return r?ue(r)?nt({data:r,context:{dataSource:t,schemaIndex:s}}):{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:[]}},at=e=>{const{data:r}=e,{dataSource:t,tables:s}=e.context,n=Sr(s),a=[],i=S(()=>Ir({data:r.dimensions||[],context:{dataSource:t,schemaIndex:n}}),a),o=S(()=>it({data:r.measures||[],context:{dataSource:t,schemaIndex:n}}),a),u=S(()=>rt({data:r.filters||[],context:{dataSource:t,schemaIndex:n}}),a);let c=null;return r.highlights&&(c=S(()=>st({data:r.highlights||[],context:{dataSource:t,schemaIndex:n}}),a)),a.length>0?{success:!1,errors:a}:{success:!0,data:F({dataSource:l.convertDataSource(t),dimensions:i||[],measures:o||[],filters:u||[]},c&&{highlights:c})}};function ot(e){const r=[],t=[];return e.forEach((s,n)=>{const a=()=>typeof s.toJSON=="function"?s.toJSON():s;if(!s.composeCode){t.push({category:"dimensions",index:n,input:a(),message:`Dimension at index ${n} (${s.name||"unnamed"}) is missing composeCode`});return}if(!s.composeCode.startsWith(b)){t.push({category:"dimensions",index:n,input:a(),message:`Expected composeCode to start with "${b}" for dimension at index ${n} (${s.name||"unnamed"}). Got: "${s.composeCode}"`});return}r.push(s.composeCode)}),t.length>0?{success:!1,errors:t}:{success:!0,data:r}}function We(e,r){const t=[];let s="",n=0,a=!1,i=null;for(let o=0;o<e.length;o++){const u=e[o],c=e[o+1];if(a){if(u!==i){s+=u;continue}if(c===i){s+=u+c,o++;continue}a=!1,i=null,s+=u;continue}else{if(u==="'"||u==='"'){a=!0,i=u,s+=u;continue}if("([{".includes(u)&&n++,")]}".includes(u)&&n--,u===r&&n===0){t.push(s.trim()),s="";continue}}s+=u}return s.trim()&&t.push(s.trim()),t}function ut(e,r){let t=0,s=!1,n=null;for(let a=0;a<e.length;a++){const i=e[a],o=e[a+1];if(s){if(i!==n)continue;if(o===n){a++;continue}s=!1,n=null}else{if(i==="'"||i==='"'){s=!0,n=i;continue}if("([{".includes(i)&&t++,")]}".includes(i)&&t--,i===r&&t===0)return a}}return-1}function lt(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function W(e){if(!e||typeof e!="string")throw new Error(`Invalid composeCode: expected non-empty string, got ${typeof e}`);const r=e.trim();if(!r)throw new Error("Invalid composeCode: empty string");const t=r.match(/^([a-zA-Z_$][a-zA-Z0-9_.$]*)\s*\((.*)\)$/);if(!t)throw new Error(`Invalid composeCode format: expected function call, got "${r}"`);const s=t[1],n=t[2],a=Je(n);return{function:s,args:a}}function Je(e){return e.trim()?We(e,",").map(Ue):[]}function Ue(e){if(!e)throw new Error("Cannot parse empty argument value");if(e==="null")return null;if(e==="undefined")return;if(e==="true")return!0;if(e==="false")return!1;if(e.match(/^-?\d+(\.\d+)?$/))return parseFloat(e);if(e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')){const t=e[0];return e.slice(1,-1).replace(new RegExp(`${t}${t}`,"g"),t)}if(e.startsWith("[")&&e.endsWith("]")){const t=e.slice(1,-1).trim();if(!t)return[];const s=Je(t);return s.every(n=>typeof n=="string"),s}if(e.startsWith("{")&&e.endsWith("}")){const t=e.slice(1,-1).trim();return t?ft(t):{}}return e.includes("(")&&e.includes(")")?W(e):(e.startsWith("DM."),e)}function ct(e){const r=ut(e,":");if(r===-1)throw new Error(`Invalid object property: expected "key: value", got "${e}"`);const t=lt(e.slice(0,r).trim()),s=Ue(e.slice(r+1).trim());return[t,s]}function ft(e){if(!e.trim())return{};const r=We(e,",").map(ct).filter(([,t])=>t!==null);return Object.fromEntries(r)}const te="Unknown error";function dt(e){if(!e)return{success:!0,data:[]};const r=[];if(l.isFilterRelations(e)){if(!e.composeCode)return{success:!1,errors:[{category:"filters",index:-1,input:e,message:`FilterRelations is missing composeCode. Operator: ${e.operator||"unknown"}`}]};try{return{success:!0,data:[W(e.composeCode)]}}catch(s){const n=s instanceof Error?s.message:te;return{success:!1,errors:[{category:"filters",index:-1,input:e,message:`Failed to parse composeCode for FilterRelations: ${n}. ComposeCode: "${e.composeCode}"`}]}}}const t=[];return e.forEach((s,n)=>{if(!s.composeCode){r.push({category:"filters",index:n,input:s,message:`Filter at index ${n} (${s.name||"unnamed"}) is missing composeCode`});return}try{const a=W(s.composeCode);t.push(a)}catch(a){const i=a instanceof Error?a.message:te;r.push({category:"filters",index:n,input:s,message:`Failed to parse composeCode for filter at index ${n}: ${i}. ComposeCode: "${s.composeCode}"`})}}),r.length>0?{success:!1,errors:r}:{success:!0,data:t}}function mt(e){if(!e)return{success:!0,data:[]};const r=[],t=[];return e.forEach((s,n)=>{if(!s.composeCode){t.push({category:"highlights",index:n,input:s,message:`Highlight filter at index ${n} (${s.name||"unnamed"}) is missing composeCode`});return}try{const a=W(s.composeCode);r.push(a)}catch(a){const i=a instanceof Error?a.message:te;t.push({category:"highlights",index:n,input:s,message:`Failed to parse composeCode for highlight filter at index ${n}: ${i}. ComposeCode: "${s.composeCode}"`})}}),t.length>0?{success:!1,errors:t}:{success:!0,data:r}}function pt(e){const r=[],t=[];return e.forEach((s,n)=>{const a=()=>typeof s.toJSON=="function"?s.toJSON():s;if(!s.composeCode){t.push({category:"measures",index:n,input:a(),message:`Measure at index ${n} (${s.name||"unnamed"}) is missing composeCode`});return}try{const i=W(s.composeCode);r.push(i)}catch(i){const o=i instanceof Error?i.message:"Unknown error";t.push({category:"measures",index:n,input:a(),message:`Failed to parse composeCode for measure at index ${n} (${s.name||"unnamed"}): ${o}. ComposeCode: "${s.composeCode}"`})}}),t.length>0?{success:!1,errors:t}:{success:!0,data:r}}function se(e){return typeof e=="string"?e.replace(/\[\[([^\]]+)\]\]/g,"$1"):Array.isArray(e)?e.map(se):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,t])=>[r,se(t)])):e}function yt(e){const r=[],t=S(()=>ot(e.dimensions||[]),r),s=S(()=>pt(e.measures||[]),r),n=S(()=>dt(e.filters),r);let a=null;if(e.highlights&&e.highlights.length>0&&(a=S(()=>mt(e.highlights),r)),r.length>0)return{success:!1,errors:r};const i=F({dimensions:t||[],measures:s||[],filters:n||[]},a&&{highlights:a});return{success:!0,data:se(i)}}function gt(e){const{filters:r,relations:t}=l.getFilterListAndRelationsJaql(e.filters||[]);return{dataSource:e.dataSource,dimensions:e.dimensions,measures:e.measures,filters:r,filterRelations:t,highlights:e.highlights}}function ht(e,r,t=!1){const s=gt(e),n=l.prepareQueryParams(s,r);return l.getJaqlQueryPayload(n,t)}exports.EMPTY_EXPANDED_QUERY_MODEL=T.EMPTY_EXPANDED_QUERY_MODEL;exports.EMPTY_SIMPLE_QUERY_MODEL=T.EMPTY_SIMPLE_QUERY_MODEL;exports.isByIdDashboardCodeParams=T.isByIdDashboardCodeParams;exports.isByIdWidgetCodeParams=T.isByIdWidgetCodeParams;exports.isClientSideDashboardCodeParams=T.isClientSideDashboardCodeParams;exports.isClientSideWidgetCodeParams=T.isClientSideWidgetCodeParams;exports.CustomSuperJSON=Dr;exports.translateQueryFromJSON=at;exports.translateQueryToJSON=yt;exports.translateQueryToJaql=ht;
|
|
1
|
+
"use strict";var Ge=Object.defineProperty,Ye=Object.defineProperties;var He=Object.getOwnPropertyDescriptors;var me=Object.getOwnPropertySymbols;var Xe=Object.prototype.hasOwnProperty,Ze=Object.prototype.propertyIsEnumerable;var pe=(e,r,t)=>r in e?Ge(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,h=(e,r)=>{for(var t in r||(r={}))Xe.call(r,t)&&pe(e,t,r[t]);if(me)for(var t of me(r))Ze.call(r,t)&&pe(e,t,r[t]);return e},b=(e,r)=>Ye(e,He(r));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("../types-CoY6F8Ma.cjs"),l=require("../execute-query-DJDE0zRU.cjs"),W=require("../dimensions-X4_igtmO.cjs");class ve{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 qe{constructor(r){this.generateIdentifier=r,this.kv=new ve}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 er extends qe{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 rr(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 tr(e,r){const t=rr(e);if("find"in t)return t.find(r);const n=t;for(let s=0;s<n.length;s++){const o=n[s];if(r(o))return o}}function P(e,r){Object.entries(e).forEach(([t,n])=>r(n,t))}function J(e,r){return e.indexOf(r)!==-1}function ye(e,r){for(let t=0;t<e.length;t++){const n=e[t];if(r(n))return n}}class nr{constructor(){this.transfomers={}}register(r){this.transfomers[r.name]=r}findApplicable(r){return tr(this.transfomers,t=>t.isApplicable(r))}findByName(r){return this.transfomers[r]}}const sr=e=>Object.prototype.toString.call(e).slice(8,-1),Ee=e=>typeof e=="undefined",ir=e=>e===null,L=e=>typeof e!="object"||e===null||e===Object.prototype?!1:Object.getPrototypeOf(e)===null?!0:Object.getPrototypeOf(e)===Object.prototype,v=e=>L(e)&&Object.keys(e).length===0,T=e=>Array.isArray(e),or=e=>typeof e=="string",ar=e=>typeof e=="number"&&!isNaN(e),ur=e=>typeof e=="boolean",lr=e=>e instanceof RegExp,_=e=>e instanceof Map,V=e=>e instanceof Set,Ce=e=>sr(e)==="Symbol",cr=e=>e instanceof Date&&!isNaN(e.valueOf()),fr=e=>e instanceof Error,ge=e=>typeof e=="number"&&isNaN(e),dr=e=>ur(e)||ir(e)||Ee(e)||ar(e)||or(e)||Ce(e),mr=e=>typeof e=="bigint",pr=e=>e===1/0||e===-1/0,yr=e=>ArrayBuffer.isView(e)&&!(e instanceof DataView),gr=e=>e instanceof URL,$e=e=>e.replace(/\./g,"\\."),H=e=>e.map(String).map($e).join("."),k=e=>{const r=[];let t="";for(let s=0;s<e.length;s++){let o=e.charAt(s);if(o==="\\"&&e.charAt(s+1)==="."){t+=".",s++;continue}if(o==="."){r.push(t),t="";continue}t+=o}const n=t;return r.push(n),r};function x(e,r,t,n){return{isApplicable:e,annotation:r,transform:t,untransform:n}}const Ae=[x(Ee,"undefined",()=>null,()=>{}),x(mr,"bigint",e=>e.toString(),e=>typeof BigInt!="undefined"?BigInt(e):(console.error("Please add a BigInt polyfill."),e)),x(cr,"Date",e=>e.toISOString(),e=>new Date(e)),x(fr,"Error",(e,r)=>{const t={name:e.name,message:e.message};return r.allowedErrorProps.forEach(n=>{t[n]=e[n]}),t},(e,r)=>{const t=new Error(e.message);return t.name=e.name,t.stack=e.stack,r.allowedErrorProps.forEach(n=>{t[n]=e[n]}),t}),x(lr,"regexp",e=>""+e,e=>{const r=e.slice(1,e.lastIndexOf("/")),t=e.slice(e.lastIndexOf("/")+1);return new RegExp(r,t)}),x(V,"set",e=>[...e.values()],e=>new Set(e)),x(_,"map",e=>[...e.entries()],e=>new Map(e)),x(e=>ge(e)||pr(e),"number",e=>ge(e)?"NaN":e>0?"Infinity":"-Infinity",Number),x(e=>e===0&&1/e===-1/0,"number",()=>"-0",Number),x(gr,"URL",e=>e.toString(),e=>new URL(e))];function K(e,r,t,n){return{isApplicable:e,annotation:r,transform:t,untransform:n}}const xe=K((e,r)=>Ce(e)?!!r.symbolRegistry.getIdentifier(e):!1,(e,r)=>["symbol",r.symbolRegistry.getIdentifier(e)],e=>e.description,(e,r,t)=>{const n=t.symbolRegistry.getValue(r[1]);if(!n)throw new Error("Trying to deserialize unknown symbol");return n}),hr=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,Uint8ClampedArray].reduce((e,r)=>(e[r.name]=r,e),{}),De=K(yr,e=>["typed-array",e.constructor.name],e=>[...e],(e,r)=>{const t=hr[r[1]];if(!t)throw new Error("Trying to deserialize unknown typed array");return new t(e)});function Me(e,r){return e!=null&&e.constructor?!!r.classRegistry.getIdentifier(e.constructor):!1}const Se=K(Me,(e,r)=>["class",r.classRegistry.getIdentifier(e.constructor)],(e,r)=>{const t=r.classRegistry.getAllowedProps(e.constructor);if(!t)return h({},e);const n={};return t.forEach(s=>{n[s]=e[s]}),n},(e,r,t)=>{const n=t.classRegistry.getValue(r[1]);if(!n)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(n.prototype),e)}),Te=K((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 n=t.customTransformerRegistry.findByName(r[1]);if(!n)throw new Error("Trying to deserialize unknown custom value");return n.deserialize(e)}),br=[Se,xe,Te,De],he=(e,r)=>{const t=ye(br,s=>s.isApplicable(e,r));if(t)return{value:t.transform(e,r),type:t.annotation(e,r)};const n=ye(Ae,s=>s.isApplicable(e,r));if(n)return{value:n.transform(e,r),type:n.annotation}},Ne={};Ae.forEach(e=>{Ne[e.annotation]=e});const Fr=(e,r,t)=>{if(T(r))switch(r[0]){case"symbol":return xe.untransform(e,r,t);case"class":return Se.untransform(e,r,t);case"custom":return Te.untransform(e,r,t);case"typed-array":return De.untransform(e,r,t);default:throw new Error("Unknown transformation: "+r)}else{const n=Ne[r];if(!n)throw new Error("Unknown transformation: "+r);return n.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 Re(e){if(J(e,"__proto__"))throw new Error("__proto__ is not allowed as a property");if(J(e,"prototype"))throw new Error("prototype is not allowed as a property");if(J(e,"constructor"))throw new Error("constructor is not allowed as a property")}const wr=(e,r)=>{Re(r);for(let t=0;t<r.length;t++){const n=r[t];if(V(e))e=z(e,+n);else if(_(e)){const s=+n,o=+r[++t]==0?"key":"value",i=z(e,s);switch(o){case"key":e=i;break;case"value":e=e.get(i);break}}else e=e[n]}return e},ee=(e,r,t)=>{if(Re(r),r.length===0)return t(e);let n=e;for(let o=0;o<r.length-1;o++){const i=r[o];if(T(n)){const a=+i;n=n[a]}else if(L(n))n=n[i];else if(V(n)){const a=+i;n=z(n,a)}else if(_(n)){if(o===r.length-2)break;const u=+i,c=+r[++o]==0?"key":"value",y=z(n,u);switch(c){case"key":n=y;break;case"value":n=n.get(y);break}}}const s=r[r.length-1];if(T(n)?n[+s]=t(n[+s]):L(n)&&(n[s]=t(n[s])),V(n)){const o=z(n,+s),i=t(o);o!==i&&(n.delete(o),n.add(i))}if(_(n)){const o=+r[r.length-2],i=z(n,o);switch(+s==0?"key":"value"){case"key":{const u=t(i);n.set(u,n.get(i)),u!==i&&n.delete(i);break}case"value":{n.set(i,t(n.get(i)));break}}}return e};function re(e,r,t=[]){if(!e)return;if(!T(e)){P(e,(o,i)=>re(o,r,[...t,...k(i)]));return}const[n,s]=e;s&&P(s,(o,i)=>{re(o,r,[...t,...k(i)])}),r(n,t)}function qr(e,r,t){return re(r,(n,s)=>{e=ee(e,s,o=>Fr(o,n,t))}),e}function Er(e,r){function t(n,s){const o=wr(e,k(s));n.map(k).forEach(i=>{e=ee(e,i,()=>o)})}if(T(r)){const[n,s]=r;n.forEach(o=>{e=ee(e,k(o),()=>e)}),s&&P(s,t)}else P(r,t);return e}const Cr=(e,r)=>L(e)||T(e)||_(e)||V(e)||Me(e,r);function $r(e,r,t){const n=t.get(e);n?n.push(r):t.set(e,[r])}function Ar(e,r){const t={};let n;return e.forEach(s=>{if(s.length<=1)return;r||(s=s.map(a=>a.map(String)).sort((a,u)=>a.length-u.length));const[o,...i]=s;o.length===0?n=i.map(H):t[H(o)]=i.map(H)}),n?v(t)?[n]:[n,t]:v(t)?void 0:t}const Oe=(e,r,t,n,s=[],o=[],i=new Map)=>{var D;const a=dr(e);if(!a){$r(e,s,r);const d=i.get(e);if(d)return n?{transformedValue:null}:d}if(!Cr(e,t)){const d=he(e,t),m=d?{transformedValue:d.value,annotations:[d.type]}:{transformedValue:e};return a||i.set(e,m),m}if(J(o,e))return{transformedValue:null};const u=he(e,t),c=(D=u==null?void 0:u.value)!=null?D:e,y=T(c)?[]:{},p={};P(c,(d,m)=>{if(m==="__proto__"||m==="constructor"||m==="prototype")throw new Error(`Detected property ${m}. This is a prototype pollution risk, please remove it from your object.`);const q=Oe(d,r,t,n,[...s,m],[...o,e],i);y[m]=q.transformedValue,T(q.annotations)?p[m]=q.annotations:L(q.annotations)&&P(q.annotations,(A,M)=>{p[$e(m)+"."+M]=A})});const g=v(p)?{transformedValue:y,annotations:u?[u.type]:void 0}:{transformedValue:y,annotations:u?[u.type,p]:p};return a||i.set(e,g),g};function Ie(e){return Object.prototype.toString.call(e).slice(8,-1)}function be(e){return Ie(e)==="Array"}function xr(e){if(Ie(e)!=="Object")return!1;const r=Object.getPrototypeOf(e);return!!r&&r.constructor===Object&&r===Object.prototype}function Dr(e,r,t,n,s){const o={}.propertyIsEnumerable.call(n,r)?"enumerable":"nonenumerable";o==="enumerable"&&(e[r]=t),s&&o==="nonenumerable"&&Object.defineProperty(e,r,{value:t,enumerable:!1,writable:!0,configurable:!0})}function te(e,r={}){if(be(e))return e.map(s=>te(s,r));if(!xr(e))return e;const t=Object.getOwnPropertyNames(e),n=Object.getOwnPropertySymbols(e);return[...t,...n].reduce((s,o)=>{if(be(r.props)&&!r.props.includes(o))return s;const i=e[o],a=te(i,r);return Dr(s,o,a,e,r.nonenumerable),s},{})}class f{constructor({dedupe:r=!1}={}){this.classRegistry=new er,this.symbolRegistry=new qe(t=>{var n;return(n=t.description)!=null?n:""}),this.customTransformerRegistry=new nr,this.allowedErrorProps=[],this.dedupe=r}serialize(r){const t=new Map,n=Oe(r,t,this,this.dedupe),s={json:n.transformedValue};n.annotations&&(s.meta=b(h({},s.meta),{values:n.annotations}));const o=Ar(t,this.dedupe);return o&&(s.meta=b(h({},s.meta),{referentialEqualities:o})),s}deserialize(r){const{json:t,meta:n}=r;let s=te(t);return n!=null&&n.values&&(s=qr(s,n.values,this)),n!=null&&n.referentialEqualities&&(s=Er(s,n.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(h({name:t},r))}allowErrorProps(...r){this.allowedErrorProps.push(...r)}}f.defaultInstance=new f;f.serialize=f.defaultInstance.serialize.bind(f.defaultInstance);f.deserialize=f.defaultInstance.deserialize.bind(f.defaultInstance);f.stringify=f.defaultInstance.stringify.bind(f.defaultInstance);f.parse=f.defaultInstance.parse.bind(f.defaultInstance);f.registerClass=f.defaultInstance.registerClass.bind(f.defaultInstance);f.registerSymbol=f.defaultInstance.registerSymbol.bind(f.defaultInstance);f.registerCustom=f.defaultInstance.registerCustom.bind(f.defaultInstance);f.allowErrorProps=f.defaultInstance.allowErrorProps.bind(f.defaultInstance);const I=e=>e===void 0?l.Sort.None:e,Mr=e=>new N.JaqlElement(e.metadataItem,e.type),ie=e=>new l.DimensionalAttribute(e.name,e.expression,e.type,e.description,I(e.sort),e.dataSource,e.composeCode),oe=e=>new l.DimensionalLevelAttribute(e.name,e.expression,e.granularity,e.format,e.description,I(e.sort),e.dataSource,e.composeCode),E=e=>{switch(e.__serializable){case"DimensionalAttribute":return ie(e);case"DimensionalLevelAttribute":return oe(e);default:return e}},ze=e=>new W.DimensionalDimension(e.name,e.expression,e.attributes.map(E),e.dimensions.map(Sr),e.type,e.description,I(e.sort),e.dataSource,e.composeCode,e.defaultAttribute?E(e.defaultAttribute):void 0),Pe=e=>new W.DimensionalDateDimension(e.name,e.expression,e.description,I(e.sort),e.dataSource,e.composeCode),Sr=e=>{switch(e.__serializable){case"DimensionalDimension":return ze(e);case"DimensionalDateDimension":return Pe(e);default:return e}},ae=e=>new l.DimensionalBaseMeasure(e.name,E(e.attribute),e.aggregation,e.format,e.description,I(e.sort),e.dataSource,e.composeCode),ue=e=>{const r=Object.fromEntries(Object.entries(e.context).map(([t,n])=>{if(n&&typeof n=="object"&&"__serializable"in n)switch(n.__serializable){case"DimensionalAttribute":return[t,ie(n)];case"DimensionalLevelAttribute":return[t,oe(n)];case"DimensionalBaseMeasure":return[t,ae(n)];case"DimensionalCalculatedMeasure":return[t,ue(n)];default:return[t,n]}return[t,n]}));return new l.DimensionalCalculatedMeasure(e.name,e.expression,r,e.format,e.description,I(e.sort),e.dataSource,e.composeCode)},Be=e=>new l.DimensionalMeasureTemplate(e.name,E(e.attribute),e.format,e.description,I(e.sort),e.dataSource,e.composeCode),X=e=>{switch(e.__serializable){case"DimensionalBaseMeasure":return ae(e);case"DimensionalCalculatedMeasure":return ue(e);case"DimensionalMeasureTemplate":return Be(e);default:return e}},F=e=>{switch(e.__serializable){case"MembersFilter":return new l.MembersFilter(E(e.attribute),e.members,e.config.backgroundFilter?b(h({},e.config),{backgroundFilter:F(e.config.backgroundFilter)}):e.config,e.composeCode);case"LogicalAttributeFilter":return new l.LogicalAttributeFilter(e.filters.map(t=>F(t)),e.operator,e.config,e.composeCode);case"CascadingFilter":return new l.CascadingFilter(e._filters.map(t=>F(t)),e.config,e.composeCode);case"ExcludeFilter":return new l.ExcludeFilter(F(e.filter),e.input?F(e.input):void 0,e.config,e.composeCode);case"MeasureFilter":return new l.MeasureFilter(E(e.attribute),X(e.measure),e.operatorA,e.valueA,e.operatorB,e.valueB,e.config,e.composeCode);case"RankingFilter":return new l.RankingFilter(E(e.attribute),X(e.measure),e.operator,e.count,e.config,e.composeCode);case"MeasureRankingFilter":return new l.MeasureRankingFilter(X(e.measure),e.operator,e.count,e.config,e.composeCode);case"NumericFilter":return new l.NumericFilter(E(e.attribute),e.operatorA,e.valueA,e.operatorB,e.valueB,e.config,e.composeCode);case"TextFilter":return new l.TextFilter(E(e.attribute),e.operatorA,e.valueA,e.config,e.composeCode);case"DateRangeFilter":{const{valueA:t,valueB:n}=e;return new l.DateRangeFilter(E(e.attribute),t,n,e.config,e.composeCode)}case"RelativeDateFilter":return new l.RelativeDateFilter(E(e.attribute),e.offset,e.count,e.operator,e.anchor,e.config,e.composeCode);case"CustomFilter":return new l.CustomFilter(E(e.attribute),e.jaqlExpression,e.config,e.composeCode);default:return e}};f.registerCustom({isApplicable:N.isJaqlElement,serialize:e=>e.serialize(),deserialize:e=>Mr(e)},"JaqlElement");f.registerCustom({isApplicable:l.isDimensionalAttribute,serialize:e=>e.serialize(),deserialize:e=>ie(e)},"DimensionalAttribute");f.registerCustom({isApplicable:l.isDimensionalLevelAttribute,serialize:e=>e.serialize(),deserialize:e=>oe(e)},"DimensionalLevelAttribute");f.registerCustom({isApplicable:W.isDimensionalDimension,serialize:e=>e.serialize(),deserialize:e=>ze(e)},"DimensionalDimension");f.registerCustom({isApplicable:W.isDimensionalDateDimension,serialize:e=>e.serialize(),deserialize:e=>Pe(e)},"DimensionalDateDimension");f.registerCustom({isApplicable:l.isDimensionalBaseMeasure,serialize:e=>e.serialize(),deserialize:e=>ae(e)},"DimensionalBaseMeasure");f.registerCustom({isApplicable:l.isDimensionalCalculatedMeasure,serialize:e=>e.serialize(),deserialize:e=>ue(e)},"DimensionalCalculatedMeasure");f.registerCustom({isApplicable:l.isDimensionalMeasureTemplate,serialize:e=>e.serialize(),deserialize:e=>Be(e)},"DimensionalMeasureTemplate");f.registerCustom({isApplicable:l.isMembersFilter,serialize:e=>e.serialize(),deserialize:e=>F(e)},"MembersFilter");f.registerCustom({isApplicable:l.isLogicalAttributeFilter,serialize:e=>e.serialize(),deserialize:e=>F(e)},"LogicalAttributeFilter");f.registerCustom({isApplicable:l.isCascadingFilter,serialize:e=>e.serialize(),deserialize:e=>F(e)},"CascadingFilter");f.registerCustom({isApplicable:l.isExcludeFilter,serialize:e=>e.serialize(),deserialize:e=>F(e)},"ExcludeFilter");f.registerCustom({isApplicable:l.isMeasureFilter,serialize:e=>e.serialize(),deserialize:e=>F(e)},"MeasureFilter");f.registerCustom({isApplicable:l.isRankingFilter,serialize:e=>e.serialize(),deserialize:e=>F(e)},"RankingFilter");f.registerCustom({isApplicable:l.isMeasureRankingFilter,serialize:e=>e.serialize(),deserialize:e=>F(e)},"MeasureRankingFilter");f.registerCustom({isApplicable:l.isNumericFilter,serialize:e=>e.serialize(),deserialize:e=>F(e)},"NumericFilter");f.registerCustom({isApplicable:l.isTextFilter,serialize:e=>e.serialize(),deserialize:e=>F(e)},"TextFilter");f.registerCustom({isApplicable:l.isDateRangeFilter,serialize:e=>e.serialize(),deserialize:e=>F(e)},"DateRangeFilter");f.registerCustom({isApplicable:l.isRelativeDateFilter,serialize:e=>e.serialize(),deserialize:e=>F(e)},"RelativeDateFilter");f.registerCustom({isApplicable:l.isCustomFilter,serialize:e=>e.serialize(),deserialize:e=>F(e)},"CustomFilter");const Tr=f,w="DM.";function C(e){return typeof e=="object"&&e!==null&&"function"in e&&"args"in e}function ke(e){return e.every(C)}function Q(e){return"attribute"in e&&"config"in e}function j(e){return"left"in e&&"right"in e&&"operator"in e}function le(e){return!Q(e)&&!j(e)}function Nr(e){return typeof e=="object"&&e!==null&&"column"in e&&typeof e.column=="string"&&!("function"in e&&"args"in e)}function Rr(e){const r=e;return typeof e!="object"||e===null||r===null||!("column"in r)?!1:C(r.column)}function Or(e){const r=[...e].sort((o,i)=>i.name.length-o.name.length),t=new Map,n=new Map,s=new Map;for(const o of e){t.set(o.name,o);const i=[...o.columns].sort((u,c)=>c.name.length-u.name.length);s.set(o.name,i);const a=new Map;for(const u of o.columns)a.set(u.name,u);n.set(o.name,a)}return{sortedTables:r,tableColumnMap:s,tableMap:t,columnMap:n}}function Le(e,r){if(!e.startsWith(w))throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${w}TableName.ColumnName[.Level]"`);const t=e.slice(w.length);if(!t)throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${w}TableName.ColumnName[.Level]"`);let n,s;for(const p of r.sortedTables)if(t.startsWith(p.name+".")){const g=t.slice(p.name.length+1);if(!g)throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${w}TableName.ColumnName[.Level]"`);n=p,s=g;break}if(!n){const p=t.indexOf(".");if(p===-1)throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${w}TableName.ColumnName[.Level]"`);const g=t.slice(0,p);throw new Error(`Table "${g}" not found in the data model`)}const o=r.tableColumnMap.get(n.name);if(!o)throw new Error(`Table "${n.name}" found but has no columns`);let i,a;const u=l.DateLevels.all;for(const p of o){if(s===p.name)return{table:n,column:p};if(!s.startsWith(p.name+"."))continue;const g=s.slice(p.name.length+1);if(!g)continue;const D=u.includes(g),d=l.isDatetime(p.dataType);if(D){if(d)return{table:n,column:p,level:g};i||(i=p,a=g);continue}d&&!i&&(i=p,a=g)}if(i&&a)throw u.includes(a)?new Error(`Invalid date level "${a}" in dimensional element "${e}". Column "${n.name}.${i.name}" is not a datetime column`):new Error(`Invalid date level "${a}" in dimensional element "${e}". Valid levels are: ${u.join(", ")}`);const c=s.indexOf("."),y=c===-1?s:s.slice(0,c);throw new Error(`Column "${y}" not found in table "${n.name}"`)}function Ir(e,r){const{table:t,column:n,level:s}=Le(e,r);if(s){if(!l.isDatetime(n.dataType))throw new Error(`Invalid date level "${s}" in dimensional element "${e}". Column "${t.name}.${n.name}" is not a datetime column`);const o=l.DateLevels.all;if(!o.includes(s))throw new Error(`Invalid date level "${s}" in dimensional element "${e}". Valid levels are: ${o.join(", ")}`);const i=l.DateLevels.dateOnly;if(n.dataType==="date"&&!i.includes(s))throw new Error(`Invalid level "${s}" in dimensional element "${e}". Column "${t.name}.${n.name}" is only a date column, not a datetime column`);const a=l.DateLevels.timeOnly;if(n.dataType==="time"&&!a.includes(s))throw new Error(`Invalid level "${s}" in dimensional element "${e}". Column "${t.name}.${n.name}" is only a time column, not a date column`)}return{column:n,level:s}}function _e(e){return e.type===l.MetadataTypes.TextAttribute}function Ve(e){return e.type===l.MetadataTypes.NumericAttribute}function zr(e){return e.type===l.MetadataTypes.DateLevel}function Pr(e){return _e(e)||Ve(e)}function G(e){return e.type===l.MetadataTypes.TextAttribute?"text":e.type===l.MetadataTypes.NumericAttribute?"numeric":e.type===l.MetadataTypes.DateLevel?"date/datetime":"unknown"}function Y(e,r,t){const{column:n,level:s}=Ir(e,t);return l.createAttributeHelper({expression:n.expression,dataType:n.dataType,granularity:s,format:void 0,sort:void 0,dataSource:r})}function Br(e,r,t){const{column:n,level:s}=Le(e,t);if(s)throw new Error(`Invalid DateDimension name format: "${e}". Expected format: "${w}TableName.ColumnName"`);if(!l.isDatetime(n.dataType))throw new Error(`Invalid DateDimension name "${e}". Column "${n.name}" is not a datetime column (got ${n.dataType}).`);return W.createDateDimension({name:n.name,expression:n.expression,dataSource:r})}function S(e,r){const t=e();return t.success?t.data:(r.push(...t.errors),null)}const kr=(e,r,t)=>{if(!r)return{attribute:e};const n=typeof r=="object"?r.direction:r;return l.isSortDirection(n)?{attribute:e.sort(l.convertSortDirectionToSort(n))}:{attribute:e,error:b(h({},t),{message:`Invalid sort type. Expected "sortAsc", "sortDesc", or "sortNone". Got: "${n}".`})}},Lr=(e,r,t,n)=>{const s=Y(e.column,r,t);return kr(s,e.sortType,n)},_r=(e,r,t,n)=>typeof e=="string"?{attribute:Y(e,r,t)}:Nr(e)?Lr(e,r,t,n):{error:b(h({},n),{message:'Invalid dimension item. Expected a string (composeCode) or object with "column" and optional "sortType".'})},Vr=e=>{const{data:r}=e,{dataSource:t,schemaIndex:n}=e.context;if(!r)return{success:!0,data:[]};if(!Array.isArray(r))return{success:!1,errors:[{category:"dimensions",index:-1,input:r,message:"Invalid dimensions JSON. Expected an array."}]};const s=[],o=[];return r.forEach((i,a)=>{const u={category:"dimensions",index:a,input:i};try{const c=_r(i,t,n,u);if(c.error){o.push(c.error);return}c.attribute&&s.push(c.attribute)}catch(c){const y=c instanceof Error?c.message:"Unknown error";o.push(b(h({},u),{message:y}))}}),o.length>0?{success:!1,errors:o}:{success:!0,data:s}};function ce(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 Ur(e,r){const t=e.replace("measureFactory.",""),s=ce(l.measureFactory,t)(...r);if(!le(s))throw new Error(`Function "${e}" did not return a valid Measure`);return s}function Wr(e,r){const t=e.replace("filterFactory.logic.",""),s=ce(l.logic,t)(...r);if(!j(s))throw new Error(`Function "${e}" did not return a valid FilterRelations`);return s}function jr(e,r){if(e.startsWith("filterFactory.logic."))return Wr(e,r);const t=e.replace("filterFactory.",""),s=ce(l.filterFactory,t)(...r);if(!Q(s)&&!j(s))throw new Error(`Function "${e}" did not return a valid Filter or FilterRelations`);return s}function Jr(e,r){const n=e.split(".")[0];if(n==="measureFactory")return Ur(e,r);if(n==="filterFactory")return jr(e,r);throw new Error(`Unsupported factory: "${n}". Supported factories: measureFactory, filterFactory`)}const Kr=/\[(\w[\w.-]*)\]/g,Ue=new Set(["AVG","COUNT","DUPCOUNT","LARGEST","MAX","MEDIAN","MIN","MODE","SUM","WTDAVG","WTDSUM","MTDAVG","MTDSUM","QTDAVG","QTDSUM","YTDAVG","YTDSUM","CORREL","COVARP","COVAR","SKEWP","SKEW","SLOPE"]),Qr=new RegExp(`\\b(${Array.from(Ue).join("|")})\\s*\\(`,"i");function Gr(e){return C(e)?!0:typeof e=="string"&&e.startsWith(w)?!1:e&&typeof e=="object"&&"kind"in e?e.kind==="measure":!0}function Yr(e){const r=/\b(\w+)\s*\(/g,t=new Set;let n;for(;(n=r.exec(e))!==null;){const s=n[1];Ue.has(s.toUpperCase())||t.add(s)}return Array.from(t)}function Hr(e){return e.length===1?`[${e[0]}]`:e.map(r=>`[${r}]`).join(", ")}function Xr(e){return e.length===0?"":e.length===1?`${e[0]} is not an aggregative function. `:`${e.join(", ")} are not aggregative functions. `}const B=e=>e.startsWith("[")?e:`[${e}]`,Fe=e=>e.startsWith("[")&&e.endsWith("]")?e.slice(1,-1):e;function Zr(e,r,t={}){const{warnUnusedContext:n=!0,errorOnUnusedContext:s=!0,allowEmptyFormula:o=!1,errorPrefix:i="customFormula validation"}=t,a={isValid:!0,errors:[],warnings:[],references:[],unusedContextKeys:[]};if(!e||e.trim().length===0)return o||(a.errors.push(`${i}args[1]: Formula cannot be empty`),a.isValid=!1),a;const u=/\b\w+\s*\[/gi,c=e.match(u);if(c){const d=c[0].replace(/\s*\[.*$/,"");a.errors.push(`${i}args[1]: Invalid syntax: '${d}' - operator cannot be used before bracket reference without parentheses`),a.isValid=!1}a.references=[...new Set([...e.matchAll(new RegExp(Kr.source,"g"))].map(d=>d[1]))];const y=Object.keys(r);if(a.references.length===0)return a.warnings.push(`${i}args[1]: No bracket references found in formula - ensure this is intentional`),a;if(y.length===0)return a.errors.push(`${i}args[2]: Context cannot be empty - custom formulas require context definitions`),a.isValid=!1,a;const p=new Set(y.map(B)),g=a.references.filter(d=>!p.has(B(d)));if(g.length>0){a.isValid=!1;const d=y.map(m=>`[${Fe(m)}]`).join(", ");g.length===1?a.errors.push(`${i}args[1]: Reference [${g[0]}] not found in context. Available keys: ${d}`):a.errors.push(`${i}args[1]: References [${g.join("], [")}] not found in context. Available keys: ${d}`)}if(!Qr.test(e)){const d=a.references.filter(m=>{var A;const q=(A=r[B(m)])!=null?A:r[m];return q!==void 0&&!Gr(q)});d.length>0&&(a.errors.push(`${i}args[1]: ${Xr(Yr(e))}Bracket reference(s) ${Hr(d)} point to raw attributes and must be wrapped in an aggregative function (e.g. SUM, AVG)`),a.isValid=!1)}if((n||s)&&y.length>0){const d=new Set(a.references.map(B)),m=y.filter(q=>!d.has(B(q)));if(a.unusedContextKeys=m,m.length>0){const q=m.map(M=>`[${Fe(M)}]`).join(", "),A=`${i}args[2]: Context keys ${q} are defined but not used in formula`;s?(a.errors.push(A),a.isValid=!1):n&&a.warnings.push(A)}}return a}function vr(e,r,t={}){const n=Zr(e,r,t);if(!n.isValid)throw new Error(n.errors.join("; "));n.warnings.length>0&&console.warn("Formula validation warnings:",n.warnings.join("; "))}function et(e,r){if(e.length<3||e.length>5)throw new Error(`${r.pathPrefix}Expected 3, 4, or 5 arguments for customFormula (title, formula, context, format?, description?)`);const t=e[1],n=e[2];vr(t,n,{errorPrefix:`${r.pathPrefix}`,errorOnUnusedContext:!0,allowEmptyFormula:!1});const s={};for(const[o,i]of Object.entries(n)){const a=`args[2].${o}`;if(C(i))s[`${o}`]=$({data:i,context:{dataSource:r.dataSource,schemaIndex:r.schemaIndex,pathPrefix:a}});else if(typeof i=="string"&&i.startsWith(w))try{s[`${o}`]=Y(i,r.dataSource,r.schemaIndex)}catch(u){const c=u instanceof Error?u.message:"Unknown error";throw new Error(`${a}: ${c}`)}else if(i&&typeof i=="object"&&"kind"in i)s[`${o}`]=i;else throw new Error(`${a}: Invalid context value for key '${o}'. Expected a function call or attribute reference (${w}...), but got: ${typeof i}`)}e[2]=s}function fe(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 we(e,r){const t=fe(e,r);if(!Pr(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be string or numeric type, got ${G(t)} attribute`)}function R(e,r){const t=fe(e,r);if(!Ve(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be numeric type, got ${G(t)} attribute`)}function O(e,r){const t=fe(e,r);if(!_e(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be string type, got ${G(t)} attribute`)}function rt(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 tt(e,r){const t=rt(e,r);if(!l.isMembersFilter(t))throw new Error(`${r.pathPrefix}args[0]: exclude filter only accepts members filter, got ${t.__serializable||"unknown"} filter`)}const nt={"measureFactory.customFormula":et,"filterFactory.equals":we,"filterFactory.doesntEqual":we,"filterFactory.greaterThan":R,"filterFactory.greaterThanOrEqual":R,"filterFactory.lessThan":R,"filterFactory.lessThanOrEqual":R,"filterFactory.between":R,"filterFactory.betweenNotEqual":R,"filterFactory.numeric":R,"filterFactory.contains":O,"filterFactory.doesntContain":O,"filterFactory.startsWith":O,"filterFactory.doesntStartWith":O,"filterFactory.endsWith":O,"filterFactory.doesntEndWith":O,"filterFactory.like":O,"filterFactory.exclude":tt};function st(e){return nt[`${e}`]}const it={"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},{type:"string",required:!1},{type:"string",required:!1}],"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 de(e){return it[`${e}`]}function ot(e){const r=de(e);return r?r.filter(t=>t.required).length:0}function at(e){const r=de(e);return r?r.length:0}function ut(e){if(typeof e!="string"||!/^\d{4}-\d{2}-\d{2}/.test(e))return!1;const t=Date.parse(e);if(isNaN(t)||e.length<10)return!1;const n=new Date(e);return!isNaN(n.getTime())}function Z(e,r,t,n){if(e.startsWith(w))try{return Y(e,r,t)}catch(s){const o=s instanceof Error?s.message:"Unknown error";throw new Error(`${n}: ${o}`)}throw new Error(`${n}: Invalid attribute "${e}". Expected format: "${w}TableName.ColumnName[.Level]"`)}function lt(e,r,t,n){if(e.startsWith(w))try{return Br(e,r,t)}catch(s){const o=s instanceof Error?s.message:"Unknown error";throw new Error(`${n}: ${o}`)}throw new Error(`${n}: Invalid date dimension string "${e}". Expected format: "${w}TableName.ColumnName"`)}function ct(e){const r=e.data,{argSchema:t,dataSource:n,schemaIndex:s,pathPrefix:o}=e.context,i=o;if(r===void 0){if(t.required)throw new Error(`${i}: Required argument is missing (expected ${t.type})`);return}if(!(r===null&&!t.required))switch(t.type){case"string":if(typeof r!="string")throw new Error(`${i}: Expected string, got ${typeof r}`);return r;case"number":if(typeof r!="number")throw new Error(`${i}: Expected number, got ${typeof r}`);return r;case"boolean":if(typeof r!="boolean")throw new Error(`${i}: Expected boolean, got ${typeof r}`);return r;case"string[]":if(!Array.isArray(r))throw new Error(`${i}: Expected array of strings, got ${typeof r}. Example: ["value1", "value2"]`);if(!r.every(a=>typeof a=="string"))throw new Error(`${i}: Expected array of strings, but contains non-string values`);return r;case"number[]":if(!Array.isArray(r))throw new Error(`${i}: Expected array of numbers, got ${typeof r}. Example: [10, 20]`);if(!r.every(a=>typeof a=="number"))throw new Error(`${i}: Expected array of numbers, but contains non-number values`);return r;case"Attribute":if(typeof r!="string")throw new Error(`${i}: Expected attribute string, got ${typeof r}. Example: "DM.Commerce.Revenue"`);return Z(r,n,s,i);case"Attribute[]":if(!Array.isArray(r))throw new Error(`${i}: Expected array of attributes, got ${typeof r}. Example: ["DM.Commerce.AgeRange"]`);return r.map((a,u)=>{if(typeof a!="string")throw new Error(`${i}[${u}]: Expected attribute string, got ${typeof a}`);return Z(a,n,s,`${i}[${u}]`)});case"Measure":case"BaseMeasure":if(!C(r))throw new Error(`${i}: Expected measure function call, got ${typeof r}. Example: {"function": "measureFactory.sum", "args": ["DM.Commerce.Revenue"]}`);return $({data:r,context:{dataSource:n,schemaIndex:s,pathPrefix:i}});case"Measure[]":if(!Array.isArray(r))throw new Error(`${i}: Expected array of measure function calls, got ${typeof r}`);return r.map((a,u)=>{if(!C(a))throw new Error(`${i}[${u}]: Expected measure function call, got ${typeof a}`);return $({data:a,context:{dataSource:n,schemaIndex:s,pathPrefix:`${i}[${u}]`}})});case"Filter":if(!C(r))throw new Error(`${i}: Expected filter function call, got ${typeof r}. Example: {"function": "filterFactory.contains", "args": ["DM.Brand.Brand", "Apple"]}`);return $({data:r,context:{dataSource:n,schemaIndex:s,pathPrefix:i}});case"Filter[]":if(!Array.isArray(r))throw new Error(`${i}: Expected array of filter function calls, got ${typeof r}`);return r.map((a,u)=>{if(!C(a))throw new Error(`${i}[${u}]: Expected filter function call, got ${typeof a}`);return $({data:a,context:{dataSource:n,schemaIndex:s,pathPrefix:`${i}[${u}]`}})});case"FilterRelationsNode":if(Array.isArray(r))return r.map((a,u)=>{if(!C(a))throw new Error(`${i}[${u}]: Expected filter function call, got ${typeof a}`);return $({data:a,context:{dataSource:n,schemaIndex:s,pathPrefix:`${i}[${u}]`}})});if(C(r))return $({data:r,context:{dataSource:n,schemaIndex:s,pathPrefix:i}});throw new Error(`${i}: Expected filter function call or array of filters, got ${typeof r}`);case"DateDimension":if(typeof r!="string")throw new Error(`${i}: Expected date dimension string, got ${typeof r}. Example: "DM.Commerce.Date"`);return lt(r,n,s,i);case"LevelAttribute":{if(typeof r!="string")throw new Error(`${i}: Expected date attribute string, got ${typeof r}. Example: "DM.Commerce.Date.Years"`);const a=Z(r,n,s,i);if(!zr(a))throw new Error(`${i}: Attribute must be date/datetime type, got ${G(a)} attribute`);return a}case"Measure | number":if(typeof r=="number")return r;if(C(r))return $({data:r,context:{dataSource:n,schemaIndex:s,pathPrefix:i}});throw new Error(`${i}: Expected measure function call or number, got ${typeof r}`);case"Date | string":if(typeof r=="string"){if(ut(r))return r;throw new Error(`${i}: Expected valid ISO date string or Date object, got invalid date string "${r}"`)}else{if(r instanceof Date)return r;throw new Error(`${i}: Expected date string or Date object, got ${typeof r}`)}case"string | number":if(typeof r=="string"||typeof r=="number")return r;throw new Error(`${i}: Expected string or number, got ${typeof r}`);case"BaseFilterConfig":case"MembersFilterConfig":case"CustomFormulaContext":case"any":if(r==null&&t.required)throw new Error(`${i}: Required argument is null/undefined`);return r;default:return r}}function $(e){const{data:r}=e,{dataSource:t,schemaIndex:n,pathPrefix:s}=e.context,{function:o,args:i}=r,a=s?`${s}.`:"",u=de(o);if(!u)throw new Error(`${a}function: Unknown function "${o}"`);const c=ot(o),y=at(o);if(i.length<c)throw new Error(`${a}function: Expected at least ${c} arguments, got ${i.length}`);if(i.length>y)throw new Error(`${a}function: Expected at most ${y} arguments, got ${i.length}`);const p=[],g=[];for(let d=0;d<Math.max(i.length,u.length);d++){const m=u[`${d}`],q=i[`${d}`],A=a?`${a}args[${d}]`:`args[${d}]`;if(q===void 0){m!=null&&m.required&&g.push(`${A}: Missing required argument (expected ${m.type})`);continue}if(!m){g.push(`${A}: Unexpected argument`);continue}try{const M=ct({data:q,context:{dataSource:t,schemaIndex:n,pathPrefix:A,argSchema:m}});p.push(M)}catch(M){const Qe=M instanceof Error?M.message:"Unknown error";g.push(Qe)}}if(g.length>0){const d=g.join("; ");throw new Error(d)}const D=st(o);if(D)try{D(p,{dataSource:t,schemaIndex:n,pathPrefix:a})}catch(d){const m=d instanceof Error?d.message:"Unknown validation error";throw new Error(m)}return Jr(o,p)}function We(e){const{attribute:r,config:t}=e;if(l.isMembersFilter(e)&&l.isLevelAttribute(r)){const{granularity:n}=r,s=e.members.map(a=>n==="Years"&&!isNaN(Number(a))?`${a}-01-01T00:00:00`:a),o=l.simplifyFilterConfig(t),i=Object.keys(o).length===0?void 0:o;return l.members(r,s,i)}return e}function ft(e){let r=[];for(const t of e)j(t)?r=l.mergeFiltersOrFilterRelations(t,r):r=l.mergeFiltersOrFilterRelations([We(t)],r);return r!=null?r:[]}const dt=e=>{const{data:r}=e,{dataSource:t,schemaIndex:n}=e.context,s=[],o=[];return r.forEach((i,a)=>{const u={category:"filters",index:a,input:i};try{const c=$({data:i,context:{dataSource:t,schemaIndex:n,pathPrefix:""}});!j(c)&&!Q(c)?o.push(b(h({},u),{message:"Invalid filter JSON"})):s.push(c)}catch(c){const y=c instanceof Error?c.message:"Unknown error";o.push(b(h({},u),{message:y}))}}),o.length>0?{success:!1,errors:o}:{success:!0,data:ft(s)}},mt=e=>{const{data:r}=e,{dataSource:t,schemaIndex:n}=e.context;return r?ke(r)?dt({data:r,context:{dataSource:t,schemaIndex:n}}):{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:[]}},pt=e=>{const{data:r}=e,{dataSource:t,schemaIndex:n}=e.context,s=[],o=[];return r.forEach((i,a)=>{const u={category:"highlights",index:a,input:i};try{const c=$({data:i,context:{dataSource:t,schemaIndex:n,pathPrefix:""}});Q(c)?s.push(We(c)):o.push(b(h({},u),{message:"Invalid filter JSON"}))}catch(c){const y=c instanceof Error?c.message:"Unknown error";o.push(b(h({},u),{message:y}))}}),o.length>0?{success:!1,errors:o}:{success:!0,data:s}},yt=e=>{const{data:r}=e,{dataSource:t,schemaIndex:n}=e.context;return r?ke(r)?pt({data:r,context:{dataSource:t,schemaIndex:n}}):{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:[]}},gt=(e,r,t)=>{const{dataSource:n,schemaIndex:s}=r;try{const o=$({data:e,context:{dataSource:n,schemaIndex:s,pathPrefix:""}});return le(o)?{success:!0,data:o}:{success:!1,errors:[b(h({},t),{message:"Invalid measure JSON"})]}}catch(o){const i=o instanceof Error?o.message:"Unknown error";return{success:!1,errors:[b(h({},t),{message:i})]}}},ht=(e,r,t)=>r?l.isSortDirection(r)?{measure:e.sort(l.convertSortDirectionToSort(r))}:{measure:e,error:b(h({},t),{message:`Invalid sort type. Expected "sortAsc", "sortDesc", or "sortNone". Got: "${r}".`})}:{measure:e},bt=(e,r,t,n)=>{const s=$({data:e.column,context:{dataSource:r,schemaIndex:t,pathPrefix:""}});return le(s)?ht(s,e.sortType,n):{error:b(h({},n),{message:"Invalid measure JSON"})}},Ft=(e,r,t,n)=>{if(Rr(e))return bt(e,r,t,n);if(C(e)){const s=gt(e,{dataSource:r,schemaIndex:t},n);return s.success?{measure:s.data}:{error:s.errors[0]}}return{error:b(h({},n),{message:'Invalid measure item. Expected a function call (function/args) or object with "column" and optional "sortType".'})}},wt=e=>{const{data:r}=e,{dataSource:t,schemaIndex:n}=e.context;if(!r)return{success:!0,data:[]};if(!Array.isArray(r))return{success:!1,errors:[{category:"measures",index:-1,input:r,message:"Invalid measures JSON. Expected an array."}]};const s=[],o=[];return r.forEach((i,a)=>{const u={category:"measures",index:a,input:i};try{const c=Ft(i,t,n,u);if(c.error){o.push(c.error);return}c.measure&&s.push(c.measure)}catch(c){const y=c instanceof Error?c.message:"Unknown error";o.push(b(h({},u),{message:y}))}}),o.length>0?{success:!1,errors:o}:{success:!0,data:s}},qt=e=>{const{data:r}=e,{dataSource:t,tables:n}=e.context,s=Or(n),o=[],i=S(()=>Vr({data:r.dimensions||[],context:{dataSource:t,schemaIndex:s}}),o),a=S(()=>wt({data:r.measures||[],context:{dataSource:t,schemaIndex:s}}),o),u=S(()=>mt({data:r.filters||[],context:{dataSource:t,schemaIndex:s}}),o);let c=null;return r.highlights&&(c=S(()=>yt({data:r.highlights||[],context:{dataSource:t,schemaIndex:s}}),o)),o.length>0?{success:!1,errors:o}:{success:!0,data:h({dataSource:l.convertDataSource(t),dimensions:i||[],measures:a||[],filters:u||[]},c&&{highlights:c})}};function Et(e){const r=[],t=[];return e.forEach((n,s)=>{const o=()=>typeof n.toJSON=="function"?n.toJSON():n;if(!n.composeCode){t.push({category:"dimensions",index:s,input:o(),message:`Dimension at index ${s} (${n.name||"unnamed"}) is missing composeCode`});return}if(!n.composeCode.startsWith(w)){t.push({category:"dimensions",index:s,input:o(),message:`Expected composeCode to start with "${w}" for dimension at index ${s} (${n.name||"unnamed"}). Got: "${n.composeCode}"`});return}const i=n.getSort();if(i!==void 0&&i!==l.Sort.None){const a={column:n.composeCode,sortType:l.convertSortToSortDirection(i)};r.push(a)}else r.push(n.composeCode)}),t.length>0?{success:!1,errors:t}:{success:!0,data:r}}function je(e,r){const t=[];let n="",s=0,o=!1,i=null;for(let a=0;a<e.length;a++){const u=e[a],c=e[a+1];if(o){if(u!==i){n+=u;continue}if(c===i){n+=u+c,a++;continue}o=!1,i=null,n+=u;continue}else{if(u==="'"||u==='"'){o=!0,i=u,n+=u;continue}if("([{".includes(u)&&s++,")]}".includes(u)&&s--,u===r&&s===0){t.push(n.trim()),n="";continue}}n+=u}return n.trim()&&t.push(n.trim()),t}function Ct(e,r){let t=0,n=!1,s=null;for(let o=0;o<e.length;o++){const i=e[o],a=e[o+1];if(n){if(i!==s)continue;if(a===s){o++;continue}n=!1,s=null}else{if(i==="'"||i==='"'){n=!0,s=i;continue}if("([{".includes(i)&&t++,")]}".includes(i)&&t--,i===r&&t===0)return o}}return-1}function $t(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function U(e){if(!e||typeof e!="string")throw new Error(`Invalid composeCode: expected non-empty string, got ${typeof e}`);const r=e.trim();if(!r)throw new Error("Invalid composeCode: empty string");const t=r.match(/^([a-zA-Z_$][a-zA-Z0-9_.$]*)\s*\((.*)\)$/);if(!t)throw new Error(`Invalid composeCode format: expected function call, got "${r}"`);const n=t[1],s=t[2],o=Je(s);return{function:n,args:o}}function Je(e){return e.trim()?je(e,",").map(Ke):[]}function Ke(e){if(!e)throw new Error("Cannot parse empty argument value");if(e==="null")return null;if(e==="undefined")return;if(e==="true")return!0;if(e==="false")return!1;if(e.match(/^-?\d+(\.\d+)?$/))return parseFloat(e);if(e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')){const t=e[0];return e.slice(1,-1).replace(new RegExp(`${t}${t}`,"g"),t)}if(e.startsWith("[")&&e.endsWith("]")){const t=e.slice(1,-1).trim();if(!t)return[];const n=Je(t);return n.every(s=>typeof s=="string"),n}if(e.startsWith("{")&&e.endsWith("}")){const t=e.slice(1,-1).trim();return t?xt(t):{}}return e.includes("(")&&e.includes(")")?U(e):(e.startsWith("DM."),e)}function At(e){const r=Ct(e,":");if(r===-1)throw new Error(`Invalid object property: expected "key: value", got "${e}"`);const t=$t(e.slice(0,r).trim()),n=Ke(e.slice(r+1).trim());return[t,n]}function xt(e){if(!e.trim())return{};const r=je(e,",").map(At).filter(([,t])=>t!==null);return Object.fromEntries(r)}const ne="Unknown error";function Dt(e){if(!e)return{success:!0,data:[]};const r=[];if(l.isFilterRelations(e)){if(!e.composeCode)return{success:!1,errors:[{category:"filters",index:-1,input:e,message:`FilterRelations is missing composeCode. Operator: ${e.operator||"unknown"}`}]};try{return{success:!0,data:[U(e.composeCode)]}}catch(n){const s=n instanceof Error?n.message:ne;return{success:!1,errors:[{category:"filters",index:-1,input:e,message:`Failed to parse composeCode for FilterRelations: ${s}. ComposeCode: "${e.composeCode}"`}]}}}const t=[];return e.forEach((n,s)=>{if(!n.composeCode){r.push({category:"filters",index:s,input:n,message:`Filter at index ${s} (${n.name||"unnamed"}) is missing composeCode`});return}try{const o=U(n.composeCode);t.push(o)}catch(o){const i=o instanceof Error?o.message:ne;r.push({category:"filters",index:s,input:n,message:`Failed to parse composeCode for filter at index ${s}: ${i}. ComposeCode: "${n.composeCode}"`})}}),r.length>0?{success:!1,errors:r}:{success:!0,data:t}}function Mt(e){if(!e)return{success:!0,data:[]};const r=[],t=[];return e.forEach((n,s)=>{if(!n.composeCode){t.push({category:"highlights",index:s,input:n,message:`Highlight filter at index ${s} (${n.name||"unnamed"}) is missing composeCode`});return}try{const o=U(n.composeCode);r.push(o)}catch(o){const i=o instanceof Error?o.message:ne;t.push({category:"highlights",index:s,input:n,message:`Failed to parse composeCode for highlight filter at index ${s}: ${i}. ComposeCode: "${n.composeCode}"`})}}),t.length>0?{success:!1,errors:t}:{success:!0,data:r}}function St(e){const r=[],t=[];return e.forEach((n,s)=>{const o=()=>typeof n.toJSON=="function"?n.toJSON():n;if(!n.composeCode){t.push({category:"measures",index:s,input:o(),message:`Measure at index ${s} (${n.name||"unnamed"}) is missing composeCode`});return}try{const i=U(n.composeCode),a=n.getSort();if(a!==void 0&&a!==l.Sort.None){const u={column:i,sortType:l.convertSortToSortDirection(a)};r.push(u)}else r.push(i)}catch(i){const a=i instanceof Error?i.message:"Unknown error";t.push({category:"measures",index:s,input:o(),message:`Failed to parse composeCode for measure at index ${s} (${n.name||"unnamed"}): ${a}. ComposeCode: "${n.composeCode}"`})}}),t.length>0?{success:!1,errors:t}:{success:!0,data:r}}function se(e){return typeof e=="string"?e.replace(/\[\[([^\]]+)\]\]/g,"$1"):Array.isArray(e)?e.map(se):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,t])=>[r,se(t)])):e}function Tt(e){const r=[],t=S(()=>Et(e.dimensions||[]),r),n=S(()=>St(e.measures||[]),r),s=S(()=>Dt(e.filters),r);let o=null;if(e.highlights&&e.highlights.length>0&&(o=S(()=>Mt(e.highlights),r)),r.length>0)return{success:!1,errors:r};const i=h({dimensions:t||[],measures:n||[],filters:s||[]},o&&{highlights:o});return{success:!0,data:se(i)}}function Nt(e){const{filters:r,relations:t}=l.getFilterListAndRelationsJaql(e.filters||[]);return{dataSource:e.dataSource,dimensions:e.dimensions,measures:e.measures,filters:r,filterRelations:t,highlights:e.highlights}}function Rt(e,r,t=!1){const n=Nt(e),s=l.prepareQueryParams(n,r);return l.getJaqlQueryPayload(s,t)}exports.EMPTY_EXPANDED_QUERY_MODEL=N.EMPTY_EXPANDED_QUERY_MODEL;exports.EMPTY_SIMPLE_QUERY_MODEL=N.EMPTY_SIMPLE_QUERY_MODEL;exports.isByIdDashboardCodeParams=N.isByIdDashboardCodeParams;exports.isByIdWidgetCodeParams=N.isByIdWidgetCodeParams;exports.isClientSideDashboardCodeParams=N.isClientSideDashboardCodeParams;exports.isClientSideWidgetCodeParams=N.isClientSideWidgetCodeParams;exports.CustomSuperJSON=Tr;exports.translateQueryFromJSON=qt;exports.translateQueryToJSON=Tt;exports.translateQueryToJaql=Rt;
|