@sisense/sdk-ui 2.20.0 → 2.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai.cjs +68 -68
- package/dist/ai.js +891 -845
- package/dist/analytics-composer/node.cjs +1 -1
- package/dist/analytics-composer/node.js +1002 -858
- package/dist/analytics-composer.cjs +23 -23
- package/dist/analytics-composer.js +8 -8
- package/dist/{dimensions-Blw0p98x.js → dimensions-BiLyFpCg.js} +1 -1
- package/dist/{dimensions-CgMckRe2.cjs → dimensions-X4_igtmO.cjs} +1 -1
- package/dist/{execute-query-VxgY3tbz.js → execute-query-BEeqqDl6.js} +1499 -1491
- package/dist/execute-query-DJDE0zRU.cjs +1 -0
- package/dist/{index-0brX9D6q.cjs → index-NyouhE_A.cjs} +1 -1
- package/dist/{index-Ck90GjPy.js → index-kxX21arA.js} +15 -1
- package/dist/index.cjs +451 -436
- package/dist/index.js +24710 -23005
- package/dist/index.umd.js +689 -624
- package/dist/packages/sdk-ui/src/domains/dashboarding/common-filters/common-filters-connector.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/common-filters/selection-utils.d.ts +4 -3
- package/dist/packages/sdk-ui/src/domains/dashboarding/common-filters/types.d.ts +10 -0
- package/dist/packages/sdk-ui/src/domains/dashboarding/common-filters/use-common-filters.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/common-filters/utils.d.ts +2 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/components/content-panel.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/components/editable-layout/components/editable-layout-row.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/components/editable-layout/editable-layout.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/components/editable-layout/helpers.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/index.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/translate-dashboard-utils.d.ts +8 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/types.d.ts +9 -2
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/index.d.ts +4 -0
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/persist-dashboard-model-middleware.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/{use-dashboard-model-reducer.d.ts → dashboard-model-reducer/types.d.ts} +19 -36
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/use-dashboard-model-reducer.d.ts +9 -0
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/utils.d.ts +28 -0
- package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/use-dashboard-persistence.d.ts +4 -4
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/duplicate-widget/duplicate-widget-utils.d.ts +34 -0
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/duplicate-widget/index.d.ts +2 -0
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/duplicate-widget/use-duplicate-widget-menu-item.d.ts +57 -0
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/jtd/jtd-config-transformers.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/jtd/jtd-filters.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/jtd/jtd-handlers.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/jtd/jtd-types.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/jtd/jtd-widget-transforms.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/use-jtd-widget.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/use-jtd.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/use-tabber.d.ts +2 -1
- package/dist/packages/sdk-ui/src/domains/dashboarding/types.d.ts +44 -3
- package/dist/packages/sdk-ui/src/domains/dashboarding/use-composed-dashboard.d.ts +15 -3
- package/dist/packages/sdk-ui/src/domains/dashboarding/utils.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/filters/components/cascading-filter-tile/cascading-filter-tile.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/cascading-filter-tile/cascading-level-filter.d.ts +11 -1
- package/dist/packages/sdk-ui/src/domains/filters/components/cascading-filter-tile/use-cascadding-filter-tile-menu-items/use-cascadding-filter-tile-lock-menu-item.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/cascading-filter-tile/use-cascadding-filter-tile-menu-items/use-cascadding-filter-tile-menu-items.d.ts +14 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/common/reorderable-list.d.ts +32 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/criteria-filter-tile/criteria-filter-tile.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/custom-filter-tile.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/date-filter/date-range-filter-tile/date-range-filter-tile.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/date-filter/relative-date-filter-tile/relative-date-filter-tile.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/{filter-tile.d.ts → filter-tile/filter-tile.d.ts} +13 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/filter-tile/index.d.ts +1 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/filter-tile/types.d.ts +36 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/filter-tile-container.d.ts +12 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/filters-panel/types.d.ts +27 -1
- package/dist/packages/sdk-ui/src/domains/filters/components/index.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/filters/components/member-filter-tile/member-filter-tile.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/filters/components/unsupported-filter-tile.d.ts +17 -1
- package/dist/packages/sdk-ui/src/domains/filters/shared/clone-filter-and-toggle-locked.d.ts +7 -0
- package/dist/packages/sdk-ui/src/domains/filters/shared/filter-tile-menu-button.d.ts +10 -0
- package/dist/packages/sdk-ui/src/domains/filters/shared/use-filter-tile-menu-items/use-filter-tile-lock-menu-item.d.ts +15 -0
- package/dist/packages/sdk-ui/src/domains/filters/shared/use-filter-tile-menu-items/use-filter-tile-menu-items.d.ts +14 -0
- package/dist/packages/sdk-ui/src/domains/formulas/index.d.ts +0 -1
- package/dist/packages/sdk-ui/src/domains/formulas/use-get-shared-formula.d.ts +20 -7
- package/dist/packages/sdk-ui/src/domains/visualizations/core/chart-data-options/translate-boxplot-data-options.d.ts +2 -2
- package/dist/packages/sdk-ui/src/domains/widgets/components/chart-widget/chart-widget.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/chart-widget/index.d.ts +1 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/chart-widget/types.d.ts +100 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/chart-widget/use-with-chart-widget-drilldown.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/{common-widget.d.ts → common-widget/common-widget.d.ts} +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/common-widget/index.d.ts +2 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/common-widget/types.d.ts +8 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/{custom-widget.d.ts → custom-widget/custom-widget.d.ts} +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/custom-widget/index.d.ts +2 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/custom-widget/types.d.ts +71 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/pivot-table-widget/index.d.ts +1 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/pivot-table-widget/pivot-table-widget.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/pivot-table-widget/types.d.ts +141 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/pivot-table-widget/use-with-pivot-table-widget-drilldown.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/tabber-buttons-widget/types.d.ts +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/table-widget/index.d.ts +2 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/{table-widget.d.ts → table-widget/table-widget.d.ts} +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/table-widget/types.d.ts +61 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/text-widget/index.d.ts +2 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/{text-widget.d.ts → text-widget/text-widget.d.ts} +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/text-widget/types.d.ts +29 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/widget/index.d.ts +2 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/widget/types.d.ts +45 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/{widget.d.ts → widget/widget.d.ts} +1 -1
- package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-dashboard-filters.d.ts +425 -425
- package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-filters.d.ts +34 -34
- package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-style-options/index.d.ts +1 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-style-options/to-widget-dto-style.d.ts +63 -0
- package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/utils.d.ts +11 -5
- package/dist/packages/sdk-ui/src/domains/widgets/helpers/header-menu-utils.d.ts +9 -0
- package/dist/packages/sdk-ui/src/domains/widgets/helpers/index.d.ts +7 -0
- package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-container/index.d.ts +2 -0
- package/dist/packages/sdk-ui/src/domains/widgets/shared/{widget-container.d.ts → widget-container/widget-container.d.ts} +7 -3
- package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header/types.d.ts +42 -0
- package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header/widget-header-info-button.d.ts +13 -0
- package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header/widget-header-toolbar.d.ts +23 -0
- package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header/widget-header.d.ts +14 -0
- package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header/widget-menu-button.d.ts +5 -0
- package/dist/packages/sdk-ui/src/domains/widgets/widget-model/widget-model-translator/widget-model-translator.d.ts +8 -1
- package/dist/packages/sdk-ui/src/domains/widgets/widget-model/widget-model.d.ts +1 -1
- package/dist/packages/sdk-ui/src/infra/api/rest-api.d.ts +2 -1
- package/dist/packages/sdk-ui/src/infra/api/types/dashboard-dto.d.ts +2 -1
- package/dist/packages/sdk-ui/src/infra/app/client-application.d.ts +17 -0
- package/dist/packages/sdk-ui/src/infra/app/settings/settings.d.ts +4 -0
- package/dist/packages/sdk-ui/src/infra/app/settings/types/deployment-props.d.ts +2 -1
- package/dist/packages/sdk-ui/src/infra/app/settings/types/features.d.ts +18 -1
- package/dist/packages/sdk-ui/src/infra/contexts/custom-widgets-provider/types.d.ts +41 -12
- package/dist/packages/sdk-ui/src/infra/contexts/custom-widgets-provider/use-execute-custom-widget-query.d.ts +12 -3
- package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/index.d.ts +5 -0
- package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/plugin-context.d.ts +15 -0
- package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/plugin-provider.d.ts +21 -0
- package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/types.d.ts +50 -0
- package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/validate-plugins.d.ts +9 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/de-de.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/en-us.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/es-ar.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/es-es.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/fr-fr.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/it-it.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ja-jp.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ko-kr.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/nl-nl.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/pt-br.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ru-ru.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/tr-tr.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/zh-cn.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/en.d.ts +14 -0
- package/dist/packages/sdk-ui/src/infra/translation/resources/index.d.ts +28 -0
- package/dist/packages/sdk-ui/src/modules/ai/api/chat-rest-api.d.ts +5 -3
- package/dist/packages/sdk-ui/src/modules/ai/api/narration-endpoints.d.ts +25 -0
- package/dist/packages/sdk-ui/src/modules/ai/api/types.d.ts +1 -1
- package/dist/packages/sdk-ui/src/modules/ai/chart/nlq-chart-widget.d.ts +2 -2
- package/dist/packages/sdk-ui/src/modules/ai/get-nlg-insights-from-widget.d.ts +4 -1
- package/dist/packages/sdk-ui/src/modules/ai/use-get-nlq-result.d.ts +1 -1
- package/dist/packages/sdk-ui/src/modules/analytics-composer/common/utils.d.ts +2 -1
- package/dist/packages/sdk-ui/src/modules/analytics-composer/dashboard/stringify-widgets.d.ts +1 -1
- package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/translate-dimensions-from-json.d.ts +3 -2
- package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/translate-dimensions-to-json.d.ts +6 -6
- package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/translate-filters-to-json.d.ts +3 -4
- package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/translate-measures-from-json.d.ts +13 -28
- package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/translate-measures-to-json.d.ts +6 -7
- package/dist/packages/sdk-ui/src/modules/analytics-composer/nlq-v3-translator/types.d.ts +45 -0
- package/dist/packages/sdk-ui/src/modules/analytics-composer/types.d.ts +3 -1
- package/dist/packages/sdk-ui/src/modules/analytics-composer/widget/to-widget-code.d.ts +1 -1
- package/dist/packages/sdk-ui/src/modules/analytics-composer/widget/to-widget-props.d.ts +1 -1
- package/dist/packages/sdk-ui/src/modules/analytics-composer/widget/widget-composer.d.ts +1 -1
- package/dist/packages/sdk-ui/src/props.d.ts +19 -427
- package/dist/packages/sdk-ui/src/public-api/internal.d.ts +4 -0
- package/dist/packages/sdk-ui/src/public-api/public.d.ts +7 -7
- package/dist/packages/sdk-ui/src/public-api/sisense-internal.d.ts +6 -0
- package/dist/packages/sdk-ui/src/shared/components/alert/alert.d.ts +91 -0
- package/dist/packages/sdk-ui/src/shared/components/alert/index.d.ts +2 -0
- package/dist/packages/sdk-ui/src/shared/components/dynamic-size-container/default-size.d.ts +6 -6
- package/dist/packages/sdk-ui/src/shared/components/menu/menu-button.d.ts +2 -1
- package/dist/packages/sdk-ui/src/shared/components/quota-notification/quota-notification.d.ts +32 -0
- package/dist/packages/sdk-ui/src/shared/hooks/use-app-settings.d.ts +11 -0
- package/dist/packages/sdk-ui/src/shared/hooks/use-quota-notification.d.ts +54 -0
- package/dist/packages/sdk-ui/src/shared/hooks/use-quota-warning-dismissed.d.ts +8 -0
- package/dist/packages/sdk-ui/src/shared/icons/warning-icon.d.ts +6 -0
- package/dist/packages/sdk-ui/src/shared/icons/x-circle-icon.d.ts +6 -0
- package/dist/packages/sdk-ui/src/shared/types/menu-item.d.ts +17 -0
- package/dist/packages/sdk-ui/src/types.d.ts +113 -6
- package/dist/{use-common-filters-B2wOzse2.js → quota-notification-D6oMJal8.js} +11177 -10827
- package/dist/{use-common-filters-BCebg2_K.cjs → quota-notification-z3dv2KoH.cjs} +164 -114
- package/dist/translations/de-de.cjs +1 -1
- package/dist/translations/de-de.js +16 -2
- package/dist/translations/en-us.cjs +1 -1
- package/dist/translations/en-us.js +1 -1
- package/dist/translations/es-ar.cjs +1 -1
- package/dist/translations/es-ar.js +16 -2
- package/dist/translations/es-es.cjs +1 -1
- package/dist/translations/es-es.js +16 -2
- package/dist/translations/fr-fr.cjs +1 -1
- package/dist/translations/fr-fr.js +16 -2
- package/dist/translations/it-it.cjs +1 -1
- package/dist/translations/it-it.js +16 -2
- package/dist/translations/ja-jp.cjs +1 -1
- package/dist/translations/ja-jp.js +16 -2
- package/dist/translations/ko-kr.cjs +1 -1
- package/dist/translations/ko-kr.js +16 -2
- package/dist/translations/nl-nl.cjs +1 -1
- package/dist/translations/nl-nl.js +16 -2
- package/dist/translations/pt-br.cjs +1 -1
- package/dist/translations/pt-br.js +16 -2
- package/dist/translations/ru-ru.cjs +1 -1
- package/dist/translations/ru-ru.js +16 -2
- package/dist/translations/tr-tr.cjs +1 -1
- package/dist/translations/tr-tr.js +16 -2
- package/dist/translations/zh-cn.cjs +1 -1
- package/dist/translations/zh-cn.js +16 -2
- package/dist/{types-YU936hyL.cjs → types-CoY6F8Ma.cjs} +1 -1
- package/dist/{types-tDJE6TNR.js → types-ixSwJkxM.js} +1 -1
- package/dist/{utils-BRCTwjTN.js → utils-BP-BglHE.js} +5797 -5781
- package/dist/{utils-pvzOGByh.cjs → utils-C8YMrOdw.cjs} +36 -36
- package/dist/{widget-composer-T6nvM6Xc.js → widget-composer-CUUFoCb9.js} +3 -3
- package/dist/{widget-composer-ChJ9V_fN.cjs → widget-composer-DI4sHaNe.cjs} +3 -3
- package/package.json +13 -10
- package/dist/execute-query-CgkFRn7s.cjs +0 -1
- package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header-info-button.d.ts +0 -9
- package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header.d.ts +0 -13
- /package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/{use-dasboard-model-utils.d.ts → use-dashboard-model-utils.d.ts} +0 -0
package/dist/packages/sdk-ui/src/domains/dashboarding/common-filters/common-filters-connector.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { TFunction } from '@sisense/sdk-common';
|
|
2
2
|
import { type Filter } from '@sisense/sdk-data';
|
|
3
3
|
import { PivotTableDataOptions } from '../../../domains/visualizations/core/chart-data-options/types';
|
|
4
|
+
import { ChartWidgetProps } from '../../../domains/widgets/components/chart-widget/types';
|
|
4
5
|
import { WidgetTypeInternal } from '../../../domains/widgets/widget-model/types';
|
|
5
6
|
import { OpenMenuFn } from '../../../infra/contexts/menu-provider/types';
|
|
6
|
-
import { ChartWidgetProps } from '../../../props';
|
|
7
7
|
import { ChartDataOptions, RenderToolbarHandler } from '../../../types';
|
|
8
8
|
import { CommonFiltersOptions } from './types.js';
|
|
9
9
|
type CommonFiltersConnectionProps = Pick<ChartWidgetProps, 'highlights' | 'onDataPointClick' | 'onDataPointsSelected' | 'onDataPointContextMenu'> & {
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { Attribute, Filter } from '@sisense/sdk-data';
|
|
2
2
|
import { PivotTableDataOptions } from '../../../domains/visualizations/core/chart-data-options/types.js';
|
|
3
3
|
import { WidgetTypeInternal } from '../../../domains/widgets/widget-model/types.js';
|
|
4
|
-
import { ChartDataOptions, ChartDataPoint, MenuItemSection, PivotTableDataPoint } from '../../../types.js';
|
|
4
|
+
import { ChartDataOptions, ChartDataPoint, GenericDataOptions, MenuItemSection, PivotTableDataPoint } from '../../../types.js';
|
|
5
|
+
import { AbstractDataPointWithEntries } from './types.js';
|
|
5
6
|
export declare const SELECTION_TITLE_MAXIMUM_ITEMS = 2;
|
|
6
7
|
type DataSelection = {
|
|
7
8
|
attribute: Attribute;
|
|
8
9
|
values: (string | number)[];
|
|
9
10
|
displayValues: string[];
|
|
10
11
|
};
|
|
11
|
-
export declare function getWidgetSelections(widgetType: WidgetTypeInternal, dataOptions: ChartDataOptions | PivotTableDataOptions, points: Array<ChartDataPoint | PivotTableDataPoint>): DataSelection[];
|
|
12
|
-
export declare function getSelectableWidgetAttributes(widgetType: WidgetTypeInternal, dataOptions: ChartDataOptions | PivotTableDataOptions): Attribute[];
|
|
12
|
+
export declare function getWidgetSelections(widgetType: WidgetTypeInternal, dataOptions: ChartDataOptions | PivotTableDataOptions | GenericDataOptions, points: Array<ChartDataPoint | PivotTableDataPoint | AbstractDataPointWithEntries>): DataSelection[];
|
|
13
|
+
export declare function getSelectableWidgetAttributes(widgetType: WidgetTypeInternal, dataOptions: ChartDataOptions | PivotTableDataOptions | GenericDataOptions): Attribute[];
|
|
13
14
|
type FiltersWithSelectionFlag = {
|
|
14
15
|
filters: Filter[];
|
|
15
16
|
isSelection: boolean;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CascadingFilter, Filter } from '@sisense/sdk-data';
|
|
2
2
|
import { DeepRequired } from 'ts-essentials';
|
|
3
|
+
import { DataPointEntry } from '../../../types';
|
|
3
4
|
/**
|
|
4
5
|
* Common filters apply mode.
|
|
5
6
|
*/
|
|
@@ -52,3 +53,12 @@ export type FiltersIgnoringRules = {
|
|
|
52
53
|
export type CompleteCommonFiltersOptions = DeepRequired<CommonFiltersOptions>;
|
|
53
54
|
/** Filters that are real pure simple filters (non-cascading filters) */
|
|
54
55
|
export type PureFilter<F extends Filter = Filter> = F extends CascadingFilter ? never : F;
|
|
56
|
+
/**
|
|
57
|
+
* A basic data point with entries.
|
|
58
|
+
*/
|
|
59
|
+
export type AbstractDataPointWithEntries = {
|
|
60
|
+
/**
|
|
61
|
+
* A collection of data point entries that represents values for all related `dataOptions`.
|
|
62
|
+
*/
|
|
63
|
+
entries?: Record<string, DataPointEntry | DataPointEntry[]>;
|
|
64
|
+
};
|
package/dist/packages/sdk-ui/src/domains/dashboarding/common-filters/use-common-filters.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Filter, FilterRelations } from '@sisense/sdk-data';
|
|
2
|
+
import { WidgetProps } from '../../../domains/widgets/components/widget/types';
|
|
2
3
|
import { BeforeMenuOpenHandler, OpenMenuFn } from '../../../infra/contexts/menu-provider/types.js';
|
|
3
|
-
import { WidgetProps } from '../../../props.js';
|
|
4
4
|
import { CommonFiltersOptions } from './types.js';
|
|
5
5
|
/** @internal */
|
|
6
6
|
export declare const useCommonFilters: ({ initialFilters: initialCommonFiltersOrFilterRelations, openMenu, onBeforeMenuOpen, onFiltersChange, }?: {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Attribute, Filter } from '@sisense/sdk-data';
|
|
2
|
-
import {
|
|
2
|
+
import { WidgetType } from '../../../domains/widgets/components/widget/types';
|
|
3
|
+
import { ChartDataOptions, ChartType, DrilldownOptions, GenericDataOptions, PivotTableDataOptions, PivotTableDrilldownOptions } from '../../../index.js';
|
|
3
4
|
import { FiltersIgnoringRules, PureFilter } from './types.js';
|
|
4
5
|
export declare function getAllowedFilters(filters: PureFilter[], ignoreFiltersOptions: FiltersIgnoringRules): Filter[];
|
|
5
6
|
export declare function getFilterByAttribute(filters: Filter[], attribute: Attribute): Filter | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WidgetsPanelLayout } from '../../../domains/dashboarding/dashboard-model';
|
|
2
|
-
import { WidgetProps } from '../../../
|
|
2
|
+
import { WidgetProps } from '../../../domains/widgets/components/widget/types';
|
|
3
3
|
/**
|
|
4
4
|
* Props for the {@link ContentPanel} component.
|
|
5
5
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { WidgetsPanelRow } from '../../../../../domains/dashboarding/dashboard-model';
|
|
3
|
-
import { WidgetProps } from '../../../../../
|
|
3
|
+
import { WidgetProps } from '../../../../../domains/widgets/components/widget/types';
|
|
4
4
|
export interface EditableLayoutRowProps {
|
|
5
5
|
children: (isAutoHeight: boolean) => ReactNode;
|
|
6
6
|
id: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WidgetsPanelLayout } from '../../../../domains/dashboarding/dashboard-model';
|
|
2
|
-
import { WidgetProps } from '../../../../
|
|
2
|
+
import { WidgetProps } from '../../../../domains/widgets/components/widget/types';
|
|
3
3
|
/**
|
|
4
4
|
* Props for the {@link EditableLayout} component.
|
|
5
5
|
*
|
package/dist/packages/sdk-ui/src/domains/dashboarding/components/editable-layout/helpers.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WidgetsPanelColumn, WidgetsPanelColumnLayout, WidgetsPanelLayout, WidgetsPanelRow } from '../../../../domains/dashboarding/dashboard-model';
|
|
2
|
-
import { WidgetProps } from '../../../../
|
|
2
|
+
import { WidgetProps } from '../../../../domains/widgets/components/widget/types';
|
|
3
3
|
import { EditableLayoutDragData, EditableLayoutDropData } from './types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Updates the height of all cells in a specific row within a column layout.
|
|
@@ -6,5 +6,5 @@ export * from './use-get-dashboard-models';
|
|
|
6
6
|
export * from './dashboard-model';
|
|
7
7
|
export * as dashboardModelTranslator from './dashboard-model-translator';
|
|
8
8
|
export * from './use-dashboard-model/use-dashboard-model';
|
|
9
|
-
export * from './use-dashboard-model/
|
|
9
|
+
export * from './use-dashboard-model/dashboard-model-reducer';
|
|
10
10
|
export * from './use-dashboard-model/use-dashboard-persistence';
|
package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/translate-dashboard-utils.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { 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';
|
|
7
|
-
import type { WidgetsOptions, WidgetsPanelColumnLayout } from './types';
|
|
7
|
+
import type { SpecificWidgetOptions, WidgetsOptions, WidgetsPanelColumnLayout } from './types';
|
|
8
8
|
export declare const translateLayout: (layout: LayoutDto) => WidgetsPanelColumnLayout;
|
|
9
9
|
export declare function extractDashboardFilters(dashboardFilters: Array<FilterDto | CascadingFilterDto>, filterRelationsModel?: FilterRelationsModel | FilterRelationsModelNode): Filter[] | FilterRelations;
|
|
10
10
|
export declare const getJtdNavigateType: (widget: WidgetDto) => TriggerMethod;
|
|
@@ -20,6 +20,13 @@ export declare function extractPivotTargetsConfigFromWidgetDto(widget: WidgetDto
|
|
|
20
20
|
location: 'row' | 'column' | 'value';
|
|
21
21
|
} | Measure, JtdTarget[]> | undefined;
|
|
22
22
|
export declare function translateWidgetsOptions(widgets?: WidgetDto[]): WidgetsOptions;
|
|
23
|
+
/**
|
|
24
|
+
* Applies {@link SpecificWidgetOptions} to a {@link WidgetDto}.
|
|
25
|
+
* Merges filtersOptions and jtdConfig into the DTO for persistence.
|
|
26
|
+
*
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export declare function withSpecificWidgetOptions(widgetOptions?: SpecificWidgetOptions): (widgetDto: WidgetDto) => WidgetDto;
|
|
23
30
|
export declare function translateTabbersOptions(widgets?: WidgetDto[]): TabbersConfig;
|
|
24
31
|
/**
|
|
25
32
|
* Replace all shared formulas, which defined by id references, in the dashboard with their actual values.
|
|
@@ -74,13 +74,20 @@ export type DashboardId = string;
|
|
|
74
74
|
*
|
|
75
75
|
* For example, how common filters defined at the dashboard level should be applied to widgets.
|
|
76
76
|
*/
|
|
77
|
-
export type WidgetsOptions = Record<WidgetId,
|
|
77
|
+
export type WidgetsOptions = Record<WidgetId, SpecificWidgetOptions>;
|
|
78
|
+
/**
|
|
79
|
+
* Options for a specific widget
|
|
80
|
+
*/
|
|
81
|
+
export type SpecificWidgetOptions = {
|
|
82
|
+
/**
|
|
83
|
+
* Options for common filters defined at the dashboard level to be applied to certain widgets.
|
|
84
|
+
*/
|
|
78
85
|
filtersOptions?: CommonFiltersOptions;
|
|
79
86
|
/**
|
|
80
87
|
* Jump To Dashboard config for widgets.
|
|
81
88
|
*/
|
|
82
89
|
jtdConfig?: JumpToDashboardConfig | JumpToDashboardConfigForPivot;
|
|
83
|
-
}
|
|
90
|
+
};
|
|
84
91
|
/**
|
|
85
92
|
* Style options for the dashboard.
|
|
86
93
|
*/
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { RestApi } from '../../../../../infra/api/rest-api';
|
|
2
|
+
import { UseDashboardModelInternalAction } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Middleware that persists the dashboard model changes to the Sisense server.
|
|
5
|
+
*
|
|
6
|
+
* @param dashboardOid - Dashboard OID, or undefined if not initialized
|
|
7
|
+
* @param action - Internal dashboard model action to persist
|
|
8
|
+
* @param restApi - Sisense REST API instance
|
|
9
|
+
* @param sharedMode - Whether the dashboard is in shared mode
|
|
10
|
+
* @returns Promise resolving to the action (possibly transformed, e.g. for ADD_WIDGET)
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare function persistDashboardModelMiddleware(dashboardOid: string | undefined, action: UseDashboardModelInternalAction, restApi: RestApi, sharedMode: boolean): Promise<UseDashboardModelInternalAction>;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Filter, FilterRelations } from '@sisense/sdk-data';
|
|
2
|
-
import { DashboardModel, WidgetsPanelLayout } from '
|
|
3
|
-
import { WidgetModel } from '
|
|
4
|
-
import { RestApi } from '../../../../infra/api/rest-api';
|
|
2
|
+
import { DashboardModel, SpecificWidgetOptions, WidgetsPanelLayout } from '../../../../../domains/dashboarding/dashboard-model';
|
|
3
|
+
import { WidgetModel } from '../../../../../domains/widgets/widget-model';
|
|
5
4
|
export type UseDashboardModelState = DashboardModel | null;
|
|
6
5
|
/**
|
|
7
6
|
* Internal action types for the dashboard model state used in {@link useDashboardModel}.
|
|
@@ -55,12 +54,23 @@ export type UseDashboardModelFilterUpdateAction = {
|
|
|
55
54
|
};
|
|
56
55
|
/**
|
|
57
56
|
* Add widget action for the dashboard model state used in {@link useDashboardModel}.
|
|
57
|
+
* If widgetsPanelLayout is not provided, the widget will be appended to the first cell of the first column.
|
|
58
58
|
*
|
|
59
|
-
*
|
|
59
|
+
* WidgetModel plain payload will be deprecated in the future.
|
|
60
|
+
* Instead, use the following payload:
|
|
61
|
+
* {
|
|
62
|
+
* widget: WidgetModel;
|
|
63
|
+
* widgetsPanelLayout?: WidgetsPanelLayout;
|
|
64
|
+
* widgetOptions?: SpecificWidgetOptions;
|
|
65
|
+
* }
|
|
60
66
|
*/
|
|
61
67
|
export type UseDashboardModelAddWidgetAction = {
|
|
62
68
|
type: UseDashboardModelActionType.ADD_WIDGET;
|
|
63
|
-
payload: WidgetModel
|
|
69
|
+
payload: WidgetModel | {
|
|
70
|
+
widget: WidgetModel;
|
|
71
|
+
widgetsPanelLayout?: WidgetsPanelLayout;
|
|
72
|
+
widgetOptions?: SpecificWidgetOptions;
|
|
73
|
+
};
|
|
64
74
|
};
|
|
65
75
|
/**
|
|
66
76
|
* Layout update action for the dashboard model state used in {@link useDashboardModel}.
|
|
@@ -72,7 +82,9 @@ export type UseDashboardModelLayoutUpdateAction = {
|
|
|
72
82
|
payload: WidgetsPanelLayout;
|
|
73
83
|
};
|
|
74
84
|
/**
|
|
75
|
-
*
|
|
85
|
+
* Widgets delete action for the dashboard model state used in {@link useDashboardModel}.
|
|
86
|
+
* {@link UseDashboardWidgetsDeleteAction} is dispatched with
|
|
87
|
+
* {@link UseDashboardModelActionType.WIDGETS_DELETE}.
|
|
76
88
|
*
|
|
77
89
|
* @internal
|
|
78
90
|
*/
|
|
@@ -80,33 +92,4 @@ export type UseDashboardWidgetsDeleteAction = {
|
|
|
80
92
|
type: UseDashboardModelActionType.WIDGETS_DELETE;
|
|
81
93
|
payload: string[];
|
|
82
94
|
};
|
|
83
|
-
|
|
84
|
-
* Reducer for the dashboard model state used in {@link useDashboardModel}.
|
|
85
|
-
*
|
|
86
|
-
* @param state
|
|
87
|
-
* @param action
|
|
88
|
-
* @internal
|
|
89
|
-
*/
|
|
90
|
-
export declare function dashboardReducer(state: UseDashboardModelState, action: UseDashboardModelInternalAction): UseDashboardModelState;
|
|
91
|
-
/**
|
|
92
|
-
* Translates filters and relations to DTOs.
|
|
93
|
-
*
|
|
94
|
-
* @param filtersOrFilterRelations - The filters or filter relations to translate
|
|
95
|
-
* @returns The translated filters and relations DTOs for Fusion
|
|
96
|
-
* @internal
|
|
97
|
-
*/
|
|
98
|
-
export declare function translateFiltersAndRelationsToDto(filtersOrFilterRelations: Filter[] | FilterRelations): {
|
|
99
|
-
filters: (import("../../../../infra/api/types/dashboard-dto").FilterDto | import("../../../../infra/api/types/dashboard-dto").CascadingFilterDto)[];
|
|
100
|
-
filterRelations: {
|
|
101
|
-
datasource: string;
|
|
102
|
-
filterRelations: import("@sisense/sdk-data").FilterRelationsModelNode;
|
|
103
|
-
}[] | undefined;
|
|
104
|
-
};
|
|
105
|
-
/**
|
|
106
|
-
* Middleware that persists the dashboard model changes to the Sisense server.
|
|
107
|
-
*
|
|
108
|
-
* @param restApi - The Sisense REST API instance
|
|
109
|
-
* @param reducer - The dashboard model reducer
|
|
110
|
-
* @internal
|
|
111
|
-
*/
|
|
112
|
-
export declare function persistDashboardModelMiddleware(dashboardOid: string | undefined, action: UseDashboardModelInternalAction, restApi: RestApi, sharedMode: boolean): Promise<UseDashboardModelInternalAction>;
|
|
95
|
+
export type AddWidgetPayload = UseDashboardModelAddWidgetAction['payload'];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { UseDashboardModelInternalAction, UseDashboardModelState } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Reducer for the dashboard model state used in {@link useDashboardModel}.
|
|
4
|
+
*
|
|
5
|
+
* @param state
|
|
6
|
+
* @param action
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export declare function dashboardReducer(state: UseDashboardModelState, action: UseDashboardModelInternalAction): UseDashboardModelState;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Filter, FilterRelations } from '@sisense/sdk-data';
|
|
2
|
+
import { SpecificWidgetOptions, WidgetsPanelLayout } from '../../../../../domains/dashboarding/dashboard-model';
|
|
3
|
+
import { WidgetModel } from '../../../../../domains/widgets/widget-model';
|
|
4
|
+
import { AddWidgetPayload } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Translates filters and relations to DTOs.
|
|
7
|
+
*
|
|
8
|
+
* @param filtersOrFilterRelations - The filters or filter relations to translate
|
|
9
|
+
* @returns The translated filters and relations DTOs for Fusion
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare function translateFiltersAndRelationsToDto(filtersOrFilterRelations: Filter[] | FilterRelations): {
|
|
13
|
+
filters: (import("../../../../../infra/api/types/dashboard-dto.js").FilterDto | import("../../../../../infra/api/types/dashboard-dto.js").CascadingFilterDto)[];
|
|
14
|
+
filterRelations: {
|
|
15
|
+
datasource: string;
|
|
16
|
+
filterRelations: import("@sisense/sdk-data").FilterRelationsModelNode;
|
|
17
|
+
}[] | undefined;
|
|
18
|
+
};
|
|
19
|
+
export declare function parseAddWidgetPayload(payload: AddWidgetPayload): {
|
|
20
|
+
widget: WidgetModel;
|
|
21
|
+
widgetsPanelLayout?: WidgetsPanelLayout;
|
|
22
|
+
widgetOptions?: SpecificWidgetOptions;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Appends a widget cell to the first column's first row. Creates row/cells if missing.
|
|
26
|
+
* Returns a new layout (immutable) or the original when no columns exist.
|
|
27
|
+
*/
|
|
28
|
+
export declare function appendWidgetToFirstCell(layout: WidgetsPanelLayout | undefined, widgetId: string): WidgetsPanelLayout | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DashboardModel } from '../../../../domains/dashboarding/dashboard-model';
|
|
2
|
-
import { UseDashboardModelAction } from './
|
|
2
|
+
import { UseDashboardModelAction, UseDashboardModelInternalAction } from './dashboard-model-reducer';
|
|
3
3
|
export interface UseDashboardPersistenceParams {
|
|
4
4
|
/**
|
|
5
5
|
* The dashboard model to manage persistence for
|
|
@@ -25,10 +25,10 @@ export interface UseDashboardPersistenceResult {
|
|
|
25
25
|
*/
|
|
26
26
|
dashboard: DashboardModel | null;
|
|
27
27
|
/**
|
|
28
|
-
* Function to dispatch changes to the dashboard model with optional persistence
|
|
29
|
-
* Returns a promise
|
|
28
|
+
* Function to dispatch changes to the dashboard model with optional persistence.
|
|
29
|
+
* Returns a promise that resolves to the processed (or transformed) action.
|
|
30
30
|
*/
|
|
31
|
-
dispatchChanges: (action: UseDashboardModelAction) => Promise<
|
|
31
|
+
dispatchChanges: (action: UseDashboardModelAction) => Promise<UseDashboardModelInternalAction>;
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* Hook that provides persistence capabilities for an already loaded dashboard model.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { WidgetsPanelLayout } from '../../../../domains/dashboarding/dashboard-model/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Location of a widget cell within the layout structure.
|
|
4
|
+
*/
|
|
5
|
+
export type WidgetCellLocation = {
|
|
6
|
+
columnIndex: number;
|
|
7
|
+
rowIndex: number;
|
|
8
|
+
cellIndex: number;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Finds the location of a widget cell in the layout.
|
|
12
|
+
*
|
|
13
|
+
* @param layout - The widgets panel layout.
|
|
14
|
+
* @param widgetId - The ID of the widget to find.
|
|
15
|
+
* @returns The cell location, or undefined if not found.
|
|
16
|
+
*/
|
|
17
|
+
export declare const getWidgetCellLocation: (layout: Readonly<WidgetsPanelLayout>, widgetId: string) => WidgetCellLocation | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Transformer: Inserts a new cell into the same row as the original cell.
|
|
20
|
+
* Splits the original cell's widthPercentage in half: original and new cell each get 50%.
|
|
21
|
+
*
|
|
22
|
+
* @param originalCellLocation - The location of the original cell.
|
|
23
|
+
* @param newWidgetId - The ID of the new widget.
|
|
24
|
+
* @returns A pure transformer that produces the updated layout.
|
|
25
|
+
*/
|
|
26
|
+
export declare const withNewCellInsertedToTheSameRow: (originalCellLocation: WidgetCellLocation, newWidgetId: string) => (layout: Readonly<WidgetsPanelLayout>) => WidgetsPanelLayout;
|
|
27
|
+
/**
|
|
28
|
+
* Transformer: Replaces a widget ID with another in all cells of the layout.
|
|
29
|
+
*
|
|
30
|
+
* @param oldWidgetId - The widget ID to replace.
|
|
31
|
+
* @param newWidgetId - The new widget ID.
|
|
32
|
+
* @returns A pure transformer that produces the updated layout (immutable).
|
|
33
|
+
*/
|
|
34
|
+
export declare const withReplacedWidgetId: (oldWidgetId: string, newWidgetId: string) => (layout: Readonly<WidgetsPanelLayout>) => WidgetsPanelLayout;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { getWidgetCellLocation, withNewCellInsertedToTheSameRow, withReplacedWidgetId, type WidgetCellLocation, } from './duplicate-widget-utils.js';
|
|
2
|
+
export { useDuplicateWidgetMenuItem, type UseDuplicateWidgetMenuItemParams, type DuplicateWidgetMiddlewareOutput, } from './use-duplicate-widget-menu-item.js';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { WidgetsOptions, WidgetsPanelLayout } from '../../../../domains/dashboarding/dashboard-model/types.js';
|
|
3
|
+
import { type WidgetProps } from '../../../../domains/widgets/components/widget/types.js';
|
|
4
|
+
import type { DashboardPersistenceManager } from '../../types.js';
|
|
5
|
+
/** Setter for widgets array (e.g. React setState or updater function). */
|
|
6
|
+
export type SetWidgets = React.Dispatch<React.SetStateAction<WidgetProps[]>>;
|
|
7
|
+
/** Setter for widgets options array (e.g. React setState or updater function). */
|
|
8
|
+
export type SetWidgetsOptions = React.Dispatch<React.SetStateAction<WidgetsOptions>>;
|
|
9
|
+
/** Setter for widgets panel layout. */
|
|
10
|
+
export type SetWidgetsLayout = (newLayout: WidgetsPanelLayout) => void;
|
|
11
|
+
/** Options for the duplicate widget middleware hook. */
|
|
12
|
+
export type UseDuplicateWidgetMenuItemParams = {
|
|
13
|
+
/** Current widgets. */
|
|
14
|
+
widgets: WidgetProps[];
|
|
15
|
+
/** Setter to update widgets (e.g. from parent state). */
|
|
16
|
+
setWidgets: SetWidgets;
|
|
17
|
+
/** Current widgets panel layout. */
|
|
18
|
+
widgetsLayout: WidgetsPanelLayout;
|
|
19
|
+
/** Setter to update widgets layout (e.g. from parent state). */
|
|
20
|
+
setWidgetsLayout: SetWidgetsLayout;
|
|
21
|
+
/** When false, returns widgets unchanged (no menu item added). */
|
|
22
|
+
enabled?: boolean;
|
|
23
|
+
/** Dashboard-level widget options (applied to cloned widget when persisting). */
|
|
24
|
+
widgetsOptions?: WidgetsOptions;
|
|
25
|
+
/** Setter to update widgets options (e.g. from parent state). */
|
|
26
|
+
setWidgetsOptions: SetWidgetsOptions;
|
|
27
|
+
persistence?: Pick<DashboardPersistenceManager, 'addWidget'>;
|
|
28
|
+
};
|
|
29
|
+
/** Output of the duplicate widget middleware. */
|
|
30
|
+
export type DuplicateWidgetMiddlewareOutput = {
|
|
31
|
+
widgets: WidgetProps[];
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Middleware hook that adds a "Duplicate widget" header menu item to each widget.
|
|
35
|
+
* On click, clones the widget and updates the layout (inserts new cell in the same row).
|
|
36
|
+
*
|
|
37
|
+
* @param options - Options containing widgets, layout, setters, and enabled flag.
|
|
38
|
+
* @returns Updated props with widgets augmented with the duplicate menu item (or unchanged when disabled).
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* const [widgets, setWidgets] = useSyncedState(initialWidgets);
|
|
43
|
+
* const [widgetsLayout, setWidgetsLayout] = useSyncedState(initialLayout);
|
|
44
|
+
* const { widgets: widgetsWithDuplicate, widgetsLayout: widgetsLayoutWithDuplicate } = useDuplicateWidgetMenuItem({
|
|
45
|
+
* widgets,
|
|
46
|
+
* setWidgets,
|
|
47
|
+
* widgetsLayout,
|
|
48
|
+
* setWidgetsLayout,
|
|
49
|
+
* enabled: true,
|
|
50
|
+
* });
|
|
51
|
+
* const { layout: widgetsLayout, setLayout: setWidgetsLayout } = useWidgetsLayoutManagement({
|
|
52
|
+
* layout: widgetsLayoutWithDuplicate,
|
|
53
|
+
* layoutManagers: [tabberLayoutManager],
|
|
54
|
+
* });
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export declare function useDuplicateWidgetMenuItem(params: UseDuplicateWidgetMenuItemParams): DuplicateWidgetMiddlewareOutput;
|
package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/jtd/jtd-config-transformers.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Attribute, Dimension, Measure } from '@sisense/sdk-data';
|
|
2
2
|
import { PivotTableDataOptions } from '../../../../domains/visualizations/core/chart-data-options/types';
|
|
3
3
|
import type { Panel } from '../../../../domains/widgets/components/widget-by-id/types';
|
|
4
|
-
import { WidgetProps } from '../../../../
|
|
4
|
+
import { WidgetProps } from '../../../../domains/widgets/components/widget/types';
|
|
5
5
|
import type { JtdConfig, JtdTarget, JumpToDashboardConfig, JumpToDashboardConfigForPivot, PivotDimId } from './jtd-types.js';
|
|
6
6
|
/**
|
|
7
7
|
* Transform legacy JtdConfig to new JumpToDashboardConfig format
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Filter } from '@sisense/sdk-data';
|
|
2
|
-
import { WidgetProps } from '../../../../
|
|
2
|
+
import { WidgetProps } from '../../../../domains/widgets/components/widget/types';
|
|
3
3
|
import { DataPoint, ScatterDataPoint } from '../../../../types';
|
|
4
4
|
import { JtdConfig } from './jtd-types.js';
|
|
5
5
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Filter } from '@sisense/sdk-data';
|
|
2
|
+
import { WidgetProps } from '../../../../domains/widgets/components/widget/types';
|
|
2
3
|
import { OpenModalFn } from '../../../../infra/contexts/modal-provider/modal-context';
|
|
3
|
-
import { WidgetProps } from '../../../../props.js';
|
|
4
4
|
import { DataPoint, PivotTableDataPoint } from '../../../../types';
|
|
5
5
|
import { JtdActions, JtdClickHandlerData, JtdConfig, JtdContext, JtdCoreData, JtdDataPointClickEvent } from './jtd-types';
|
|
6
6
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Attribute, type Filter, Measure } from '@sisense/sdk-data';
|
|
2
2
|
import { DashboardConfig, DashboardProps } from '../../../../domains/dashboarding/types';
|
|
3
|
+
import { WidgetProps } from '../../../../domains/widgets/components/widget/types';
|
|
3
4
|
import { OpenMenuFn } from '../../../../infra/contexts/menu-provider/types.js';
|
|
4
5
|
import { OpenModalFn } from '../../../../infra/contexts/modal-provider/modal-context';
|
|
5
|
-
import { WidgetProps } from '../../../../props.js';
|
|
6
6
|
import { DataPoint } from '../../../../types';
|
|
7
7
|
/**
|
|
8
8
|
* Menu item structure for JTD navigation
|
|
@@ -2,8 +2,8 @@ import { type Filter } from '@sisense/sdk-data';
|
|
|
2
2
|
import { WidgetsOptions } from '../../../domains/dashboarding/dashboard-model/types';
|
|
3
3
|
import { type JtdActions } from '../../../domains/dashboarding/hooks/jtd/jtd-types';
|
|
4
4
|
import { JtdConfig } from '../../../domains/dashboarding/hooks/jtd/jtd-types';
|
|
5
|
+
import { WidgetProps } from '../../../domains/widgets/components/widget/types';
|
|
5
6
|
import { OpenMenuFn } from '../../../infra/contexts/menu-provider/types.js';
|
|
6
|
-
import { WidgetProps } from '../../../props.js';
|
|
7
7
|
/**
|
|
8
8
|
* Shared function to apply JTD functionality to a widget.
|
|
9
9
|
* Extracted to avoid code duplication between use-jtd.ts and use-jtd-widget.ts
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { WidgetId, WidgetsPanelColumnLayout } from '../../../domains/dashboarding/dashboard-model';
|
|
2
2
|
import { WidgetPanelLayoutManager } from '../../../domains/dashboarding/hooks/use-widgets-layout';
|
|
3
|
-
import {
|
|
3
|
+
import { WidgetProps } from '../../../domains/widgets/components/widget/types';
|
|
4
|
+
import { TabberButtonsWidgetProps } from '../../../props';
|
|
4
5
|
/**
|
|
5
6
|
* @internal
|
|
6
7
|
*/
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { DataSource, Filter, FilterRelations } from '@sisense/sdk-data';
|
|
3
|
-
import { DashboardStyleOptions, WidgetsOptions, WidgetsPanelLayout } from '../../domains/dashboarding/dashboard-model';
|
|
3
|
+
import { DashboardStyleOptions, SpecificWidgetOptions, WidgetsOptions, WidgetsPanelLayout } from '../../domains/dashboarding/dashboard-model';
|
|
4
4
|
import { TabbersConfig } from '../../domains/dashboarding/hooks/use-tabber';
|
|
5
5
|
import { FiltersPanelConfig } from '../../domains/filters/components/filters-panel/types';
|
|
6
|
-
import { WidgetProps } from '../../
|
|
7
|
-
export type { DashboardStyleOptions, WidgetsPanelColumnLayout, WidgetsPanelLayout, WidgetsPanelCell, WidgetsPanelRow, WidgetsPanelColumn, } from '../../domains/dashboarding/dashboard-model';
|
|
6
|
+
import { WidgetProps } from '../../domains/widgets/components/widget/types';
|
|
7
|
+
export type { DashboardStyleOptions, SpecificWidgetOptions, WidgetsPanelColumnLayout, WidgetsPanelLayout, WidgetsPanelCell, WidgetsPanelRow, WidgetsPanelColumn, } from '../../domains/dashboarding/dashboard-model';
|
|
8
8
|
export type { TabbersConfig, TabberConfig, TabberTabConfig, } from '../../domains/dashboarding/hooks/use-tabber';
|
|
9
9
|
/**
|
|
10
10
|
* Event triggered when dashboard filters are updated.
|
|
@@ -217,6 +217,23 @@ export interface EditModeConfig {
|
|
|
217
217
|
* @default true
|
|
218
218
|
*/
|
|
219
219
|
showDragHandleIcon?: boolean;
|
|
220
|
+
/**
|
|
221
|
+
* Configuration for the widget duplication feature.
|
|
222
|
+
*
|
|
223
|
+
* @internal
|
|
224
|
+
*/
|
|
225
|
+
duplicateWidget?: {
|
|
226
|
+
/**
|
|
227
|
+
* When `true`, adds a "Duplicate widget" menu item to each widget header.
|
|
228
|
+
* On click, clones the widget and updates the layout.
|
|
229
|
+
* Only has effect when edit mode is also enabled (`editMode.enabled`) and batch mode is disabled (`editMode.applyChangesAsBatch.enabled`).
|
|
230
|
+
* If batch mode is enabled, "Duplicate widget" menu item won't be applied because it would not be possible to undo/redo the duplication.
|
|
231
|
+
*
|
|
232
|
+
* If not specified, the default value is `false`.
|
|
233
|
+
* @internal
|
|
234
|
+
*/
|
|
235
|
+
enabled: boolean;
|
|
236
|
+
};
|
|
220
237
|
}
|
|
221
238
|
/**
|
|
222
239
|
* Dashboard configuration
|
|
@@ -278,6 +295,26 @@ export interface DashboardLayoutOptions {
|
|
|
278
295
|
*/
|
|
279
296
|
widgetsPanel?: WidgetsPanelLayout;
|
|
280
297
|
}
|
|
298
|
+
/**
|
|
299
|
+
* Interface for persisting dashboard changes from the composition layer (e.g. add widget).
|
|
300
|
+
*
|
|
301
|
+
* @internal
|
|
302
|
+
*/
|
|
303
|
+
export type DashboardPersistenceManager = {
|
|
304
|
+
/**
|
|
305
|
+
* Adds a widget to the dashboard.
|
|
306
|
+
*
|
|
307
|
+
* @param widget - The widget to add.
|
|
308
|
+
* @param widgetsPanelLayout - The layout to add the widget to.
|
|
309
|
+
* @param widgetOptions - The options for the widget.
|
|
310
|
+
* @returns The persisted widget (possibly modified by the server, e.g. new id), the new widgets panel layout and the widget options.
|
|
311
|
+
*/
|
|
312
|
+
addWidget: (widget: WidgetProps, widgetsPanelLayout: WidgetsPanelLayout, widgetOptions?: SpecificWidgetOptions) => Promise<{
|
|
313
|
+
widget: WidgetProps;
|
|
314
|
+
widgetsPanelLayout: WidgetsPanelLayout;
|
|
315
|
+
widgetOptions?: SpecificWidgetOptions;
|
|
316
|
+
}>;
|
|
317
|
+
};
|
|
281
318
|
/**
|
|
282
319
|
* Props for the Dashboard component
|
|
283
320
|
*/
|
|
@@ -317,6 +354,10 @@ export interface DashboardProps {
|
|
|
317
354
|
* @param event The event that occurred
|
|
318
355
|
*/
|
|
319
356
|
onChange?: (event: DashboardChangeEvent) => void;
|
|
357
|
+
/**
|
|
358
|
+
* @internal
|
|
359
|
+
*/
|
|
360
|
+
persistence?: DashboardPersistenceManager;
|
|
320
361
|
}
|
|
321
362
|
/**
|
|
322
363
|
* Props for the Dashboard Header component
|
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
import { Filter, FilterRelations } from '@sisense/sdk-data';
|
|
2
|
-
import { WidgetsPanelLayout } from '../../domains/dashboarding/dashboard-model';
|
|
3
|
-
import { DashboardProps } from './types.js';
|
|
2
|
+
import type { WidgetsPanelLayout } from '../../domains/dashboarding/dashboard-model';
|
|
3
|
+
import { DashboardPersistenceManager, DashboardProps } from './types.js';
|
|
4
4
|
export type ComposableDashboardProps = Pick<DashboardProps, 'filters' | 'widgets' | 'widgetsOptions' | 'layoutOptions' | 'config'>;
|
|
5
5
|
export type UseComposedDashboardOptions = {
|
|
6
6
|
/**
|
|
7
7
|
* @internal
|
|
8
8
|
*/
|
|
9
9
|
onFiltersChange?: (filters: Filter[] | FilterRelations) => void;
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
persistence?: DashboardPersistenceManager;
|
|
14
|
+
/**
|
|
15
|
+
* Runtime edit mode state. When provided (e.g. by Dashboard), used for duplicate-widget visibility
|
|
16
|
+
* instead of only config.widgetsPanel.editMode.isEditing.
|
|
17
|
+
* @internal
|
|
18
|
+
*
|
|
19
|
+
* @deprecated Temporal workaround. Edit mode (with history management) should be managed by the `useComposedDashboard` hook instead of the Dashboard component.
|
|
20
|
+
*/
|
|
21
|
+
isEditing?: boolean;
|
|
10
22
|
};
|
|
11
23
|
/**
|
|
12
24
|
* Result of the {@link useComposedDashboard} hook.
|
|
@@ -24,7 +36,7 @@ export type ComposedDashboardResult<D extends ComposableDashboardProps | Dashboa
|
|
|
24
36
|
*
|
|
25
37
|
* @internal
|
|
26
38
|
*/
|
|
27
|
-
export declare function useComposedDashboardInternal<D extends ComposableDashboardProps | DashboardProps>(initialDashboard: D, { onFiltersChange }?: UseComposedDashboardOptions): ComposedDashboardResult<D>;
|
|
39
|
+
export declare function useComposedDashboardInternal<D extends ComposableDashboardProps | DashboardProps>(initialDashboard: D, { onFiltersChange, persistence, isEditing: isEditingRuntime }?: UseComposedDashboardOptions): ComposedDashboardResult<D>;
|
|
28
40
|
/**
|
|
29
41
|
* React hook that takes in separate dashboard elements and
|
|
30
42
|
* composes them into a coordinated dashboard with change detection, cross filtering, and drill down.
|