@sisense/sdk-ui 2.17.0 → 2.18.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 (62) hide show
  1. package/dist/ai.cjs +2 -2
  2. package/dist/ai.js +6 -6
  3. package/dist/analytics-composer/node.cjs +1 -1
  4. package/dist/analytics-composer/node.js +515 -454
  5. package/dist/analytics-composer.cjs +1 -1
  6. package/dist/analytics-composer.js +6 -6
  7. package/dist/{derive-chart-family-DkuTQGOE.js → derive-chart-family-BEjUaaLD.js} +398 -390
  8. package/dist/{derive-chart-family-B_cR1yhw.cjs → derive-chart-family-C3PTAfzX.cjs} +13 -13
  9. package/dist/{dimensions-Gma5tFmd.js → dimensions-CETtX6B1.js} +1 -1
  10. package/dist/{dimensions-DI9h9IJH.cjs → dimensions-_D0C3KY2.cjs} +1 -1
  11. package/dist/{execute-query-l7jejslh.js → execute-query-CUf3Nz7H.js} +86 -87
  12. package/dist/execute-query-tRu-NooT.cjs +1 -0
  13. package/dist/index.cjs +424 -424
  14. package/dist/index.js +15791 -16145
  15. package/dist/index.umd.js +605 -605
  16. package/dist/packages/sdk-ui/src/analytics-composer/nlq-v3-translator/common.d.ts +25 -3
  17. package/dist/packages/sdk-ui/src/analytics-composer/nlq-v3-translator/types.d.ts +22 -10
  18. package/dist/packages/sdk-ui/src/chart-options-processor/data-points.d.ts +3 -2
  19. package/dist/packages/sdk-ui/src/common-filters/utils.d.ts +19 -0
  20. package/dist/packages/sdk-ui/src/dashboard/components/editable-layout/components/editable-layout-row.d.ts +11 -0
  21. package/dist/packages/sdk-ui/src/dashboard/hooks/index.d.ts +12 -0
  22. package/dist/packages/sdk-ui/src/dashboard/utils.d.ts +15 -0
  23. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/index.d.ts +0 -1
  24. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/member-list.d.ts +5 -0
  25. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/pill-section.d.ts +1 -2
  26. package/dist/packages/sdk-ui/src/filters/hooks/use-get-filter-members.d.ts +6 -0
  27. package/dist/packages/sdk-ui/src/models/widget/widget-model.d.ts +2 -2
  28. package/dist/packages/sdk-ui/src/props.d.ts +15 -7
  29. package/dist/packages/sdk-ui/src/query/date-formats/fiscal-date-format-replacers.d.ts +1 -0
  30. package/dist/packages/sdk-ui/src/query-execution/types.d.ts +6 -0
  31. package/dist/packages/sdk-ui/src/types.d.ts +62 -8
  32. package/dist/packages/sdk-ui/src/utils/data-option-location/get-data-option-by-location.d.ts +43 -0
  33. package/dist/packages/sdk-ui/src/utils/data-option-location/get-data-option-location.d.ts +46 -0
  34. package/dist/packages/sdk-ui/src/utils/data-option-location/index.d.ts +3 -0
  35. package/dist/packages/sdk-ui/src/utils/data-option-location/set-data-option-at-location.d.ts +39 -0
  36. package/dist/packages/sdk-ui/src/widget-by-id/translate-widget-drilldown-options.d.ts +2 -2
  37. package/dist/packages/sdk-ui/src/widget-by-id/translate-widget-style-options/tabber.d.ts +3 -3
  38. package/dist/packages/sdk-ui/src/widget-by-id/types.d.ts +34 -7
  39. package/dist/packages/sdk-ui/src/widgets/{chart-widget.d.ts → chart-widget/chart-widget.d.ts} +1 -1
  40. package/dist/packages/sdk-ui/src/widgets/chart-widget/index.d.ts +1 -0
  41. package/dist/packages/sdk-ui/src/widgets/{hooks/use-with-drilldown.d.ts → chart-widget/use-with-chart-widget-drilldown.d.ts} +4 -3
  42. package/dist/packages/sdk-ui/src/widgets/common/use-drilldown-core.d.ts +1 -1
  43. package/dist/packages/sdk-ui/src/widgets/hooks/use-drilldown.d.ts +4 -3
  44. package/dist/packages/sdk-ui/src/widgets/hooks/use-synced-drilldown-paths-manager.d.ts +113 -0
  45. package/dist/packages/sdk-ui/src/widgets/hooks/{use-synced-hierarchies.d.ts → use-synced-drilldown-paths.d.ts} +1 -1
  46. package/dist/packages/sdk-ui/src/widgets/pivot-table-widget/index.d.ts +1 -0
  47. package/dist/packages/sdk-ui/src/widgets/{pivot-table-widget.d.ts → pivot-table-widget/pivot-table-widget.d.ts} +1 -1
  48. package/dist/packages/sdk-ui/src/widgets/pivot-table-widget/use-with-pivot-table-widget-drilldown.d.ts +14 -0
  49. package/dist/packages/sdk-ui/src/widgets/pivot-table-widget/utils.d.ts +22 -0
  50. package/dist/packages/sdk-ui/src/widgets/tabber/tabber-buttons-widget.d.ts +19 -1
  51. package/dist/packages/sdk-ui/src/widgets/tabber/types.d.ts +22 -5
  52. package/dist/{types-Hki4GrUY.cjs → types-BfWl5jz9.cjs} +1 -1
  53. package/dist/{types-ofTjqFFK.js → types-CHqDjeeH.js} +1 -1
  54. package/dist/{use-common-filters-Bh4KYWy_.cjs → use-common-filters-BGLYpqmt.cjs} +108 -108
  55. package/dist/{use-common-filters-D5yiZCTg.js → use-common-filters-BhFFlOqU.js} +7662 -7541
  56. package/dist/{widget-composer-By61s921.js → widget-composer-Cuky3UiC.js} +3 -3
  57. package/dist/{widget-composer-BzzTf8UH.cjs → widget-composer-DsBF8OC2.cjs} +1 -1
  58. package/package.json +8 -8
  59. package/dist/execute-query-CdhSHTTA.cjs +0 -1
  60. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/basic-member-filter-tile.d.ts +0 -56
  61. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/use-members.d.ts +0 -14
  62. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/use-validate-members.d.ts +0 -8
