@sisense/sdk-ui 2.5.0 → 2.6.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 (29) hide show
  1. package/dist/ai.cjs +1 -1
  2. package/dist/ai.js +4 -4
  3. package/dist/analytics-composer.cjs +82 -82
  4. package/dist/analytics-composer.js +1911 -1911
  5. package/dist/{derive-chart-family-ci86jmVk.js → derive-chart-family-BPYK8evJ.js} +11063 -11000
  6. package/dist/{derive-chart-family-Cjjn5U5S.cjs → derive-chart-family-yUBZXP4x.cjs} +146 -146
  7. package/dist/dimensions-BgPl9ZS9.cjs +1 -0
  8. package/dist/dimensions-DuHaCozA.js +203 -0
  9. package/dist/index.cjs +14 -14
  10. package/dist/index.js +5390 -5298
  11. package/dist/index.umd.js +248 -248
  12. package/dist/packages/sdk-ui/src/app/client-application.d.ts +2 -2
  13. package/dist/packages/sdk-ui/src/chart/restructured-charts/highchart-based-charts/highcharts-based-chart-renderer/highcharts-based-chart-renderer.d.ts +4 -0
  14. package/dist/packages/sdk-ui/src/dashboard/components/jtd-dashboard.d.ts +2 -1
  15. package/dist/packages/sdk-ui/src/dashboard/hooks/jtd/jtd-filters.d.ts +38 -4
  16. package/dist/packages/sdk-ui/src/dashboard/types.d.ts +26 -19
  17. package/dist/packages/sdk-ui/src/dynamic-size-container/dynamic-size-container.d.ts +2 -1
  18. package/dist/packages/sdk-ui/src/models/dashboard/translate-dashboard-utils.d.ts +1 -0
  19. package/dist/packages/sdk-ui/src/props.d.ts +10 -0
  20. package/dist/packages/sdk-ui/src/sisense-chart/sisense-chart.d.ts +1 -1
  21. package/dist/packages/sdk-ui/src/sisense-chart/types.d.ts +4 -0
  22. package/dist/packages/sdk-ui/src/widget-by-id/utils.d.ts +26 -0
  23. package/dist/{use-common-filters-BTk7vuUo.js → use-common-filters-B1RKY2KD.js} +745 -717
  24. package/dist/{use-common-filters-Bf8KKBN2.cjs → use-common-filters-CRgYdKcV.cjs} +33 -33
  25. package/dist/{widget-composer-CJDaEkCY.cjs → widget-composer-B2r2a9Oh.cjs} +7 -7
  26. package/dist/{widget-composer-BtqAxkpr.js → widget-composer-I9gUFBZt.js} +67 -66
  27. package/package.json +7 -7
  28. package/dist/dimensions-COtPNdpu.cjs +0 -1
  29. package/dist/dimensions-wzj4u0MX.js +0 -200
@@ -181,7 +181,7 @@ export interface ClientApplication {
181
181
  clear: () => void;
182
182
  };
183
183
  }
184
- type ClientApplicationParams = Pick<SisenseContextProviderProps, 'appConfig' | 'defaultDataSource' | 'url' | 'token' | 'wat' | 'ssoEnabled' | 'enableSilentPreAuth' | 'useFusionAuth'>;
184
+ type ClientApplicationParams = Pick<SisenseContextProviderProps, 'appConfig' | 'defaultDataSource' | 'url' | 'token' | 'wat' | 'ssoEnabled' | 'enableSilentPreAuth' | 'useFusionAuth' | 'alternativeSsoHost'>;
185
185
  /** @internal */
186
- export declare const createClientApplication: ({ defaultDataSource, url: rawUrl, token, wat, ssoEnabled, appConfig, enableSilentPreAuth, useFusionAuth, }: ClientApplicationParams) => Promise<ClientApplication>;
186
+ export declare const createClientApplication: ({ defaultDataSource, url: rawUrl, token, wat, ssoEnabled, appConfig, enableSilentPreAuth, useFusionAuth, alternativeSsoHost, }: ClientApplicationParams) => Promise<ClientApplication>;
187
187
  export {};
