@sisense/sdk-ui 2.29.0 → 2.31.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 (249) hide show
  1. package/dist/ai.cjs +57 -57
  2. package/dist/ai.js +767 -797
  3. package/dist/analytics-composer/node.cjs +1 -1
  4. package/dist/analytics-composer/node.js +1871 -1324
  5. package/dist/analytics-composer.cjs +2 -2
  6. package/dist/analytics-composer.js +8 -8
  7. package/dist/apply-styled-options-to-query-BddNnNsW.js +7028 -0
  8. package/dist/apply-styled-options-to-query-BrP6xVFh.cjs +1 -0
  9. package/dist/index-BcggtLDg.js +847 -0
  10. package/dist/{index-C77YCBVd.js → index-DCYw3JUB.js} +29 -7
  11. package/dist/index-DTvxJdqZ.cjs +1 -0
  12. package/dist/index-DhUTJSni.cjs +1 -0
  13. package/dist/index.cjs +614 -495
  14. package/dist/index.js +27269 -26507
  15. package/dist/index.umd.js +1035 -810
  16. package/dist/packages/sdk-ui/src/domains/dashboarding/common-filters/utils.d.ts +1 -1
  17. package/dist/packages/sdk-ui/src/domains/dashboarding/components/dashboard-container.d.ts +1 -1
  18. package/dist/packages/sdk-ui/src/domains/dashboarding/components/dashboard-header/constants.d.ts +16 -0
  19. package/dist/packages/sdk-ui/src/domains/dashboarding/components/dashboard-header/dashboard-header-config.d.ts +122 -0
  20. package/dist/packages/sdk-ui/src/domains/dashboarding/components/dashboard-header/dashboard-header-targets.d.ts +26 -0
  21. package/dist/packages/sdk-ui/src/domains/dashboarding/components/dashboard-header/dashboard-header-title.d.ts +20 -0
  22. package/dist/packages/sdk-ui/src/domains/dashboarding/components/dashboard-header/dashboard-header.d.ts +9 -0
  23. package/dist/packages/sdk-ui/src/domains/dashboarding/components/toolbar/edit-toggle.d.ts +5 -0
  24. package/dist/packages/sdk-ui/src/domains/dashboarding/components/toolbar/filter-toggle.d.ts +5 -0
  25. package/dist/packages/sdk-ui/src/domains/dashboarding/constants.d.ts +2 -2
  26. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-helpers.d.ts +21 -0
  27. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/translate-dashboard-utils.d.ts +43 -1
  28. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/persist-dashboard-model-middleware.d.ts +10 -0
  29. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/types.d.ts +7 -0
  30. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/utils.d.ts +2 -0
  31. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-module/dashboard-module.d.ts +34 -0
  32. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-module/types.d.ts +65 -0
  33. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard.d.ts +0 -1
  34. package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/duplicate-widget/use-duplicate-widget-menu-item.d.ts +7 -0
  35. package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/use-dashboard-header-menu-item.d.ts +9 -0
  36. package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/use-edit-mode-with-history.d.ts +0 -1
  37. package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/use-widget-updates-persistence.d.ts +2 -1
  38. package/dist/packages/sdk-ui/src/domains/dashboarding/persistence/types.d.ts +11 -1
  39. package/dist/packages/sdk-ui/src/domains/dashboarding/persistence/update-types.d.ts +4 -1
  40. package/dist/packages/sdk-ui/src/domains/dashboarding/types.d.ts +44 -16
  41. package/dist/packages/sdk-ui/src/domains/dashboarding/utils.d.ts +33 -1
  42. package/dist/packages/sdk-ui/src/domains/data-browser/add-measure-popover/add-measure-data-browser.d.ts +11 -0
  43. package/dist/packages/sdk-ui/src/domains/data-browser/add-measure-popover/add-measure-popover.d.ts +14 -0
  44. package/dist/packages/sdk-ui/src/domains/data-browser/add-measure-popover/measure-ranking-title.d.ts +21 -0
  45. package/dist/packages/sdk-ui/src/domains/data-browser/add-measure-popover/measures.d.ts +13 -0
  46. package/dist/packages/sdk-ui/src/domains/filters/components/criteria-filter-tile/criteria-filter-menu.d.ts +2 -1
  47. package/dist/packages/sdk-ui/src/domains/filters/components/criteria-filter-tile/criteria-filter-operations.d.ts +1 -0
  48. package/dist/packages/sdk-ui/src/domains/filters/components/filter-editor-popover/filter-editor-context.d.ts +1 -0
  49. package/dist/packages/sdk-ui/src/domains/filters/components/filter-editor-popover/filter-editor-popover.d.ts +2 -1
  50. package/dist/packages/sdk-ui/src/domains/filters/components/filter-editor-popover/filter-editor.d.ts +2 -1
  51. package/dist/packages/sdk-ui/src/domains/filters/components/filter-editor-popover/sections/numeric-condition-section/types.d.ts +5 -0
  52. package/dist/packages/sdk-ui/src/domains/filters/components/filter-editor-popover/sections/ranking-condition/index.d.ts +3 -0
  53. package/dist/packages/sdk-ui/src/domains/filters/components/filter-editor-popover/sections/ranking-condition/ranking-condition-controls.d.ts +33 -0
  54. package/dist/packages/sdk-ui/src/domains/filters/components/filter-editor-popover/sections/ranking-condition/ranking-condition-utils.d.ts +13 -0
  55. package/dist/packages/sdk-ui/src/domains/filters/components/filters-panel/filters-panel.d.ts +0 -1
  56. package/dist/packages/sdk-ui/src/domains/filters/components/filters-panel/hooks/use-existing-filter-editing.d.ts +2 -1
  57. package/dist/packages/sdk-ui/src/domains/narrative/components/narrative-collapsible.d.ts +22 -4
  58. package/dist/packages/sdk-ui/src/domains/narrative/components/narrative-top-slot-shell.d.ts +2 -0
  59. package/dist/packages/sdk-ui/src/domains/narrative/components/narrative-trigger-button.d.ts +17 -0
  60. package/dist/packages/sdk-ui/src/domains/narrative/components/widget-narrative-interactive.d.ts +20 -2
  61. package/dist/packages/sdk-ui/src/domains/narrative/components/widget-narrative.d.ts +11 -9
  62. package/dist/packages/sdk-ui/src/domains/narrative/core/build-narrative-request.d.ts +1 -1
  63. package/dist/packages/sdk-ui/src/domains/narrative/core/get-narrative-dimensions-and-measures.d.ts +2 -2
  64. package/dist/packages/sdk-ui/src/domains/narrative/core/get-widget-narrative-from-widget-props.d.ts +18 -0
  65. package/dist/packages/sdk-ui/src/domains/narrative/core/to-nlg-api-verbosity.d.ts +7 -0
  66. package/dist/packages/sdk-ui/src/domains/narrative/core/widget-narrative-config.d.ts +114 -0
  67. package/dist/packages/sdk-ui/src/domains/narrative/core/widget-props-to-narrative-params.d.ts +35 -32
  68. package/dist/packages/sdk-ui/src/domains/narrative/hooks/use-get-widget-narrative.d.ts +11 -22
  69. package/dist/packages/sdk-ui/src/domains/narrative/hooks/use-line-height.d.ts +10 -0
  70. package/dist/packages/sdk-ui/src/domains/narrative/hooks/use-widget-narrative-state.d.ts +8 -9
  71. package/dist/packages/sdk-ui/src/domains/query-execution/core/execute-query.d.ts +34 -1
  72. package/dist/packages/sdk-ui/src/domains/query-execution/hooks/use-execute-excel-query/excel-export/build-jaql-excel-export.d.ts +13 -5
  73. package/dist/packages/sdk-ui/src/domains/query-execution/hooks/use-execute-excel-query/excel-export/build-xlsx-export-payload.d.ts +5 -0
  74. package/dist/packages/sdk-ui/src/domains/query-execution/hooks/use-execute-query-by-widget-id/use-execute-query-by-widget-id.d.ts +2 -1
  75. package/dist/packages/sdk-ui/src/domains/query-execution/types.d.ts +55 -3
  76. package/dist/packages/sdk-ui/src/domains/shared/header/header-item-cell.d.ts +25 -0
  77. package/dist/packages/sdk-ui/src/domains/shared/header/header-item-size.d.ts +31 -0
  78. package/dist/packages/sdk-ui/src/domains/shared/header/header-items-renderer.d.ts +23 -0
  79. package/dist/packages/sdk-ui/src/domains/shared/header/header-spacer-item.d.ts +9 -0
  80. package/dist/packages/sdk-ui/src/domains/shared/header/index.d.ts +7 -0
  81. package/dist/packages/sdk-ui/src/domains/shared/header/resolve-header-items.d.ts +17 -0
  82. package/dist/packages/sdk-ui/src/domains/shared/header/types.d.ts +98 -0
  83. package/dist/packages/sdk-ui/src/domains/shared/header/use-resolved-header-items.d.ts +10 -0
  84. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/areamap-chart/data/areamap-data.d.ts +3 -1
  85. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/highchart-based-charts/cartesians/helpers/data.d.ts +3 -1
  86. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/highchart-based-charts/cartesians/stackable/streamgraph-chart/helpers/chart-data.d.ts +3 -1
  87. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/highchart-based-charts/categoricals/helpers/data.d.ts +3 -1
  88. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/highchart-based-charts/categoricals/sunburst-chart/data/index.d.ts +3 -1
  89. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/highchart-based-charts/categoricals/treemap-chart/data/index.d.ts +3 -1
  90. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/highchart-based-charts/highcharts-based-chart-renderer/build-highchart-options.d.ts +1 -0
  91. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/highchart-based-charts/sankey-chart/alerts/index.d.ts +5 -0
  92. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/highchart-based-charts/sankey-chart/data/index.d.ts +22 -0
  93. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/highchart-based-charts/sankey-chart/data-options/index.d.ts +33 -0
  94. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/highchart-based-charts/sankey-chart/design-options/index.d.ts +21 -0
  95. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/highchart-based-charts/sankey-chart/highchart-options/highcharts-options-builder.d.ts +3 -0
  96. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/highchart-based-charts/sankey-chart/sankey-chart-builder.d.ts +3 -0
  97. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/highchart-based-charts/sankey-chart/sankey-node-colors.d.ts +10 -0
  98. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/highchart-based-charts/sankey-chart/types.d.ts +38 -0
  99. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/highchart-based-charts/types.d.ts +2 -1
  100. package/dist/packages/sdk-ui/src/domains/visualizations/components/chart/restructured-charts/types.d.ts +12 -9
  101. package/dist/packages/sdk-ui/src/domains/visualizations/components/pivot-table/formatters/data-cell-formatters/data-cell-value-formatter.d.ts +1 -1
  102. package/dist/packages/sdk-ui/src/domains/visualizations/components/pivot-table/formatters/header-cell-formatters/header-cell-value-formatter.d.ts +1 -1
  103. package/dist/packages/sdk-ui/src/domains/visualizations/components/pivot-table/hooks/use-pivot-data-loading.d.ts +1 -0
  104. package/dist/packages/sdk-ui/src/domains/visualizations/components/pivot-table/resolve-pivot-container-size.d.ts +28 -0
  105. package/dist/packages/sdk-ui/src/domains/visualizations/components/sankey-chart.d.ts +30 -0
  106. package/dist/packages/sdk-ui/src/domains/visualizations/components/table/pure-table/helpers/calc-column-widths.d.ts +19 -1
  107. package/dist/packages/sdk-ui/src/domains/visualizations/components/table/pure-table/helpers/format-numbers.d.ts +1 -1
  108. package/dist/packages/sdk-ui/src/domains/visualizations/components/table/pure-table/styles/style-constants.d.ts +1 -1
  109. package/dist/packages/sdk-ui/src/domains/visualizations/components/table/pure-table/types.d.ts +5 -0
  110. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-data/cartesian-data.d.ts +1 -1
  111. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-data/categorical-data.d.ts +1 -1
  112. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-data/chart-data-service.d.ts +1 -1
  113. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-data/scatter-data.d.ts +2 -2
  114. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-data/types.d.ts +2 -1
  115. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-data-options/apply-styled-options-to-query.d.ts +4 -4
  116. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-data-options/types.d.ts +46 -7
  117. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-options-processor/chart-options-service.d.ts +4 -0
  118. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-options-processor/tooltip.d.ts +1 -1
  119. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-options-processor/translations/design-options.d.ts +40 -1
  120. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-options-processor/translations/funnel-plot-options.d.ts +1 -1
  121. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-options-processor/translations/number-format-config.d.ts +12 -0
  122. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-options-processor/translations/pie-plot-options.d.ts +2 -1
  123. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-options-processor/translations/sunburst/sunburst-levels.d.ts +2 -2
  124. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-options-processor/translations/sunburst/sunburst-options.d.ts +3 -3
  125. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-options-processor/translations/sunburst/sunburst-series.d.ts +1 -1
  126. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-options-processor/translations/treemap/treemap-tooltip.d.ts +2 -2
  127. package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-options-processor/translations/types.d.ts +12 -3
  128. package/dist/packages/sdk-ui/src/domains/widgets/components/chart-widget/types.d.ts +1 -2
  129. package/dist/packages/sdk-ui/src/domains/widgets/components/chart-widget/use-chart-widget-excel-download.d.ts +2 -3
  130. package/dist/packages/sdk-ui/src/domains/widgets/components/chart-widget/use-chart-widget-narrative.d.ts +28 -0
  131. package/dist/packages/sdk-ui/src/domains/widgets/components/custom-widget/use-custom-widget-excel-download.d.ts +3 -3
  132. package/dist/packages/sdk-ui/src/domains/widgets/components/pivot-table-widget/pivot-table-widget.d.ts +4 -4
  133. package/dist/packages/sdk-ui/src/domains/widgets/components/pivot-table-widget/types.d.ts +1 -2
  134. package/dist/packages/sdk-ui/src/domains/widgets/components/pivot-table-widget/use-pivot-widget-excel-download.d.ts +2 -3
  135. package/dist/packages/sdk-ui/src/domains/widgets/components/widget/types.d.ts +25 -9
  136. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-dashboard-filters.d.ts +1 -0
  137. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-style-options/categorical-labels-style.d.ts +94 -0
  138. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-style-options/index.d.ts +1 -0
  139. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-style-options/series-label-affix-style.d.ts +59 -0
  140. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-style-options/tabber.d.ts +17 -1
  141. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-style-options/to-widget-dto-style.d.ts +13 -1
  142. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-style-options/widget-narrative-style.d.ts +31 -0
  143. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/types.d.ts +102 -2
  144. package/dist/packages/sdk-ui/src/domains/widgets/helpers/excel-export-map-dimensions-measures.d.ts +17 -2
  145. package/dist/packages/sdk-ui/src/domains/widgets/helpers/number-format-config-to-numeric-mask.d.ts +5 -0
  146. package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-container/widget-container.d.ts +7 -1
  147. package/dist/packages/sdk-ui/src/domains/widgets/widget-model/widget-model.d.ts +6 -2
  148. package/dist/packages/sdk-ui/src/infra/api/narrative/narrative-endpoints.d.ts +2 -2
  149. package/dist/packages/sdk-ui/src/infra/app/settings/settings.d.ts +11 -0
  150. package/dist/packages/sdk-ui/src/infra/app/settings/types/features.d.ts +1 -3
  151. package/dist/packages/sdk-ui/src/infra/app/types.d.ts +17 -0
  152. package/dist/packages/sdk-ui/src/infra/decorators/component-decorators/with-tracking/use-track-component-init.d.ts +8 -0
  153. package/dist/packages/sdk-ui/src/infra/modules/types.d.ts +24 -5
  154. package/dist/packages/sdk-ui/src/infra/plugins/types.d.ts +34 -6
  155. package/dist/packages/sdk-ui/src/infra/plugins/widget-plugins/types.d.ts +180 -54
  156. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/de-de.d.ts +22 -0
  157. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/en-us.d.ts +22 -0
  158. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/es-ar.d.ts +22 -0
  159. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/es-es.d.ts +22 -0
  160. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/fr-fr.d.ts +22 -0
  161. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/it-it.d.ts +22 -0
  162. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ja-jp.d.ts +22 -0
  163. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ko-kr.d.ts +22 -0
  164. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/nl-nl.d.ts +22 -0
  165. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/pt-br.d.ts +22 -0
  166. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ru-ru.d.ts +22 -0
  167. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/tr-tr.d.ts +22 -0
  168. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/zh-cn.d.ts +22 -0
  169. package/dist/packages/sdk-ui/src/infra/translation/resources/en.d.ts +22 -0
  170. package/dist/packages/sdk-ui/src/infra/translation/resources/index.d.ts +44 -0
  171. package/dist/packages/sdk-ui/src/modules/ai/common/collapsible.d.ts +38 -2
  172. package/dist/packages/sdk-ui/src/modules/ai/get-nlg-insights-from-widget.d.ts +4 -13
  173. package/dist/packages/sdk-ui/src/modules/ai/index.d.ts +1 -1
  174. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/expression/custom-formula/validate-custom-formula.d.ts +11 -0
  175. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/expression/datetime-filter-processors.d.ts +6 -0
  176. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/expression/measure-processors.d.ts +16 -0
  177. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/expression/process-measured-value.d.ts +14 -0
  178. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/utils/schema-index.d.ts +4 -0
  179. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/validation/datetime-member-validation.d.ts +2 -0
  180. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/validation/datetime-range-validation.d.ts +2 -0
  181. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/validation/datetime-relative-validation.d.ts +1 -0
  182. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/validation/datetime-validation-utils.d.ts +40 -0
  183. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/validation/flatten-filters.d.ts +5 -0
  184. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/validation/normalize-member-for-granularity.d.ts +5 -0
  185. package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/shared/validation/query-datetime-validation.d.ts +7 -0
  186. package/dist/packages/sdk-ui/src/modules/analytics-composer/types.d.ts +16 -1
  187. package/dist/packages/sdk-ui/src/modules/analytics-composer/widget/to-widget-code.d.ts +1 -1
  188. package/dist/packages/sdk-ui/src/props.d.ts +46 -3
  189. package/dist/packages/sdk-ui/src/public-api/alpha.d.ts +0 -2
  190. package/dist/packages/sdk-ui/src/public-api/beta.d.ts +8 -0
  191. package/dist/packages/sdk-ui/src/public-api/internal.d.ts +1 -1
  192. package/dist/packages/sdk-ui/src/public-api/public.d.ts +4 -1
  193. package/dist/packages/sdk-ui/src/public-api/sisense-internal.d.ts +4 -3
  194. package/dist/packages/sdk-ui/src/shared/components/alert/alert.d.ts +1 -50
  195. package/dist/packages/sdk-ui/src/shared/components/alert/index.d.ts +2 -2
  196. package/dist/packages/sdk-ui/src/shared/components/no-results-overlay/images/index.d.ts +1 -1
  197. package/dist/packages/sdk-ui/src/shared/components/quota-notification/quota-notification.d.ts +3 -10
  198. package/dist/packages/sdk-ui/src/shared/components/radio.d.ts +1 -0
  199. package/dist/packages/sdk-ui/src/shared/hooks/use-synced-state.d.ts +6 -7
  200. package/dist/packages/sdk-ui/src/shared/icons/warning-icon.d.ts +2 -3
  201. package/dist/packages/sdk-ui/src/shared/icons/x-circle-icon.d.ts +2 -3
  202. package/dist/packages/sdk-ui/src/shared/utils/color/color-interpolation.d.ts +1 -1
  203. package/dist/packages/sdk-ui/src/shared/utils/color/colorjs.d.ts +36 -0
  204. package/dist/packages/sdk-ui/src/shared/utils/gradient.d.ts +3 -2
  205. package/dist/packages/sdk-ui/src/types.d.ts +89 -6
  206. package/dist/{use-hover-Dju4Dcv3.js → quota-notification-BMxiL8zu.js} +23452 -22126
  207. package/dist/quota-notification-CsGmQ05h.cjs +750 -0
  208. package/dist/translations/de-de.cjs +1 -1
  209. package/dist/translations/de-de.js +27 -5
  210. package/dist/translations/en-us.cjs +1 -1
  211. package/dist/translations/en-us.js +1 -1
  212. package/dist/translations/es-ar.cjs +1 -1
  213. package/dist/translations/es-ar.js +27 -5
  214. package/dist/translations/es-es.cjs +1 -1
  215. package/dist/translations/es-es.js +27 -5
  216. package/dist/translations/fr-fr.cjs +1 -1
  217. package/dist/translations/fr-fr.js +27 -5
  218. package/dist/translations/it-it.cjs +1 -1
  219. package/dist/translations/it-it.js +29 -7
  220. package/dist/translations/ja-jp.cjs +1 -1
  221. package/dist/translations/ja-jp.js +27 -5
  222. package/dist/translations/ko-kr.cjs +1 -1
  223. package/dist/translations/ko-kr.js +27 -5
  224. package/dist/translations/nl-nl.cjs +1 -1
  225. package/dist/translations/nl-nl.js +29 -7
  226. package/dist/translations/pt-br.cjs +1 -1
  227. package/dist/translations/pt-br.js +27 -5
  228. package/dist/translations/ru-ru.cjs +1 -1
  229. package/dist/translations/ru-ru.js +27 -5
  230. package/dist/translations/tr-tr.cjs +1 -1
  231. package/dist/translations/tr-tr.js +27 -5
  232. package/dist/translations/zh-cn.cjs +1 -1
  233. package/dist/translations/zh-cn.js +27 -5
  234. package/dist/{types-7YG0uOzO.js → types-BB6n10Af.js} +1 -1
  235. package/dist/{types-DlYJ_DZ0.cjs → types-CMUXHDie.cjs} +1 -1
  236. package/dist/{utils-BKRpWUGm.js → utils-C39pRlFD.js} +14298 -13977
  237. package/dist/utils-CL2eytnK.cjs +180 -0
  238. package/dist/{widget-composer-BXEyx308.cjs → widget-composer-DDulWu8l.cjs} +85 -10
  239. package/dist/{widget-composer-DRDw1oBF.js → widget-composer-DrfnZQa0.js} +350 -259
  240. package/package.json +13 -16
  241. package/dist/apply-styled-options-to-query-CaP4IMrQ.js +0 -6379
  242. package/dist/apply-styled-options-to-query-D5D8pRl2.cjs +0 -1
  243. package/dist/index-C9G8giSk.cjs +0 -1
  244. package/dist/packages/sdk-ui/src/domains/dashboarding/components/dashboard-header.d.ts +0 -3
  245. package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/use-dashboard-header-toolbar.d.ts +0 -25
  246. package/dist/packages/sdk-ui/src/domains/narrative/core/widget-narrative-options.d.ts +0 -36
  247. package/dist/packages/sdk-ui/src/shared/hooks/use-quota-warning-dismissed.d.ts +0 -8
  248. package/dist/use-hover-CANskYrn.cjs +0 -720
  249. package/dist/utils-C4PIba42.cjs +0 -179