@@ -1,5 +1,27 @@
1
1
  import { Attribute, DateDimension, JaqlDataSourceForDto } from '@sisense/sdk-data';
2
- import { NlqTranslationResult, NormalizedTable } from '../types.js';
2
+ import { NlqTranslationResult, NormalizedColumn, NormalizedTable } from '../types.js';
3
+ /**
4
+ * Schema index for efficient table/column lookups and greedy matching
5
+ * @internal
6
+ */
7
+ export interface SchemaIndex {
8
+ /** Tables sorted by name length (descending) for greedy matching */
9
+ sortedTables: NormalizedTable[];
10
+ /** Columns sorted by name length (descending) per table for greedy matching */
11
+ tableColumnMap: Map<string, NormalizedColumn[]>;
12
+ /** O(1) table lookup by exact name */
13
+ tableMap: Map<string, NormalizedTable>;
14
+ /** O(1) column lookup: table name → (column name → column) */
15
+ columnMap: Map<string, Map<string, NormalizedColumn>>;
16
+ }
17
+ /**
18
+ * Creates a schema index with pre-sorted arrays and Maps for efficient lookups
19
+ *
20
+ * @param tables - Array of normalized tables
21
+ * @returns SchemaIndex with sorted arrays and Maps
22
+ * @internal
23
+ */
24
+ export declare function createSchemaIndex(tables: NormalizedTable[]): SchemaIndex;
3
25
  /**
4
26
  * Validates that an attribute is compatible with text values
5
27
  *
@@ -44,7 +66,7 @@ export declare function isNonDateLevelAttribute(attribute: Attribute): boolean;
44
66
  * @returns A human-readable string representing the attribute type
45
67
  */
46
68
  export declare function getAttributeTypeDisplayString(attribute: Attribute): string;
47
- export declare function createAttributeFromName(attributeName: string, dataSource: JaqlDataSourceForDto, tables: NormalizedTable[]): Attribute | import("@sisense/sdk-data").LevelAttribute;
48
- export declare function createDateDimensionFromName(dateDimensionName: string, dataSource: JaqlDataSourceForDto, tables: NormalizedTable[]): DateDimension;
69
+ export declare function createAttributeFromName(attributeName: string, dataSource: JaqlDataSourceForDto, schemaIndex: SchemaIndex): Attribute | import("@sisense/sdk-data").LevelAttribute;
70
+ export declare function createDateDimensionFromName(dateDimensionName: string, dataSource: JaqlDataSourceForDto, schemaIndex: SchemaIndex): DateDimension;
49
71
  export declare function getSuccessData<T>(result: NlqTranslationResult<T>): T;
50
72
  export declare function getErrors<T>(result: NlqTranslationResult<T>): string[];
@@ -1,5 +1,16 @@
1
- import { Filter, FilterRelations, JSONArray, JSONValue, Measure } from '@sisense/sdk-data';
2
- import { DataSchemaContext, NlqTranslationInput } from '../types';
1
+ import { Filter, FilterRelations, JaqlDataSourceForDto, JSONArray, JSONValue, Measure } from '@sisense/sdk-data';
2
+ import { NlqTranslationInput } from '../types.js';
3
+ import type { SchemaIndex } from './common.js';
4
+ /**
5
+ * Internal context type that uses schemaIndex for efficient lookups
6
+ * @internal
7
+ */
8
+ export interface InternalDataSchemaContext {
9
+ /** The data source being used for the query */
10
+ dataSource: JaqlDataSourceForDto;
11
+ /** Schema index for efficient table/column lookups */
12
+ schemaIndex: SchemaIndex;
13
+ }
3
14
  export declare const DIMENSIONAL_NAME_PREFIX = "DM.";
4
15
  export type ArgType = 'string' | 'string[]' | 'number' | 'number[]' | 'boolean' | 'Attribute' | 'Attribute[]' | 'Measure' | 'BaseMeasure' | 'Measure[]' | 'Filter' | 'Filter[]' | 'FilterRelationsNode' | 'DateDimension' | 'LevelAttribute' | 'Measure | number' | 'Date | string' | 'string | number' | 'BaseFilterConfig' | 'MembersFilterConfig' | 'CustomFormulaContext' | 'any';