@@ -12,6 +12,10 @@ export type HighchartsBasedChartRendererProps<CT extends HighchartBasedChartType
12
12
  onDataPointContextMenu?: SisenseChartDataPointEventHandler;
13
13
  onDataPointsSelected?: SisenseChartDataPointsEventHandler;
14
14
  onBeforeRender?: BeforeRenderHandler;
15
+ size?: {
16
+ width?: number;
17
+ height?: number;
18
+ };
15
19
  };
16
20
  /**
17
21
  * Creates a specific highcharts based chart renderer component
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { type Filter } from '@sisense/sdk-data';
2
3
  interface JtdDashboardProps {
3
4
  dashboardOid: string;
@@ -11,5 +12,5 @@ interface JtdDashboardProps {
11
12
  * This component reuses DashboardById logic but is specifically designed for JTD use cases
12
13
  * @internal
13
14
  */
14
- export declare const JtdDashboard: ({ dashboardOid, filters: runtimeFilters, mergeTargetDashboardFilters, displayToolbarRow, displayFilterPane, }: JtdDashboardProps) => import("react/jsx-runtime").JSX.Element;
15
+ export declare const JtdDashboard: import("react").FunctionComponent<JtdDashboardProps>;
15
16
  export {};
@@ -1,6 +1,6 @@
1
1
  import { type Filter } from '@sisense/sdk-data';
2
2
  import { WidgetProps } from '../../../props.js';
3
- import { DataPoint } from '../../../types';
3
+ import { DataPoint, ScatterDataPoint } from '../../../types';
4
4
  import { JtdConfig } from '../../../widget-by-id/types';
5
5
  /**
6
6
  * Jump to Dashboard (JTD) Filter Merging Logic:
@@ -69,18 +69,51 @@ export declare const getFormulaContextFilters: (clickedWidget: WidgetProps, jtdC
69
69
  */
70
70
  export declare const handleFormulaDuplicateFilters: (filters: Filter[], sendFormulaFiltersDuplicate?: number | 'none') => Filter[];
71
71
  /**
72
- * Generate filters from data point based on its category entries
72
+ * Type guard to check if a data point is a ScatterDataPoint.
73
+ * Checks for actual scatter chart structure (x/y coordinates) and scatter-only properties.
73
74
  *
74
- * @param point - The data point
75
+ * @param point - The data point to check
76
+ * @returns True if the point is a ScatterDataPoint, false otherwise
77
+ * @internal
78
+ */
79
+ export declare const isScatterDataPoint: (point: DataPoint | ScatterDataPoint) => point is ScatterDataPoint;
80
+ /**
81
+ * Extracts filters from scatter chart data point (breakByColor and breakByPoint).
82
+ *
83
+ * @param point - The scatter data point
84
+ * @returns Array of filters generated from scatter chart breakBy properties
85
+ * @internal
86
+ */
87
+ export declare const getFiltersFromScatterDataPoint: (point: ScatterDataPoint) => Filter[];
88
+ /**
89
+ * Extracts filters from regular chart data point (category and breakBy array).
90
+ * Also processes any scatter properties (breakByColor/breakByPoint) if present.
91
+ *
92
+ * @param point - The regular data point (may have mixed properties)
93
+ * @returns Array of filters generated from all available entries
94
+ * @internal
95
+ */
96
+ export declare const getFiltersFromRegularDataPoint: (point: DataPoint) => Filter[];
97
+ /**
98
+ * Extracts filters from a data point for Jump To Dashboard functionality.
99
+ *
100
+ * This function handles both regular DataPoint and ScatterDataPoint types:
101
+ * - If data point has scatter properties (breakByColor/breakByPoint), process as scatter chart
102
+ * - Otherwise, process as regular chart (category/breakBy entries)
103
+ * - Scatter properties take priority over regular properties when both exist
104
+ *
105
+ * @param point - The data point from chart interaction
75
106
  * @returns Array of filters generated from the data point
107
+ * @internal
76
108
  */