@@ -22,5 +22,5 @@ type GetWidgetDataOptionsWithDrilldownParams = {
22
22
  * @param params.drilldownOptions - The drilldown options of the widget.
23
23
  * @returns The widget data options with drilldown applied.
24
24
  */
25
- export declare function getWidgetDataOptionsWithDrilldown({ widgetType, chartType, dataOptions, drilldownOptions, }: GetWidgetDataOptionsWithDrilldownParams): import('../../../index.js').CategoricalChartDataOptions | import('../../../index.js').ScatterChartDataOptions | import('../../../index.js').IndicatorChartDataOptions | import('../../../index.js').BoxplotChartDataOptions | import('../../../index.js').BoxplotChartCustomDataOptions | import('../../../index.js').AreamapChartDataOptions | import('../../../index.js').ScattermapChartDataOptions | import('../../../index.js').RangeChartDataOptions | import('../../../index.js').CalendarHeatmapChartDataOptions | import('../../../index.js').TableDataOptions | PivotTableDataOptions | GenericDataOptions;
25
+ export declare function getWidgetDataOptionsWithDrilldown({ widgetType, chartType, dataOptions, drilldownOptions, }: GetWidgetDataOptionsWithDrilldownParams): import('../../../index.js').CategoricalChartDataOptions | import('../../../index.js').ScatterChartDataOptions | import('../../../index.js').IndicatorChartDataOptions | import('../../../index.js').BoxplotChartDataOptions | import('../../../index.js').BoxplotChartCustomDataOptions | import('../../../index.js').AreamapChartDataOptions | import('../../../index.js').ScattermapChartDataOptions | import('../../../index.js').RangeChartDataOptions | import('../../../index.js').CalendarHeatmapChartDataOptions | import('../../../index.js').SankeyChartDataOptions | import('../../../index.js').TableDataOptions | PivotTableDataOptions | GenericDataOptions;
26
26
  export {};
@@ -1,2 +1,2 @@
1
1
  import { DashboardContainerProps } from '../../../domains/dashboarding/types';
2
- export declare const DashboardContainer: ({ editMode, onLayoutChange, renderToolbar, title, layoutOptions, config, widgets, filters, onFiltersChange, defaultDataSource, filterPanelCollapsed, onFilterPanelCollapsedChange, }: DashboardContainerProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const DashboardContainer: ({ editMode, onLayoutChange, headerItems, headerConfig, title, layoutOptions, config, widgets, filters, onFiltersChange, defaultDataSource, filterPanelCollapsed, onFilterPanelCollapsedChange, }: DashboardContainerProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Layout constants for the dashboard header.
3
+ */
4
+ /**
5
+ * Default (and minimum) dashboard header height (px): the default 28px item plus the 10px top/bottom
6
+ * padding. The header grows beyond this when an item is taller than the default.
7
+ */
8
+ export declare const DASHBOARD_HEADER_HEIGHT = 48;
9
+ /**
10
+ * Default size (px) for dashboard header items that don't specify their own size.
11
+ */
12
+ export declare const DASHBOARD_HEADER_ITEM_SIZE = 28;
13
+ /**
14
+ * Gap (px) between adjacent dashboard header items (matches Fusion's 10px spacing).
15
+ */
16
+ export declare const DASHBOARD_HEADER_ITEMS_GAP = 10;
@@ -0,0 +1,122 @@
1
+ import { ReactNode } from 'react';
2
+ import { DashboardHeaderTarget } from './dashboard-header-targets';
3
+ /**
4
+ * Size of a custom dashboard header item, in pixels.
5
+ */
6
+ export interface DashboardHeaderItemSize {
7
+ /**
8
+ * Fixed width of the item, in pixels.
9
+ *
10
+ * If omitted, it falls back to the default dashboard header item size of `28px`.
11
+ *
12
+ * @default 28
13
+ */
14
+ width?: number;
15
+ /**
16
+ * Fixed height of the item, in pixels.
17
+ *
18
+ * If omitted, it falls back to the default dashboard header item size of `28px`.
19
+ *
20
+ * @default 28
21
+ */
22
+ height?: number;
23
+ }
24
+ /**
25
+ * Props passed to a {@link DashboardHeaderItemComponent} when it is rendered.
26
+ */
27
+ export interface DashboardHeaderItemComponentProps {
28
+ /** The size resolved for the item by the header layout, with defaults applied. */
29
+ size: {
30
+ /**
31
+ * Fixed width of the item, in pixels.
32
+ */
33
+ width: number;
34
+ /**
35
+ * Fixed height of the item, in pixels.
36
+ */
37
+ height: number;
38
+ };
39
+ }
40
+ /**
41
+ * A React component that renders the content of a custom dashboard header item.
42
+ */
43
+ export type DashboardHeaderItemComponent = (props: DashboardHeaderItemComponentProps) => ReactNode;
44
+ /**
45
+ * Position of a custom dashboard header item relative to the other items.
46
+ *
47
+ * - `auto` (default) — automatic placement.
48
+ * - `before` / `after` — placed immediately before/after the item with the given `target` id.
49
+ * Pass a {@link DashboardHeaderTargets} constant to anchor to a built-in item (works even when
50
+ * that built-in is currently hidden), or any custom item id to anchor to another injected item.
51
+ * - `first` / `last` — placed at the very start/end of the header.
52
+ */
53
+ export type DashboardHeaderItemPosition = {
54
+ type: 'auto';
55
+ } | {
56
+ type: 'before';
57
+ target: DashboardHeaderTarget | string;
58
+ } | {
59
+ type: 'after';
60
+ target: DashboardHeaderTarget | string;
61
+ } | {
62
+ type: 'first';
63
+ } | {
64
+ type: 'last';
65
+ };
66
+ /**
67
+ * A custom item to inject into the dashboard header.
68
+ */
69
+ export interface DashboardHeaderItem {
70
+ /**
71
+ * Unique identifier of the item.
72
+ *
73
+ * Must not match a built-in dashboard header item id (see {@link DashboardHeaderTargets}).
74
+ */
75
+ id: string;
76
+ /**
77
+ * Component that renders the content of the item.
78
+ */
79
+ component: DashboardHeaderItemComponent;
80
+ /**
81
+ * Placement of the item.
82
+ *
83
+ * Defaults to `{ type: 'auto' }` (after the center spacer).
84
+ */
85
+ position?: DashboardHeaderItemPosition;
86
+ /**
87
+ * Size of the item.
88
+ */
89
+ size?: DashboardHeaderItemSize;
90
+ }
91
+ /**
92
+ * A dashboard header item after the built-in and custom items have been ordered (position applied).
93
+ *
94
+ * This is the shape passed to {@link DashboardHeaderConfig.onBeforeRender}.
95
+ */
96
+ export type DashboardResolvedHeaderItem = Omit<DashboardHeaderItem, 'position'>;
97
+ /**
98
+ * Transforms the fully ordered list of dashboard header items right before rendering.
99
+ */
100
+ export type DashboardHeaderItemsTransform = (items: ReadonlyArray<DashboardResolvedHeaderItem>) => DashboardResolvedHeaderItem[];
101
+ /**
102
+ * Configuration for the dashboard header items.
103
+ */
104
+ export interface DashboardHeaderConfig {
105
+ /**
106
+ * Boolean flag that determines whether the dashboard header is visible.
107
+ *
108
+ * If not specified, the default value is `true`.
109
+ */
110
+ visible?: boolean;
111
+ /**
112
+ * Custom items to inject into the header.
113
+ *
114
+ * Each item's `id` must not match a built-in item id (see {@link DashboardHeaderTargets}).
115
+ */
116
+ items?: DashboardHeaderItem[];
117
+ /**
118
+ * Advanced callback to inspect and rewrite the full, ordered list of header items (built-in +
119
+ * custom) right before rendering. The only way to modify or remove built-in items.
120
+ */
121
+ onBeforeRender?: DashboardHeaderItemsTransform;
122
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Ids of the built-in dashboard header items.
3
+ *
4
+ * Use these as `target`s for the `before`/`after` position of a {@link DashboardHeaderItem}.
5
+ * A target stays valid even when it is not currently shown (e.g. the filter toggle when
6
+ * its icon is disabled): the position resolves as if the built-in were there, so the custom item lands
7
+ * in a stable spot regardless of which built-ins happen to be visible.
8
+ */
9
+ export declare const DashboardHeaderTargets: {
10
+ /** The dashboard title. */
11
+ readonly Title: "dashboard-header-title";
12
+ /** The flexible center spacer that separates the title and trailing groups. */
13
+ readonly Spacer: "dashboard-header-spacer";
14
+ /** The edit-mode toolbar (undo/redo/cancel/apply), shown while editing with batch changes. */
15
+ readonly EditModeToolbar: "dashboard-header-edit-mode-toolbar";
16
+ /** The edit-mode toggle button. */
17
+ readonly EditToggle: "dashboard-header-edit-toggle";
18
+ /** The filters-panel toggle button. */
19
+ readonly FilterToggle: "dashboard-header-filter-toggle";
20
+ /** The overflow/context menu button. */
21
+ readonly Menu: "dashboard-header-menu";
22
+ };
23
+ /**
24
+ * Union of the built-in dashboard header item ids, usable as `target` for `before`/`after` positions.
25
+ */
26
+ export type DashboardHeaderTarget = (typeof DashboardHeaderTargets)[keyof typeof DashboardHeaderTargets];
@@ -0,0 +1,20 @@
1
+ import { HeaderItem } from '../../../../domains/shared/header';
2
+ /**
3
+ * Props for {@link DashboardHeaderTitle}.
4
+ */
5
+ export interface DashboardHeaderTitleProps {
6
+ /** The dashboard title text. */
7
+ title: string;
8
+ }
9
+ /**
10
+ * The dashboard title, rendered as the content of the built-in title header item.
11
+ */
12
+ export declare const DashboardHeaderTitle: ({ title }: DashboardHeaderTitleProps) => import("react/jsx-runtime").JSX.Element;
13
+ /**
14
+ * Builds the built-in title header item.
15
+ *
16
+ * The title can be targeted by `before`/`after`. It uses the internal `fill: 'truncate'` so it
17
+ * takes its natural content width on the leading side and is the only item that shrinks/ellipsizes
18
+ * under pressure (action buttons keep their size); the center spacer absorbs the free space.
19
+ */
20
+ export declare const createDashboardTitleItem: (title: string) => HeaderItem;
@@ -0,0 +1,9 @@
1
+ import { DashboardHeaderProps } from '../../../../domains/dashboarding/types';
2
+ /**
3
+ * Dashboard header.
4
+ *
5
+ * Pure renderer: it receives the full list of built-in header items (title and center spacer
6
+ * included), resolves them against the user {@link DashboardHeaderConfig} (ordering then
7
+ * `onBeforeRender`), and renders the result. Auto-positioned items land after the center spacer.
8
+ */
9
+ export declare const DashboardHeader: ({ items, config }: DashboardHeaderProps) => import("react/jsx-runtime").JSX.Element;
@@ -17,6 +17,11 @@ export interface EditToggleProps {
17
17
  * Color of the edit toggle button
18
18
  */
19
19
  color?: string;
20
+ /**
21
+ * Size (px) of the square button box, provided by the header layout. Defaults to the dashboard
22
+ * header item size.
23
+ */
24
+ size?: number;
20
25
  /**
21
26
  * Callback function called when the edit toggle button is clicked
22
27
  */
@@ -8,6 +8,11 @@ export interface FilterToggleProps {
8
8
  * Color of the filter toggle button
9
9
  */
10
10
  color?: string;
11
+ /**
12
+ * Size (px) of the square button box, provided by the header layout. Defaults to the dashboard
13
+ * header item size.
14
+ */
15
+ size?: number;
11
16
  /**
12
17
  * Callback function called when the filter toggle button is clicked
13
18
  */
@@ -1,11 +1,11 @@
1
1
  import type { DeepRequired } from 'ts-essentials';
2
2
  import { DashboardByIdConfig, DashboardConfig, EditModeConfig, WidgetsPanelConfig } from './types.js';
3
- export declare const DEFAULT_DASHBOARD_CONFIG: DeepRequired<Omit<DashboardConfig, 'widgetsPanel' | 'tabbers'> & {
3
+ export declare const DEFAULT_DASHBOARD_CONFIG: DeepRequired<Omit<DashboardConfig, 'widgetsPanel' | 'tabbers' | 'header'> & {
4
4
  widgetsPanel: Omit<WidgetsPanelConfig, 'editMode'> & {
5
5
  editMode: Omit<EditModeConfig, 'isEditing'>;
6
6
  };
7
7
  }>;
8
- export declare const DEFAULT_DASHBOARD_BY_ID_CONFIG: DeepRequired<Omit<DashboardByIdConfig, 'widgetsPanel' | 'tabbers'> & {
8
+ export declare const DEFAULT_DASHBOARD_BY_ID_CONFIG: DeepRequired<Omit<DashboardByIdConfig, 'widgetsPanel' | 'tabbers' | 'header'> & {
9
9
  widgetsPanel: Omit<WidgetsPanelConfig, 'editMode'> & {
10
10
  editMode: Omit<EditModeConfig, 'isEditing'>;
11
11
  };
@@ -1,4 +1,5 @@
1
1
  import { Filter, FilterRelations } from '@sisense/sdk-data';
2
+ import { DashboardHeaderItem } from './components/dashboard-header/dashboard-header-config.js';
2
3
  import type { JumpToDashboardConfig } from './hooks/jtd/jtd-types.js';
3
4
  import { DashboardProps } from './types.js';
4
5
  /**
@@ -216,3 +217,23 @@ export declare const applyJtdConfig: (dashboard: DashboardProps, widgetOid: stri
216
217
  * @group Dashboard Utilities
217
218
  */
218
219
  export declare const applyJtdConfigs: (dashboard: DashboardProps, jtdConfigs: Record<string, JumpToDashboardConfig>) => DashboardProps;
220
+ /**
221
+ * Creates a transformer that appends the given item to `config.header.items` of a dashboard.
222
+ *
223
+ * This is the canonical way for a dashboard customization (see `DashboardCustomization`) to add a
224
+ * header toolbar item. The returned transformer is pure — it does not modify the original dashboard;
225
+ * instead, it returns a new dashboard with the header item added.
226
+ *
227
+ * @example
228
+ * Add a custom header item to a dashboard.
229
+ * ```ts
230
+ * const updatedDashboard = withHeaderItem({
231
+ * id: 'my-button',
232
+ * component: () => <MyButton />,
233
+ * })(dashboard);
234
+ * ```
235
+ * @param item - The header item to add.
236
+ * @returns A transformer `(dashboard: DashboardProps) => DashboardProps` with the item appended.
237
+ * @sisenseInternal
238
+ */
239
+ export declare const withHeaderItem: (item: DashboardHeaderItem) => (dashboard: Readonly<DashboardProps>) => DashboardProps;
@@ -1,6 +1,6 @@
1
1
  import { Dimension, Filter, FilterRelations, Measure } from '@sisense/sdk-data';
2
2
  import { JtdTarget, JumpToDashboardConfig, JumpToDashboardConfigForPivot, TriggerMethod } from '../../../domains/dashboarding/hooks/jtd/jtd-types';
3
- import { TabbersConfig } from '../../../domains/dashboarding/hooks/use-tabber';
3
+ import { TabberConfig, TabbersConfig } from '../../../domains/dashboarding/hooks/use-tabber';
4
4
  import { Panel, WidgetDto } from '../../../domains/widgets/components/widget-by-id/types';
5
5
  import { RestApi } from '../../../infra/api/rest-api';
6
6
  import { type CascadingFilterDto, DashboardDto, type FilterDto, type LayoutDto } from '../../../infra/api/types/dashboard-dto';
@@ -39,6 +39,48 @@ export declare function translateWidgetsOptions(widgets?: WidgetDto[]): WidgetsO
39
39
  * @internal
40
40
  */
41
41
  export declare function withSpecificWidgetOptions(widgetOptions?: SpecificWidgetOptions): (widgetDto: WidgetDto) => WidgetDto;
42
+ /**
43
+ * The dashboard-level context held about a single widget, gathered from the
44
+ * (separate) containers it can live in: `widgetsOptions[id]`
45
+ * ({@link SpecificWidgetOptions}: common filters, JTD, partial DTO snapshot) and
46
+ * `config.tabbers[id]` ({@link TabberConfig}: per-tab show/hide mapping).
47
+ *
48
+ * Consumed by {@link withDashboardWidgetContext} to re-project this context onto a
49
+ * freshly-translated {@link WidgetDto} on add/duplicate, so dashboard-level config
50
+ * survives the model → DTO write path.
51
+ *
52
+ * @internal
53
+ */
54
+ export type WidgetContext = {
55
+ /** Per-widget options from `widgetsOptions[id]`. */
56
+ options?: SpecificWidgetOptions;
57
+ /** Tabber show/hide mapping from `config.tabbers[id]`. */
58
+ tabber?: TabberConfig;
59
+ };
60
+ /**
61
+ * Overlays a {@link TabberConfig} onto a tabber {@link WidgetDto}.
62
+ *
63
+ * The widget-level translator (`toTabberWidgetStyle`) rebuilds `style.tabs[]` with
64
+ * tab names / `activeTab` / styling but empty `displayWidgetIds` — the widget model
65
+ * does not know about other widgets' ids. This overlays the dashboard-level
66
+ * show/hide mapping back onto those tabs by index. No-op for non-tabber DTOs or
67
+ * when there is no tabber config.
68
+ *
69
+ * @internal
70
+ */
71
+ export declare function withTabberWidgetConfig(tabberConfig?: TabberConfig): (widgetDto: WidgetDto) => WidgetDto;
72
+ /**
73
+ * Projects all dashboard-level {@link WidgetContext} for a widget onto a freshly
74
+ * translated {@link WidgetDto}. Composes the per-container projections
75
+ * ({@link withSpecificWidgetOptions} for `widgetsOptions`, {@link withTabberWidgetConfig}
76
+ * for `config.tabbers`); each is last-write-wins and a no-op when its slice is absent.
77
+ *
78
+ * This is the single seam that re-attaches dashboard-level widget config on
79
+ * add/duplicate; a new per-widget side-channel adds its projection here.
80
+ *
81
+ * @internal
82
+ */
83
+ export declare function withDashboardWidgetContext(context: WidgetContext): (widgetDto: WidgetDto) => WidgetDto;
42
84
  export declare function translateTabbersOptions(widgets?: WidgetDto[]): TabbersConfig;
43
85
  /**
44
86
  * Replace all shared formulas, which defined by id references, in the dashboard with their actual values.
@@ -4,6 +4,16 @@ import { RestApi } from '../../../../../infra/api/rest-api';
4
4
  import { AppSettings } from '../../../../../infra/app/settings/settings';
5
5
  import { CompleteThemeSettingsInternal } from '../../../../../types';
6
6
  import { UseDashboardModelInternalAction } from './types.js';
7
+ /**
8
+ * Returns the Fusion `tableState.colResize.tableSize` for persisted column widths.
9
+ * Fusion renders each column as `(columnPx / sum(columns)) × tableSize`, so
10
+ * `tableSize` must equal the sum of column pixel widths for absolute px rendering.
11
+ *
12
+ * @param columnWidths - Column pixel widths in display order
13
+ * @returns Total table width in pixels
14
+ * @internal
15
+ */
16
+ export declare function toColResizeTableSize(columnWidths: readonly number[]): number;
7
17
  export type PersistDashboardModelMiddlewareParams = {
8
18
  /** Dashboard OID, or undefined if not initialized */
9
19
  dashboardOid: string | undefined;
@@ -1,5 +1,6 @@
1
1
  import { Filter, FilterRelations } from '@sisense/sdk-data';
2
2
  import { DashboardModel, SpecificWidgetOptions, WidgetsPanelLayout } from '../../../../../domains/dashboarding/dashboard-model';
3
+ import { TabberConfig } from '../../../../../domains/dashboarding/hooks/use-tabber';
3
4
  import type { WidgetPropsUpdate } from '../../../../../domains/dashboarding/persistence/update-types.js';
4
5
  import type { WidgetDto } from '../../../../../domains/widgets/components/widget-by-id/types';
5
6
  import { WidgetModel } from '../../../../../domains/widgets/widget-model';
@@ -123,6 +124,12 @@ export type UseDashboardModelAddWidgetAction = {
123
124
  widget: WidgetModel;
124
125
  widgetsPanelLayout?: WidgetsPanelLayout;
125
126
  widgetOptions?: SpecificWidgetOptions;
127
+ /**
128
+ * Dashboard-level tabber config for the widget (from `config.tabbers[id]`),
129
+ * carried so the persist middleware can project it back onto the widget DTO
130
+ * and the reducer can store it under the new widget id on duplication.
131
+ */
132
+ tabberConfig?: TabberConfig;
126
133
  };
127
134
  };
128
135
  /**
@@ -1,5 +1,6 @@
1
1
  import { Filter, FilterRelations } from '@sisense/sdk-data';
2
2
  import { SpecificWidgetOptions, WidgetsPanelLayout } from '../../../../../domains/dashboarding/dashboard-model';
3
+ import { TabberConfig } from '../../../../../domains/dashboarding/hooks/use-tabber';
3
4
  import { WidgetModel } from '../../../../../domains/widgets/widget-model';
4
5
  import { AddWidgetPayload } from './types.js';
5
6
  /**
@@ -24,6 +25,7 @@ export declare function parseAddWidgetPayload(payload: AddWidgetPayload): {
24
25
  widget: WidgetModel;
25
26
  widgetsPanelLayout?: WidgetsPanelLayout;
26
27
  widgetOptions?: SpecificWidgetOptions;
28
+ tabberConfig?: TabberConfig;
27
29
  };
28
30
  /**
29
31
  * Appends a widget cell to the first column's first row. Creates row/cells if missing.
@@ -0,0 +1,34 @@
1
+ import { ApiContract, ApiField, Module } from '../../../infra/modules/types';
2
+ import { DashboardCustomization } from './types.js';
3
+ /** Name of the `dashboard` module. */
4
+ export declare const DASHBOARD_MODULE_NAME = "dashboard";
5
+ /**
6
+ * API declaration for the `dashboard` module.
7
+ */
8
+ export interface DashboardModuleApiDefinition {
9
+ /**
10
+ * Registry of dashboard customization middlewares. Each contribution is applied, in registration
11
+ * order, to the props of every {@link Dashboard}.
12
+ */
13
+ customizations: ApiField<DashboardCustomization[], DashboardCustomization[]>;
14
+ }
15
+ /**
16
+ * The `dashboard` module.
17
+ *
18
+ * Owns the `customizations` registry — other modules contribute {@link DashboardCustomization}
19
+ * middlewares there (via their `integrations`), which `Dashboard` applies to its props. Register it
20
+ * on `SisenseContextProvider`'s `modules` prop together with the modules that customize dashboards.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * <SisenseContextProvider modules={[DashboardModule, ...otherModules]} ... />
25
+ * ```
26
+ * @sisenseInternal
27
+ */
28
+ export declare const DashboardModule: Module<DashboardModuleApiDefinition>;
29
+ /**
30
+ * API contract for contributing to the `dashboard` module.
31
+ *
32
+ * @sisenseInternal
33
+ */
34
+ export type DashboardModuleApi = ApiContract<DashboardModuleApiDefinition>;
@@ -0,0 +1,65 @@
1
+ import { Filter, FilterRelations } from '@sisense/sdk-data';
2
+ import { SpecificWidgetOptions, WidgetsPanelLayout } from '../../../domains/dashboarding/dashboard-model';
3
+ import { DashboardProps } from '../../../domains/dashboarding/types';
4
+ import { WidgetProps } from '../../../domains/widgets/components/widget/types';
5
+ /**
6
+ * Dashboard state API.
7
+ *
8
+ * Passed as the second argument to every {@link DashboardCustomization}. Each method is backed by
9
+ * the composition layer's own state, so mutations flow through the normal dashboard pipeline and are
10
+ * persisted automatically when the dashboard has persistence enabled.
11
+ *
12
+ * @sisenseInternal
13
+ */
14
+ export interface DashboardStateApi {
15
+ /**
16
+ * Adds a widget to the dashboard. Persists automatically when the dashboard is configured with
17
+ * persistence enabled; otherwise updates local state only.
18
+ *
19
+ * @param widget - The widget to add.
20
+ * @param options - Optional dashboard-level configuration for the new widget:
21
+ * - `widgetOptions`: dashboard-level options for the widget (e.g. filtersOptions, jtdConfig).
22
+ * - `widgetsPanelLayout`: explicit widgets-panel layout describing where the widget is placed;
23
+ * When omitted, the widget is appended in a new full-width row at the end of the first column.
24
+ * @returns void
25
+ */
26
+ addWidget: (widget: WidgetProps, options?: {
27
+ widgetOptions?: SpecificWidgetOptions;
28
+ widgetsPanelLayout?: WidgetsPanelLayout;
29
+ }) => void;
30
+ /**
31
+ * Replaces the dashboard filters.
32
+ *
33
+ * @param filters - The new filters or filter relations to apply.
34
+ * @returns void
35
+ */
36
+ setFilters: (filters: Filter[] | FilterRelations) => void;
37
+ /**
38
+ * Replaces the widgets-panel layout.
39
+ *
40
+ * @param layout - The new widgets-panel layout.
41
+ * @returns void
42
+ */
43
+ setWidgetsLayout: (layout: WidgetsPanelLayout) => void;
44
+ }
45
+ /**
46
+ * A dashboard customization middleware.
47
+ *
48
+ * Receives the dashboard props and returns a (possibly) modified copy — for example to
49
+ * inject a header item via `config.header.items`. The second argument is a {@link DashboardStateApi}
50
+ * for imperatively mutating dashboard state (e.g. adding a widget) in response to later user
51
+ * interaction. Customizations must be pure with respect to `dashboard` (return new props rather than
52
+ * mutate the argument) and idempotent, since they are re-applied on every render.
53
+ *
54
+ * @sisenseInternal
55
+ */
56
+ export type DashboardCustomization = (
57
+ /**
58
+ * The current dashboard props (read-only). Return a new object with your modifications rather
59
+ * than mutating this value directly.
60
+ *
61
+ * @param dashboard - Current dashboard props.
62
+ * @param stateApi - API for imperatively mutating dashboard state.
63
+ * @returns Modified dashboard props.
64
+ */
65
+ dashboard: Readonly<DashboardProps>, stateApi: DashboardStateApi) => DashboardProps;
@@ -4,7 +4,6 @@ import { DashboardProps } from '../../domains/dashboarding/types';
4
4
  * React component that renders a dashboard whose elements are customizable. It includes internal logic of applying common filters to widgets.
5
5
  *
6
6
  * **Note:** Dashboard and Widget extensions based on JS scripts and add-ons in Fusion – for example, Blox and Jump To Dashboard – are not supported.
7
- *
8
7
  * @example
9
8
  *
10
9
  * Example of rendering a Fusion dashboard using the `useGetDashboardModel hook and the `Dashboard` component.
@@ -1,11 +1,14 @@
1
1
  /// <reference types="react" />
2
2
  import type { WidgetsOptions, WidgetsPanelLayout } from '../../../../domains/dashboarding/dashboard-model/types.js';
3
+ import type { TabbersConfig } from '../../../../domains/dashboarding/hooks/use-tabber.js';
3
4
  import { type WidgetProps } from '../../../../domains/widgets/components/widget/types.js';
4
5
  import type { DashboardPersistenceManager } from '../../persistence/types.js';
5
6
  /** Setter for widgets array (e.g. React setState or updater function). */
6
7
  export type SetWidgets = React.Dispatch<React.SetStateAction<WidgetProps[]>>;
7
8
  /** Setter for widgets options array (e.g. React setState or updater function). */
8
9
  export type SetWidgetsOptions = React.Dispatch<React.SetStateAction<WidgetsOptions>>;
10
+ /** Setter for the dashboard-level tabbers config (e.g. React setState or updater function). */
11
+ export type SetTabbersConfig = React.Dispatch<React.SetStateAction<TabbersConfig>>;
9
12
  /** Setter for widgets panel layout. */
10
13
  export type SetWidgetsLayout = (newLayout: WidgetsPanelLayout) => void;
11
14
  /** Options for the duplicate widget middleware hook. */
@@ -24,6 +27,10 @@ export type UseDuplicateWidgetMenuItemParams = {
24
27
  widgetsOptions?: WidgetsOptions;
25
28
  /** Setter to update widgets options (e.g. from parent state). */
26
29
  setWidgetsOptions: SetWidgetsOptions;
30
+ /** Dashboard-level tabbers config (copied to the cloned widget so its tab show/hide mapping survives). */
31
+ tabbersConfig?: TabbersConfig;
32
+ /** Setter to update the tabbers config (e.g. from parent state). */
33
+ setTabbersConfig?: SetTabbersConfig;
27
34
  persistence?: Pick<DashboardPersistenceManager, 'addWidget'>;
28
35
  };
29
36
  /** Output of the duplicate widget middleware. */
@@ -0,0 +1,9 @@
1
+ import { HeaderItem } from '../../../domains/shared/header';
2
+ import { MenuItemSection } from '../../../props';
3
+ /**
4
+ * Builds the built-in dashboard header menu item from the given menu sections.
5
+ *
6
+ * Always returns the item so it can anchor `before`/`after` positioning; it is marked `hidden`
7
+ * (anchor-only, not rendered) when there are no menu sections.
8
+ */
9
+ export declare const useDashboardHeaderMenuItem: (menuItemSections?: MenuItemSection[]) => HeaderItem;
@@ -46,7 +46,6 @@ export interface UseEditModeToolbarResult {
46
46
  }
47
47
  /**
48
48
  * Hook that provides layout state management with history tracking and a toolbar with undo/redo/cancel/apply buttons
49
- *
50
49
  * @param props Configuration options for the toolbar
51
50
  * @returns Layout state and toolbar component
52
51
  * @internal
@@ -5,7 +5,8 @@ type Persistence = Pick<DashboardPersistenceManager, 'updateWidget'> | undefined
5
5
  * Composition middleware that adds persistable widget-update plumbing to a
6
6
  * widget list. For each widget that exposes a known runtime-state callback
7
7
  * (currently only `styleOptions.navigator.onScrollerChange` for charts with
8
- * a navigator), the hook injects a handler that:
8
+ * a navigator, and `styleOptions.columns.onColumnsResize` for table charts with
9
+ * resizable columns), the hook injects a handler that:
9
10
  *
10
11
  * 1. Applies the update optimistically to local widget state (the parent
11
12
  * `useComposedDashboardInternal` re-renders with the new value).
@@ -1,4 +1,5 @@
1
1
  import type { SpecificWidgetOptions, WidgetPatch, WidgetsPanelLayout } from '../../../domains/dashboarding/dashboard-model';
2
+ import type { TabberConfig } from '../../../domains/dashboarding/hooks/use-tabber';
2
3
  import type { WidgetProps } from '../../../domains/widgets/components/widget/types';
3
4
  import type { WidgetPropsUpdate } from './update-types.js';
4
5
  export type { WidgetPropsUpdate, OnWidgetUpdate } from './update-types.js';
@@ -24,7 +25,12 @@ export type DashboardPersistenceManager = {
24
25
  /**
25
26
  * The dashboard-level options for the new widget.
26
27
  */
27
- widgetOptions?: SpecificWidgetOptions) => Promise<{
28
+ widgetOptions?: SpecificWidgetOptions,
29
+ /**
30
+ * The dashboard-level tabber config for the new widget (from `config.tabbers[id]`).
31
+ * Projected back onto the widget DTO and stored under the new widget id.
32
+ */
33
+ tabberConfig?: TabberConfig) => Promise<{
28
34
  /**
29
35
  * The persisted widget (possibly modified by the server, e.g. new id).
30
36
  */
@@ -37,6 +43,10 @@ export type DashboardPersistenceManager = {
37
43
  * The options for the widget (after server modifications).
38
44
  */
39
45
  widgetOptions?: SpecificWidgetOptions;
46
+ /**
47
+ * The tabber config for the widget (after server modifications).
48
+ */
49
+ tabberConfig?: TabberConfig;
40
50
  }>;
41
51
  /**
42
52
  * Patch a single field (e.g. title) on an existing widget.
@@ -20,6 +20,9 @@ export type WidgetPropsUpdate = {
20
20
  readonly max: number;
21
21
  };
22
22
  };
23
+ readonly columns?: {
24
+ readonly widths?: ReadonlyArray<number>;
25
+ };
23
26
  /**
24
27
  * For custom (plugin) widgets, `styleOptions` is an opaque deeply-partial
25
28
  * bag — arbitrary keys are deep-merged into the widget's opaque DTO
@@ -44,7 +47,7 @@ export type WidgetPropsUpdate = {
44
47
  * a persistable update for a specific widget. Not part of the public
45
48
  * `WidgetProps` surface — composition layer injects handlers into the
46
49
  * visualization's existing callback APIs (e.g.
47
- * `styleOptions.navigator.onScrollerChange`).
50
+ * `styleOptions.navigator.onScrollerChange`, `styleOptions.columns.onColumnsResize`).
48
51
  *
49
52
  * @internal
50
53
  */