@sisense/sdk-ui 2.21.0 → 2.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/dist/ai.cjs +58 -58
  2. package/dist/ai.js +861 -844
  3. package/dist/analytics-composer/node.cjs +1 -1
  4. package/dist/analytics-composer/node.js +2240 -1230
  5. package/dist/analytics-composer.cjs +47 -47
  6. package/dist/analytics-composer.js +135 -131
  7. package/dist/dimensions-2t18RSZC.cjs +1 -0
  8. package/dist/dimensions-C0BmtTH2.js +204 -0
  9. package/dist/execute-query-CHYTupEo.js +5866 -0
  10. package/dist/execute-query-DmAyVFF5.cjs +1 -0
  11. package/dist/{index-Ck90GjPy.js → index-DCAC0mJe.js} +33 -2
  12. package/dist/{index-0brX9D6q.cjs → index-Dx6wvLd3.cjs} +1 -1
  13. package/dist/index.cjs +423 -410
  14. package/dist/index.js +24905 -23677
  15. package/dist/index.umd.js +728 -675
  16. package/dist/packages/sdk-ui/src/domains/dashboarding/components/editable-layout/const.d.ts +1 -0
  17. package/dist/packages/sdk-ui/src/domains/dashboarding/components/editable-layout/smart-pointer-sensor.d.ts +17 -0
  18. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/get-dashboard-model.d.ts +2 -1
  19. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/index.d.ts +1 -1
  20. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/translate-dashboard-utils.d.ts +8 -1
  21. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/types.d.ts +9 -2
  22. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/index.d.ts +4 -0
  23. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/persist-dashboard-model-middleware.d.ts +13 -0
  24. 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} +43 -38
  25. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/use-dashboard-model-reducer.d.ts +9 -0
  26. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/utils.d.ts +29 -0
  27. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/use-dashboard-persistence.d.ts +6 -5
  28. package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/duplicate-widget/duplicate-widget-utils.d.ts +34 -0
  29. package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/duplicate-widget/index.d.ts +2 -0
  30. package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/duplicate-widget/use-duplicate-widget-menu-item.d.ts +57 -0
  31. package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/jtd/jtd-types.d.ts +1 -1
  32. package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/rename-widget/use-widget-renaming.d.ts +34 -0
  33. package/dist/packages/sdk-ui/src/domains/dashboarding/types.d.ts +65 -2
  34. package/dist/packages/sdk-ui/src/domains/dashboarding/use-composed-dashboard.d.ts +15 -3
  35. package/dist/packages/sdk-ui/src/domains/dashboarding/use-dashboard-theme.d.ts +1 -1
  36. package/dist/packages/sdk-ui/src/domains/data-browser/add-filter-popover/add-filter-data-browser.d.ts +2 -1
  37. package/dist/packages/sdk-ui/src/domains/data-browser/data-schema-browser/data-schema-browser.d.ts +2 -1
  38. package/dist/packages/sdk-ui/src/domains/data-browser/dimensions-browser/types.d.ts +9 -1
  39. package/dist/packages/sdk-ui/src/domains/filters/components/cascading-filter-tile/cascading-filter-tile.d.ts +7 -0
  40. package/dist/packages/sdk-ui/src/domains/filters/components/cascading-filter-tile/cascading-level-filter.d.ts +4 -1
  41. 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
  42. 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
  43. package/dist/packages/sdk-ui/src/domains/filters/components/criteria-filter-tile/criteria-filter-tile.d.ts +7 -0
  44. package/dist/packages/sdk-ui/src/domains/filters/components/custom-filter-tile.d.ts +7 -0
  45. package/dist/packages/sdk-ui/src/domains/filters/components/date-filter/date-range-filter-tile/date-range-filter-tile.d.ts +7 -0
  46. package/dist/packages/sdk-ui/src/domains/filters/components/date-filter/relative-date-filter-tile/relative-date-filter-tile.d.ts +7 -0
  47. package/dist/packages/sdk-ui/src/domains/filters/components/{filter-tile.d.ts → filter-tile/filter-tile.d.ts} +7 -0
  48. package/dist/packages/sdk-ui/src/domains/filters/components/filter-tile/index.d.ts +1 -0
  49. package/dist/packages/sdk-ui/src/domains/filters/components/filter-tile/types.d.ts +36 -0
  50. package/dist/packages/sdk-ui/src/domains/filters/components/filter-tile-container.d.ts +6 -0
  51. package/dist/packages/sdk-ui/src/domains/filters/components/filters-panel/types.d.ts +13 -0
  52. package/dist/packages/sdk-ui/src/domains/filters/components/index.d.ts +1 -1
  53. package/dist/packages/sdk-ui/src/domains/filters/components/member-filter-tile/member-filter-tile.d.ts +7 -0
  54. package/dist/packages/sdk-ui/src/domains/filters/components/unsupported-filter-tile.d.ts +10 -1
  55. package/dist/packages/sdk-ui/src/domains/filters/shared/clone-filter-and-toggle-locked.d.ts +7 -0
  56. package/dist/packages/sdk-ui/src/domains/filters/shared/filter-tile-menu-button.d.ts +10 -0
  57. package/dist/packages/sdk-ui/src/domains/filters/shared/use-filter-tile-menu-items/use-filter-tile-lock-menu-item.d.ts +15 -0
  58. package/dist/packages/sdk-ui/src/domains/filters/shared/use-filter-tile-menu-items/use-filter-tile-menu-items.d.ts +14 -0
  59. package/dist/packages/sdk-ui/src/domains/formulas/fetch-formula.d.ts +1 -1
  60. package/dist/packages/sdk-ui/src/domains/formulas/index.d.ts +0 -1
  61. package/dist/packages/sdk-ui/src/domains/formulas/use-get-shared-formula.d.ts +20 -7
  62. package/dist/packages/sdk-ui/src/domains/query-execution/core/execute-query.d.ts +1 -1
  63. package/dist/packages/sdk-ui/src/domains/query-execution/hooks/use-execute-query-by-widget-id/use-execute-query-by-widget-id.d.ts +1 -1
  64. package/dist/packages/sdk-ui/src/domains/query-execution/hooks/use-query-cache/use-query-cache.d.ts +2 -1
  65. package/dist/packages/sdk-ui/src/domains/visualizations/components/boxplot-chart/boxplot-utils.d.ts +1 -1
  66. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/helpers/get-load-data-function.d.ts +1 -1
  67. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/helpers/data-loading.d.ts +1 -1
  68. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/types.d.ts +1 -1
  69. package/dist/packages/sdk-ui/src/domains/widgets/change-events.d.ts +73 -0
  70. package/dist/packages/sdk-ui/src/domains/widgets/components/chart-widget/types.d.ts +12 -2
  71. package/dist/packages/sdk-ui/src/domains/widgets/components/pivot-table-widget/types.d.ts +12 -2
  72. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-dashboard-filters.d.ts +3 -1
  73. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-data-options.d.ts +1 -1
  74. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-style-options/index.d.ts +1 -0
  75. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-style-options/to-widget-dto-style.d.ts +63 -0
  76. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/types.d.ts +1 -1
  77. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/utils.d.ts +3 -2
  78. package/dist/packages/sdk-ui/src/domains/widgets/event-to-delta.d.ts +17 -0
  79. package/dist/packages/sdk-ui/src/domains/widgets/helpers/header-menu-utils.d.ts +14 -4
  80. package/dist/packages/sdk-ui/src/domains/widgets/helpers/index.d.ts +2 -1
  81. package/dist/packages/sdk-ui/src/domains/widgets/hooks/use-title-renaming.d.ts +27 -0
  82. package/dist/packages/sdk-ui/src/domains/widgets/hooks/use-widget-header-management.d.ts +28 -0
  83. package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-container/widget-container.d.ts +3 -1
  84. package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header/types.d.ts +32 -17
  85. package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header/widget-header.d.ts +3 -1
  86. package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header/widget-menu-button.d.ts +1 -1
  87. package/dist/packages/sdk-ui/src/infra/api/rest-api.d.ts +4 -0
  88. package/dist/packages/sdk-ui/src/infra/api/types/dashboard-dto.d.ts +3 -2
  89. package/dist/packages/sdk-ui/src/infra/app/client-application.d.ts +6 -215
  90. package/dist/packages/sdk-ui/src/infra/app/helpers.d.ts +16 -0
  91. package/dist/packages/sdk-ui/src/infra/app/settings/settings.d.ts +3 -0
  92. package/dist/packages/sdk-ui/src/infra/app/settings/types/deployment-props.d.ts +4 -1
  93. package/dist/packages/sdk-ui/src/infra/app/settings/types/features.d.ts +19 -1
  94. package/dist/packages/sdk-ui/src/infra/app/types.d.ts +236 -0
  95. package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/index.d.ts +5 -0
  96. package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/plugin-context.d.ts +15 -0
  97. package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/plugin-provider.d.ts +21 -0
  98. package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/types.d.ts +50 -0
  99. package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/validate-plugins.d.ts +9 -0
  100. package/dist/packages/sdk-ui/src/infra/contexts/sisense-context/sisense-context.d.ts +1 -1
  101. package/dist/packages/sdk-ui/src/infra/contexts/theme-provider/theme-context.d.ts +2 -1
  102. package/dist/packages/sdk-ui/src/infra/decorators/component-decorators/with-tracking/with-tracking.d.ts +1 -1
  103. package/dist/packages/sdk-ui/src/infra/decorators/hook-decorators/with-tracking.d.ts +1 -1
  104. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/de-de.d.ts +31 -0
  105. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/en-us.d.ts +31 -0
  106. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/es-ar.d.ts +31 -0
  107. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/es-es.d.ts +31 -0
  108. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/fr-fr.d.ts +31 -0
  109. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/it-it.d.ts +31 -0
  110. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ja-jp.d.ts +31 -0
  111. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ko-kr.d.ts +31 -0
  112. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/nl-nl.d.ts +31 -0
  113. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/pt-br.d.ts +31 -0
  114. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ru-ru.d.ts +31 -0
  115. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/tr-tr.d.ts +31 -0
  116. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/zh-cn.d.ts +31 -0
  117. package/dist/packages/sdk-ui/src/infra/translation/resources/en.d.ts +31 -0
  118. package/dist/packages/sdk-ui/src/infra/translation/resources/index.d.ts +62 -0
  119. package/dist/packages/sdk-ui/src/modules/ai/api/chat-rest-api.d.ts +2 -1
  120. package/dist/packages/sdk-ui/src/modules/ai/api/narration-endpoints.d.ts +2 -1
  121. package/dist/packages/sdk-ui/src/modules/ai/get-nlg-insights-from-widget.d.ts +1 -0
  122. package/dist/packages/sdk-ui/src/modules/ai/use-get-nlq-result.d.ts +1 -0
  123. package/dist/packages/sdk-ui/src/modules/ai/use-get-query-recommendations.d.ts +1 -0
  124. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/chart/helpers/axis-type-detection.d.ts +17 -0
  125. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/chart/helpers/chart-type-schemas.d.ts +37 -0
  126. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/chart/helpers/index.d.ts +9 -0
  127. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/chart/helpers/translate-data-options.d.ts +9 -0
  128. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/chart/helpers/validate-chart-json.d.ts +19 -0
  129. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/chart/translate-chart-from-json.d.ts +42 -0
  130. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/chart/translate-chart-to-json.d.ts +41 -0
  131. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/constructs/dimensions/translate-dimensions-from-json.d.ts +11 -0
  132. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/constructs/dimensions/translate-dimensions-to-json.d.ts +22 -0
  133. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/{translate-filters-from-json.d.ts → constructs/filters/translate-filters-from-json.d.ts} +2 -2
  134. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/{translate-filters-to-json.d.ts → constructs/filters/translate-filters-to-json.d.ts} +1 -1
  135. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/{translate-measures-from-json.d.ts → constructs/measures/translate-measures-from-json.d.ts} +4 -4
  136. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/constructs/measures/translate-measures-to-json.d.ts +22 -0
  137. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/index.d.ts +8 -3
  138. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/pivot-table/helpers/index.d.ts +7 -0
  139. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/pivot-table/helpers/translate-data-options.d.ts +14 -0
  140. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/pivot-table/helpers/validate-pivot-table-json.d.ts +19 -0
  141. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/pivot-table/translate-pivot-table-from-json.d.ts +12 -0
  142. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/pivot-table/translate-pivot-table-to-json.d.ts +12 -0
  143. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/query/constants.d.ts +8 -0
  144. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/{translate-query-from-json.d.ts → query/translate-query-from-json.d.ts} +3 -3
  145. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/{translate-query-to-jaql.d.ts → query/translate-query-to-jaql.d.ts} +1 -1
  146. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/{translate-query-to-json.d.ts → query/translate-query-to-json.d.ts} +2 -2
  147. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/data-options/adapters.d.ts +19 -0
  148. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/data-options/index.d.ts +9 -0
  149. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/data-options/translate-axis-from-json.d.ts +24 -0
  150. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/data-options/translate-axis-to-json.d.ts +18 -0
  151. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/{process-function → shared/expression}/custom-formula/process-custom-formula.d.ts +1 -1
  152. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/{process-function → shared/expression}/custom-formula/validate-custom-formula.d.ts +13 -0
  153. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/{process-function → shared/expression}/execute-function.d.ts +1 -1
  154. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/{process-function → shared/expression}/factory-function-processors.d.ts +1 -1
  155. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/{process-function → shared/expression}/factory-function-schemas.d.ts +1 -1
  156. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/{process-function → shared/expression}/filter-processors.d.ts +1 -1
  157. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/expression/formula-function-schemas.d.ts +25 -0
  158. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/{process-function → shared/expression}/process-arg.d.ts +1 -1
  159. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/{process-function → shared/expression}/process-node.d.ts +1 -1
  160. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/utils/attribute-helpers.d.ts +50 -0
  161. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/utils/fuzzy-match.d.ts +16 -0
  162. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/{parse-compose-code.d.ts → shared/utils/parse-compose-code.d.ts} +1 -1
  163. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/utils/schema-index.d.ts +49 -0
  164. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/utils/translation-helpers.d.ts +31 -0
  165. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/types.d.ts +115 -4
  166. package/dist/packages/sdk-ui/src/modules/analytics-composer/types.d.ts +6 -6
  167. package/dist/packages/sdk-ui/src/props.d.ts +14 -21
  168. package/dist/packages/sdk-ui/src/public-api/alpha.d.ts +1 -1
  169. package/dist/packages/sdk-ui/src/public-api/beta.d.ts +1 -1
  170. package/dist/packages/sdk-ui/src/public-api/internal.d.ts +9 -6
  171. package/dist/packages/sdk-ui/src/public-api/public.d.ts +2 -2
  172. package/dist/packages/sdk-ui/src/public-api/sisense-internal.d.ts +18 -5
  173. package/dist/packages/sdk-ui/src/shared/components/alert/alert.d.ts +91 -0
  174. package/dist/packages/sdk-ui/src/shared/components/alert/index.d.ts +2 -0
  175. package/dist/packages/sdk-ui/src/shared/components/grouped-items-browser/types.d.ts +7 -1
  176. package/dist/packages/sdk-ui/src/shared/components/inline-text-editor/inline-text-editor.d.ts +26 -0
  177. package/dist/packages/sdk-ui/src/shared/components/inline-text-editor/use-blur-on-pointer-down-outside.d.ts +11 -0
  178. package/dist/packages/sdk-ui/src/shared/components/loading-indicator.d.ts +2 -1
  179. package/dist/packages/sdk-ui/src/shared/components/menu/menu-button.d.ts +2 -1
  180. package/dist/packages/sdk-ui/src/shared/components/quota-notification/quota-notification.d.ts +32 -0
  181. package/dist/packages/sdk-ui/src/shared/hooks/use-app-settings.d.ts +12 -0
  182. package/dist/packages/sdk-ui/src/shared/hooks/use-quota-notification.d.ts +54 -0
  183. package/dist/packages/sdk-ui/src/shared/hooks/use-quota-warning-dismissed.d.ts +8 -0
  184. package/dist/packages/sdk-ui/src/shared/hooks/use-should-load.d.ts +1 -1
  185. package/dist/packages/sdk-ui/src/shared/hooks/use-with-change-detection.d.ts +5 -5
  186. package/dist/packages/sdk-ui/src/shared/icons/warning-icon.d.ts +6 -0
  187. package/dist/packages/sdk-ui/src/shared/icons/x-circle-icon.d.ts +6 -0
  188. package/dist/packages/sdk-ui/src/shared/types/menu-item.d.ts +17 -0
  189. package/dist/packages/sdk-ui/src/types.d.ts +3 -3
  190. package/dist/{use-common-filters-DBqRT0et.js → quota-notification-CVl0isIV.js} +18254 -16897
  191. package/dist/quota-notification-RAaHp-eO.cjs +713 -0
  192. package/dist/translations/de-de.cjs +1 -1
  193. package/dist/translations/de-de.js +34 -3
  194. package/dist/translations/en-us.cjs +1 -1
  195. package/dist/translations/en-us.js +1 -1
  196. package/dist/translations/es-ar.cjs +1 -1
  197. package/dist/translations/es-ar.js +34 -3
  198. package/dist/translations/es-es.cjs +1 -1
  199. package/dist/translations/es-es.js +34 -3
  200. package/dist/translations/fr-fr.cjs +1 -1
  201. package/dist/translations/fr-fr.js +34 -3
  202. package/dist/translations/it-it.cjs +1 -1
  203. package/dist/translations/it-it.js +34 -3
  204. package/dist/translations/ja-jp.cjs +1 -1
  205. package/dist/translations/ja-jp.js +34 -3
  206. package/dist/translations/ko-kr.cjs +1 -1
  207. package/dist/translations/ko-kr.js +34 -3
  208. package/dist/translations/nl-nl.cjs +1 -1
  209. package/dist/translations/nl-nl.js +34 -3
  210. package/dist/translations/pt-br.cjs +1 -1
  211. package/dist/translations/pt-br.js +34 -3
  212. package/dist/translations/ru-ru.cjs +1 -1
  213. package/dist/translations/ru-ru.js +34 -3
  214. package/dist/translations/tr-tr.cjs +1 -1
  215. package/dist/translations/tr-tr.js +34 -3
  216. package/dist/translations/zh-cn.cjs +1 -1
  217. package/dist/translations/zh-cn.js +34 -3
  218. package/dist/{types-Ockb-LJ0.js → types-B96nVbgX.js} +1 -1
  219. package/dist/{types-Ch9J6ycn.cjs → types-DZ4vWh8j.cjs} +1 -1
  220. package/dist/{utils-DH69_bUK.cjs → utils-CgV-jWWQ.cjs} +44 -44
  221. package/dist/{utils-BXDqo_yg.js → utils-ChqSLRbz.js} +2073 -2081
  222. package/dist/{widget-composer-DgCWcMJ1.cjs → widget-composer-Blul90Zb.cjs} +3 -3
  223. package/dist/{widget-composer-DfVCQL2G.js → widget-composer-Cf_CN3Ux.js} +8 -8
  224. package/package.json +12 -9
  225. package/dist/dimensions-DVGn8ORR.cjs +0 -1
  226. package/dist/dimensions-DuUqQgpi.js +0 -202
  227. package/dist/execute-query-B21bnb05.js +0 -5802
  228. package/dist/execute-query-BIkhszY1.cjs +0 -1
  229. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/common.d.ts +0 -84
  230. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/translate-dimensions-from-json.d.ts +0 -12
  231. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/translate-dimensions-to-json.d.ts +0 -13
  232. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/translate-measures-to-json.d.ts +0 -13
  233. package/dist/use-common-filters-CXJN3RSs.cjs +0 -672
  234. /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 Qe=Object.defineProperty,Ke=Object.defineProperties;var Ge=Object.getOwnPropertyDescriptors;var de=Object.getOwnPropertySymbols;var Ye=Object.prototype.hasOwnProperty,He=Object.prototype.propertyIsEnumerable;var me=(e,r,t)=>r in e?Qe(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,y=(e,r)=>{for(var t in r||(r={}))Ye.call(r,t)&&me(e,t,r[t]);if(de)for(var t of de(r))He.call(r,t)&&me(e,t,r[t]);return e},F=(e,r)=>Ke(e,Ge(r));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("../types-Ch9J6ycn.cjs"),l=require("../execute-query-BIkhszY1.cjs"),U=require("../dimensions-DVGn8ORR.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 Fe{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 Xe extends Fe{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 ve(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 er(e,r){const t=ve(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 z(e,r){Object.entries(e).forEach(([t,n])=>r(n,t))}function j(e,r){return e.indexOf(r)!==-1}function pe(e,r){for(let t=0;t<e.length;t++){const n=e[t];if(r(n))return n}}class rr{constructor(){this.transfomers={}}register(r){this.transfomers[r.name]=r}findApplicable(r){return er(this.transfomers,t=>t.isApplicable(r))}findByName(r){return this.transfomers[r]}}const tr=e=>Object.prototype.toString.call(e).slice(8,-1),we=e=>typeof e=="undefined",nr=e=>e===null,k=e=>typeof e!="object"||e===null||e===Object.prototype?!1:Object.getPrototypeOf(e)===null?!0:Object.getPrototypeOf(e)===Object.prototype,X=e=>k(e)&&Object.keys(e).length===0,M=e=>Array.isArray(e),sr=e=>typeof e=="string",ir=e=>typeof e=="number"&&!isNaN(e),or=e=>typeof e=="boolean",ar=e=>e instanceof RegExp,L=e=>e instanceof Map,_=e=>e instanceof Set,qe=e=>tr(e)==="Symbol",ur=e=>e instanceof Date&&!isNaN(e.valueOf()),lr=e=>e instanceof Error,ye=e=>typeof e=="number"&&isNaN(e),cr=e=>or(e)||nr(e)||we(e)||ir(e)||sr(e)||qe(e),fr=e=>typeof e=="bigint",dr=e=>e===1/0||e===-1/0,mr=e=>ArrayBuffer.isView(e)&&!(e instanceof DataView),pr=e=>e instanceof URL,Ee=e=>e.replace(/\./g,"\\."),Y=e=>e.map(String).map(Ee).join("."),B=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 A(e,r,t,n){return{isApplicable:e,annotation:r,transform:t,untransform:n}}const Ce=[A(we,"undefined",()=>null,()=>{}),A(fr,"bigint",e=>e.toString(),e=>typeof BigInt!="undefined"?BigInt(e):(console.error("Please add a BigInt polyfill."),e)),A(ur,"Date",e=>e.toISOString(),e=>new Date(e)),A(lr,"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}),A(ar,"regexp",e=>""+e,e=>{const r=e.slice(1,e.lastIndexOf("/")),t=e.slice(e.lastIndexOf("/")+1);return new RegExp(r,t)}),A(_,"set",e=>[...e.values()],e=>new Set(e)),A(L,"map",e=>[...e.entries()],e=>new Map(e)),A(e=>ye(e)||dr(e),"number",e=>ye(e)?"NaN":e>0?"Infinity":"-Infinity",Number),A(e=>e===0&&1/e===-1/0,"number",()=>"-0",Number),A(pr,"URL",e=>e.toString(),e=>new URL(e))];function J(e,r,t,n){return{isApplicable:e,annotation:r,transform:t,untransform:n}}const $e=J((e,r)=>qe(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}),yr=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,Uint8ClampedArray].reduce((e,r)=>(e[r.name]=r,e),{}),Ae=J(mr,e=>["typed-array",e.constructor.name],e=>[...e],(e,r)=>{const t=yr[r[1]];if(!t)throw new Error("Trying to deserialize unknown typed array");return new t(e)});function xe(e,r){return e!=null&&e.constructor?!!r.classRegistry.getIdentifier(e.constructor):!1}const De=J(xe,(e,r)=>["class",r.classRegistry.getIdentifier(e.constructor)],(e,r)=>{const t=r.classRegistry.getAllowedProps(e.constructor);if(!t)return y({},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)}),Me=J((e,r)=>!!r.customTransformerRegistry.findApplicable(e),(e,r)=>["custom",r.customTransformerRegistry.findApplicable(e).name],(e,r)=>r.customTransformerRegistry.findApplicable(e).serialize(e),(e,r,t)=>{const n=t.customTransformerRegistry.findByName(r[1]);if(!n)throw new Error("Trying to deserialize unknown custom value");return n.deserialize(e)}),gr=[De,$e,Me,Ae],ge=(e,r)=>{const t=pe(gr,s=>s.isApplicable(e,r));if(t)return{value:t.transform(e,r),type:t.annotation(e,r)};const n=pe(Ce,s=>s.isApplicable(e,r));if(n)return{value:n.transform(e,r),type:n.annotation}},Se={};Ce.forEach(e=>{Se[e.annotation]=e});const hr=(e,r,t)=>{if(M(r))switch(r[0]){case"symbol":return $e.untransform(e,r,t);case"class":return De.untransform(e,r,t);case"custom":return Me.untransform(e,r,t);case"typed-array":return Ae.untransform(e,r,t);default:throw new Error("Unknown transformation: "+r)}else{const n=Se[r];if(!n)throw new Error("Unknown transformation: "+r);return n.untransform(e,t)}},I=(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 br=(e,r)=>{Te(r);for(let t=0;t<r.length;t++){const n=r[t];if(_(e))e=I(e,+n);else if(L(e)){const s=+n,o=+r[++t]==0?"key":"value",i=I(e,s);switch(o){case"key":e=i;break;case"value":e=e.get(i);break}}else e=e[n]}return e},v=(e,r,t)=>{if(Te(r),r.length===0)return t(e);let n=e;for(let o=0;o<r.length-1;o++){const i=r[o];if(M(n)){const a=+i;n=n[a]}else if(k(n))n=n[i];else if(_(n)){const a=+i;n=I(n,a)}else if(L(n)){if(o===r.length-2)break;const u=+i,c=+r[++o]==0?"key":"value",p=I(n,u);switch(c){case"key":n=p;break;case"value":n=n.get(p);break}}}const s=r[r.length-1];if(M(n)?n[+s]=t(n[+s]):k(n)&&(n[s]=t(n[s])),_(n)){const o=I(n,+s),i=t(o);o!==i&&(n.delete(o),n.add(i))}if(L(n)){const o=+r[r.length-2],i=I(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 ee(e,r,t=[]){if(!e)return;if(!M(e)){z(e,(o,i)=>ee(o,r,[...t,...B(i)]));return}const[n,s]=e;s&&z(s,(o,i)=>{ee(o,r,[...t,...B(i)])}),r(n,t)}function Fr(e,r,t){return ee(r,(n,s)=>{e=v(e,s,o=>hr(o,n,t))}),e}function wr(e,r){function t(n,s){const o=br(e,B(s));n.map(B).forEach(i=>{e=v(e,i,()=>o)})}if(M(r)){const[n,s]=r;n.forEach(o=>{e=v(e,B(o),()=>e)}),s&&z(s,t)}else z(r,t);return e}const qr=(e,r)=>k(e)||M(e)||L(e)||_(e)||xe(e,r);function Er(e,r,t){const n=t.get(e);n?n.push(r):t.set(e,[r])}function Cr(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(Y):t[Y(o)]=i.map(Y)}),n?X(t)?[n]:[n,t]:X(t)?void 0:t}const Ne=(e,r,t,n,s=[],o=[],i=new Map)=>{var h;const a=cr(e);if(!a){Er(e,s,r);const d=i.get(e);if(d)return n?{transformedValue:null}:d}if(!qr(e,t)){const d=ge(e,t),b=d?{transformedValue:d.value,annotations:[d.type]}:{transformedValue:e};return a||i.set(e,b),b}if(j(o,e))return{transformedValue:null};const u=ge(e,t),c=(h=u==null?void 0:u.value)!=null?h:e,p=M(c)?[]:{},m={};z(c,(d,b)=>{if(b==="__proto__"||b==="constructor"||b==="prototype")throw new Error(`Detected property ${b}. This is a prototype pollution risk, please remove it from your object.`);const x=Ne(d,r,t,n,[...s,b],[...o,e],i);p[b]=x.transformedValue,M(x.annotations)?m[b]=x.annotations:k(x.annotations)&&z(x.annotations,(P,O)=>{m[Ee(b)+"."+O]=P})});const g=X(m)?{transformedValue:p,annotations:u?[u.type]:void 0}:{transformedValue:p,annotations:u?[u.type,m]:m};return a||i.set(e,g),g};function Re(e){return Object.prototype.toString.call(e).slice(8,-1)}function he(e){return Re(e)==="Array"}function $r(e){if(Re(e)!=="Object")return!1;const r=Object.getPrototypeOf(e);return!!r&&r.constructor===Object&&r===Object.prototype}function Ar(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 re(e,r={}){if(he(e))return e.map(s=>re(s,r));if(!$r(e))return e;const t=Object.getOwnPropertyNames(e),n=Object.getOwnPropertySymbols(e);return[...t,...n].reduce((s,o)=>{if(he(r.props)&&!r.props.includes(o))return s;const i=e[o],a=re(i,r);return Ar(s,o,a,e,r.nonenumerable),s},{})}class f{constructor({dedupe:r=!1}={}){this.classRegistry=new Xe,this.symbolRegistry=new Fe(t=>{var n;return(n=t.description)!=null?n:""}),this.customTransformerRegistry=new rr,this.allowedErrorProps=[],this.dedupe=r}serialize(r){const t=new Map,n=Ne(r,t,this,this.dedupe),s={json:n.transformedValue};n.annotations&&(s.meta=F(y({},s.meta),{values:n.annotations}));const o=Cr(t,this.dedupe);return o&&(s.meta=F(y({},s.meta),{referentialEqualities:o})),s}deserialize(r){const{json:t,meta:n}=r;let s=re(t);return n!=null&&n.values&&(s=Fr(s,n.values,this)),n!=null&&n.referentialEqualities&&(s=wr(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(y({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 R=e=>e===void 0?l.Sort.None:e,xr=e=>new S.JaqlElement(e.metadataItem,e.type),se=e=>new l.DimensionalAttribute(e.name,e.expression,e.type,e.description,R(e.sort),e.dataSource,e.composeCode),ie=e=>new l.DimensionalLevelAttribute(e.name,e.expression,e.granularity,e.format,e.description,R(e.sort),e.dataSource,e.composeCode),E=e=>{switch(e.__serializable){case"DimensionalAttribute":return se(e);case"DimensionalLevelAttribute":return ie(e);default:return e}},Oe=e=>new U.DimensionalDimension(e.name,e.expression,e.attributes.map(E),e.dimensions.map(Dr),e.type,e.description,R(e.sort),e.dataSource,e.composeCode,e.defaultAttribute?E(e.defaultAttribute):void 0),Ie=e=>new U.DimensionalDateDimension(e.name,e.expression,e.description,R(e.sort),e.dataSource,e.composeCode),Dr=e=>{switch(e.__serializable){case"DimensionalDimension":return Oe(e);case"DimensionalDateDimension":return Ie(e);default:return e}},oe=e=>new l.DimensionalBaseMeasure(e.name,E(e.attribute),e.aggregation,e.format,e.description,R(e.sort),e.dataSource,e.composeCode),ae=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,se(n)];case"DimensionalLevelAttribute":return[t,ie(n)];case"DimensionalBaseMeasure":return[t,oe(n)];case"DimensionalCalculatedMeasure":return[t,ae(n)];default:return[t,n]}return[t,n]}));return new l.DimensionalCalculatedMeasure(e.name,e.expression,r,e.format,e.description,R(e.sort),e.dataSource,e.composeCode)},ze=e=>new l.DimensionalMeasureTemplate(e.name,E(e.attribute),e.format,e.description,R(e.sort),e.dataSource,e.composeCode),H=e=>{switch(e.__serializable){case"DimensionalBaseMeasure":return oe(e);case"DimensionalCalculatedMeasure":return ae(e);case"DimensionalMeasureTemplate":return ze(e);default:return e}},w=e=>{switch(e.__serializable){case"MembersFilter":return new l.MembersFilter(E(e.attribute),e.members,e.config.backgroundFilter?F(y({},e.config),{backgroundFilter:w(e.config.backgroundFilter)}):e.config,e.composeCode);case"LogicalAttributeFilter":return new l.LogicalAttributeFilter(e.filters.map(t=>w(t)),e.operator,e.config,e.composeCode);case"CascadingFilter":return new l.CascadingFilter(e._filters.map(t=>w(t)),e.config,e.composeCode);case"ExcludeFilter":return new l.ExcludeFilter(w(e.filter),e.input?w(e.input):void 0,e.config,e.composeCode);case"MeasureFilter":return new l.MeasureFilter(E(e.attribute),H(e.measure),e.operatorA,e.valueA,e.operatorB,e.valueB,e.config,e.composeCode);case"RankingFilter":return new l.RankingFilter(E(e.attribute),H(e.measure),e.operator,e.count,e.config,e.composeCode);case"MeasureRankingFilter":return new l.MeasureRankingFilter(H(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:S.isJaqlElement,serialize:e=>e.serialize(),deserialize:e=>xr(e)},"JaqlElement");f.registerCustom({isApplicable:l.isDimensionalAttribute,serialize:e=>e.serialize(),deserialize:e=>se(e)},"DimensionalAttribute");f.registerCustom({isApplicable:l.isDimensionalLevelAttribute,serialize:e=>e.serialize(),deserialize:e=>ie(e)},"DimensionalLevelAttribute");f.registerCustom({isApplicable:U.isDimensionalDimension,serialize:e=>e.serialize(),deserialize:e=>Oe(e)},"DimensionalDimension");f.registerCustom({isApplicable:U.isDimensionalDateDimension,serialize:e=>e.serialize(),deserialize:e=>Ie(e)},"DimensionalDateDimension");f.registerCustom({isApplicable:l.isDimensionalBaseMeasure,serialize:e=>e.serialize(),deserialize:e=>oe(e)},"DimensionalBaseMeasure");f.registerCustom({isApplicable:l.isDimensionalCalculatedMeasure,serialize:e=>e.serialize(),deserialize:e=>ae(e)},"DimensionalCalculatedMeasure");f.registerCustom({isApplicable:l.isDimensionalMeasureTemplate,serialize:e=>e.serialize(),deserialize:e=>ze(e)},"DimensionalMeasureTemplate");f.registerCustom({isApplicable:l.isMembersFilter,serialize:e=>e.serialize(),deserialize:e=>w(e)},"MembersFilter");f.registerCustom({isApplicable:l.isLogicalAttributeFilter,serialize:e=>e.serialize(),deserialize:e=>w(e)},"LogicalAttributeFilter");f.registerCustom({isApplicable:l.isCascadingFilter,serialize:e=>e.serialize(),deserialize:e=>w(e)},"CascadingFilter");f.registerCustom({isApplicable:l.isExcludeFilter,serialize:e=>e.serialize(),deserialize:e=>w(e)},"ExcludeFilter");f.registerCustom({isApplicable:l.isMeasureFilter,serialize:e=>e.serialize(),deserialize:e=>w(e)},"MeasureFilter");f.registerCustom({isApplicable:l.isRankingFilter,serialize:e=>e.serialize(),deserialize:e=>w(e)},"RankingFilter");f.registerCustom({isApplicable:l.isMeasureRankingFilter,serialize:e=>e.serialize(),deserialize:e=>w(e)},"MeasureRankingFilter");f.registerCustom({isApplicable:l.isNumericFilter,serialize:e=>e.serialize(),deserialize:e=>w(e)},"NumericFilter");f.registerCustom({isApplicable:l.isTextFilter,serialize:e=>e.serialize(),deserialize:e=>w(e)},"TextFilter");f.registerCustom({isApplicable:l.isDateRangeFilter,serialize:e=>e.serialize(),deserialize:e=>w(e)},"DateRangeFilter");f.registerCustom({isApplicable:l.isRelativeDateFilter,serialize:e=>e.serialize(),deserialize:e=>w(e)},"RelativeDateFilter");f.registerCustom({isApplicable:l.isCustomFilter,serialize:e=>e.serialize(),deserialize:e=>w(e)},"CustomFilter");const Mr=f,q="DM.";function C(e){return typeof e=="object"&&e!==null&&"function"in e&&"args"in e}function Pe(e){return e.every(C)}function Q(e){return"attribute"in e&&"config"in e}function W(e){return"left"in e&&"right"in e&&"operator"in e}function ue(e){return!Q(e)&&!W(e)}function Sr(e){return typeof e=="object"&&e!==null&&"column"in e&&typeof e.column=="string"&&!("function"in e&&"args"in e)}function Tr(e){const r=e;return typeof e!="object"||e===null||r===null||!("column"in r)?!1:C(r.column)}function Nr(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 Be(e,r){if(!e.startsWith(q))throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${q}TableName.ColumnName[.Level]"`);const t=e.slice(q.length);if(!t)throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${q}TableName.ColumnName[.Level]"`);let n,s;for(const m of r.sortedTables)if(t.startsWith(m.name+".")){const g=t.slice(m.name.length+1);if(!g)throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${q}TableName.ColumnName[.Level]"`);n=m,s=g;break}if(!n){const m=t.indexOf(".");if(m===-1)throw new Error(`Invalid dimensional element name format: "${e}". Expected format: "${q}TableName.ColumnName[.Level]"`);const g=t.slice(0,m);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 m of o){if(s===m.name)return{table:n,column:m};if(!s.startsWith(m.name+"."))continue;const g=s.slice(m.name.length+1);if(!g)continue;const h=u.includes(g),d=l.isDatetime(m.dataType);if(h){if(d)return{table:n,column:m,level:g};i||(i=m,a=g);continue}d&&!i&&(i=m,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("."),p=c===-1?s:s.slice(0,c);throw new Error(`Column "${p}" not found in table "${n.name}"`)}function Rr(e,r){const{table:t,column:n,level:s}=Be(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 ke(e){return e.type===l.MetadataTypes.TextAttribute}function Le(e){return e.type===l.MetadataTypes.NumericAttribute}function Or(e){return e.type===l.MetadataTypes.DateLevel}function Ir(e){return ke(e)||Le(e)}function K(e){return e.type===l.MetadataTypes.TextAttribute?"text":e.type===l.MetadataTypes.NumericAttribute?"numeric":e.type===l.MetadataTypes.DateLevel?"date/datetime":"unknown"}function G(e,r,t){const{column:n,level:s}=Rr(e,t);return l.createAttributeHelper({expression:n.expression,dataType:n.dataType,granularity:s,format:void 0,sort:void 0,dataSource:r})}function zr(e,r,t){const{column:n,level:s}=Be(e,t);if(s)throw new Error(`Invalid DateDimension name format: "${e}". Expected format: "${q}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 U.createDateDimension({name:n.name,expression:n.expression,dataSource:r})}function D(e,r){const t=e();return t.success?t.data:(r.push(...t.errors),null)}const Pr=(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:F(y({},t),{message:`Invalid sort type. Expected "sortAsc", "sortDesc", or "sortNone". Got: "${n}".`})}},Br=(e,r,t,n)=>{const s=G(e.column,r,t);return Pr(s,e.sortType,n)},kr=(e,r,t,n)=>typeof e=="string"?{attribute:G(e,r,t)}:Sr(e)?Br(e,r,t,n):{error:F(y({},n),{message:'Invalid dimension item. Expected a string (composeCode) or object with "column" and optional "sortType".'})},Lr=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=kr(i,t,n,u);if(c.error){o.push(c.error);return}c.attribute&&s.push(c.attribute)}catch(c){const p=c instanceof Error?c.message:"Unknown error";o.push(F(y({},u),{message:p}))}}),o.length>0?{success:!1,errors:o}:{success:!0,data:s}};function le(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 _r(e,r){const t=e.replace("measureFactory.",""),s=le(l.measureFactory,t)(...r);if(!ue(s))throw new Error(`Function "${e}" did not return a valid Measure`);return s}function Vr(e,r){const t=e.replace("filterFactory.logic.",""),s=le(l.logic,t)(...r);if(!W(s))throw new Error(`Function "${e}" did not return a valid FilterRelations`);return s}function Ur(e,r){if(e.startsWith("filterFactory.logic."))return Vr(e,r);const t=e.replace("filterFactory.",""),s=le(l.filterFactory,t)(...r);if(!Q(s)&&!W(s))throw new Error(`Function "${e}" did not return a valid Filter or FilterRelations`);return s}function Wr(e,r){const n=e.split(".")[0];if(n==="measureFactory")return _r(e,r);if(n==="filterFactory")return Ur(e,r);throw new Error(`Unsupported factory: "${n}". Supported factories: measureFactory, filterFactory`)}const jr=/\[([a-zA-Z_][a-zA-Z0-9_.-]*)\]/g,_e=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"]),Jr=new RegExp(`\\b(${Array.from(_e).join("|")})\\s*\\(`,"i");function Qr(e){return C(e)?!0:typeof e=="string"&&e.startsWith(q)?!1:e&&typeof e=="object"&&"kind"in e?e.kind==="measure":!0}function Kr(e){const r=/\b(\w+)\s*\(/g,t=new Set;let n;for(;(n=r.exec(e))!==null;){const s=n[1];_e.has(s.toUpperCase())||t.add(s)}return Array.from(t)}function Gr(e){return e.length===1?`[${e[0]}]`:e.map(r=>`[${r}]`).join(", ")}function Yr(e){return e.length===0?"":e.length===1?`${e[0]} is not an aggregative function. `:`${e.join(", ")} are not aggregative functions. `}function Hr(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 h=c[0].replace(/\s*\[.*$/,"");a.errors.push(`${i}args[1]: Invalid syntax: '${h}' - operator cannot be used before bracket reference without parentheses`),a.isValid=!1}a.references=[...new Set([...e.matchAll(new RegExp(jr.source,"g"))].map(h=>h[1]))];const p=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(p.length===0)return a.errors.push(`${i}args[2]: Context cannot be empty - custom formulas require context definitions`),a.isValid=!1,a;const m=a.references.filter(h=>!p.includes(h));if(m.length>0&&(a.isValid=!1,m.length===1?a.errors.push(`${i}args[1]: Reference [${m[0]}] not found in context. Available keys: ${p.join(", ")}`):a.errors.push(`${i}args[1]: References [${m.join("], [")}] not found in context. Available keys: ${p.join(", ")}`)),!Jr.test(e)){const h=a.references.filter(d=>d in r&&!Qr(r[d]));h.length>0&&(a.errors.push(`${i}args[1]: ${Yr(Kr(e))}Bracket reference(s) ${Gr(h)} point to raw attributes and must be wrapped in an aggregative function (e.g. SUM, AVG)`),a.isValid=!1)}if((n||s)&&p.length>0){const h=p.filter(d=>!a.references.includes(d));if(a.unusedContextKeys=h,h.length>0){const d=`${i}args[2]: Context keys [${h.join(", ")}] are defined but not used in formula`;s?(a.errors.push(d),a.isValid=!1):n&&a.warnings.push(d)}}return a}function Zr(e,r,t={}){const n=Hr(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 Xr(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];Zr(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(q))try{s[`${o}`]=G(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 (${q}...), but got: ${typeof i}`)}e[2]=s}function ce(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 be(e,r){const t=ce(e,r);if(!Ir(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be string or numeric type, got ${K(t)} attribute`)}function T(e,r){const t=ce(e,r);if(!Le(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be numeric type, got ${K(t)} attribute`)}function N(e,r){const t=ce(e,r);if(!ke(t))throw new Error(`${r.pathPrefix}args[0]: Attribute must be string type, got ${K(t)} attribute`)}function vr(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 et(e,r){const t=vr(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 rt={"measureFactory.customFormula":Xr,"filterFactory.equals":be,"filterFactory.doesntEqual":be,"filterFactory.greaterThan":T,"filterFactory.greaterThanOrEqual":T,"filterFactory.lessThan":T,"filterFactory.lessThanOrEqual":T,"filterFactory.between":T,"filterFactory.betweenNotEqual":T,"filterFactory.numeric":T,"filterFactory.contains":N,"filterFactory.doesntContain":N,"filterFactory.startsWith":N,"filterFactory.doesntStartWith":N,"filterFactory.endsWith":N,"filterFactory.doesntEndWith":N,"filterFactory.like":N,"filterFactory.exclude":et};function tt(e){return rt[`${e}`]}const nt={"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 fe(e){return nt[`${e}`]}function st(e){const r=fe(e);return r?r.filter(t=>t.required).length:0}function it(e){const r=fe(e);return r?r.length:0}function ot(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(q))try{return G(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: "${q}TableName.ColumnName[.Level]"`)}function at(e,r,t,n){if(e.startsWith(q))try{return zr(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: "${q}TableName.ColumnName"`)}function ut(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}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 at(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(!Or(a))throw new Error(`${i}: Attribute must be date/datetime type, got ${K(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(ot(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=fe(o);if(!u)throw new Error(`${a}function: Unknown function "${o}"`);const c=st(o),p=it(o);if(i.length<c)throw new Error(`${a}function: Expected at least ${c} arguments, got ${i.length}`);if(i.length>p)throw new Error(`${a}function: Expected at most ${p} arguments, got ${i.length}`);const m=[],g=[];for(let d=0;d<Math.max(i.length,u.length);d++){const b=u[`${d}`],x=i[`${d}`],P=a?`${a}args[${d}]`:`args[${d}]`;if(x===void 0){b!=null&&b.required&&g.push(`${P}: Missing required argument (expected ${b.type})`);continue}if(!b){g.push(`${P}: Unexpected argument`);continue}try{const O=ut({data:x,context:{dataSource:t,schemaIndex:n,pathPrefix:P,argSchema:b}});m.push(O)}catch(O){const Je=O instanceof Error?O.message:"Unknown error";g.push(Je)}}if(g.length>0){const d=g.join("; ");throw new Error(d)}const h=tt(o);if(h)try{h(m,{dataSource:t,schemaIndex:n,pathPrefix:a})}catch(d){const b=d instanceof Error?d.message:"Unknown validation error";throw new Error(b)}return Wr(o,m)}function Ve(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 lt(e){let r=[];for(const t of e)W(t)?r=l.mergeFiltersOrFilterRelations(t,r):r=l.mergeFiltersOrFilterRelations([Ve(t)],r);return r!=null?r:[]}const ct=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:""}});!W(c)&&!Q(c)?o.push(F(y({},u),{message:"Invalid filter JSON"})):s.push(c)}catch(c){const p=c instanceof Error?c.message:"Unknown error";o.push(F(y({},u),{message:p}))}}),o.length>0?{success:!1,errors:o}:{success:!0,data:lt(s)}},ft=e=>{const{data:r}=e,{dataSource:t,schemaIndex:n}=e.context;return r?Pe(r)?ct({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:[]}},dt=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(Ve(c)):o.push(F(y({},u),{message:"Invalid filter JSON"}))}catch(c){const p=c instanceof Error?c.message:"Unknown error";o.push(F(y({},u),{message:p}))}}),o.length>0?{success:!1,errors:o}:{success:!0,data:s}},mt=e=>{const{data:r}=e,{dataSource:t,schemaIndex:n}=e.context;return r?Pe(r)?dt({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:[]}},pt=(e,r,t)=>{const{dataSource:n,schemaIndex:s}=r;try{const o=$({data:e,context:{dataSource:n,schemaIndex:s,pathPrefix:""}});return ue(o)?{success:!0,data:o}:{success:!1,errors:[F(y({},t),{message:"Invalid measure JSON"})]}}catch(o){const i=o instanceof Error?o.message:"Unknown error";return{success:!1,errors:[F(y({},t),{message:i})]}}},yt=(e,r,t)=>r?l.isSortDirection(r)?{measure:e.sort(l.convertSortDirectionToSort(r))}:{measure:e,error:F(y({},t),{message:`Invalid sort type. Expected "sortAsc", "sortDesc", or "sortNone". Got: "${r}".`})}:{measure:e},gt=(e,r,t,n)=>{const s=$({data:e.column,context:{dataSource:r,schemaIndex:t,pathPrefix:""}});return ue(s)?yt(s,e.sortType,n):{error:F(y({},n),{message:"Invalid measure JSON"})}},ht=(e,r,t,n)=>{if(Tr(e))return gt(e,r,t,n);if(C(e)){const s=pt(e,{dataSource:r,schemaIndex:t},n);return s.success?{measure:s.data}:{error:s.errors[0]}}return{error:F(y({},n),{message:'Invalid measure item. Expected a function call (function/args) or object with "column" and optional "sortType".'})}},bt=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=ht(i,t,n,u);if(c.error){o.push(c.error);return}c.measure&&s.push(c.measure)}catch(c){const p=c instanceof Error?c.message:"Unknown error";o.push(F(y({},u),{message:p}))}}),o.length>0?{success:!1,errors:o}:{success:!0,data:s}},Ft=e=>{const{data:r}=e,{dataSource:t,tables:n}=e.context,s=Nr(n),o=[],i=D(()=>Lr({data:r.dimensions||[],context:{dataSource:t,schemaIndex:s}}),o),a=D(()=>bt({data:r.measures||[],context:{dataSource:t,schemaIndex:s}}),o),u=D(()=>ft({data:r.filters||[],context:{dataSource:t,schemaIndex:s}}),o);let c=null;return r.highlights&&(c=D(()=>mt({data:r.highlights||[],context:{dataSource:t,schemaIndex:s}}),o)),o.length>0?{success:!1,errors:o}:{success:!0,data:y({dataSource:l.convertDataSource(t),dimensions:i||[],measures:a||[],filters:u||[]},c&&{highlights:c})}};function wt(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(q)){t.push({category:"dimensions",index:s,input:o(),message:`Expected composeCode to start with "${q}" 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 Ue(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 qt(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 Et(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function V(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=We(s);return{function:n,args:o}}function We(e){return e.trim()?Ue(e,",").map(je):[]}function je(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=We(t);return n.every(s=>typeof s=="string"),n}if(e.startsWith("{")&&e.endsWith("}")){const t=e.slice(1,-1).trim();return t?$t(t):{}}return e.includes("(")&&e.includes(")")?V(e):(e.startsWith("DM."),e)}function Ct(e){const r=qt(e,":");if(r===-1)throw new Error(`Invalid object property: expected "key: value", got "${e}"`);const t=Et(e.slice(0,r).trim()),n=je(e.slice(r+1).trim());return[t,n]}function $t(e){if(!e.trim())return{};const r=Ue(e,",").map(Ct).filter(([,t])=>t!==null);return Object.fromEntries(r)}const te="Unknown error";function At(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:[V(e.composeCode)]}}catch(n){const s=n instanceof Error?n.message:te;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=V(n.composeCode);t.push(o)}catch(o){const i=o instanceof Error?o.message:te;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 xt(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=V(n.composeCode);r.push(o)}catch(o){const i=o instanceof Error?o.message:te;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 Dt(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=V(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 ne(e){return typeof e=="string"?e.replace(/\[\[([^\]]+)\]\]/g,"$1"):Array.isArray(e)?e.map(ne):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([r,t])=>[r,ne(t)])):e}function Mt(e){const r=[],t=D(()=>wt(e.dimensions||[]),r),n=D(()=>Dt(e.measures||[]),r),s=D(()=>At(e.filters),r);let o=null;if(e.highlights&&e.highlights.length>0&&(o=D(()=>xt(e.highlights),r)),r.length>0)return{success:!1,errors:r};const i=y({dimensions:t||[],measures:n||[],filters:s||[]},o&&{highlights:o});return{success:!0,data:ne(i)}}function St(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 Tt(e,r,t=!1){const n=St(e),s=l.prepareQueryParams(n,r);return l.getJaqlQueryPayload(s,t)}exports.EMPTY_EXPANDED_QUERY_MODEL=S.EMPTY_EXPANDED_QUERY_MODEL;exports.EMPTY_SIMPLE_QUERY_MODEL=S.EMPTY_SIMPLE_QUERY_MODEL;exports.isByIdDashboardCodeParams=S.isByIdDashboardCodeParams;exports.isByIdWidgetCodeParams=S.isByIdWidgetCodeParams;exports.isClientSideDashboardCodeParams=S.isClientSideDashboardCodeParams;exports.isClientSideWidgetCodeParams=S.isClientSideWidgetCodeParams;exports.CustomSuperJSON=Mr;exports.translateQueryFromJSON=Ft;exports.translateQueryToJSON=Mt;exports.translateQueryToJaql=Tt;
1
+ "use strict";var Ot=Object.defineProperty,Mt=Object.defineProperties;var vt=Object.getOwnPropertyDescriptors;var ve=Object.getOwnPropertySymbols;var Nt=Object.prototype.hasOwnProperty,Rt=Object.prototype.propertyIsEnumerable;var Ne=(e,t,r)=>t in e?Ot(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,h=(e,t)=>{for(var r in t||(t={}))Nt.call(t,r)&&Ne(e,r,t[r]);if(ve)for(var r of ve(t))Rt.call(t,r)&&Ne(e,r,t[r]);return e},w=(e,t)=>Mt(e,vt(t));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const I=require("../types-DZ4vWh8j.cjs"),c=require("../execute-query-DmAyVFF5.cjs"),Q=require("../dimensions-2t18RSZC.cjs");function It(e,t){const r=e.length,s=t.length,n=Array.from({length:r+1},(i,o)=>Array.from({length:s+1},(a,u)=>o===0?u:u===0?o:0));for(let i=1;i<=r;i++)for(let o=1;o<=s;o++)n[i][o]=Math.min(n[i-1][o]+1,n[i][o-1]+1,n[i-1][o-1]+(e[i-1]===t[o-1]?0:1));return n[r][s]}class Bt{constructor(){this.keyToValue=new Map,this.valueToKey=new Map}set(t,r){this.keyToValue.set(t,r),this.valueToKey.set(r,t)}getByKey(t){return this.keyToValue.get(t)}getByValue(t){return this.valueToKey.get(t)}clear(){this.keyToValue.clear(),this.valueToKey.clear()}}class Ye{constructor(t){this.generateIdentifier=t,this.kv=new Bt}register(t,r){this.kv.getByValue(t)||(r||(r=this.generateIdentifier(t)),this.kv.set(r,t))}clear(){this.kv.clear()}getIdentifier(t){return this.kv.getByValue(t)}getValue(t){return this.kv.getByKey(t)}}class kt extends Ye{constructor(){super(t=>t.name),this.classToAllowedProps=new Map}register(t,r){typeof r=="object"?(r.allowProps&&this.classToAllowedProps.set(t,r.allowProps),super.register(t,r.identifier)):super.register(t,r)}getAllowedProps(t){return this.classToAllowedProps.get(t)}}function zt(e){if("values"in Object)return Object.values(e);const t=[];for(const r in e)e.hasOwnProperty(r)&&t.push(e[r]);return t}function Pt(e,t){const r=zt(e);if("find"in r)return r.find(t);const s=r;for(let n=0;n<s.length;n++){const i=s[n];if(t(i))return i}}function L(e,t){Object.entries(e).forEach(([r,s])=>t(s,r))}function H(e,t){return e.indexOf(t)!==-1}function Re(e,t){for(let r=0;r<e.length;r++){const s=e[r];if(t(s))return s}}class Lt{constructor(){this.transfomers={}}register(t){this.transfomers[t.name]=t}findApplicable(t){return Pt(this.transfomers,r=>r.isApplicable(t))}findByName(t){return this.transfomers[t]}}const _t=e=>Object.prototype.toString.call(e).slice(8,-1),Qe=e=>typeof e=="undefined",Ut=e=>e===null,V=e=>typeof e!="object"||e===null||e===Object.prototype?!1:Object.getPrototypeOf(e)===null?!0:Object.getPrototypeOf(e)===Object.prototype,ae=e=>V(e)&&Object.keys(e).length===0,R=e=>Array.isArray(e),jt=e=>typeof e=="string",Vt=e=>typeof e=="number"&&!isNaN(e),Wt=e=>typeof e=="boolean",Jt=e=>e instanceof RegExp,W=e=>e instanceof Map,J=e=>e instanceof Set,Ge=e=>_t(e)==="Symbol",Kt=e=>e instanceof Date&&!isNaN(e.valueOf()),Yt=e=>e instanceof Error,Ie=e=>typeof e=="number"&&isNaN(e),Qt=e=>Wt(e)||Ut(e)||Qe(e)||Vt(e)||jt(e)||Ge(e),Gt=e=>typeof e=="bigint",Ht=e=>e===1/0||e===-1/0,Xt=e=>ArrayBuffer.isView(e)&&!(e instanceof DataView),Zt=e=>e instanceof URL,He=e=>e.replace(/\./g,"\\."),se=e=>e.map(String).map(He).join("."),j=e=>{const t=[];let r="";for(let n=0;n<e.length;n++){let i=e.charAt(n);if(i==="\\"&&e.charAt(n+1)==="."){r+=".",n++;continue}if(i==="."){t.push(r),r="";continue}r+=i}const s=r;return t.push(s),t};function v(e,t,r,s){return{isApplicable:e,annotation:t,transform:r,untransform:s}}const Xe=[v(Qe,"undefined",()=>null,()=>{}),v(Gt,"bigint",e=>e.toString(),e=>typeof BigInt!="undefined"?BigInt(e):(console.error("Please add a BigInt polyfill."),e)),v(Kt,"Date",e=>e.toISOString(),e=>new Date(e)),v(Yt,"Error",(e,t)=>{const r={name:e.name,message:e.message};return t.allowedErrorProps.forEach(s=>{r[s]=e[s]}),r},(e,t)=>{const r=new Error(e.message);return r.name=e.name,r.stack=e.stack,t.allowedErrorProps.forEach(s=>{r[s]=e[s]}),r}),v(Jt,"regexp",e=>""+e,e=>{const t=e.slice(1,e.lastIndexOf("/")),r=e.slice(e.lastIndexOf("/")+1);return new RegExp(t,r)}),v(J,"set",e=>[...e.values()],e=>new Set(e)),v(W,"map",e=>[...e.entries()],e=>new Map(e)),v(e=>Ie(e)||Ht(e),"number",e=>Ie(e)?"NaN":e>0?"Infinity":"-Infinity",Number),v(e=>e===0&&1/e===-1/0,"number",()=>"-0",Number),v(Zt,"URL",e=>e.toString(),e=>new URL(e))];function Z(e,t,r,s){return{isApplicable:e,annotation:t,transform:r,untransform:s}}const Ze=Z((e,t)=>Ge(e)?!!t.symbolRegistry.getIdentifier(e):!1,(e,t)=>["symbol",t.symbolRegistry.getIdentifier(e)],e=>e.description,(e,t,r)=>{const s=r.symbolRegistry.getValue(t[1]);if(!s)throw new Error("Trying to deserialize unknown symbol");return s}),er=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,Uint8ClampedArray].reduce((e,t)=>(e[t.name]=t,e),{}),et=Z(Xt,e=>["typed-array",e.constructor.name],e=>[...e],(e,t)=>{const r=er[t[1]];if(!r)throw new Error("Trying to deserialize unknown typed array");return new r(e)});function tt(e,t){return e!=null&&e.constructor?!!t.classRegistry.getIdentifier(e.constructor):!1}const rt=Z(tt,(e,t)=>["class",t.classRegistry.getIdentifier(e.constructor)],(e,t)=>{const r=t.classRegistry.getAllowedProps(e.constructor);if(!r)return h({},e);const s={};return r.forEach(n=>{s[n]=e[n]}),s},(e,t,r)=>{const s=r.classRegistry.getValue(t[1]);if(!s)throw new Error(`Trying to deserialize unknown class '${t[1]}' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564`);return Object.assign(Object.create(s.prototype),e)}),st=Z((e,t)=>!!t.customTransformerRegistry.findApplicable(e),(e,t)=>["custom",t.customTransformerRegistry.findApplicable(e).name],(e,t)=>t.customTransformerRegistry.findApplicable(e).serialize(e),(e,t,r)=>{const s=r.customTransformerRegistry.findByName(t[1]);if(!s)throw new Error("Trying to deserialize unknown custom value");return s.deserialize(e)}),tr=[rt,Ze,st,et],Be=(e,t)=>{const r=Re(tr,n=>n.isApplicable(e,t));if(r)return{value:r.transform(e,t),type:r.annotation(e,t)};const s=Re(Xe,n=>n.isApplicable(e,t));if(s)return{value:s.transform(e,t),type:s.annotation}},nt={};Xe.forEach(e=>{nt[e.annotation]=e});const rr=(e,t,r)=>{if(R(t))switch(t[0]){case"symbol":return Ze.untransform(e,t,r);case"class":return rt.untransform(e,t,r);case"custom":return st.untransform(e,t,r);case"typed-array":return et.untransform(e,t,r);default:throw new Error("Unknown transformation: "+t)}else{const s=nt[t];if(!s)throw new Error("Unknown transformation: "+t);return s.untransform(e,r)}},P=(e,t)=>{if(t>e.size)throw new Error("index out of bounds");const r=e.keys();for(;t>0;)r.next(),t--;return r.next().value};function it(e){if(H(e,"__proto__"))throw new Error("__proto__ is not allowed as a property");if(H(e,"prototype"))throw new Error("prototype is not allowed as a property");if(H(e,"constructor"))throw new Error("constructor is not allowed as a property")}const sr=(e,t)=>{it(t);for(let r=0;r<t.length;r++){const s=t[r];if(J(e))e=P(e,+s);else if(W(e)){const n=+s,i=+t[++r]==0?"key":"value",o=P(e,n);switch(i){case"key":e=o;break;case"value":e=e.get(o);break}}else e=e[s]}return e},ue=(e,t,r)=>{if(it(t),t.length===0)return r(e);let s=e;for(let i=0;i<t.length-1;i++){const o=t[i];if(R(s)){const a=+o;s=s[a]}else if(V(s))s=s[o];else if(J(s)){const a=+o;s=P(s,a)}else if(W(s)){if(i===t.length-2)break;const u=+o,l=+t[++i]==0?"key":"value",p=P(s,u);switch(l){case"key":s=p;break;case"value":s=s.get(p);break}}}const n=t[t.length-1];if(R(s)?s[+n]=r(s[+n]):V(s)&&(s[n]=r(s[n])),J(s)){const i=P(s,+n),o=r(i);i!==o&&(s.delete(i),s.add(o))}if(W(s)){const i=+t[t.length-2],o=P(s,i);switch(+n==0?"key":"value"){case"key":{const u=r(o);s.set(u,s.get(o)),u!==o&&s.delete(o);break}case"value":{s.set(o,r(s.get(o)));break}}}return e};function le(e,t,r=[]){if(!e)return;if(!R(e)){L(e,(i,o)=>le(i,t,[...r,...j(o)]));return}const[s,n]=e;n&&L(n,(i,o)=>{le(i,t,[...r,...j(o)])}),t(s,r)}function nr(e,t,r){return le(t,(s,n)=>{e=ue(e,n,i=>rr(i,s,r))}),e}function ir(e,t){function r(s,n){const i=sr(e,j(n));s.map(j).forEach(o=>{e=ue(e,o,()=>i)})}if(R(t)){const[s,n]=t;s.forEach(i=>{e=ue(e,j(i),()=>e)}),n&&L(n,r)}else L(t,r);return e}const or=(e,t)=>V(e)||R(e)||W(e)||J(e)||tt(e,t);function ar(e,t,r){const s=r.get(e);s?s.push(t):r.set(e,[t])}function ur(e,t){const r={};let s;return e.forEach(n=>{if(n.length<=1)return;t||(n=n.map(a=>a.map(String)).sort((a,u)=>a.length-u.length));const[i,...o]=n;i.length===0?s=o.map(se):r[se(i)]=o.map(se)}),s?ae(r)?[s]:[s,r]:ae(r)?void 0:r}const ot=(e,t,r,s,n=[],i=[],o=new Map)=>{var b;const a=Qt(e);if(!a){ar(e,n,t);const y=o.get(e);if(y)return s?{transformedValue:null}:y}if(!or(e,r)){const y=Be(e,r),m=y?{transformedValue:y.value,annotations:[y.type]}:{transformedValue:e};return a||o.set(e,m),m}if(H(i,e))return{transformedValue:null};const u=Be(e,r),l=(b=u==null?void 0:u.value)!=null?b:e,p=R(l)?[]:{},f={};L(l,(y,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 F=ot(y,t,r,s,[...n,m],[...i,e],o);p[m]=F.transformedValue,R(F.annotations)?f[m]=F.annotations:V(F.annotations)&&L(F.annotations,(C,O)=>{f[He(m)+"."+O]=C})});const d=ae(f)?{transformedValue:p,annotations:u?[u.type]:void 0}:{transformedValue:p,annotations:u?[u.type,f]:f};return a||o.set(e,d),d};function at(e){return Object.prototype.toString.call(e).slice(8,-1)}function ke(e){return at(e)==="Array"}function lr(e){if(at(e)!=="Object")return!1;const t=Object.getPrototypeOf(e);return!!t&&t.constructor===Object&&t===Object.prototype}function cr(e,t,r,s,n){const i={}.propertyIsEnumerable.call(s,t)?"enumerable":"nonenumerable";i==="enumerable"&&(e[t]=r),n&&i==="nonenumerable"&&Object.defineProperty(e,t,{value:r,enumerable:!1,writable:!0,configurable:!0})}function ce(e,t={}){if(ke(e))return e.map(n=>ce(n,t));if(!lr(e))return e;const r=Object.getOwnPropertyNames(e),s=Object.getOwnPropertySymbols(e);return[...r,...s].reduce((n,i)=>{if(ke(t.props)&&!t.props.includes(i))return n;const o=e[i],a=ce(o,t);return cr(n,i,a,e,t.nonenumerable),n},{})}class g{constructor({dedupe:t=!1}={}){this.classRegistry=new kt,this.symbolRegistry=new Ye(r=>{var s;return(s=r.description)!=null?s:""}),this.customTransformerRegistry=new Lt,this.allowedErrorProps=[],this.dedupe=t}serialize(t){const r=new Map,s=ot(t,r,this,this.dedupe),n={json:s.transformedValue};s.annotations&&(n.meta=w(h({},n.meta),{values:s.annotations}));const i=ur(r,this.dedupe);return i&&(n.meta=w(h({},n.meta),{referentialEqualities:i})),n}deserialize(t){const{json:r,meta:s}=t;let n=ce(r);return s!=null&&s.values&&(n=nr(n,s.values,this)),s!=null&&s.referentialEqualities&&(n=ir(n,s.referentialEqualities)),n}stringify(t){return JSON.stringify(this.serialize(t))}parse(t){return this.deserialize(JSON.parse(t))}registerClass(t,r){this.classRegistry.register(t,r)}registerSymbol(t,r){this.symbolRegistry.register(t,r)}registerCustom(t,r){this.customTransformerRegistry.register(h({name:r},t))}allowErrorProps(...t){this.allowedErrorProps.push(...t)}}g.defaultInstance=new g;g.serialize=g.defaultInstance.serialize.bind(g.defaultInstance);g.deserialize=g.defaultInstance.deserialize.bind(g.defaultInstance);g.stringify=g.defaultInstance.stringify.bind(g.defaultInstance);g.parse=g.defaultInstance.parse.bind(g.defaultInstance);g.registerClass=g.defaultInstance.registerClass.bind(g.defaultInstance);g.registerSymbol=g.defaultInstance.registerSymbol.bind(g.defaultInstance);g.registerCustom=g.defaultInstance.registerCustom.bind(g.defaultInstance);g.allowErrorProps=g.defaultInstance.allowErrorProps.bind(g.defaultInstance);const z=e=>e===void 0?c.Sort.None:e,fr=e=>new I.JaqlElement(e.metadataItem,e.type),pe=e=>new c.DimensionalAttribute(e.name,e.expression,e.type,e.description,z(e.sort),e.dataSource,e.composeCode),ye=e=>new c.DimensionalLevelAttribute(e.name,e.expression,e.granularity,e.format,e.description,z(e.sort),e.dataSource,e.composeCode),D=e=>{switch(e.__serializable){case"DimensionalAttribute":return pe(e);case"DimensionalLevelAttribute":return ye(e);default:return e}},ut=e=>new Q.DimensionalDimension(e.name,e.expression,e.attributes.map(D),e.dimensions.map(dr),e.type,e.description,z(e.sort),e.dataSource,e.composeCode,e.defaultAttribute?D(e.defaultAttribute):void 0),lt=e=>new Q.DimensionalDateDimension(e.name,e.expression,e.description,z(e.sort),e.dataSource,e.composeCode,e.indexed,e.merged),dr=e=>{switch(e.__serializable){case"DimensionalDimension":return ut(e);case"DimensionalDateDimension":return lt(e);default:return e}},ge=e=>new c.DimensionalBaseMeasure(e.name,D(e.attribute),e.aggregation,e.format,e.description,z(e.sort),e.dataSource,e.composeCode),he=e=>{const t=Object.fromEntries(Object.entries(e.context).map(([r,s])=>{if(s&&typeof s=="object"&&"__serializable"in s)switch(s.__serializable){case"DimensionalAttribute":return[r,pe(s)];case"DimensionalLevelAttribute":return[r,ye(s)];case"DimensionalBaseMeasure":return[r,ge(s)];case"DimensionalCalculatedMeasure":return[r,he(s)];default:return[r,s]}return[r,s]}));return new c.DimensionalCalculatedMeasure(e.name,e.expression,t,e.format,e.description,z(e.sort),e.dataSource,e.composeCode)},ct=e=>new c.DimensionalMeasureTemplate(e.name,D(e.attribute),e.format,e.description,z(e.sort),e.dataSource,e.composeCode),ne=e=>{switch(e.__serializable){case"DimensionalBaseMeasure":return ge(e);case"DimensionalCalculatedMeasure":return he(e);case"DimensionalMeasureTemplate":return ct(e);default:return e}},E=e=>{switch(e.__serializable){case"MembersFilter":return new c.MembersFilter(D(e.attribute),e.members,e.config.backgroundFilter?w(h({},e.config),{backgroundFilter:E(e.config.backgroundFilter)}):e.config,e.composeCode);case"LogicalAttributeFilter":return new c.LogicalAttributeFilter(e.filters.map(r=>E(r)),e.operator,e.config,e.composeCode);case"CascadingFilter":return new c.CascadingFilter(e._filters.map(r=>E(r)),e.config,e.composeCode);case"ExcludeFilter":return new c.ExcludeFilter(E(e.filter),e.input?E(e.input):void 0,e.config,e.composeCode);case"MeasureFilter":return new c.MeasureFilter(D(e.attribute),ne(e.measure),e.operatorA,e.valueA,e.operatorB,e.valueB,e.config,e.composeCode);case"RankingFilter":return new c.RankingFilter(D(e.attribute),ne(e.measure),e.operator,e.count,e.config,e.composeCode);case"MeasureRankingFilter":return new c.MeasureRankingFilter(ne(e.measure),e.operator,e.count,e.config,e.composeCode);case"NumericFilter":return new c.NumericFilter(D(e.attribute),e.operatorA,e.valueA,e.operatorB,e.valueB,e.config,e.composeCode);case"TextFilter":return new c.TextFilter(D(e.attribute),e.operatorA,e.valueA,e.config,e.composeCode);case"DateRangeFilter":{const{valueA:r,valueB:s}=e;return new c.DateRangeFilter(D(e.attribute),r,s,e.config,e.composeCode)}case"RelativeDateFilter":return new c.RelativeDateFilter(D(e.attribute),e.offset,e.count,e.operator,e.anchor,e.config,e.composeCode);case"CustomFilter":return new c.CustomFilter(D(e.attribute),e.jaqlExpression,e.config,e.composeCode);default:return e}};g.registerCustom({isApplicable:I.isJaqlElement,serialize:e=>e.serialize(),deserialize:e=>fr(e)},"JaqlElement");g.registerCustom({isApplicable:c.isDimensionalAttribute,serialize:e=>e.serialize(),deserialize:e=>pe(e)},"DimensionalAttribute");g.registerCustom({isApplicable:c.isDimensionalLevelAttribute,serialize:e=>e.serialize(),deserialize:e=>ye(e)},"DimensionalLevelAttribute");g.registerCustom({isApplicable:Q.isDimensionalDimension,serialize:e=>e.serialize(),deserialize:e=>ut(e)},"DimensionalDimension");g.registerCustom({isApplicable:Q.isDimensionalDateDimension,serialize:e=>e.serialize(),deserialize:e=>lt(e)},"DimensionalDateDimension");g.registerCustom({isApplicable:c.isDimensionalBaseMeasure,serialize:e=>e.serialize(),deserialize:e=>ge(e)},"DimensionalBaseMeasure");g.registerCustom({isApplicable:c.isDimensionalCalculatedMeasure,serialize:e=>e.serialize(),deserialize:e=>he(e)},"DimensionalCalculatedMeasure");g.registerCustom({isApplicable:c.isDimensionalMeasureTemplate,serialize:e=>e.serialize(),deserialize:e=>ct(e)},"DimensionalMeasureTemplate");g.registerCustom({isApplicable:c.isMembersFilter,serialize:e=>e.serialize(),deserialize:e=>E(e)},"MembersFilter");g.registerCustom({isApplicable:c.isLogicalAttributeFilter,serialize:e=>e.serialize(),deserialize:e=>E(e)},"LogicalAttributeFilter");g.registerCustom({isApplicable:c.isCascadingFilter,serialize:e=>e.serialize(),deserialize:e=>E(e)},"CascadingFilter");g.registerCustom({isApplicable:c.isExcludeFilter,serialize:e=>e.serialize(),deserialize:e=>E(e)},"ExcludeFilter");g.registerCustom({isApplicable:c.isMeasureFilter,serialize:e=>e.serialize(),deserialize:e=>E(e)},"MeasureFilter");g.registerCustom({isApplicable:c.isRankingFilter,serialize:e=>e.serialize(),deserialize:e=>E(e)},"RankingFilter");g.registerCustom({isApplicable:c.isMeasureRankingFilter,serialize:e=>e.serialize(),deserialize:e=>E(e)},"MeasureRankingFilter");g.registerCustom({isApplicable:c.isNumericFilter,serialize:e=>e.serialize(),deserialize:e=>E(e)},"NumericFilter");g.registerCustom({isApplicable:c.isTextFilter,serialize:e=>e.serialize(),deserialize:e=>E(e)},"TextFilter");g.registerCustom({isApplicable:c.isDateRangeFilter,serialize:e=>e.serialize(),deserialize:e=>E(e)},"DateRangeFilter");g.registerCustom({isApplicable:c.isRelativeDateFilter,serialize:e=>e.serialize(),deserialize:e=>E(e)},"RelativeDateFilter");g.registerCustom({isApplicable:c.isCustomFilter,serialize:e=>e.serialize(),deserialize:e=>E(e)},"CustomFilter");const mr=g,A="DM.";function T(e){return typeof e=="object"&&e!==null}function $(e){return typeof e=="object"&&e!==null&&"function"in e&&"args"in e}function ft(e){return e.every($)}function ee(e){return"attribute"in e&&"config"in e}function G(e){return"left"in e&&"right"in e&&"operator"in e}function be(e){return!ee(e)&&!G(e)}function pr(e){return T(e)&&"column"in e&&typeof e.column=="string"&&!("function"in e&&"args"in e)}function yr(e){return!T(e)||!("column"in e)?!1:$(e.column)}const x=3;function M(e,t,r){if(t.length===0)return;let s=Number.MAX_SAFE_INTEGER,n;for(const i of t){const o=r(i),a=It(e,o);a<s&&(s=a,n=i)}return n!==void 0?{best:n,distance:s}:void 0}function Fe(e){const t=[...e].sort((i,o)=>o.name.length-i.name.length),r=new Map,s=new Map,n=new Map;for(const i of e){r.set(i.name,i);const o=[...i.columns].sort((u,l)=>l.name.length-u.name.length);n.set(i.name,o);const a=new Map;for(const u of i.columns)a.set(u.name,u);s.set(i.name,a)}return{sortedTables:t,tableColumnMap:n,tableMap:r,columnMap:s}}function we(e,t){if(!e.startsWith(A))throw new Error(`Invalid dimensional element name format: '${e}'. Expected format: '${A}TableName.ColumnName[.Level]'`);const r=e.slice(A.length);if(!r)throw new Error(`Invalid dimensional element name format: '${e}'. Expected format: '${A}TableName.ColumnName[.Level]'`);let s,n;for(const m of t.sortedTables)if(r.startsWith(m.name+".")){const F=r.slice(m.name.length+1);if(!F)throw new Error(`Invalid dimensional element name format: '${e}'. Expected format: '${A}TableName.ColumnName[.Level]'`);s=m,n=F;break}if(!s){const m=r.indexOf(".");if(m===-1)throw new Error(`Invalid dimensional element name format: '${e}'. Expected format: '${A}TableName.ColumnName[.Level]'`);const F=r.slice(0,m),C=M(F,t.sortedTables,re=>re.name),O=C&&C.distance<=x?` Did you mean '${C.best.name}'?`:"";throw new Error(`Table '${F}' not found in the data model.${O}`)}const i=t.tableColumnMap.get(s.name);if(!i)throw new Error(`Table '${s.name}' found but has no columns`);let o,a;const u=c.DateLevels.all;for(const m of i){if(n===m.name)return{table:s,column:m};if(!n.startsWith(m.name+"."))continue;const F=n.slice(m.name.length+1);if(!F)continue;const C=u.includes(F),O=c.isDatetime(m.dataType);if(C){if(O)return{table:s,column:m,level:F};o||(o=m,a=F);continue}O&&!o&&(o=m,a=F)}if(o&&a){if(u.includes(a))throw new Error(`Invalid date level '${a}' in dimensional element '${e}'. Column '${s.name}.${o.name}' is not a datetime column`);const m=M(a,u,C=>C),F=m&&m.distance<=x?` Did you mean '${m.best}'?`:"";throw new Error(`Invalid date level '${a}' in dimensional element '${e}'. Valid levels are: ${u.join(", ")}.${F}`)}const l=n.indexOf("."),p=l===-1?n:n.slice(0,l),f=M(n,i,m=>m.name),d=f&&f.distance<=x&&f.best.name!==p,b=d?` Did you mean '${f.best.name}'?`:"",y=!d&&n.endsWith(".")&&(f==null?void 0:f.best.name)===p?` Use '${p}' without a trailing dot.`:"";throw new Error(`Column '${p}' not found in table '${s.name}'.${b}${y}`)}function gr(e,t){const{table:r,column:s,level:n}=we(e,t);if(n){if(!c.isDatetime(s.dataType))throw new Error(`Invalid date level '${n}' in dimensional element '${e}'. Column '${r.name}.${s.name}' is not a datetime column`);const i=c.DateLevels.all;if(!i.includes(n))throw new Error(`Invalid date level '${n}' in dimensional element '${e}'. Valid levels are: ${i.join(", ")}`);const o=c.DateLevels.dateOnly;if(s.dataType==="date"&&!o.includes(n))throw new Error(`Invalid level '${n}' in dimensional element '${e}'. Column '${r.name}.${s.name}' is only a date column, not a datetime column`);const a=c.DateLevels.timeOnly;if(s.dataType==="time"&&!a.includes(n))throw new Error(`Invalid level '${n}' in dimensional element '${e}'. Column '${r.name}.${s.name}' is only a time column, not a date column`)}return{table:r,column:s,level:n}}function K(e,t,r,s){const{table:n,column:i,level:o}=gr(e,r);let a=o;if(c.isDatetime(i.dataType)&&a===void 0&&(s!=null&&s.inferredDateLevel)){const u=s.inferredDateLevel,l=c.DateLevels.all;if(!l.includes(u))throw new Error(`Invalid inferred date level '${u}'. Valid levels are: ${l.join(", ")}`);const p=`${e}.${u}`,f=c.DateLevels.dateOnly;if(i.dataType==="date"&&!f.includes(u))throw new Error(`Invalid level '${u}' in dimensional element '${p}'. Column '${n.name}.${i.name}' is only a date column, not a datetime column`);const d=c.DateLevels.timeOnly;if(i.dataType==="time"&&!d.includes(u))throw new Error(`Invalid level '${u}' in dimensional element '${p}'. Column '${n.name}.${i.name}' is only a time column, not a date column`);a=u}return c.createAttributeHelper({expression:i.expression,dataType:i.dataType,granularity:a,format:void 0,sort:void 0,dataSource:t})}function hr(e,t,r){const{column:s,level:n}=we(e,r);if(n)throw new Error(`Invalid DateDimension name format: '${e}'. Expected format: '${A}TableName.ColumnName'`);if(!c.isDatetime(s.dataType))throw new Error(`Invalid DateDimension name '${e}'. Column '${s.name}' is not a datetime column (got ${s.dataType}).`);return Q.createDateDimension({name:s.name,expression:s.expression,dataSource:t})}const br=(e,t)=>{if(!e)return;const r=typeof e=="object"?e.direction:e;if(!c.isSortDirection(r))return w(h({},t),{message:`Invalid sort type. Expected 'sortAsc', 'sortDesc', or 'sortNone'. Got: '${r}'.`})},Fr=(e,t,r,s)=>{const n=br(e.sortType,s);if(n)return{attribute:K(e.column,t,r),style:{},error:n};const i=K(e.column,t,r),o=c.omit(e,"column");return{attribute:i,style:o}},wr=(e,t,r,s)=>typeof e=="string"?{attribute:K(e,t,r)}:pr(e)?Fr(e,t,r,s):{error:w(h({},s),{message:"Invalid dimension item. Expected a string (composeCode) or object with 'column' and optional 'sortType'."})},dt=e=>{const{data:t}=e,{dataSource:r,schemaIndex:s}=e.context;if(!t)return{success:!0,data:[]};if(!Array.isArray(t))return{success:!1,errors:[{category:"dimensions",index:-1,input:t,message:"Invalid dimensions JSON. Expected an array."}]};const n=[],i=[];return t.forEach((o,a)=>{const u={category:"dimensions",index:a,input:o};try{const l=wr(o,r,s,u);if(l.error){i.push(l.error);return}l.attribute&&n.push(l.style!==void 0?{attribute:l.attribute,style:l.style}:{attribute:l.attribute})}catch(l){const p=l instanceof Error?l.message:"Unknown error";i.push(w(h({},u),{message:p}))}}),i.length>0?{success:!1,errors:i}:{success:!0,data:n}};function qe(e,t){const r=Reflect.get(e,t);if(typeof r!="function")throw new Error(`Function '${t}' not found or is not a function`);return r}function qr(e,t){const r=e.replace("measureFactory.",""),n=qe(c.measureFactory,r)(...t);if(!be(n))throw new Error(`Function '${e}' did not return a valid Measure`);return n}function Ar(e,t){const r=e.replace("filterFactory.logic.",""),n=qe(c.logic,r)(...t);if(!G(n))throw new Error(`Function '${e}' did not return a valid FilterRelations`);return n}function Cr(e,t){if(e.startsWith("filterFactory.logic."))return Ar(e,t);const r=e.replace("filterFactory.",""),n=qe(c.filterFactory,r)(...t);if(!ee(n)&&!G(n))throw new Error(`Function '${e}' did not return a valid Filter or FilterRelations`);return n}function Er(e,t){const s=e.split(".")[0];if(s==="measureFactory")return qr(e,t);if(s==="filterFactory")return Cr(e,t);throw new Error(`Unsupported factory: '${s}'. Supported factories: measureFactory, filterFactory`)}const fe={SDIFF:{category:"time-diff",argCount:2,requiredDateLevel:c.DateLevels.Seconds,argType:"datetime"},MNDIFF:{category:"time-diff",argCount:2,requiredDateLevel:c.DateLevels.Minutes,argType:"datetime"},HDIFF:{category:"time-diff",argCount:2,requiredDateLevel:c.DateLevels.Hours,argType:"datetime"},DDIFF:{category:"time-diff",argCount:2,requiredDateLevel:c.DateLevels.Days,argType:"datetime"},MDIFF:{category:"time-diff",argCount:2,requiredDateLevel:c.DateLevels.Months,argType:"datetime"},QDIFF:{category:"time-diff",argCount:2,requiredDateLevel:c.DateLevels.Quarters,argType:"datetime"},YDIFF:{category:"time-diff",argCount:2,requiredDateLevel:c.DateLevels.Years,argType:"datetime"}},$r=Object.keys(fe).filter(e=>fe[e].category==="time-diff");function mt(){return $r}function pt(e){const t=fe[e.toUpperCase()];return t==null?void 0:t.requiredDateLevel}const xr=/\[(\w[\w.-]*)\]/g,yt=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"]),Tr=new RegExp(`\\b(${Array.from(yt).join("|")})\\s*\\(`,"i");function gt(e){return $(e)?!0:typeof e=="string"&&e.startsWith(A)?!1:T(e)&&"kind"in e?e.kind==="measure":!0}function Dr(e){const t=/\b(\w+)\s*\(/g,r=new Set;let s;for(;(s=t.exec(e))!==null;){const n=s[1];yt.has(n.toUpperCase())||r.add(n)}return Array.from(r)}function Sr(e){return e.length===1?`[${e[0]}]`:e.map(t=>`[${t}]`).join(", ")}function Or(e){return e.length===0?"":e.length===1?`${e[0]} is not an aggregative function. `:`${e.join(", ")} are not aggregative functions. `}const _=e=>e.startsWith("[")?e:`[${e}]`,ht=e=>e.startsWith("[")&&e.endsWith("]")?e.slice(1,-1):e;function bt(e,t){if(t.length===0)return[];const r=t.map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),s=new RegExp(`\\b(${r})\\s*\\(\\s*\\[([^\\]]+)\\]\\s*,\\s*\\[([^\\]]+)\\]\\s*\\)`,"gi");return[...e.matchAll(s)].map(n=>({functionName:n[1].toUpperCase(),ref1:n[2].trim(),ref2:n[3].trim()}))}function Mr(e,t,r){var o,a,u;const s=Object.keys(t),n=((o=r.errorPrefix)!=null?o:"customFormula validation").trim(),i=n===""?"":n.endsWith(" ")?n:`${n} `;return{formula:e,context:t,contextKeys:s,canonicalContextKeys:new Set(s.map(_)),errorPrefix:i,warnUnusedContext:(a=r.warnUnusedContext)!=null?a:!0,errorOnUnusedContext:(u=r.errorOnUnusedContext)!=null?u:!0,schemaIndex:r.schemaIndex,result:{isValid:!0,errors:[],warnings:[],references:[],unusedContextKeys:[]}}}function N(e,t){e.result.errors.push(t),e.result.isValid=!1}const vr=new Set(["CASE","WHEN","THEN","ELSE","END","AND","OR"]);function Nr(e){const t=/\b(\w+)\s*\[/gi,r=[...e.formula.matchAll(t)].find(s=>!vr.has(s[1].toUpperCase()));r&&N(e,`${e.errorPrefix}args[1]: Invalid syntax: '${r[1]}' - operator cannot be used before bracket reference without parentheses`)}function Rr(e){return[...new Set([...e.matchAll(new RegExp(xr.source,"g"))].map(t=>t[1]))]}function Ir(e){const t=e.result.references.filter(n=>!e.canonicalContextKeys.has(_(n)));if(t.length===0)return;const r=e.contextKeys.map(n=>`[${ht(n)}]`).join(", "),s=t.length===1?`Reference [${t[0]}]`:`References [${t.join("], [")}]`;N(e,`${e.errorPrefix}args[1]: ${s} not found in context. Available keys: ${r}`)}function Br(e){if(Tr.test(e.formula))return;const t=e.result.references.filter(r=>{var n;const s=(n=e.context[_(r)])!=null?n:e.context[r];return s!==void 0&&!gt(s)});t.length!==0&&N(e,`${e.errorPrefix}args[1]: ${Or(Dr(e.formula))}Bracket reference(s) ${Sr(t)} point to raw attributes and must be wrapped in an aggregative function (e.g. SUM, AVG)`)}function kr(e){if(!e.warnUnusedContext&&!e.errorOnUnusedContext||e.contextKeys.length===0)return;const t=new Set(e.result.references.map(_)),r=e.contextKeys.filter(i=>!t.has(_(i)));if(e.result.unusedContextKeys=r,r.length===0)return;const s=r.map(i=>`[${ht(i)}]`).join(", "),n=`${e.errorPrefix}args[2]: Context keys ${s} are defined but not used in formula`;e.errorOnUnusedContext?N(e,n):e.warnUnusedContext&&e.result.warnings.push(n)}function ze(e,t,r,s){var o;const n=(o=s.context[_(e)])!=null?o:s.context[e];if(n===void 0)return;if(!(typeof n=="string"&&n.startsWith(A))){gt(n)&&N(s,`${s.errorPrefix}args[1]: ${t.functionName} requires datetime dimension attributes. Reference [${e}] points to a measure; use an attribute (e.g. ${A}Table.Column.Level).`);return}if(s.schemaIndex)try{const a=we(n,s.schemaIndex);c.isDatetime(a.column.dataType)?r&&a.level&&a.level!==r&&N(s,`${s.errorPrefix}args[1]: ${t.functionName} expects date level '${r}'. Reference [${e}] has level '${a.level}'.`):N(s,`${s.errorPrefix}args[1]: ${t.functionName} requires datetime dimensions. Reference [${e}] resolves to non-datetime column '${a.column.name}'.`)}catch(a){const u=a instanceof Error?a.message:"Unknown error";N(s,`${s.errorPrefix}args[1]: ${t.functionName} reference [${e}]: ${u}`)}}function zr(e){const t=mt(),r=bt(e.formula,t);for(const s of r){const n=pt(s.functionName);ze(s.ref1,s,n,e),ze(s.ref2,s,n,e)}}function Pr(e,t,r={}){var n;const s=Mr(e,t,r);return!e||e.trim().length===0?((n=r.allowEmptyFormula)!=null&&n||N(s,`${s.errorPrefix}args[1]: Formula cannot be empty`),s.result):(Nr(s),s.result.references=Rr(e),s.result.references.length===0?(s.result.warnings.push(`${s.errorPrefix}args[1]: No bracket references found in formula - ensure this is intentional`),s.result):s.contextKeys.length===0?(N(s,`${s.errorPrefix}args[2]: Context cannot be empty - custom formulas require context definitions`),s.result):(Ir(s),Br(s),kr(s),zr(s),s.result))}function Lr(e,t,r={}){const s=Pr(e,t,r);if(!s.isValid)throw new Error(s.errors.join("; "));s.warnings.length>0&&console.warn("Formula validation warnings:",s.warnings.join("; "))}function _r(e,t){if(e.length<3||e.length>5)throw new Error(`${t.pathPrefix}Expected 3, 4, or 5 arguments for customFormula (title, formula, context, format?, description?)`);const r=e[1];if(typeof r!="string")throw new Error(`${t.pathPrefix}args[1]: Expected formula string, got ${typeof r}`);const s=r,n=e[2];if(!T(n))throw new Error(`${t.pathPrefix}args[2]: Expected context object, got ${n===null?"null":typeof n}`);const i=n;Lr(s,i,{errorPrefix:`${t.pathPrefix}`,errorOnUnusedContext:!0,allowEmptyFormula:!1,schemaIndex:t.schemaIndex});const o=Ur(s),a={};for(const[u,l]of Object.entries(i)){const p=`args[2].${u}`;if($(l))a[`${u}`]=S({data:l,context:{dataSource:t.dataSource,schemaIndex:t.schemaIndex,pathPrefix:p}});else if(typeof l=="string"&&l.startsWith(A)){const f=u.startsWith("[")&&u.endsWith("]")?u.slice(1,-1):u,d=o[f];try{a[`${u}`]=K(l,t.dataSource,t.schemaIndex,d!==void 0?{inferredDateLevel:d}:void 0)}catch(b){const y=b instanceof Error?b.message:"Unknown error";throw new Error(`${p}: ${y}`)}}else if(l&&typeof l=="object"&&"kind"in l)a[`${u}`]=l;else throw new Error(`${p}: Invalid context value for key '${u}'. Expected a function call or attribute reference (${A}...), but got: ${typeof l}`)}e[2]=a}function Ur(e){const t=mt(),r=bt(e,t),s={};for(const n of r){const i=pt(n.functionName);if(i!==void 0)for(const o of[n.ref1,n.ref2]){const a=s[o];if(a!==void 0&&a!==i)throw new Error(`Reference [${o}] is used in time-diff functions with conflicting date levels ('${a}' and '${i}'). Specify the date level in the context (e.g. DM.Table.Column.${i}).`);s[o]=i}}return s}function Ft(e){return e.type===c.MetadataTypes.TextAttribute}function wt(e){return e.type===c.MetadataTypes.NumericAttribute}function jr(e){return e.type===c.MetadataTypes.DateLevel}function Vr(e){return Ft(e)||wt(e)}function te(e){return e.type===c.MetadataTypes.TextAttribute?"text":e.type===c.MetadataTypes.NumericAttribute?"numeric":e.type===c.MetadataTypes.DateLevel?"date/datetime":"unknown"}function Ae(e,t){const r=e[0];if(!r||typeof r!="object"||!("type"in r))throw new Error(`${t.pathPrefix}args[0]: Expected attribute as first argument`);return r}function Pe(e,t){const r=Ae(e,t);if(!Vr(r))throw new Error(`${t.pathPrefix}args[0]: Attribute must be string or numeric type, got ${te(r)} attribute`)}function B(e,t){const r=Ae(e,t);if(!wt(r))throw new Error(`${t.pathPrefix}args[0]: Attribute must be numeric type, got ${te(r)} attribute`)}function k(e,t){const r=Ae(e,t);if(!Ft(r))throw new Error(`${t.pathPrefix}args[0]: Attribute must be string type, got ${te(r)} attribute`)}function Wr(e,t){const r=e[0];if(!r||typeof r!="object"||!("attribute"in r))throw new Error(`${t.pathPrefix}args[0]: Expected filter as first argument`);return r}function Jr(e,t){const r=Wr(e,t);if(!c.isMembersFilter(r))throw new Error(`${t.pathPrefix}args[0]: exclude filter only accepts members filter, got ${r.__serializable||"unknown"} filter`)}const Kr={"measureFactory.customFormula":_r,"filterFactory.equals":Pe,"filterFactory.doesntEqual":Pe,"filterFactory.greaterThan":B,"filterFactory.greaterThanOrEqual":B,"filterFactory.lessThan":B,"filterFactory.lessThanOrEqual":B,"filterFactory.between":B,"filterFactory.betweenNotEqual":B,"filterFactory.numeric":B,"filterFactory.contains":k,"filterFactory.doesntContain":k,"filterFactory.startsWith":k,"filterFactory.doesntStartWith":k,"filterFactory.endsWith":k,"filterFactory.doesntEndWith":k,"filterFactory.like":k,"filterFactory.exclude":Jr};function Yr(e){return Kr[`${e}`]}const qt={"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 Ce(e){return qt[`${e}`]}function Qr(e){const t=Ce(e);return t?t.filter(r=>r.required).length:0}function Gr(e){const t=Ce(e);return t?t.length:0}function Hr(e){if(typeof e!="string"||!/^\d{4}-\d{2}-\d{2}/.test(e))return!1;const r=Date.parse(e);if(isNaN(r)||e.length<10)return!1;const s=new Date(e);return!isNaN(s.getTime())}function ie(e,t,r,s){if(e.startsWith(A))try{return K(e,t,r)}catch(n){const i=n instanceof Error?n.message:"Unknown error";throw new Error(`${s}: ${i}`)}throw new Error(`${s}: Invalid attribute '${e}'. Expected format: '${A}TableName.ColumnName[.Level]'`)}function Xr(e,t,r,s){if(e.startsWith(A))try{return hr(e,t,r)}catch(n){const i=n instanceof Error?n.message:"Unknown error";throw new Error(`${s}: ${i}`)}throw new Error(`${s}: Invalid date dimension string '${e}'. Expected format: '${A}TableName.ColumnName'`)}function Zr(e){const t=e.data,{argSchema:r,dataSource:s,schemaIndex:n,pathPrefix:i}=e.context,o=i;if(t===void 0){if(r.required)throw new Error(`${o}: Required argument is missing (expected ${r.type})`);return}if(!(t===null&&!r.required))switch(r.type){case"string":if(typeof t!="string")throw new Error(`${o}: Expected string, got ${typeof t}`);return t;case"number":if(typeof t!="number")throw new Error(`${o}: Expected number, got ${typeof t}`);return t;case"boolean":if(typeof t!="boolean")throw new Error(`${o}: Expected boolean, got ${typeof t}`);return t;case"string[]":if(!Array.isArray(t))throw new Error(`${o}: Expected array of strings, got ${typeof t}. Example: ['value1', 'value2']`);if(!t.every(a=>typeof a=="string"))throw new Error(`${o}: Expected array of strings, but contains non-string values`);return t;case"number[]":if(!Array.isArray(t))throw new Error(`${o}: Expected array of numbers, got ${typeof t}. Example: [10, 20]`);if(!t.every(a=>typeof a=="number"))throw new Error(`${o}: Expected array of numbers, but contains non-number values`);return t;case"Attribute":if(typeof t!="string")throw new Error(`${o}: Expected attribute string, got ${typeof t}. Example: 'DM.Commerce.Revenue'`);return ie(t,s,n,o);case"Attribute[]":if(!Array.isArray(t))throw new Error(`${o}: Expected array of attributes, got ${typeof t}. Example: ['DM.Commerce.AgeRange']`);return t.map((a,u)=>{if(typeof a!="string")throw new Error(`${o}[${u}]: Expected attribute string, got ${typeof a}`);return ie(a,s,n,`${o}[${u}]`)});case"Measure":case"BaseMeasure":if(!$(t))throw new Error(`${o}: Expected measure function call, got ${typeof t}. Example: {'function': 'measureFactory.sum', 'args': ['DM.Commerce.Revenue']}`);return S({data:t,context:{dataSource:s,schemaIndex:n,pathPrefix:o}});case"Measure[]":if(!Array.isArray(t))throw new Error(`${o}: Expected array of measure function calls, got ${typeof t}`);return t.map((a,u)=>{if(!$(a))throw new Error(`${o}[${u}]: Expected measure function call, got ${typeof a}`);return S({data:a,context:{dataSource:s,schemaIndex:n,pathPrefix:`${o}[${u}]`}})});case"Filter":if(!$(t))throw new Error(`${o}: Expected filter function call, got ${typeof t}. Example: {'function': 'filterFactory.contains', 'args': ['DM.Brand.Brand', 'Apple']}`);return S({data:t,context:{dataSource:s,schemaIndex:n,pathPrefix:o}});case"Filter[]":if(!Array.isArray(t))throw new Error(`${o}: Expected array of filter function calls, got ${typeof t}`);return t.map((a,u)=>{if(!$(a))throw new Error(`${o}[${u}]: Expected filter function call, got ${typeof a}`);return S({data:a,context:{dataSource:s,schemaIndex:n,pathPrefix:`${o}[${u}]`}})});case"FilterRelationsNode":if(Array.isArray(t))return t.map((a,u)=>{if(!$(a))throw new Error(`${o}[${u}]: Expected filter function call, got ${typeof a}`);return S({data:a,context:{dataSource:s,schemaIndex:n,pathPrefix:`${o}[${u}]`}})});if($(t))return S({data:t,context:{dataSource:s,schemaIndex:n,pathPrefix:o}});throw new Error(`${o}: Expected filter function call or array of filters, got ${typeof t}`);case"DateDimension":if(typeof t!="string")throw new Error(`${o}: Expected date dimension string, got ${typeof t}. Example: 'DM.Commerce.Date'`);return Xr(t,s,n,o);case"LevelAttribute":{if(typeof t!="string")throw new Error(`${o}: Expected date attribute string, got ${typeof t}. Example: 'DM.Commerce.Date.Years'`);const a=ie(t,s,n,o);if(!jr(a))throw new Error(`${o}: Attribute must be date/datetime type, got ${te(a)} attribute`);return a}case"Measure | number":if(typeof t=="number")return t;if($(t))return S({data:t,context:{dataSource:s,schemaIndex:n,pathPrefix:o}});throw new Error(`${o}: Expected measure function call or number, got ${typeof t}`);case"Date | string":if(typeof t=="string"){if(Hr(t))return t;throw new Error(`${o}: Expected valid ISO date string or Date object, got invalid date string '${t}'`)}else{if(t instanceof Date)return t;throw new Error(`${o}: Expected date string or Date object, got ${typeof t}`)}case"string | number":if(typeof t=="string"||typeof t=="number")return t;throw new Error(`${o}: Expected string or number, got ${typeof t}`);case"BaseFilterConfig":case"MembersFilterConfig":case"CustomFormulaContext":case"any":if(t==null&&r.required)throw new Error(`${o}: Required argument is null/undefined`);return t;default:return t}}function S(e){const{data:t}=e,{dataSource:r,schemaIndex:s,pathPrefix:n}=e.context,{function:i,args:o}=t,a=n?`${n}.`:"",u=Ce(i);if(!u){const y=Object.keys(qt),m=M(i,y,C=>C),F=m&&m.distance<=x?` Did you mean '${m.best}'?`:"";throw new Error(`${a}function: Unknown function '${i}'.${F}`)}const l=Qr(i),p=Gr(i);if(o.length<l)throw new Error(`${a}function: Expected at least ${l} arguments, got ${o.length}`);if(o.length>p)throw new Error(`${a}function: Expected at most ${p} arguments, got ${o.length}`);const f=[],d=[];for(let y=0;y<Math.max(o.length,u.length);y++){const m=u[`${y}`],F=o[`${y}`],C=a?`${a}args[${y}]`:`args[${y}]`;if(F===void 0){m!=null&&m.required&&d.push(`${C}: Missing required argument (expected ${m.type})`);continue}if(!m){d.push(`${C}: Unexpected argument`);continue}try{const O=Zr({data:F,context:{dataSource:r,schemaIndex:s,pathPrefix:C,argSchema:m}});f.push(O)}catch(O){const re=O instanceof Error?O.message:"Unknown error";d.push(re)}}if(d.length>0){const y=d.join("; ");throw new Error(y)}const b=Yr(i);if(b)try{b(f,{dataSource:r,schemaIndex:s,pathPrefix:a})}catch(y){const m=y instanceof Error?y.message:"Unknown validation error";throw new Error(m)}return Er(i,f)}function At(e){const{attribute:t,config:r}=e;if(c.isMembersFilter(e)&&c.isLevelAttribute(t)){const{granularity:s}=t,n=e.members.map(a=>s==="Years"&&!isNaN(Number(a))?`${a}-01-01T00:00:00`:a),i=c.simplifyFilterConfig(r),o=Object.keys(i).length===0?void 0:i;return c.members(t,n,o)}return e}function es(e){let t=[];for(const r of e)G(r)?t=c.mergeFiltersOrFilterRelations(r,t):t=c.mergeFiltersOrFilterRelations([At(r)],t);return t!=null?t:[]}const ts=e=>{const{data:t}=e,{dataSource:r,schemaIndex:s}=e.context,n=[],i=[];return t.forEach((o,a)=>{const u={category:"filters",index:a,input:o};try{const l=S({data:o,context:{dataSource:r,schemaIndex:s,pathPrefix:""}});!G(l)&&!ee(l)?i.push(w(h({},u),{message:"Invalid filter JSON"})):n.push(l)}catch(l){const p=l instanceof Error?l.message:"Unknown error";i.push(w(h({},u),{message:p}))}}),i.length>0?{success:!1,errors:i}:{success:!0,data:es(n)}},Ee=e=>{const{data:t}=e,{dataSource:r,schemaIndex:s}=e.context;return t?ft(t)?ts({data:t,context:{dataSource:r,schemaIndex:s}}):{success:!1,errors:[{category:"filters",index:-1,input:t,message:"Invalid filters JSON. Expected an array of function calls with 'function' and 'args' properties."}]}:{success:!0,data:[]}},rs=e=>{const{data:t}=e,{dataSource:r,schemaIndex:s}=e.context,n=[],i=[];return t.forEach((o,a)=>{const u={category:"highlights",index:a,input:o};try{const l=S({data:o,context:{dataSource:r,schemaIndex:s,pathPrefix:""}});ee(l)?n.push(At(l)):i.push(w(h({},u),{message:"Invalid filter JSON"}))}catch(l){const p=l instanceof Error?l.message:"Unknown error";i.push(w(h({},u),{message:p}))}}),i.length>0?{success:!1,errors:i}:{success:!0,data:n}},$e=e=>{const{data:t}=e,{dataSource:r,schemaIndex:s}=e.context;return t?ft(t)?rs({data:t,context:{dataSource:r,schemaIndex:s}}):{success:!1,errors:[{category:"highlights",index:-1,input:t,message:"Invalid highlights JSON. Expected an array of function calls with 'function' and 'args' properties."}]}:{success:!0,data:[]}},ss=(e,t)=>{if(e&&!c.isSortDirection(e))return w(h({},t),{message:`Invalid sort type. Expected 'sortAsc', 'sortDesc', or 'sortNone'. Got: '${e}'.`})},ns=(e,t,r)=>{const{dataSource:s,schemaIndex:n}=t;try{const i=S({data:e,context:{dataSource:s,schemaIndex:n,pathPrefix:""}});return be(i)?{success:!0,data:i}:{success:!1,errors:[w(h({},r),{message:"Invalid measure JSON"})]}}catch(i){const o=i instanceof Error?i.message:"Unknown error";return{success:!1,errors:[w(h({},r),{message:o})]}}},is=(e,t,r,s)=>{const n=S({data:e.column,context:{dataSource:t,schemaIndex:r,pathPrefix:""}});if(!be(n))return{style:{},error:w(h({},s),{message:"Invalid measure JSON"})};const i=ss(e.sortType,s);if(i){const a=c.omit(e,"column");return{measure:n,style:a,error:i}}const o=c.omit(e,"column");return{measure:n,style:o}},os=(e,t,r,s)=>{if(yr(e))return is(e,t,r,s);if($(e)){const n=ns(e,{dataSource:t,schemaIndex:r},s);return n.success?{measure:n.data}:{error:n.errors[0]}}return{error:w(h({},s),{message:"Invalid measure item. Expected a function call (function/args) or object with 'column' and optional 'sortType'."})}},Ct=e=>{const{data:t}=e,{dataSource:r,schemaIndex:s}=e.context;if(!t)return{success:!0,data:[]};if(!Array.isArray(t))return{success:!1,errors:[{category:"measures",index:-1,input:t,message:"Invalid measures JSON. Expected an array."}]};const n=[],i=[];return t.forEach((o,a)=>{const u={category:"measures",index:a,input:o};try{const l=os(o,r,s,u);if(l.error){i.push(l.error);return}l.measure&&n.push(l.style!==void 0?{measure:l.measure,style:l.style}:{measure:l.measure})}catch(l){const p=l instanceof Error?l.message:"Unknown error";i.push(w(h({},u),{message:p}))}}),i.length>0?{success:!1,errors:i}:{success:!0,data:n}};function Y(e){return typeof e=="string"?e.replace(/\[\[([^\]]+)\]\]/g,"$1"):Array.isArray(e)?e.map(Y):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,r])=>[t,Y(r)])):e}function q(e,t,r){const s=e();if(!s.success){const n=r?s.errors.map(r):s.errors;return t.push(...n),null}return s.data}const xe="$trend",Te="$forecast";function as(e){return e.map(({attribute:t,style:r})=>{const s=r==null?void 0:r.sortType;if(!s)return t;const n=typeof s=="object"?s.direction:s;return c.isSortDirection(n)?t.sort(c.convertSortDirectionToSort(n)):t})}function us(e){var t,r;return(r=(t=e.composeCode)==null?void 0:t.includes("measureFactory.trend"))!=null?r:!1}function ls(e){var t,r;return(r=(t=e.composeCode)==null?void 0:t.includes("measureFactory.forecast"))!=null?r:!1}function cs(e){var r,s;const t=[];for(const{measure:n,style:i}of e){const o=i==null?void 0:i.sortType,a=o&&c.isSortDirection(o)?n.sort(c.convertSortDirectionToSort(o)):n;t.push(a),i!=null&&i.trend&&!us(n)&&t.push(c.trend(n,`${xe}_${(r=n.name)!=null?r:"Measure"}`,i.trend)),i!=null&&i.forecast&&!ls(n)&&t.push(c.forecast(n,`${Te}_${(s=n.name)!=null?s:"Measure"}`,i.forecast))}return t}const fs=e=>{const{data:t}=e,{dataSource:r,tables:s}=e.context,n=Fe(s),i=[],o=q(()=>dt({data:t.dimensions||[],context:{dataSource:r,schemaIndex:n}}),i),a=q(()=>Ct({data:t.measures||[],context:{dataSource:r,schemaIndex:n}}),i),u=q(()=>Ee({data:t.filters||[],context:{dataSource:r,schemaIndex:n}}),i);let l=null;return t.highlights&&(l=q(()=>$e({data:t.highlights||[],context:{dataSource:r,schemaIndex:n}}),i)),i.length>0?{success:!1,errors:i}:{success:!0,data:h({dataSource:c.convertDataSource(r),dimensions:o?as(o):[],measures:a?cs(a):[],filters:u||[]},l&&{highlights:l})}};function Le(e){return typeof e=="object"&&e!==null&&"column"in e&&e.column!==void 0}function De(e){const t=[],r=[];return e.forEach((s,n)=>{var f,d,b;const i=Le(s)?s.column:s,o=Le(s)?s:void 0,a=()=>typeof i.toJSON=="function"?i.toJSON():i;if(!i.composeCode){r.push({category:"dimensions",index:n,input:a(),message:`Dimension at index ${n} (${i.name||"unnamed"}) is missing composeCode`});return}if(!i.composeCode.startsWith(A)){r.push({category:"dimensions",index:n,input:a(),message:`Expected composeCode to start with '${A}' for dimension at index ${n} (${i.name||"unnamed"}). Got: '${i.composeCode}'`});return}const u=(b=o!=null&&o.sortType?c.convertSortDirectionToSort(o.sortType):void 0)!=null?b:((f=i.getSort)==null?void 0:f.call(i))!==void 0&&((d=i.getSort)==null?void 0:d.call(i))!==c.Sort.None?i.getSort():void 0,l=o?c.omit(o,"column"):{};if(u!==void 0&&u!==c.Sort.None||o&&Object.keys(l).length>0){const y=h(h({column:i.composeCode},u!==void 0&&u!==c.Sort.None&&{sortType:c.convertSortToSortDirection(u)}),l);t.push(y)}else t.push(i.composeCode)}),r.length>0?{success:!1,errors:r}:{success:!0,data:t}}function Et(e,t){const r=[];let s="",n=0,i=!1,o=null;for(let a=0;a<e.length;a++){const u=e[a],l=e[a+1];if(i){if(u!==o){s+=u;continue}if(l===o){s+=u+l,a++;continue}i=!1,o=null,s+=u;continue}else{if(u==="'"||u==='"'){i=!0,o=u,s+=u;continue}if("([{".includes(u)&&n++,")]}".includes(u)&&n--,u===t&&n===0){r.push(s.trim()),s="";continue}}s+=u}return s.trim()&&r.push(s.trim()),r}function ds(e,t){let r=0,s=!1,n=null;for(let i=0;i<e.length;i++){const o=e[i],a=e[i+1];if(s){if(o!==n)continue;if(a===n){i++;continue}s=!1,n=null}else{if(o==="'"||o==='"'){s=!0,n=o;continue}if("([{".includes(o)&&r++,")]}".includes(o)&&r--,o===t&&r===0)return i}}return-1}function ms(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 t=e.trim();if(!t)throw new Error("Invalid composeCode: empty string");const r=t.match(/^([a-zA-Z_$][a-zA-Z0-9_.$]*)\s*\((.*)\)$/);if(!r)throw new Error(`Invalid composeCode format: expected function call, got '${t}'`);const s=r[1],n=r[2],i=$t(n);return{function:s,args:i}}function $t(e){return e.trim()?Et(e,",").map(xt):[]}function xt(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 r=e[0];return e.slice(1,-1).replace(new RegExp(`${r}${r}`,"g"),r)}if(e.startsWith("[")&&e.endsWith("]")){const r=e.slice(1,-1).trim();if(!r)return[];const s=$t(r);return s.every(n=>typeof n=="string"),s}if(e.startsWith("{")&&e.endsWith("}")){const r=e.slice(1,-1).trim();return r?ys(r):{}}return e.includes("(")&&e.includes(")")?U(e):(e.startsWith("DM."),e)}function ps(e){const t=ds(e,":");if(t===-1)throw new Error(`Invalid object property: expected 'key: value', got '${e}'`);const r=ms(e.slice(0,t).trim()),s=xt(e.slice(t+1).trim());return[r,s]}function ys(e){if(!e.trim())return{};const t=Et(e,",").map(ps).filter(([,r])=>r!==null);return Object.fromEntries(t)}const de="Unknown error";function Se(e){if(!e)return{success:!0,data:[]};const t=[];if(c.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(s){const n=s instanceof Error?s.message:de;return{success:!1,errors:[{category:"filters",index:-1,input:e,message:`Failed to parse composeCode for FilterRelations: ${n}. ComposeCode: '${e.composeCode}'`}]}}}const r=[];return e.forEach((s,n)=>{var i;if(!s.composeCode){t.push({category:"filters",index:n,input:s,message:`Filter at index ${n} (${(i=s.name)!=null?i:"unnamed"}) is missing composeCode`});return}try{const o=U(s.composeCode);r.push(o)}catch(o){const a=o instanceof Error?o.message:de;t.push({category:"filters",index:n,input:s,message:`Failed to parse composeCode for filter at index ${n}: ${a}. ComposeCode: '${s.composeCode}'`})}}),t.length>0?{success:!1,errors:t}:{success:!0,data:r}}function Oe(e){if(!e)return{success:!0,data:[]};const t=[],r=[];return e.forEach((s,n)=>{var i;if(!s.composeCode){r.push({category:"highlights",index:n,input:s,message:`Highlight filter at index ${n} (${(i=s.name)!=null?i:"unnamed"}) is missing composeCode`});return}try{const o=U(s.composeCode);t.push(o)}catch(o){const a=o instanceof Error?o.message:de;r.push({category:"highlights",index:n,input:s,message:`Failed to parse composeCode for highlight filter at index ${n}: ${a}. ComposeCode: '${s.composeCode}'`})}}),r.length>0?{success:!1,errors:r}:{success:!0,data:t}}function _e(e){return typeof e=="object"&&e!==null&&"column"in e&&e.column!==void 0}function Me(e){const t=[],r=[];return e.forEach((s,n)=>{var u,l,p;const i=_e(s)?s.column:s,o=_e(s)?s:void 0,a=()=>typeof i.toJSON=="function"?i.toJSON():i;if(!i.composeCode){r.push({category:"measures",index:n,input:a(),message:`Measure at index ${n} (${i.name||"unnamed"}) is missing composeCode`});return}try{const f=U(i.composeCode),d=(p=o!=null&&o.sortType?c.convertSortDirectionToSort(o.sortType):void 0)!=null?p:((u=i.getSort)==null?void 0:u.call(i))!==void 0&&((l=i.getSort)==null?void 0:l.call(i))!==c.Sort.None?i.getSort():void 0;if(d!==void 0&&d!==c.Sort.None||o&&Object.keys(c.omit(o,"column")).length>0){const y=o?c.omit(o,"column"):{},m=h(h({column:f},d!==void 0&&d!==c.Sort.None&&{sortType:c.convertSortToSortDirection(d)}),y);t.push(m)}else t.push(f)}catch(f){const d=f instanceof Error?f.message:"Unknown error";r.push({category:"measures",index:n,input:a(),message:`Failed to parse composeCode for measure at index ${n} (${i.name||"unnamed"}): ${d}. ComposeCode: '${i.composeCode}'`})}}),r.length>0?{success:!1,errors:r}:{success:!0,data:t}}function Ue(e){var t,r,s,n;return((r=(t=e.composeCode)==null?void 0:t.includes("measureFactory.trend"))!=null?r:!1)||((n=(s=e.name)==null?void 0:s.startsWith(xe))!=null?n:!1)}function je(e){var t,r,s,n;return((r=(t=e.composeCode)==null?void 0:t.includes("measureFactory.forecast"))!=null?r:!1)||((n=(s=e.name)==null?void 0:s.startsWith(Te))!=null?n:!1)}function Ve(e){try{const t=U(e.trim());return t.args[2]!=null&&typeof t.args[2]=="object"?t.args[2]:void 0}catch(t){return}}function gs(e){var s,n,i;if(!(e!=null&&e.length))return[];const t=new Set,r=[];for(let o=0;o<e.length;o++){if(t.has(o))continue;const a=e[o];if(Ue(a)||je(a)){r.push(a);continue}const u=(s=a.name)!=null?s:"Measure",l=`${xe}_${u}`,p=`${Te}_${u}`;let f,d,b=o+1;if(b<e.length&&!t.has(b)&&Ue(e[b])&&e[b].name===l){const y=(n=e[b].composeCode)==null?void 0:n.trim();y&&(f=Ve(y),t.add(b),b++)}if(b<e.length&&!t.has(b)&&je(e[b])&&e[b].name===p){const y=(i=e[b].composeCode)==null?void 0:i.trim();y&&(d=Ve(y),t.add(b))}f!==void 0||d!==void 0?r.push(h(h({column:a},f&&Object.keys(f).length>0&&{trend:f}),d&&Object.keys(d).length>0&&{forecast:d})):r.push(a)}return r}function hs(e){const t=[],r=q(()=>De(e.dimensions||[]),t),s=gs(e.measures||[]),n=q(()=>Me(s),t),i=q(()=>Se(e.filters),t);let o=null;if(e.highlights&&e.highlights.length>0&&(o=q(()=>Oe(e.highlights),t)),t.length>0)return{success:!1,errors:t};const a=h({dimensions:r||[],measures:n||[],filters:i||[]},o&&{highlights:o});return{success:!0,data:Y(a)}}const Tt=new Set(c.ALL_CHART_TYPES.filter(e=>e!=="image")),We=Object.freeze([...Tt]),oe=new Set(["category","value","breakBy","breakByPoint","x","y","breakByColor","size","boxType","outliers","geo","colorBy","details","color","date","columns","rows","values","secondary","min","max","seriesToColorMap"]),bs={line:{validAxes:new Set(["category","value","breakBy","seriesToColorMap"]),requiredAxes:["category","value"]},area:{validAxes:new Set(["category","value","breakBy","seriesToColorMap"]),requiredAxes:["category","value"]},bar:{validAxes:new Set(["category","value","breakBy","seriesToColorMap"]),requiredAxes:["category","value"]},column:{validAxes:new Set(["category","value","breakBy","seriesToColorMap"]),requiredAxes:["category","value"]},streamgraph:{validAxes:new Set(["category","value","breakBy","seriesToColorMap"]),requiredAxes:["category","value"]},polar:{validAxes:new Set(["category","value","breakBy","seriesToColorMap"]),requiredAxes:["category","value"]},pie:{validAxes:new Set(["category","value","seriesToColorMap"]),requiredAxes:["category","value"]},funnel:{validAxes:new Set(["category","value","seriesToColorMap"]),requiredAxes:["category","value"]},treemap:{validAxes:new Set(["category","value","seriesToColorMap"]),requiredAxes:["category","value"]},sunburst:{validAxes:new Set(["category","value","seriesToColorMap"]),requiredAxes:["category","value"]},scatter:{validAxes:new Set(["x","y","breakByPoint","breakByColor","size","seriesToColorMap"]),requiredAxes:[]},table:{validAxes:new Set(["columns"]),requiredAxes:["columns"]},indicator:{validAxes:new Set(["value","secondary","min","max"]),requiredAxes:[]},boxplot:{validAxes:new Set(["category","value","boxType","outliers"]),requiredAxes:["value"]},areamap:{validAxes:new Set(["geo","color"]),requiredAxes:["geo"]},scattermap:{validAxes:new Set(["geo","size","colorBy","details"]),requiredAxes:["geo"]},"calendar-heatmap":{validAxes:new Set(["date","value"]),requiredAxes:["date","value"]},arearange:{validAxes:new Set(["category","value","breakBy","seriesToColorMap"]),requiredAxes:["category","value"]}},Fs=new Set(["category","breakBy","breakByPoint","rows","geo","details","date"]),ws=new Set(["value","size","colorBy","boxType","outliers","values","secondary","min","max","color"]);function qs(e){const t=bs[e];if(t)return{validAxes:new Set(t.validAxes),requiredAxes:Object.freeze([...t.requiredAxes])}}function Dt(e){return typeof e=="string"&&Tt.has(e)}function As(e,t,r){if(r==="boxplot"&&e==="value"||r==="calendar-heatmap"&&e==="date"||Fs.has(e))return!0;if(ws.has(e))return!1;const s=Array.isArray(t)?t[0]:t;if(!s)return!0;let n;return T(s)&&"column"in s&&(n=s.column),!($(s)||n!==void 0&&$(n))}function Cs(e){const t=[],r={chartType:"",dataOptions:{}};if(!T(e))return t.push({category:"chartType",index:-1,input:e,message:"Expected an object"}),{normalized:r,errors:t};const s=e.chartType;if(s===void 0){const i=Object.keys(e),o=M("chartType",i,l=>l),a=o&&o.distance<=x?` Did you mean 'chartType'? (You may have typed '${o.best}')`:"",u=o&&o.distance<=x?{[o.best]:e[o.best]}:e;t.push({category:"chartType",index:-1,input:u,message:`chartType is required.${a}`})}else if(Dt(s))r.chartType=s;else{const i=M(String(s),We,u=>u),o=i&&i.distance<=x?` Did you mean '${i.best}'?`:"",a=We.slice(0,8).join(", ");t.push({category:"chartType",index:-1,input:s,message:`Invalid chartType '${s}'. Valid types: ${a}, ...${o}`})}const n=e.dataOptions;if(n===void 0){const i=Object.keys(e),o=M("dataOptions",i,l=>l),a=o&&o.distance<=x?` Did you mean 'dataOptions'? (You may have typed '${o.best}')`:"",u=o&&o.distance<=x?{[o.best]:e[o.best]}:e;t.push({category:"dataOptions",index:-1,input:u,message:`dataOptions is required.${a}`})}else n!==null&&typeof n=="object"&&(r.dataOptions=n);return e.styleOptions!==void 0&&(r.styleOptions=e.styleOptions),e.filters!==void 0&&Array.isArray(e.filters)&&(r.filters=e.filters),e.highlights!==void 0&&Array.isArray(e.highlights)&&(r.highlights=e.highlights),{normalized:r,errors:t}}function Es(e){return e.map(({attribute:t,style:r})=>r?h({column:t},r):t)}function $s(e){return e.map(({measure:t,style:r})=>r?h({column:t},r):t)}function St(e){return Array.isArray(e)?e:[e]}function me(e){return t=>w(h({},t),{category:"dataOptions",index:e})}function X(e,t,r,s,n){const i=t?St(t):[];if(i.length===0)return[];if(r==="dimension"){const a=q(()=>dt({data:i,context:s}),n,me(e));return a!==null?Es(a):null}const o=q(()=>Ct({data:i,context:s}),n,me(e));return o!==null?$s(o):null}function Je(e,t,r){const s=Array.isArray(t)?t:t!=null?[t]:[];if(r==="dimension"){const i=De(s);return i.success?{success:!0,data:i.data}:{success:!1,errors:i.errors.map(o=>w(h({},o),{category:"dataOptions",index:e}))}}const n=Me(s);return n.success?{success:!0,data:n.data}:{success:!1,errors:n.errors.map(i=>w(h({},i),{category:"dataOptions",index:e}))}}function xs(e,t){let r;T(e)&&"column"in e&&(r=e.column);const n=!($(e)||r!==void 0&&$(r))?"dimension":"measure",i=[],o=X("columns",[e],n,t,i);return o!==null?{success:!0,data:o}:{success:!1,errors:i}}function Ts(e,t,r,s){const n=[];for(const i of e){const o=q(()=>xs(i,t),r,s);o&&n.push(...o)}return n}function Ds(e,t,r){if(!e||!T(e))return r.push({category:"dataOptions",index:-1,input:e,message:"dataOptions is required"}),null;const s={},{chartType:n}=t,i=r.length,o=e,a=Object.keys(e),u=new Map;for(const f of a)if(!oe.has(f)){const d=M(f,[...oe],y=>y),b=d&&d.distance<=x?` Did you mean '${d.best}'?`:"";d&&d.distance<=x&&u.set(f,d.best),r.push({category:"dataOptions",index:f,input:o[f],message:`Unknown dataOptions key '${f}'.${b}`})}const l=n?qs(n):void 0;if(l){for(const f of a)if(f!=="seriesToColorMap"&&!l.validAxes.has(f)&&oe.has(f)){const d=M(f,[...l.validAxes],m=>m),b=d&&d.distance<=x?` Did you mean '${d.best}'?`:"",y=[...l.validAxes].join(", ");r.push({category:"dataOptions",index:f,input:o[f],message:`Axis '${f}' is not valid for chart type '${n}'. Valid axes: ${y}.${b}`})}for(const f of l.requiredAxes)[...u.values()].includes(f)||(!(f in o)||o[f]==null)&&r.push({category:"dataOptions",index:f,input:null,message:`Chart type '${n}' requires '${l.requiredAxes.join("' and '")}'. Missing: ${f}.`});n==="indicator"&&(["value","secondary","min","max"].some(b=>b in o&&o[b]!=null)||r.push({category:"dataOptions",index:-1,input:e,message:"Indicator chart requires at least one of: value, secondary, min, max."})),n==="scatter"&&("x"in e&&e.x!=null||"y"in e&&e.y!=null||r.push({category:"dataOptions",index:-1,input:e,message:"Scatter chart requires at least one of: x, y."}))}if(r.length>i)return null;const p=Object.entries(e);for(const[f,d]of p){if(!d)continue;if(f==="seriesToColorMap"){s[f]=d;continue}if(f==="columns"){s[f]=Ts(St(d),t,r,me("columns"));continue}const b=As(f,d,n)?"dimension":"measure",y=X(f,d,b,t,r);if(y!==null){const m=n==="calendar-heatmap"&&f==="value";s[f]=m||!Array.isArray(d)?y[0]:y}}return r.length>i?null:s}function Ss(e){if(typeof e!="string")return"iqr";const t=e.split("/")[1];return t==="iqr"||t==="extremums"||t==="standardDeviation"?t:"iqr"}const Os=e=>{var m;const{data:t,context:r}=e,{dataSource:s,tables:n}=r,{normalized:i,errors:o}=Cs(t);if(o.length>0)return{success:!1,errors:o};const a=i.chartType,u=Fe(n),l=[];let p=Ds(i.dataOptions,{dataSource:s,schemaIndex:u,chartType:a},l);if(a==="boxplot"&&p){const F=Ss((m=i.styleOptions)==null?void 0:m.subtype),C=F==="iqr"||F==="standardDeviation";p=w(h({},p),{boxType:F,outliersEnabled:C})}let f=null;i.filters&&i.filters.length>0&&(f=q(()=>Ee({data:i.filters||[],context:{dataSource:s,schemaIndex:u}}),l));let d=null;if(i.highlights&&i.highlights.length>0&&(d=q(()=>$e({data:i.highlights||[],context:{dataSource:s,schemaIndex:u}}),l)),l.length>0||p===null)return{success:!1,errors:l};if(!Dt(i.chartType))return{success:!1,errors:[{category:"chartType",index:-1,input:i.chartType,message:"Invalid chartType"}]};const b=i.chartType;return{success:!0,data:h(h(h({dataSet:c.convertDataSource(s),chartType:b,dataOptions:p},i.styleOptions&&{styleOptions:i.styleOptions}),f&&{filters:f}),d&&{highlights:d})}},Ms=e=>{const t=[];if(!e.chartType)return{success:!1,errors:[{category:"dimensions",index:-1,input:e,message:"chartType is required"}]};if(!e.dataOptions)return{success:!1,errors:[{category:"dimensions",index:-1,input:e,message:"dataOptions is required"}]};let r=null;const s=vs(e.dataOptions);s.success?r=s.data:t.push(...s.errors);let n;if(e.filters){const u=q(()=>Se(e.filters),t);n=u!=null?u:void 0}let i;if(e.highlights&&e.highlights.length>0){const u=q(()=>Oe(e.highlights),t);i=u!=null?u:void 0}if(t.length>0||r===null)return{success:!1,errors:t};const o=h(h(h({chartType:e.chartType,dataOptions:r},e.styleOptions&&{styleOptions:e.styleOptions}),n&&n.length>0&&{filters:n}),i&&i.length>0&&{highlights:i});return{success:!0,data:Y(o)}};function vs(e){const t={},r=[],s=new Set(["seriesToColorMap","boxType","outliersEnabled","valueTitle"]);for(const[n,i]of Object.entries(e)){if(n==="seriesToColorMap"&&i){t[n]=i;continue}if(s.has(n)||i==null){i!=null&&(t[n]=i);continue}const o=Array.isArray(i)?i:[i],a=Array.isArray(i),u=[],l=[];for(let p=0;p<o.length;p++){const f=o[p],b=Ns(f)?De([f]):Me([f]);b.success?u.push(...b.data):b.errors.forEach(y=>{var m;l.push(w(h({},y),{index:p,input:(m=y.input)!=null?m:f}))})}if(l.length>0){r.push(...l);continue}t[n]=a?u:u[0]}return r.length>0?{success:!1,errors:r}:{success:!0,data:t}}function Ns(e){const t=Array.isArray(e)?e[0]:e;if(!t||!T(t))return!0;const r="column"in t&&t.column!=null&&T(t.column)?t.column:t;if("composeCode"in r){const s=r.composeCode;if(typeof s=="string"&&s.startsWith("DM."))return!0;if(typeof s=="string"&&(s.includes("measureFactory")||s.includes("Formula")))return!1}if("type"in r){const s=r.type;if(s==="basemeasure"||s==="calculatedmeasure")return!1}return!("aggregation"in r||"attribute"in r&&"aggregation"in r)}const Ke=["rows","columns","values","grandTotals"];function Rs(e){if(!T(e))return!1;const t=Object.keys(e);return t.every(r=>r==="rows"||r==="columns")&&t.every(r=>typeof e[r]=="boolean")}function Is(e){const t=[],r={dataOptions:{}};if(!T(e))return t.push({category:"dataOptions",index:-1,input:e,message:"Expected an object"}),{normalized:r,errors:t};const s=e.dataOptions;if(s===void 0){const n=Object.keys(e),i=M("dataOptions",n,u=>u),o=i&&i.distance<=x?` Did you mean 'dataOptions'? (You may have typed '${i.best}')`:"",a=i&&i.distance<=x?{[i.best]:e[i.best]}:e;t.push({category:"dataOptions",index:-1,input:a,message:`dataOptions is required.${o}`})}else if(T(s)){const n=s;r.dataOptions=n;for(const o of Object.keys(n))if(!Ke.includes(o)){const a=M(o,[...Ke],l=>l),u=a&&a.distance<=x?` Did you mean '${a.best}'?`:"";t.push({category:"dataOptions",index:o,input:n[o],message:`Unknown dataOptions key '${o}'. Valid keys: rows, columns, values, grandTotals.${u}`})}for(const o of["rows","columns","values"]){const a=n[o];a!=null&&!Array.isArray(a)&&t.push({category:"dataOptions",index:o,input:a,message:`dataOptions.${o} must be an array`})}const i=n.grandTotals;i!=null&&!Rs(i)&&t.push({category:"dataOptions",index:"grandTotals",input:i,message:"grandTotals must be an object with optional rows?: boolean, columns?: boolean"})}return e.styleOptions!==void 0&&(r.styleOptions=e.styleOptions),e.filters!==void 0&&Array.isArray(e.filters)&&(r.filters=e.filters),e.highlights!==void 0&&Array.isArray(e.highlights)&&(r.highlights=e.highlights),{normalized:r,errors:t}}function Bs(e,t,r){if(!e||typeof e!="object")return r.push({category:"dataOptions",index:-1,input:e,message:"dataOptions is required"}),null;const s={},n=r.length;for(const o of["rows","columns"]){const a=X(o,e[o],"dimension",t,r);a&&(s[o]=a)}const i=X("values",e.values,"measure",t,r);return i&&(s.values=i),e.grandTotals!==void 0&&(s.grandTotals=e.grandTotals),r.length>n?null:s}const ks=e=>{const{data:t,context:r}=e,{dataSource:s,tables:n}=r,{normalized:i,errors:o}=Is(t);if(o.length>0)return{success:!1,errors:o};const a=Fe(n),u=[],l=Bs(i.dataOptions,{dataSource:s,schemaIndex:a},u);let p=null;i.filters&&i.filters.length>0&&(p=q(()=>Ee({data:i.filters||[],context:{dataSource:s,schemaIndex:a}}),u));let f=null;return i.highlights&&i.highlights.length>0&&(f=q(()=>$e({data:i.highlights||[],context:{dataSource:s,schemaIndex:a}}),u)),u.length>0||l===null?{success:!1,errors:u}:{success:!0,data:h(h(h({dataSet:c.convertDataSource(s),dataOptions:l},i.styleOptions&&{styleOptions:i.styleOptions}),p&&{filters:p}),f&&{highlights:f})}},zs=e=>{const t=[];if(!e.dataOptions)return{success:!1,errors:[{category:"dataOptions",index:-1,input:e,message:"dataOptions is required"}]};const r=e.dataOptions,s={};for(const l of["rows","columns"]){const p=r[l];if(p&&p.length>0){const f=Je(l,p,"dimension");f.success?s[l]=f.data:t.push(...f.errors)}}const n=r.values;if(n&&n.length>0){const l=Je("values",n,"measure");l.success?s.values=l.data:t.push(...l.errors)}r.grandTotals!==void 0&&(s.grandTotals=r.grandTotals);let i;if(e.filters){const l=q(()=>Se(e.filters),t);i=l!=null?l:void 0}let o;if(e.highlights&&e.highlights.length>0){const l=q(()=>Oe(e.highlights),t);o=l!=null?l:void 0}if(t.length>0)return{success:!1,errors:t};const a=h(h(h({dataOptions:s},e.styleOptions&&{styleOptions:e.styleOptions}),i&&i.length>0&&{filters:i}),o&&o.length>0&&{highlights:o});return{success:!0,data:Y(a)}};function Ps(e){const{filters:t,relations:r}=c.getFilterListAndRelationsJaql(e.filters||[]);return{dataSource:e.dataSource,dimensions:e.dimensions,measures:e.measures,filters:t,filterRelations:r,highlights:e.highlights}}function Ls(e,t,r=!1){const s=Ps(e),n=c.prepareQueryParams(s,t);return c.getJaqlQueryPayload(n,r)}exports.EMPTY_EXPANDED_QUERY_MODEL=I.EMPTY_EXPANDED_QUERY_MODEL;exports.EMPTY_SIMPLE_QUERY_MODEL=I.EMPTY_SIMPLE_QUERY_MODEL;exports.isByIdDashboardCodeParams=I.isByIdDashboardCodeParams;exports.isByIdWidgetCodeParams=I.isByIdWidgetCodeParams;exports.isClientSideDashboardCodeParams=I.isClientSideDashboardCodeParams;exports.isClientSideWidgetCodeParams=I.isClientSideWidgetCodeParams;exports.CustomSuperJSON=mr;exports.translateChartFromJSON=Os;exports.translateChartToJSON=Ms;exports.translatePivotTableFromJSON=ks;exports.translatePivotTableToJSON=zs;exports.translateQueryFromJSON=fs;exports.translateQueryToJSON=hs;exports.translateQueryToJaql=Ls;