77
- export declare const getFiltersFromDataPoint: (point: DataPoint) => Filter[];
109
+ export declare const getFiltersFromDataPoint: (point: DataPoint | ScatterDataPoint) => Filter[];
78
110
  /**
79
111
  * Filter filters based on allowed dimension names, supporting cascading filters
80
112
  *
81
113
  * @param filters - The filters to filter
82
114
  * @param allowedDims - The allowed dimensions
83
115
  * @returns The filtered filters
116
+ * @internal
84
117
  */
85
118
  export declare const filterByAllowedDimensions: (filters: Filter[], allowedDims?: string[]) => Filter[];
86
119
  /**
@@ -91,5 +124,6 @@ export declare const filterByAllowedDimensions: (filters: Filter[], allowedDims?
91
124
  * @param widgetFilters - Widget-specific filters
92
125
  * @param formulaContextFilters - Formula context filters
93
126
  * @returns Merged filters array
127
+ * @internal
94
128
  */
95
129
  export declare const mergeJtdFilters: (generatedFilters: Filter[], dashboardFilters: Filter[], widgetFilters: Filter[], formulaContextFilters: Filter[]) => Filter[];
@@ -64,23 +64,13 @@ export interface DashboardFiltersPanelConfig extends FiltersPanelConfig {
64
64
  */
65
65
  export interface WidgetsPanelConfig {
66
66
  /**
67
- * If true adjust layout based on available width of widgets panel.
67
+ * If `true`, adjust layout based on available width of widgets panel.
68
68
  *
69
69
  * If not specified, the default value is `false`.
70
70
  */
71
71
  responsive?: boolean;
72
72
  /**
73
73
  * Edit mode configuration.
74
- * If enabled, an 'Edit Layout' action is visible to users on the dashboard toolbar.
75
- * Clicking 'Edit Layout' opens the dashboard in editing mode, where the user can resize or reposition widgets using drag and drop.
76
- * If history enabled, layout changes are temporarily stored during editing, with undo/redo buttons available on the toolbar.
77
- * Finally, changes are confirmed or discarded with 'Apply' or 'Cancel' buttons.
78
- *
79
- * If persistence is enabled for the dashboard, changes to the layout will be saved to Fusion on clicking the 'Apply' button.
80
- *
81
- * This feature is in alpha.
82
- *
83
- * @alpha
84
74
  */
85
75
  editMode?: EditModeConfig;
86
76
  }
@@ -88,36 +78,53 @@ export interface WidgetsPanelConfig {
88
78
  * Edit mode configuration
89
79
  */
90
80
  export interface EditModeConfig {
91
- /** Flag indicating whether the edit layout feature is enabled
81
+ /**
82
+ * If `true` the editable layout feature is enabled for the end user.
83
+ *
84
+ * If `false` the end user is unable to edit the layout of widgets in the dashboard.
85
+ *
86
+ * When persistence is enabled combined with `editMode` for a Fusion dashboard, changes to the layout will saved to Fusion.
92
87
  *
93
88
  * @default false
94
89
  */
95
90
  enabled: boolean;
96
91
  /**
97
- * Flag indicating whether the dashboard is currently in edit mode.
98
- * If specified, will override inner mode state.
92
+ * Indicates whether the dashboard is currently in edit mode.
93
+ *
94
+ * If set, this controls whether editing is currently in progress,
95
+ * which by default is automatically managed from UI interactions with the dashboard toolbar menu/buttons.
96
+ *
99
97
  * */
100
98
  isEditing?: boolean;
101
- /** Configuration for the edit mode history */
99
+ /**
100
+ * Configuration for the edit mode user experience
101
+ */
102
102
  applyChangesAsBatch?: {
103
103
  /**
104
- * If true, changes are applied when the user clicks 'Apply'
104
+ * If `true`, a history of changes will be accumulated during editing,
105
+ * and users may undo/redo through the history of changes made during the current edit.
106
+ *
107
+ * The current layout state will be applied to the dashboard when the user clicks 'Apply',
105
108
  * or discarded when the user clicks 'Cancel'.
106
109
  *
107
- * If false, changes will be applied immediately as the user makes each change
110
+ * If `false`, the layout changes will be applied immediately after the user makes each change,
108
111
  * without confirmation or the ability to cancel/undo.
109
112
  *
110
113
  * @default: true
111
114
  * */
112
115
  enabled: boolean;
113
116
  /**
114
- * The maximum number of history items to keep.
117
+ * The maximum number of history items to keep while applying changes in batch mode.
118
+ *
119
+ * History will be temporarily stored in the browser during editing.
115
120
  *
116
121
  * @default 20
117
122
  */
118
123
  historyLimit?: number;
119
124
  };
120
- /** Flag indicating whether the drag handle icon is visible
125
+ /**
126
+ * Determines whether the drag handle icon should be displayed on the
127
+ * header of each widget when layout editing is possible.
121
128
  *
122
129
  * @default true
123
130
  */
@@ -13,6 +13,7 @@ export type DynamicSizeContainerProps = {
13
13
  height?: boolean;
14
14
  };
15
15
  onSizeChange?: (size: ContainerSize) => void;
16
+ debounceMs?: number;
16
17
  };
17
18
  /**
18
19
  * A container component that adjusts its content size according to provided sizes
@@ -37,4 +38,4 @@ export type DynamicSizeContainerProps = {
37
38
  * @param {DynamicSizeContainerProps} props - DynamicSizeContainer properties.
38
39
  * @returns {JSX.Element} The DynamicSizeContainer component.
39
40
  */
40
- export declare const DynamicSizeContainer: ({ children, defaultSize, size, rerenderOnResize, useContentSize, onSizeChange, }: DynamicSizeContainerProps) => import("react/jsx-runtime").JSX.Element;
41
+ export declare const DynamicSizeContainer: ({ children, defaultSize, size, rerenderOnResize, useContentSize, onSizeChange, debounceMs, }: DynamicSizeContainerProps) => import("react/jsx-runtime").JSX.Element;
@@ -13,5 +13,6 @@ export declare function translateTabbersOptions(widgets?: WidgetDto[]): TabbersO
13
13
  * @param dashboard - The dashboard DTO to replace shared formulas in
14
14
  * @param api - The REST API instance
15
15
  * @returns The dashboard DTO with shared formulas, defined by id references, replaced
16
+ * @internal
16
17
  */
17
18
  export declare function withSharedFormulas(dashboard: DashboardDto, api: RestApi): Promise<DashboardDto>;
@@ -114,6 +114,16 @@ export interface SisenseContextProviderProps {
114
114
  *
115
115
  */
116
116
  enableSilentPreAuth?: boolean;
117
+ /**
118
+ * Alternative host to use for SSO authentication.
119
+ * Used **only** when the SSO Login URL is configured as a *relative* url.
120
+ * If not specified, the default value is `''`.
121
+ *
122
+ * @category Sisense Authentication
123
+ *
124
+ * @internal
125
+ */
126
+ alternativeSsoHost?: string;
117
127
  }
118
128
  /**
119
129
  * Props for {@link ExecuteQuery} component.
@@ -4,6 +4,6 @@ import { SisenseChartProps, SisenseChartType } from './types';
4
4
  /**
5
5
  * @internal
6
6
  */
7
- export declare const SisenseChart: ({ chartType, chartData, dataOptions, designOptions, onDataPointClick, onDataPointContextMenu, onDataPointsSelected, onBeforeRender, }: SisenseChartProps) => import("react/jsx-runtime").JSX.Element | null;
7
+ export declare const SisenseChart: ({ chartType, chartData, dataOptions, designOptions, onDataPointClick, onDataPointContextMenu, onDataPointsSelected, onBeforeRender, size, }: SisenseChartProps) => import("react/jsx-runtime").JSX.Element | null;
8
8
  export declare const isSisenseChartType: (chartType: ChartType) => chartType is SisenseChartType;
9
9
  export declare const isSisenseChartProps: (props: ChartRendererProps) => props is SisenseChartProps;
@@ -15,5 +15,9 @@ export interface SisenseChartProps {
15
15
  onDataPointContextMenu?: SisenseChartDataPointEventHandler;
16
16
  onDataPointsSelected?: SisenseChartDataPointsEventHandler;
17
17
  onBeforeRender?: BeforeRenderHandler;
18
+ size?: {
19
+ width?: number;
20
+ height?: number;
21
+ };
18
22
  }
19
23
  export type SisenseChartType = CartesianChartType | CategoricalChartType | ScatterChartType | BoxplotChartType;
@@ -16,6 +16,29 @@ export declare function getFusionWidgetType(widgetType: WidgetType, chartType?:
16
16
  export declare function getWidgetType(fusionWidgetType: FusionWidgetType): WidgetType;
17
17
  export declare function getChartSubtype(widgetSubtype: WidgetSubtype): ChartSubtype | undefined;
18
18
  export declare function isSupportedWidgetType(fusionWidgetType: FusionWidgetType): fusionWidgetType is FusionWidgetType;
19
+ /**
20
+ * Widget types that support Jump To Dashboard (JTD) functionality
21
+ *
22
+ * Supported types:
23
+ * - Pie chart with no categories, Pie chart
24
+ * - Indicator
25
+ * - Text widget
26
+ * - Column chart, Bar chart, Line chart, Area chart
27
+ * - Pivot
28
+ * - Scatter chart, Polar chart
29
+ * - Blox
30
+ *
31
+ * @internal
32
+ */
33
+ export declare const JTD_SUPPORTED_WIDGET_TYPES: FusionWidgetType[];
34
+ /**
35
+ * Check if the widget type supports Jump To Dashboard (JTD)
36
+ *
37
+ * @param fusionWidgetType - The fusion widget type
38
+ * @returns True if the widget type supports JTD, false otherwise
39
+ * @internal
40
+ */
41
+ export declare function widgetTypeSupportsJtd(fusionWidgetType: FusionWidgetType): boolean;
19
42
  export declare function isTableFusionWidget(fusionWidgetType: FusionWidgetType): boolean;
20
43
  export declare function isTableWidgetModel(widgetModel: WidgetModel): boolean;
21
44
  export declare function isPivotTableFusionWidget(fusionWidgetType: FusionWidgetType): boolean;
@@ -26,6 +49,9 @@ export declare function isTextWidgetDtoStyle(widgetStyle: WidgetStyle): widgetSt
26
49
  export declare function isCustomWidgetFusionWidget(fusionWidgetType: FusionWidgetType): boolean;
27
50
  export declare function isCustomWidget(widgetType: WidgetType): boolean;
28
51
  export declare function isChartFusionWidget(fusionWidgetType: FusionWidgetType): boolean;
52
+ export declare function isChartTypeFusionWidget(fusionWidgetType: FusionWidgetType): boolean;
53
+ export declare function isPieChartFusionWidget(fusionWidgetType: FusionWidgetType): boolean;
54
+ export declare function isIndicatorFusionWidget(fusionWidgetType: FusionWidgetType): boolean;
29
55
  export declare function isChartWidget(widgetType: WidgetType): boolean;
30
56
  /**
31
57
  * Type guard for checking if the widget props is for a text widget.