5
16
  export interface ArgSchema {
@@ -17,21 +28,22 @@ export type FunctionCall = {
17
28
  /**
18
29
  * Context object passed to all custom processors containing runtime information
19
30
  * needed for processing.
31
+ * @internal
20
32
  */
21
- export interface FunctionContext extends DataSchemaContext {
33
+ export interface FunctionContext extends InternalDataSchemaContext {
22
34
  /** Path prefix for error messages (e.g., 'args[0].function') */
23
35
  pathPrefix: string;
24
36
  }
25
37
  export interface ArgContext extends FunctionContext {
26
38
  argSchema: ArgSchema;
27
39
  }
28
- export type DimensionsInput = NlqTranslationInput<JSONArray, DataSchemaContext>;
29
- export type MeasuresInput = NlqTranslationInput<JSONArray, DataSchemaContext>;
30
- export type FiltersInput = NlqTranslationInput<JSONArray, DataSchemaContext>;
31
- export type HighlightsInput = NlqTranslationInput<JSONArray, DataSchemaContext>;
32
- export type MeasuresFunctionCallInput = NlqTranslationInput<FunctionCall[], DataSchemaContext>;
33
- export type FiltersFunctionCallInput = NlqTranslationInput<FunctionCall[], DataSchemaContext>;
34
- export type HighlightsFunctionCallInput = NlqTranslationInput<FunctionCall[], DataSchemaContext>;
40
+ export type DimensionsInput = NlqTranslationInput<JSONArray, InternalDataSchemaContext>;
41
+ export type MeasuresInput = NlqTranslationInput<JSONArray, InternalDataSchemaContext>;
42
+ export type FiltersInput = NlqTranslationInput<JSONArray, InternalDataSchemaContext>;
43
+ export type HighlightsInput = NlqTranslationInput<JSONArray, InternalDataSchemaContext>;
44
+ export type MeasuresFunctionCallInput = NlqTranslationInput<FunctionCall[], InternalDataSchemaContext>;
45
+ export type FiltersFunctionCallInput = NlqTranslationInput<FunctionCall[], InternalDataSchemaContext>;
46
+ export type HighlightsFunctionCallInput = NlqTranslationInput<FunctionCall[], InternalDataSchemaContext>;
35
47
  export type NodeInput = NlqTranslationInput<FunctionCall, FunctionContext>;
36
48
  export type ArgInput = NlqTranslationInput<Arg, ArgContext>;
37
49
  /**
@@ -1,11 +1,12 @@
1
1
  import { Measure } from '@sisense/sdk-data';
2
2
  import { ChartDataOptionsInternal } from '../chart-data-options/types';
3
3
  import { SisenseChartDataPoint } from '../sisense-chart/types';
4
- import { HighchartsPoint, StyledColumn, StyledMeasureColumn } from '../types';
4
+ import { DataOptionLocation, HighchartsPoint, StyledColumn, StyledMeasureColumn } from '../types';
5
5
  export declare function createFormatter(dataOption: StyledColumn | StyledMeasureColumn): (value?: number | string | Date) => string;
6
- export declare function getDataPointMetadata(dataOption: StyledColumn | StyledMeasureColumn): {
6
+ export declare function getDataPointMetadata(dataOption: StyledColumn | StyledMeasureColumn, dataOptionLocation?: DataOptionLocation): {
7
7
  measure?: Measure | undefined;
8
8
  attribute?: import("@sisense/sdk-data").Attribute | undefined;
9
+ dataOptionLocation?: DataOptionLocation | undefined;
9
10
  dataOption: StyledColumn | StyledMeasureColumn;
10
11
  };
11
12
  export declare function getDataPoint(point: HighchartsPoint, dataOptions: ChartDataOptionsInternal): SisenseChartDataPoint;
@@ -1,6 +1,25 @@
1
1
  import { Attribute, Filter } from '@sisense/sdk-data';
2
+ import { ChartDataOptions, ChartType, DrilldownOptions, GenericDataOptions, PivotTableDataOptions, PivotTableDrilldownOptions, WidgetType } from '../index.js';
2
3
  import { FiltersIgnoringRules, PureFilter } from './types.js';
3
4
  export declare function getAllowedFilters(filters: PureFilter[], ignoreFiltersOptions: FiltersIgnoringRules): Filter[];
4
5
  export declare function getFilterByAttribute(filters: Filter[], attribute: Attribute): Filter | undefined;
5
6
  export declare function createCommonFilter(attribute: Attribute, members: (string | number)[], existingCommonFilters: Filter[]): Filter;
6
7
  export declare function isEqualMembersFilters(filterA: Filter, filterB: Filter): boolean;
8
+ type GetWidgetDataOptionsWithDrilldownParams = {
9
+ widgetType?: WidgetType;
10
+ chartType?: ChartType;
11
+ dataOptions: ChartDataOptions | PivotTableDataOptions | GenericDataOptions;
12
+ drilldownOptions?: DrilldownOptions | PivotTableDrilldownOptions;
13
+ };
14
+ /**
15
+ * Applies drilldown to the widget data options.
16
+ *
17
+ * @param params - The parameters for the function.
18
+ * @param params.widgetType - The type of the widget.
19
+ * @param params.chartType - The type of the chart.
20
+ * @param params.dataOptions - The data options of the widget.
21
+ * @param params.drilldownOptions - The drilldown options of the widget.
22
+ * @returns The widget data options with drilldown applied.
23
+ */
24
+ 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 {};
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ import { WidgetsPanelRow } from '../../../../models';
3
+ import { WidgetProps } from '../../../../props';
4
+ export interface EditableLayoutRowProps {
5
+ children: (isAutoHeight: boolean) => ReactNode;
6
+ id: string;
7
+ row: WidgetsPanelRow;
8
+ widgets: WidgetProps[];
9
+ onHeightChange: (height: number) => void;
10
+ }
11
+ export declare const EditableLayoutRow: ({ children, id, row, widgets, onHeightChange, }: EditableLayoutRowProps) => import("react/jsx-runtime").JSX.Element;
@@ -4,4 +4,16 @@ export { type JumpToDashboardConfig, type JumpToDashboardConfigForPivot, type Jt
4
4
  * @internal
5
5
  */
6
6
  export { useJtdInternal } from './use-jtd';
7
+ /**
8
+ * Internal function to apply JTD functionality to widget props
9
+ * Used by framework adapters (Vue, Angular)
10
+ * @internal
11
+ */
12
+ export { applyJtdToWidget } from './use-jtd';
13
+ /**
14
+ * Internal function to normalize JTD config
15
+ * Used by framework adapters (Vue, Angular)
16
+ * @internal
17
+ */
18
+ export { normalizeToJtdConfig } from './jtd/jtd-config-transformers';
7
19
  export { useJtdWidget } from './use-jtd-widget';
@@ -10,3 +10,18 @@ export declare const getDividerStyle: (color: string, width: number) => string;
10
10
  * @returns The default layout for the widgets.
11
11
  */
12
12
  export declare const getDefaultWidgetsPanelLayout: (widgets: WidgetProps[]) => WidgetsPanelColumnLayout;
13
+ /**
14
+ * With optionally disabled auto height.
15
+ *
16
+ * @param widgetProps - The widget props to disable the auto height for.
17
+ * @param shouldDisable - Whether to disable the auto height.
18
+ * @returns The widget props with the auto height disabled if applicable.
19
+ */
20
+ export declare const withOptionallyDisabledAutoHeight: (widgetProps: WidgetProps, shouldDisable: boolean) => WidgetProps;
21
+ /**
22
+ * Checks if all widgets have auto height and supports dynamic height.
23
+ *
24
+ * @param widgetProps - The widget props to check for auto height.
25
+ * @returns True if all widgets have auto height, false otherwise.
26
+ */
27
+ export declare const checkForAutoHeight: (widgetProps: WidgetProps[]) => boolean;
@@ -1,3 +1,2 @@
1
1
  export { MemberFilterTile, type MemberFilterTileProps } from './member-filter-tile';
2
- export { BasicMemberFilterTile, type BasicMemberFilterTileProps } from './basic-member-filter-tile';
3
2
  export type { Member, SelectedMember } from './members-reducer';
@@ -1,7 +1,9 @@
1
1
  import { FunctionComponent } from 'react';
2
+ import { ScrollWrapperOnScrollEvent } from '../filter-editor-popover/common/scroll-wrapper';
2
3
  import { Member, SelectedMember } from './members-reducer';
3
4
  export interface MemberListProps {
4
5
  members: Member[];
6
+ isMembersLoading?: boolean;
5
7
  selectedMembers: SelectedMember[];
6
8
  onSelectMember: (member: Member, isSelected: boolean) => void;
7
9
  checkAllMembers: () => void;
@@ -9,5 +11,8 @@ export interface MemberListProps {
9
11
  excludeMembers: boolean;
10
12
  enableMultiSelection: boolean;
11
13
  disabled: boolean;
14
+ onListScroll?: (event: ScrollWrapperOnScrollEvent) => void;
15
+ searchValue?: string;
16
+ onSearchValueChange?: (searchString: string) => void;
12
17
  }
13
18
  export declare const MemberList: FunctionComponent<MemberListProps>;
@@ -1,7 +1,6 @@
1
1
  import type { FunctionComponent } from 'react';
2
- import { Member, SelectedMember } from './members-reducer';
2
+ import { SelectedMember } from './members-reducer';
3
3
  export interface PillSectionProps {
4
- members: Member[];
5
4
  selectedMembers: SelectedMember[];
6
5
  onToggleSelectedMember: (key: string) => void;
7
6
  excludeMembers: boolean;
@@ -113,6 +113,12 @@ export type GetFilterMembersResult = FilterMembersState & {
113
113
  * @internal
114
114
  */
115
115
  loadMore: (count: number) => void;
116
+ /**
117
+ * Flag indicating whether all items have been loaded
118
+ *
119
+ * @internal
120
+ */
121
+ isAllItemsLoaded: boolean;
116
122
  };
117
123
  /**
118
124
  * {@link useGetFilterMembers} without tracking to be used inside other hooks or components in Compose SDK.
@@ -2,7 +2,7 @@ import { DataSource, Filter } from '@sisense/sdk-data';
2
2
  import { EmptyObject } from '@sisense/sdk-query-client/src/helpers/utility-types';
3
3
  import { ChartDataOptions, PivotTableDataOptions } from '../../chart-data-options/types';
4
4
  import type { WidgetType } from '../../props';
5
- import { ChartType, DrilldownOptions, WidgetStyleOptions } from '../../types';
5
+ import { ChartType, DrilldownOptions, PivotTableDrilldownOptions, WidgetStyleOptions } from '../../types';
6
6
  /**
7
7
  * Widget data options.
8
8
  */
@@ -69,6 +69,6 @@ export interface WidgetModel {
69
69
  /**
70
70
  * Widget drilldown options.
71
71
  */
72
- drilldownOptions: DrilldownOptions;
72
+ drilldownOptions: DrilldownOptions | PivotTableDrilldownOptions;
73
73
  }
74
74
  export declare const isWidgetModel: (widget: any) => widget is WidgetModel;
@@ -9,7 +9,7 @@ import { Hierarchy } from './models';
9
9
  import { type CustomDataCellFormatter, type CustomHeaderCellFormatter } from './pivot-table/formatters/types';
10
10
  import { ExecuteQueryParams, QueryByWidgetIdState } from './query-execution';
11
11
  import { ExecuteQueryResult } from './query-execution/types';
12
- import { AreamapDataPoint, AreamapStyleOptions, AreaRangeStyleOptions, AreaStyleOptions, BoxplotDataPoint, BoxplotStyleOptions, CalendarHeatmapDataPoint, CalendarHeatmapStyleOptions, CartesianChartDataOptions, CategoricalChartDataOptions, ChartDataOptions, ChartDataPoints, ChartStyleOptions, ChartType, ChartWidgetStyleOptions, CustomDrilldownResult, CustomWidgetStyleOptions, DataPoint, DrilldownOptions, DrilldownSelection, FunnelStyleOptions, GenericDataOptions, IndicatorDataPoint, IndicatorRenderOptions, IndicatorStyleOptions, LineStyleOptions, MenuAlignment, MenuItemSection, MenuPosition, PieStyleOptions, PivotTableDataPoint, PivotTableStyleOptions, PivotTableWidgetStyleOptions, PolarStyleOptions, RegularChartStyleOptions, RegularChartType, ScatterDataPoint, ScattermapDataPoint, ScattermapStyleOptions, ScatterStyleOptions, StackableStyleOptions, StreamgraphStyleOptions, SunburstStyleOptions, TableStyleOptions, TableWidgetStyleOptions, TabularChartStyleOptions, TextWidgetDataPoint, TextWidgetStyleOptions, ThemeConfig, ThemeOid, ThemeSettings, TreemapStyleOptions, WidgetByIdStyleOptions } from './types';
12
+ import { AreamapDataPoint, AreamapStyleOptions, AreaRangeStyleOptions, AreaStyleOptions, BoxplotDataPoint, BoxplotStyleOptions, CalendarHeatmapDataPoint, CalendarHeatmapStyleOptions, CartesianChartDataOptions, CategoricalChartDataOptions, ChartDataOptions, ChartDataPoints, ChartStyleOptions, ChartType, ChartWidgetStyleOptions, CustomDrilldownResult, CustomWidgetStyleOptions, DataPoint, DrilldownOptions, DrilldownSelection, FunnelStyleOptions, GenericDataOptions, IndicatorDataPoint, IndicatorRenderOptions, IndicatorStyleOptions, LineStyleOptions, MenuAlignment, MenuItemSection, MenuPosition, PieStyleOptions, PivotTableDataPoint, PivotTableDrilldownOptions, PivotTableStyleOptions, PivotTableWidgetStyleOptions, PolarStyleOptions, RegularChartStyleOptions, RegularChartType, ScatterDataPoint, ScattermapDataPoint, ScattermapStyleOptions, ScatterStyleOptions, StackableStyleOptions, StreamgraphStyleOptions, SunburstStyleOptions, TableStyleOptions, TableWidgetStyleOptions, TabularChartStyleOptions, TextWidgetDataPoint, TextWidgetStyleOptions, ThemeConfig, ThemeOid, ThemeSettings, TreemapStyleOptions, WidgetByIdStyleOptions } from './types';
13
13
  import { DistributiveOmit } from './utils/utility-types/distributive-omit';
14
14
  import { FiltersMergeStrategy } from './widget-by-id/types';
15
15
  export type { TabberButtonsWidgetProps } from './widgets/tabber/types';
@@ -968,13 +968,13 @@ export interface PivotTableProps {
968
968
  /**
969
969
  * Callback function that is called when the pivot table cell is clicked
970
970
  *
971
- * @internal
971
+ * @category Callbacks
972
972
  */
973
973
  onDataPointClick?: PivotTableDataPointEventHandler;
974
974
  /**
975
975
  * Callback function that is called when the pivot table cell is right-clicked
976
976
  *
977
- * @internal
977
+ * @category Callbacks
978
978
  */
979
979
  onDataPointContextMenu?: PivotTableDataPointEventHandler;
980
980
  /**
@@ -1042,7 +1042,7 @@ export interface ScatterChartProps extends BaseChartProps, ScatterChartEventProp
1042
1042
  /**
1043
1043
  * Props for the {@link WidgetById} component
1044
1044
  */
1045
- export interface WidgetByIdProps extends Omit<ChartWidgetProps, 'dataSource' | 'dataOptions' | 'chartType' | 'styleOptions'> {
1045
+ export interface WidgetByIdProps extends Omit<ChartWidgetProps, 'dataSource' | 'dataOptions' | 'chartType' | 'styleOptions' | 'drilldownOptions'> {
1046
1046
  /**
1047
1047
  * Identifier of the widget
1048
1048
  *
@@ -1109,7 +1109,7 @@ export interface WidgetByIdProps extends Omit<ChartWidgetProps, 'dataSource' | '
1109
1109
  * @category Widget
1110
1110
  * @internal
1111
1111
  */
1112
- drilldownOptions?: DrilldownOptions;
1112
+ drilldownOptions?: DrilldownOptions | PivotTableDrilldownOptions;
1113
1113
  }
1114
1114
  /**
1115
1115
  * Props for the {@link ChartWidget} component
@@ -1332,16 +1332,22 @@ export interface PivotTableWidgetProps {
1332
1332
  * @category Widget
1333
1333
  */
1334
1334
  description?: string;
1335
+ /**
1336
+ * Configuration for the pivot table drilldown
1337
+ *
1338
+ * @category Widget
1339
+ */
1340
+ drilldownOptions?: PivotTableDrilldownOptions;
1335
1341
  /**
1336
1342
  * Callback function that is called when the pivot table cell is clicked
1337
1343
  *
1338
- * @internal
1344
+ * @category Callbacks
1339
1345
  */
1340
1346
  onDataPointClick?: PivotTableDataPointEventHandler;
1341
1347
  /**
1342
1348
  * Callback function that is called when the pivot table cell is right-clicked
1343
1349
  *
1344
- * @internal
1350
+ * @category Callbacks
1345
1351
  */
1346
1352
  onDataPointContextMenu?: PivotTableDataPointEventHandler;
1347
1353
  /**
@@ -1388,6 +1394,8 @@ export interface PivotTableWidgetProps {
1388
1394
  * @internal
1389
1395
  */
1390
1396
  onHeaderCellFormat?: CustomHeaderCellFormatter;
1397
+ /** @internal */
1398
+ onChange?: (props: Partial<PivotTableWidgetProps>) => void;
1391
1399
  }
1392
1400
  /**
1393
1401
  * Props for the `TextWidget` component.
@@ -24,6 +24,7 @@ export declare function newDateFormatWithExpandedYearsMasks(oldFormat: DateForma
24
24
  * Takes into consideration:
25
25
  * - the configured start month of the customer's fiscal year
26
26
  * - the currently selected date level for this particular column of data
27
+ * - avoid timezone shifts
27
28
  *
28
29
  * @param oldFormat
29
30
  * @param date
@@ -246,6 +246,12 @@ export type ExecuteQueryResult = QueryState & {
246
246
  * @internal
247
247
  */
248
248
  loadMore: (count: number) => void;
249
+ /**
250
+ * Flag indicating whether all items have been loaded
251
+ *
252
+ * @internal
253
+ */
254
+ isAllItemsLoaded: boolean;
249
255
  };
250
256
  /** Configuration for {@link useExecuteCsvQuery} hook. */
251
257
  export type ExecuteCSVQueryConfig = {
@@ -2139,6 +2139,32 @@ export type DrilldownOptions = {
2139
2139
  /** Current selections for multiple drilldowns */
2140
2140
  drilldownSelections?: DrilldownSelection[];
2141
2141
  };
2142
+ /** Configuration for the pivot table drilldown */
2143
+ export type PivotTableDrilldownOptions = PivotTableSelectableDrilldownOptions | PivotTableNonSelectableDrilldownOptions;
2144
+ /** Configuration for the pivot table drilldown with initial target and selections defined */
2145
+ export type PivotTableSelectableDrilldownOptions = {
2146
+ /** Dimensions and hierarchies available for drilldown on */
2147
+ drilldownPaths?: (Attribute | Hierarchy | HierarchyId)[];
2148
+ /** Current selections for multiple drilldowns */
2149
+ drilldownSelections: DrilldownSelection[];
2150
+ /**
2151
+ * Current pivot table data option target for the drilldown
2152
+ *
2153
+ * Can be either:
2154
+ * - An `Attribute` directly (when you know the specific attribute to target)
2155
+ * - A `DataOptionLocation` (when you need to reference a data option by its position in the data options structure)
2156
+ */
2157
+ drilldownTarget: Attribute | DataOptionLocation;
2158
+ };
2159
+ /** Configuration for the pivot table drilldown without initial target and selections */
2160
+ export type PivotTableNonSelectableDrilldownOptions = {
2161
+ /** Dimensions and hierarchies available for drilldown on */
2162
+ drilldownPaths?: (Attribute | Hierarchy | HierarchyId)[];
2163
+ /** Current selections for multiple drilldowns */
2164
+ drilldownSelections?: never;
2165
+ /** Current pivot table data option target for the drilldown */
2166
+ drilldownTarget?: never;
2167
+ };
2142
2168
  /** Selection for the drilldown */
2143
2169
  export type DrilldownSelection = {
2144
2170
  /** Points selected for drilldown */
@@ -2146,6 +2172,35 @@ export type DrilldownSelection = {
2146
2172
  /** Dimension to drilldown to */
2147
2173
  nextDimension: Attribute;
2148
2174
  };
2175
+ /**
2176
+ * Location within component data options that identifies a specific data option.
2177
+ *
2178
+ * @example
2179
+ * ```typescript
2180
+ * { dataOptionName: 'category', dataOptionIndex: 0 } // First category
2181
+ * { dataOptionName: 'value', dataOptionIndex: 1 } // Second value measure
2182
+ * ```
2183
+ */
2184
+ export type DataOptionLocation = {
2185
+ /**
2186
+ * Data option location name that identifies the property containing the data option.
2187
+ *
2188
+ * Examples:
2189
+ * - PivotTable: `'rows'` | `'columns'` | `'values'`
2190
+ * - Cartesian charts: `'category'` | `'value'` | `'breakBy'`
2191
+ * - Scatter charts: `'x'` | `'y'` | `'breakByPoint'` | `'breakByColor'` | `'size'`
2192
+ */
2193
+ dataOptionName: 'rows' | 'columns' | 'values' | 'category' | 'value' | 'breakBy' | 'x' | 'y' | 'breakByPoint' | 'breakByColor' | 'size' | 'date' | 'geo' | 'color' | 'colorBy' | 'details' | 'outliers' | 'secondary' | 'min' | 'max';
2194
+ /**
2195
+ * Data option location zero-based index.
2196
+ *
2197
+ * Required for array-based locations (e.g., `rows`, `columns`, `values`, `category`).
2198
+ * Optional for single-value locations (e.g., `x`, `y`, `date`).
2199
+ *
2200
+ * @default 0
2201
+ */
2202
+ dataOptionIndex?: number;
2203
+ };
2149
2204
  /**
2150
2205
  * Data points in a chart. Array of data points of the same data point type.
2151
2206
  */
@@ -2194,12 +2249,17 @@ export type DataPoint = {
2194
2249
  export type DataPointEntry = {
2195
2250
  /** The data option associated with this entry */
2196
2251
  dataOption: Column | StyledColumn | MeasureColumn | CalculatedMeasureColumn | StyledMeasureColumn;
2252
+ /**
2253
+ * The location of the data option in the data options structure
2254
+ * @internal
2255
+ */
2256
+ dataOptionLocation?: DataOptionLocation;
2197
2257
  /** The attribute associated with this data point entry */
2198
2258
  attribute?: Attribute;
2199
2259
  /** The measure associated with this data point entry */
2200
2260
  measure?: Measure;
2201
2261
  /** The raw value of the data point */
2202
- value?: string | number;
2262
+ value: string | number;
2203
2263
  /** The formatted value of the data point */
2204
2264
  displayValue?: string;
2205
2265
  };
@@ -2304,20 +2364,14 @@ export type TextWidgetDataPoint = {
2304
2364
  export type PivotTableDataPoint = {
2305
2365
  /**
2306
2366
  * Boolean flag that defines if the data point is a data cell
2307
- *
2308
- * @internal
2309
2367
  */
2310
2368
  isDataCell: boolean;
2311
2369
  /**
2312
2370
  * Boolean flag that defines if the data point is a caption cell
2313
- *
2314
- * @internal
2315
2371
  */
2316
2372
  isCaptionCell: boolean;
2317
2373
  /**
2318
2374
  * Boolean flag that defines if the data point is a total cell (subtotal or grandtotal)
2319
- *
2320
- * @internal
2321
2375
  */
2322
2376
  isTotalCell: boolean;
2323
2377
  /**
@@ -2439,7 +2493,7 @@ export type HighchartsPoint = {
2439
2493
  maskedBreakByPoint?: string;
2440
2494
  maskedBreakByColor?: string;
2441
2495
  maskedSize?: string;
2442
- rawValue?: string | number;
2496
+ rawValue: string | number;
2443
2497
  xValue?: (string | number)[];
2444
2498
  xDisplayValue?: string[];
2445
2499
  rawValues?: (string | number)[];
@@ -0,0 +1,43 @@
1
+ import type { AnyColumn, ChartDataOptions, PivotTableDataOptions } from '../../chart-data-options/types';
2
+ import type { DataOptionLocation } from '../../types';
3
+ /**
4
+ * Retrieves a data option from the dataOptions structure at the specified location.
5
+ *
6
+ * This function is the inverse of {@link getDataOptionLocation} - it takes a location
7
+ * and returns the data option at that location.
8
+ *
9
+ * The function handles both array-based locations (e.g., `category`, `rows`, `values`)
10
+ * and single-value locations (e.g., `x`, `y`, `date`). For array-based locations,
11
+ * the `dataOptionIndex` specifies which item to retrieve (defaults to 0 if not provided).
12
+ *
13
+ * @param dataOptions - The data options structure to search within (e.g., from various chart types or pivot table)
14
+ * @param location - The location of the data option to retrieve
15
+ * @returns The data option at the specified location, or `undefined` if the location doesn't exist
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const dataOptions = {
20
+ * category: [DM.Commerce.Date, DM.Category.Category],
21
+ * value: [DM.Commerce.Revenue],
22
+ * breakBy: [],
23
+ * };
24
+ *
25
+ * // Get first category
26
+ * const firstCategory = getDataOptionByLocation(dataOptions, {
27
+ * dataOptionName: 'category',
28
+ * dataOptionIndex: 0,
29
+ * });
30
+ * // Result: DM.Commerce.Date
31
+ *
32
+ * // Get single value (index defaults to 0)
33
+ * const scatterDataOptions = {
34
+ * x: DM.Commerce.Date,
35
+ * y: DM.Commerce.Revenue,
36
+ * };
37
+ * const xValue = getDataOptionByLocation(scatterDataOptions, {
38
+ * dataOptionName: 'x',
39
+ * });
40
+ * // Result: DM.Commerce.Date
41
+ * ```
42
+ */
43
+ export declare function getDataOptionByLocation<T = AnyColumn>(dataOptions: ChartDataOptions | PivotTableDataOptions, location: DataOptionLocation): T | undefined;
@@ -0,0 +1,46 @@
1
+ import { Column } from '@sisense/sdk-data';
2
+ import type { ChartDataOptions, PivotTableDataOptions, StyledColumn } from '../../chart-data-options/types';
3
+ import type { DataOptionLocation } from '../../types';
4
+ /**
5
+ * Finds the location of a data option within abstract dataOptions structure.
6
+ *
7
+ * This utility searches through various chart data option structures (e.g., `PivotTableDataOptions`,
8
+ * `ScattermapChartDataOptions`, `CartesianChartDataOptions`) to locate a specific `Column` (or `StyledColumn`).
9
+ *
10
+ * The function uses a generic approach that inspects properties of the `dataOptions` object:
11
+ * - If a property is an array, each item is treated as a potential data option
12
+ * - If a property is an object, it is treated as a potential data option
13
+ *
14
+ * Data options can be:
15
+ * - Plain `Column` (attribute)
16
+ * - `StyledColumn` (attribute with nested `column` property)
17
+ *
18
+ * **Limitations:**
19
+ * - It will **not** find `MeasureColumn`, `CalculatedMeasureColumn`, or `StyledMeasureColumn`. Attempting to search for measures will return `undefined`
20
+ *
21
+ * @param dataOptions - The data options structure to search within (e.g., from various chart types or pivot table)
22
+ * @param targetColumn - The target `Column` (attribute) or `StyledColumn` to find
23
+ * @returns The location of the data option if found, otherwise `undefined`
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * const dataOptions = {
28
+ * category: [DM.Commerce.Date],
29
+ * value: [DM.Commerce.Revenue],
30
+ * breakBy: [],
31
+ * };
32
+ * const location = getDataOptionLocation(dataOptions, DM.Commerce.Date);
33
+ * // Result: { dataOptionName: 'category', dataOptionIndex: 0 }
34
+ * ```
35
+ */
36
+ export declare function getDataOptionLocation(dataOptions: ChartDataOptions | PivotTableDataOptions, targetColumn: Column | StyledColumn): DataOptionLocation | undefined;
37
+ /**
38
+ * Compares two columns to determine if they represent the same attribute.
39
+ *
40
+ * This function handles both plain `Column` and `StyledColumn` arguments variants.
41
+ *
42
+ * @param columnA - The first column to compare (can be `Column` or `StyledColumn`)
43
+ * @param columnB - The second column to compare (can be `Column` or `StyledColumn`)
44
+ * @returns `true` if both columns represent the same attribute, `false` otherwise
45
+ */
46
+ export declare function isSameColumn(columnA: Column | StyledColumn, columnB: Column | StyledColumn): boolean;
@@ -0,0 +1,3 @@
1
+ export { getDataOptionLocation, isSameColumn } from './get-data-option-location';
2
+ export { getDataOptionByLocation } from './get-data-option-by-location';
3
+ export { setDataOptionAtLocation } from './set-data-option-at-location';
@@ -0,0 +1,39 @@
1
+ import type { AnyColumn, ChartDataOptions, PivotTableDataOptions } from '../../chart-data-options/types';
2
+ import type { DataOptionLocation } from '../../types';
3
+ /**
4
+ * Sets a data option in the dataOptions structure at the specified location.
5
+ *
6
+ * This function creates a new dataOptions object with the value updated at the specified location,
7
+ * following immutable patterns. The original dataOptions object is not modified.
8
+ *
9
+ * The function handles both array-based locations (e.g., `category`, `rows`, `values`)
10
+ * and single-value locations (e.g., `x`, `y`, `date`). For array-based locations,
11
+ * the `dataOptionIndex` specifies which item to update (defaults to 0 if not provided).
12
+ *
13
+ * @param value - The new value to set at the specified location
14
+ * @param location - The location where to set the data option
15
+ * @param dataOptions - The data options structure to update (e.g., from various chart types or pivot table)
16
+ * @returns A new dataOptions object with the updated value, or the original object if the location is invalid
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const dataOptions = {
21
+ * category: [DM.Commerce.Date.Years, DM.Category.Category],
22
+ * value: [DM.Commerce.Revenue],
23
+ * breakBy: [],
24
+ * };
25
+ *
26
+ * // Set first category
27
+ * const updatedDataOptions = setDataOptionAtLocation(DM.Commerce.Date.Months, { dataOptionName: 'category', dataOptionIndex: 0 }, dataOptions);
28
+ * // Result: { category: [DM.Commerce.Date.Months, DM.Category.Category], ... }
29
+ *
30
+ * // Set single value (index defaults to 0)
31
+ * const scatterDataOptions = {
32
+ * x: DM.Category.Category,
33
+ * y: DM.Commerce.Revenue,
34
+ * };
35
+ * const updatedScatterDataOptions = setDataOptionAtLocation(DM.Commerce.Cost, { dataOptionName: 'y' }, scatterDataOptions);
36
+ * // Result: { x: DM.Category.Category, y: DM.Commerce.Cost }
37
+ * ```
38
+ */
39
+ export declare function setDataOptionAtLocation<T extends ChartDataOptions | PivotTableDataOptions>(value: AnyColumn, location: DataOptionLocation, dataOptions: T): T;
@@ -1,3 +1,3 @@
1
- import { DrilldownOptions } from '../types.js';
1
+ import { DrilldownOptions, PivotTableDrilldownOptions } from '../types.js';
2
2
  import { FusionWidgetType, Panel, PanelItem } from './types.js';
3
- export declare const extractDrilldownOptions: (widgetType: FusionWidgetType, panels: Panel[], drillHistory?: PanelItem[], enableDrillToAnywhere?: boolean) => DrilldownOptions;
3
+ export declare const extractDrilldownOptions: (widgetType: FusionWidgetType, panels: Panel[], drillHistory?: PanelItem[], enableDrillToAnywhere?: boolean) => DrilldownOptions | PivotTableDrilldownOptions;
@@ -1,5 +1,5 @@
1
1
  import { TabberButtonsWidgetStyleOptions } from '../../types.js';
2
- import { TabberWidgetDtoStyle } from '../types.js';
2
+ import { TabberWidgetDto, TabberWidgetDtoStyle } from '../types.js';
3
3
  /**
4
4
  * Extracts style options from TabberWidgetDtoStyle.
5
5
  * Pure function that transforms tabber widget DTO style to CSDK style options.
@@ -14,10 +14,10 @@ export declare function extractTabberButtonsWidgetStyleOptions(tabberStyleDto: T
14
14
  * Extracts custom options from TabberWidgetDtoStyle.
15
15
  * Pure function that extracts tab names and active tab index from DTO style.
16
16
  *
17
- * @param tabberStyleDto - The tabber widget style from DTO
17
+ * @param tabberDto - The tabber widget props DTO
18
18
  * @returns Object containing tab names and active tab index
19
19
  */
20
- export declare function extractTabberButtonsWidgetCustomOptions(tabberStyleDto: TabberWidgetDtoStyle): {
20
+ export declare function extractTabberButtonsWidgetCustomOptions(tabberDto: TabberWidgetDto): {
21
21
  tabNames: string[];
22
22
  activeTab: number;
23
23
  };