@sisense/sdk-ui 2.21.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.
Files changed (136) hide show
  1. package/dist/ai.cjs +58 -58
  2. package/dist/ai.js +863 -846
  3. package/dist/analytics-composer/node.cjs +1 -1
  4. package/dist/analytics-composer/node.js +718 -709
  5. package/dist/analytics-composer.cjs +1 -1
  6. package/dist/analytics-composer.js +6 -6
  7. package/dist/{dimensions-DuUqQgpi.js → dimensions-BiLyFpCg.js} +1 -1
  8. package/dist/{dimensions-DVGn8ORR.cjs → dimensions-X4_igtmO.cjs} +1 -1
  9. package/dist/{execute-query-B21bnb05.js → execute-query-BEeqqDl6.js} +1483 -1490
  10. package/dist/execute-query-DJDE0zRU.cjs +1 -0
  11. package/dist/{index-0brX9D6q.cjs → index-NyouhE_A.cjs} +1 -1
  12. package/dist/{index-Ck90GjPy.js → index-kxX21arA.js} +15 -1
  13. package/dist/index.cjs +404 -404
  14. package/dist/index.js +22869 -21774
  15. package/dist/index.umd.js +644 -644
  16. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/index.d.ts +1 -1
  17. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/translate-dashboard-utils.d.ts +8 -1
  18. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/types.d.ts +9 -2
  19. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/index.d.ts +4 -0
  20. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/persist-dashboard-model-middleware.d.ts +13 -0
  21. 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
  22. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/use-dashboard-model-reducer.d.ts +9 -0
  23. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/dashboard-model-reducer/utils.d.ts +28 -0
  24. package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/use-dashboard-persistence.d.ts +4 -4
  25. package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/duplicate-widget/duplicate-widget-utils.d.ts +34 -0
  26. package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/duplicate-widget/index.d.ts +2 -0
  27. package/dist/packages/sdk-ui/src/domains/dashboarding/hooks/duplicate-widget/use-duplicate-widget-menu-item.d.ts +57 -0
  28. package/dist/packages/sdk-ui/src/domains/dashboarding/types.d.ts +43 -2
  29. package/dist/packages/sdk-ui/src/domains/dashboarding/use-composed-dashboard.d.ts +15 -3
  30. package/dist/packages/sdk-ui/src/domains/filters/components/cascading-filter-tile/cascading-filter-tile.d.ts +7 -0
  31. package/dist/packages/sdk-ui/src/domains/filters/components/cascading-filter-tile/cascading-level-filter.d.ts +4 -1
  32. 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
  33. 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
  34. package/dist/packages/sdk-ui/src/domains/filters/components/criteria-filter-tile/criteria-filter-tile.d.ts +7 -0
  35. package/dist/packages/sdk-ui/src/domains/filters/components/custom-filter-tile.d.ts +7 -0
  36. package/dist/packages/sdk-ui/src/domains/filters/components/date-filter/date-range-filter-tile/date-range-filter-tile.d.ts +7 -0
  37. package/dist/packages/sdk-ui/src/domains/filters/components/date-filter/relative-date-filter-tile/relative-date-filter-tile.d.ts +7 -0
  38. package/dist/packages/sdk-ui/src/domains/filters/components/{filter-tile.d.ts → filter-tile/filter-tile.d.ts} +7 -0
  39. package/dist/packages/sdk-ui/src/domains/filters/components/filter-tile/index.d.ts +1 -0
  40. package/dist/packages/sdk-ui/src/domains/filters/components/filter-tile/types.d.ts +36 -0
  41. package/dist/packages/sdk-ui/src/domains/filters/components/filter-tile-container.d.ts +6 -0
  42. package/dist/packages/sdk-ui/src/domains/filters/components/filters-panel/types.d.ts +13 -0
  43. package/dist/packages/sdk-ui/src/domains/filters/components/index.d.ts +1 -1
  44. package/dist/packages/sdk-ui/src/domains/filters/components/member-filter-tile/member-filter-tile.d.ts +7 -0
  45. package/dist/packages/sdk-ui/src/domains/filters/components/unsupported-filter-tile.d.ts +10 -1
  46. package/dist/packages/sdk-ui/src/domains/filters/shared/clone-filter-and-toggle-locked.d.ts +7 -0
  47. package/dist/packages/sdk-ui/src/domains/filters/shared/filter-tile-menu-button.d.ts +10 -0
  48. package/dist/packages/sdk-ui/src/domains/filters/shared/use-filter-tile-menu-items/use-filter-tile-lock-menu-item.d.ts +15 -0
  49. package/dist/packages/sdk-ui/src/domains/filters/shared/use-filter-tile-menu-items/use-filter-tile-menu-items.d.ts +14 -0
  50. package/dist/packages/sdk-ui/src/domains/formulas/index.d.ts +0 -1
  51. package/dist/packages/sdk-ui/src/domains/formulas/use-get-shared-formula.d.ts +20 -7
  52. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-style-options/index.d.ts +1 -0
  53. package/dist/packages/sdk-ui/src/domains/widgets/components/widget-by-id/translate-widget-style-options/to-widget-dto-style.d.ts +63 -0
  54. package/dist/packages/sdk-ui/src/domains/widgets/helpers/header-menu-utils.d.ts +1 -1
  55. package/dist/packages/sdk-ui/src/domains/widgets/helpers/index.d.ts +1 -1
  56. package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header/types.d.ts +1 -17
  57. package/dist/packages/sdk-ui/src/domains/widgets/shared/widget-header/widget-menu-button.d.ts +1 -1
  58. package/dist/packages/sdk-ui/src/infra/api/types/dashboard-dto.d.ts +2 -1
  59. package/dist/packages/sdk-ui/src/infra/app/client-application.d.ts +17 -0
  60. package/dist/packages/sdk-ui/src/infra/app/settings/settings.d.ts +3 -0
  61. package/dist/packages/sdk-ui/src/infra/app/settings/types/deployment-props.d.ts +1 -1
  62. package/dist/packages/sdk-ui/src/infra/app/settings/types/features.d.ts +18 -1
  63. package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/index.d.ts +5 -0
  64. package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/plugin-context.d.ts +15 -0
  65. package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/plugin-provider.d.ts +21 -0
  66. package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/types.d.ts +50 -0
  67. package/dist/packages/sdk-ui/src/infra/contexts/plugin-provider/validate-plugins.d.ts +9 -0
  68. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/de-de.d.ts +14 -0
  69. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/en-us.d.ts +14 -0
  70. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/es-ar.d.ts +14 -0
  71. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/es-es.d.ts +14 -0
  72. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/fr-fr.d.ts +14 -0
  73. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/it-it.d.ts +14 -0
  74. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ja-jp.d.ts +14 -0
  75. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ko-kr.d.ts +14 -0
  76. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/nl-nl.d.ts +14 -0
  77. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/pt-br.d.ts +14 -0
  78. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/ru-ru.d.ts +14 -0
  79. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/tr-tr.d.ts +14 -0
  80. package/dist/packages/sdk-ui/src/infra/translation/resources/__external__/zh-cn.d.ts +14 -0
  81. package/dist/packages/sdk-ui/src/infra/translation/resources/en.d.ts +14 -0
  82. package/dist/packages/sdk-ui/src/infra/translation/resources/index.d.ts +28 -0
  83. package/dist/packages/sdk-ui/src/modules/ai/api/chat-rest-api.d.ts +2 -1
  84. package/dist/packages/sdk-ui/src/modules/ai/api/narration-endpoints.d.ts +2 -1
  85. package/dist/packages/sdk-ui/src/modules/ai/get-nlg-insights-from-widget.d.ts +1 -0
  86. package/dist/packages/sdk-ui/src/props.d.ts +13 -20
  87. package/dist/packages/sdk-ui/src/public-api/internal.d.ts +1 -0
  88. package/dist/packages/sdk-ui/src/public-api/public.d.ts +2 -2
  89. package/dist/packages/sdk-ui/src/public-api/sisense-internal.d.ts +6 -0
  90. package/dist/packages/sdk-ui/src/shared/components/alert/alert.d.ts +91 -0
  91. package/dist/packages/sdk-ui/src/shared/components/alert/index.d.ts +2 -0
  92. package/dist/packages/sdk-ui/src/shared/components/menu/menu-button.d.ts +2 -1
  93. package/dist/packages/sdk-ui/src/shared/components/quota-notification/quota-notification.d.ts +32 -0
  94. package/dist/packages/sdk-ui/src/shared/hooks/use-app-settings.d.ts +11 -0
  95. package/dist/packages/sdk-ui/src/shared/hooks/use-quota-notification.d.ts +54 -0
  96. package/dist/packages/sdk-ui/src/shared/hooks/use-quota-warning-dismissed.d.ts +8 -0
  97. package/dist/packages/sdk-ui/src/shared/icons/warning-icon.d.ts +6 -0
  98. package/dist/packages/sdk-ui/src/shared/icons/x-circle-icon.d.ts +6 -0
  99. package/dist/packages/sdk-ui/src/shared/types/menu-item.d.ts +17 -0
  100. package/dist/{use-common-filters-DBqRT0et.js → quota-notification-D6oMJal8.js} +10460 -10234
  101. package/dist/{use-common-filters-CXJN3RSs.cjs → quota-notification-z3dv2KoH.cjs} +129 -129
  102. package/dist/translations/de-de.cjs +1 -1
  103. package/dist/translations/de-de.js +16 -2
  104. package/dist/translations/en-us.cjs +1 -1
  105. package/dist/translations/en-us.js +1 -1
  106. package/dist/translations/es-ar.cjs +1 -1
  107. package/dist/translations/es-ar.js +16 -2
  108. package/dist/translations/es-es.cjs +1 -1
  109. package/dist/translations/es-es.js +16 -2
  110. package/dist/translations/fr-fr.cjs +1 -1
  111. package/dist/translations/fr-fr.js +16 -2
  112. package/dist/translations/it-it.cjs +1 -1
  113. package/dist/translations/it-it.js +16 -2
  114. package/dist/translations/ja-jp.cjs +1 -1
  115. package/dist/translations/ja-jp.js +16 -2
  116. package/dist/translations/ko-kr.cjs +1 -1
  117. package/dist/translations/ko-kr.js +16 -2
  118. package/dist/translations/nl-nl.cjs +1 -1
  119. package/dist/translations/nl-nl.js +16 -2
  120. package/dist/translations/pt-br.cjs +1 -1
  121. package/dist/translations/pt-br.js +16 -2
  122. package/dist/translations/ru-ru.cjs +1 -1
  123. package/dist/translations/ru-ru.js +16 -2
  124. package/dist/translations/tr-tr.cjs +1 -1
  125. package/dist/translations/tr-tr.js +16 -2
  126. package/dist/translations/zh-cn.cjs +1 -1
  127. package/dist/translations/zh-cn.js +16 -2
  128. package/dist/{types-Ch9J6ycn.cjs → types-CoY6F8Ma.cjs} +1 -1
  129. package/dist/{types-Ockb-LJ0.js → types-ixSwJkxM.js} +1 -1
  130. package/dist/{utils-BXDqo_yg.js → utils-BP-BglHE.js} +4181 -4157
  131. package/dist/{utils-DH69_bUK.cjs → utils-C8YMrOdw.cjs} +36 -36
  132. package/dist/{widget-composer-DfVCQL2G.js → widget-composer-CUUFoCb9.js} +3 -3
  133. package/dist/{widget-composer-DgCWcMJ1.cjs → widget-composer-DI4sHaNe.cjs} +3 -3
  134. package/package.json +10 -9
  135. package/dist/execute-query-BIkhszY1.cjs +0 -1
  136. /package/dist/packages/sdk-ui/src/domains/dashboarding/dashboard-model/use-dashboard-model/{use-dasboard-model-utils.d.ts → use-dashboard-model-utils.d.ts} +0 -0
@@ -1,5 +1,6 @@
1
1
  import type { FunctionComponent, ReactNode } from 'react';
2
2
  import { DeepRequired } from 'ts-essentials';
3
+ import type { MenuItem } from '../../../shared/types/menu-item';
3
4
  import { FilterVariant } from './common/filter-utils';
4
5
  declare const BaseContainer: import("@emotion/styled").StyledComponent<{
5
6
  theme?: import("@emotion/react").Theme | undefined;
@@ -40,6 +41,11 @@ interface FilterTileContainerProps {
40
41
  onDelete?: () => void;
41
42
  onEdit?: () => void;
42
43
  locked?: boolean;
44
+ /**
45
+ * Header menu items.
46
+ * When provided, the menu button is shown with these items.
47
+ */
48
+ menuItems?: MenuItem[];
43
49
  /**
44
50
  * Render header title
45
51
  *
@@ -61,6 +61,19 @@ export interface FiltersPanelConfig {
61
61
  */
62
62
  enabled?: boolean;
63
63
  };
64
+ /**
65
+ * Configuration for locking a filter.
66
+ *
67
+ * @internal
68
+ */
69
+ lockFilter?: {
70
+ /**
71
+ * Determines whether the possibility to lock a filter is enabled.
72
+ *
73
+ * If not specified, the default value is `false`.
74
+ */
75
+ enabled?: boolean;
76
+ };
64
77
  };
65
78
  }
66
79
  /** @internal */
@@ -4,4 +4,4 @@ export * from './criteria-filter-tile/index.js';
4
4
  export * from './cascading-filter-tile/index.js';
5
5
  export * from './filters-panel/index.js';
6
6
  export * from './custom-filter-tile.js';
7
- export * from './filter-tile.js';
7
+ export * from './filter-tile';
@@ -1,6 +1,7 @@
1
1
  import { FunctionComponent } from 'react';
2
2
  import { Attribute, DataSource, Filter } from '@sisense/sdk-data';
3
3
  import { FilterTileDesignOptions } from '../filter-tile-container';
4
+ import { FilterTileConfig } from '../filter-tile/types';
4
5
  /**
5
6
  * Props of the {@link MemberFilterTile} component.
6
7
  */
@@ -27,6 +28,12 @@ export interface MemberFilterTileProps {
27
28
  parentFilters?: Filter[];
28
29
  /** Design options for the tile @internal */
29
30
  tileDesignOptions?: FilterTileDesignOptions;
31
+ /**
32
+ * Config for the filter tile
33
+ *
34
+ * @internal
35
+ */
36
+ config?: FilterTileConfig;
30
37
  /**
31
38
  * Render header title
32
39
  *
@@ -1,6 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { Filter } from '@sisense/sdk-data';
3
3
  import { FilterTileDesignOptions } from '../../../domains/filters/components/filter-tile-container';
4
+ import type { FilterTileConfig } from '../../../domains/filters/components/filter-tile/types';
4
5
  export type UnsupportedFilterTileProps = {
5
6
  filter: Filter;
6
7
  design?: FilterTileDesignOptions;
@@ -8,6 +9,14 @@ export type UnsupportedFilterTileProps = {
8
9
  onDelete?: () => void;
9
10
  /** Filter edit callback */
10
11
  onEdit?: () => void;
12
+ /** Callback to handle filter change (used for lock toggle) */
13
+ onChange?: (filter: Filter) => void;
14
+ /**
15
+ * Config for the filter tile
16
+ *
17
+ * @internal
18
+ */
19
+ config?: FilterTileConfig;
11
20
  /**
12
21
  * Render header title
13
22
  *
@@ -20,4 +29,4 @@ export type UnsupportedFilterTileProps = {
20
29
  *
21
30
  * @internal
22
31
  */
23
- export declare const UnsupportedFilterTile: ({ filter, design, onDelete, onEdit, renderHeaderTitle, }: UnsupportedFilterTileProps) => import("react/jsx-runtime").JSX.Element;
32
+ export declare const UnsupportedFilterTile: ({ filter, design, onDelete, onEdit, onChange, config, renderHeaderTitle, }: UnsupportedFilterTileProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { Filter } from '@sisense/sdk-data';
2
+ /**
3
+ * Clones a filter with a toggled 'locked' state.
4
+ *
5
+ * @param filter - Filter to clone
6
+ */
7
+ export declare const cloneFilterAndToggleLocked: <TFilter extends Filter>(filter: TFilter) => TFilter;
@@ -0,0 +1,10 @@
1
+ import type { MenuItem } from '../../../shared/types/menu-item.js';
2
+ export interface FilterTileMenuButtonProps {
3
+ /** Menu items to show. Prepared by the filter tile. */
4
+ menuItems: MenuItem[];
5
+ }
6
+ /**
7
+ * Menu button that opens a context menu with externally provided items.
8
+ * Used by filter tiles; menu items are built and merged with config in each tile.
9
+ */
10
+ export declare const FilterTileMenuButton: ({ menuItems }: FilterTileMenuButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import type { MenuItem } from '../../../../shared/types/menu-item';
2
+ /** Id for the lock/unlock menu item of the filter tile. */
3
+ export declare const FILTER_TILE_LOCK_MENU_ITEM_ID = "filter-tile-lock";
4
+ /**
5
+ * Builds the lock menu item for the filter tile.
6
+ *
7
+ * @param locked - Current lock state
8
+ * @param onLockToggle - Handler for lock toggle
9
+ * @returns Filter tile lock menu item
10
+ * @internal
11
+ */
12
+ export declare function useFilterTileLockMenuItem({ locked, onLockToggle, }: {
13
+ locked: boolean;
14
+ onLockToggle: () => void;
15
+ }): MenuItem;
@@ -0,0 +1,14 @@
1
+ import { Filter } from '@sisense/sdk-data';
2
+ import type { MenuItem } from '../../../../shared/types/menu-item';
3
+ import type { FilterTileConfig } from '../../components/filter-tile/types';
4
+ /**
5
+ * Builds the complete menu items list for a filter tile,
6
+ * conditionally prepending them based on config.
7
+ *
8
+ * @param filter - The current filter
9
+ * @param config - Filter tile configuration
10
+ * @param onChange - Callback invoked when the filter changes (e.g., lock toggle)
11
+ * @returns Filter tile menu items
12
+ * @internal
13
+ */
14
+ export declare function useFilterTileMenuItems<T extends Filter>(filter: T, config: FilterTileConfig | undefined, onChange: ((filter: T) => void) | undefined): MenuItem[];
@@ -1,2 +1 @@
1
- export * from './fetch-formula';
2
1
  export * from './use-get-shared-formula';
@@ -1,7 +1,24 @@
1
- import { CalculatedMeasure } from '@sisense/sdk-data';
2
- import { UseGetSharedFormulaParams } from '../../props';
3
- import { DataState } from '../../shared/hooks/data-load-state-reducer';
1
+ import { CalculatedMeasure, DataSource } from '@sisense/sdk-data';
4
2
  import { HookEnableParam } from '../../shared/hooks/types';
3
+ /**
4
+ * Params of the {@link useGetSharedFormula} hook
5
+ *
6
+ * Can consist either of an oid or a name/dataSource pair
7
+ */
8
+ export interface UseGetSharedFormulaParams extends HookEnableParam {
9
+ /**
10
+ * Formula identifier
11
+ */
12
+ oid?: string;
13
+ /**
14
+ * Formula name
15
+ */
16
+ name?: string;
17
+ /**
18
+ * Data source - e.g. `Sample ECommerce`
19
+ */
20
+ dataSource?: DataSource;
21
+ }
5
22
  /**
6
23
  * Parameters for {@link useGetSharedFormula} hook.
7
24
  */
@@ -95,7 +112,3 @@ export declare const useGetSharedFormula: (params: UseGetSharedFormulaParams) =>
95
112
  * @internal
96
113
  */
97
114
  export declare function useGetSharedFormulaInternal(params: UseGetSharedFormulaParams): SharedFormulaState;
98
- /**
99
- * @internal
100
- */
101
- export declare function translateToFormulaResponse(dataState: DataState<CalculatedMeasure | null>): SharedFormulaState;
@@ -1 +1,2 @@
1
1
  export * from './translate-widget-style-options.js';
2
+ export * from './to-widget-dto-style.js';
@@ -0,0 +1,63 @@
1
+ import type { AxisLabel, DataLimits, LegendOptions, LineStyleOptions, LineWidth, Markers, Navigator, SeriesLabels } from '../../../../../types.js';
2
+ import type { AxisStyle, CartesianWidgetStyle } from '../types.js';
3
+ /**
4
+ * Maps SDK legend options to Fusion DTO legend style.
5
+ *
6
+ * @internal
7
+ */
8
+ export declare function toLegendStyle(legend?: LegendOptions): CartesianWidgetStyle['legend'];
9
+ /**
10
+ * Maps SDK axis label options to Fusion DTO axis style.
11
+ * Fields not stored in SDK (ticks, inactive) use sensible defaults.
12
+ *
13
+ * @internal
14
+ */
15
+ export declare function toAxisStyle(axisLabel?: AxisLabel): AxisStyle;
16
+ /**
17
+ * Maps SDK series labels to Fusion DTO labels style.
18
+ * For line charts (non-stacked), only enabled and rotation are restored.
19
+ *
20
+ * @internal
21
+ */
22
+ export declare function toSeriesLabelsStyle(seriesLabels?: SeriesLabels): CartesianWidgetStyle['seriesLabels'];
23
+ /**
24
+ * Maps SDK navigator options to Fusion DTO navigator style.
25
+ * scrollerLocation is not written back (stored in widget.options).
26
+ *
27
+ * @internal
28
+ */
29
+ export declare function toNavigatorStyle(navigator?: Navigator): CartesianWidgetStyle['navigator'];
30
+ /** Allowed line width tokens for CartesianWidgetStyle (thin=1, bold=3, thick=5). */
31
+ declare const LINE_WIDTH_TOKENS: readonly ["thin", "bold", "thick"];
32
+ export type LineWidthToken = (typeof LINE_WIDTH_TOKENS)[number];
33
+ /**
34
+ * Maps SDK line width options to Fusion DTO line width style.
35
+ * Validates string tokens and maps numeric widths to 'thin' | 'bold' | 'thick'.
36
+ *
37
+ * @internal
38
+ */
39
+ export declare function toLineWidthStyle(lineWidth?: LineWidth | {
40
+ width?: string | number;
41
+ }): CartesianWidgetStyle['lineWidth'];
42
+ /**
43
+ * Maps SDK markers options to Fusion DTO markers style.
44
+ *
45
+ * @internal
46
+ */
47
+ export declare function toMarkersStyle(markers?: Markers): CartesianWidgetStyle['markers'];
48
+ /**
49
+ * Maps SDK data limits to Fusion DTO data limits.
50
+ *
51
+ * @internal
52
+ */
53
+ export declare function toDataLimitsStyle(dataLimits?: DataLimits): CartesianWidgetStyle['dataLimits'];
54
+ /**
55
+ * Maps SDK line chart style options to Fusion CartesianWidgetStyle (DTO).
56
+ * Used when serializing a line chart widget back to WidgetDto.
57
+ *
58
+ * @param styleOptions - Extracted line chart style options from WidgetModel.styleOptions
59
+ * @returns Fusion CartesianWidgetStyle for the widget DTO
60
+ * @internal
61
+ */
62
+ export declare function toLineWidgetStyle(styleOptions: LineStyleOptions): CartesianWidgetStyle;
63
+ export {};
@@ -1,5 +1,5 @@
1
+ import { MenuItem } from '../../../shared/types/menu-item';
1
2
  import { WidgetProps } from '../components/widget/types';
2
- import { MenuItem } from '../shared/widget-header/types';
3
3
  /**
4
4
  * Adds a menu item to the widget header.
5
5
  * @param menuItem - The menu item to add.
@@ -3,5 +3,5 @@
3
3
  * @internal
4
4
  */
5
5
  export declare const widgetHelpers: {
6
- withHeaderMenuItem(menuItem: import("../shared/widget-header/types").MenuItem): (widget: import("../components/widget").WidgetProps) => import("../components/widget").WidgetProps;
6
+ withHeaderMenuItem(menuItem: import("../../../shared/types/menu-item").MenuItem): (widget: import("../components/widget").WidgetProps) => import("../components/widget").WidgetProps;
7
7
  };
@@ -1,3 +1,4 @@
1
+ import { MenuItem } from '../../../../shared/types/menu-item';
1
2
  /**
2
3
  * Config for the info button (data passed into the header/toolbar API)
3
4
  */
@@ -39,20 +40,3 @@ export type ToolbarMenuConfig = {
39
40
  */
40
41
  items?: MenuItem[];
41
42
  };
42
- /**
43
- * Menu item in the toolbar
44
- */
45
- export type MenuItem = {
46
- /**
47
- * Unique identifier for the menu item
48
- */
49
- id: string;
50
- /**
51
- * Handler function to be called when the menu item is clicked
52
- */
53
- onClick: () => void;
54
- /**
55
- * Caption of the menu item
56
- */
57
- caption: string;
58
- };
@@ -1,4 +1,4 @@
1
- import { MenuItem } from './types';
1
+ import { MenuItem } from '../../../../shared/types/menu-item';
2
2
  export interface WidgetMenuButtonProps {
3
3
  menuItems: MenuItem[];
4
4
  }
@@ -7,7 +7,8 @@ export type LayoutDto = {
7
7
  width: number;
8
8
  cells?: {
9
9
  subcells: {
10
- width: number;
10
+ /** Omitted by Fusion for single-widget layouts; defaults to 100 during translation. */
11
+ width?: number;
11
12
  elements: {
12
13
  height: number | string;
13
14
  widgetid: string;
@@ -91,6 +91,23 @@ export type AppConfig = {
91
91
  */
92
92
  alwaysShowErrorText?: boolean;
93
93
  };
94
+ /**
95
+ * Custom HTTP headers to attach to every request made by the SDK.
96
+ *
97
+ * Useful for forwarding tracking-related headers (e.g. `x-request-id`, `x-correlation-id`)
98
+ * so that downstream services can correlate SDK traffic.
99
+ *
100
+ * @example
101
+ * ```tsx
102
+ * appConfig={{
103
+ * customHttpHeaders: {
104
+ * 'x-correlation-id': '550e8400-e29b-41d4-a716-446655440000',
105
+ * },
106
+ * }}
107
+ * ```
108
+ * @internal
109
+ */
110
+ customHttpHeaders?: Record<string, string>;
94
111
  /**
95
112
  * Tracking configuration
96
113
  */
@@ -3,6 +3,8 @@ import { AppConfig, ThemeSettings } from '../../../types';
3
3
  import { FeatureMap } from './types/features.js';
4
4
  /**
5
5
  * Application settings
6
+ *
7
+ * @internal
6
8
  */
7
9
  export type AppSettings = Required<ConfigurableAppSettings> & ServerSettings;
8
10
  /**
@@ -62,6 +64,7 @@ type ServerSettings = {
62
64
  serverVersion: string;
63
65
  serverFeatures: FeatureMap;
64
66
  isUnifiedNarrationEnabled?: boolean;
67
+ isSisenseAiEnabled?: boolean;
65
68
  user: {
66
69
  tenant: {
67
70
  name: string;
@@ -33,6 +33,6 @@ export type DeploymentProps = {
33
33
  internalMonitoring: boolean;
34
34
  isManagedService: boolean;
35
35
  licenseState: 'valid';
36
- narrationProvider: 'arria';
36
+ narrationProvider: 'arria' | 'sisenseAI';
37
37
  InfusionApps: boolean;
38
38
  };
@@ -120,7 +120,24 @@ type DimensionalModelingFeature = {
120
120
  };
121
121
  type CloudCDNFeature = Feature<'cloudCDN'>;
122
122
  type OnboardingFeature = Feature<'onboarding'>;
123
- export type Features = (AlertingFeature | LiveQueryFeature | NlqFeature | PivotFeature | CustomCodeFeature | CustomCodeTransformationFeature | BuildDestinationFeature | VersionHistoryFeature | EmbedCodeFeature | LiveCustomColumnFeature | ExportingEngineV2Feature | ExportingXlsxV2Feature | ExportingCsvFeature | ConnectionManagementFeature | SisenseLightFeature | WizardSqlEditorFeature | MultiTenancyFeature | BloxFeature | FunnelFeature | Cloud360Feature | BreakByToggleFeature | GitIntegrationFeature | InfusionFeature | InfusionWebClientFeature | NotebooksFeature | AdminWebClientFeature | DateTimeFiltersFeature | TextFiltersFeature | NumericFiltersFeature | FilterRelationsEnabledFeature | TimeLevelSupportEnabledFeature | SyncDashboardEventsFeature | UserProfileFeature | ScatterFeature | CustomFontsFeature | PreferWidgetImageServerExportFeature | NewAdminUIFeature | SharedFormulasFeature | SideBarFeature | InfusionTokenEndpointFeature | ExplanationsForIndicatorWidgetsFeature | ExplanationsForCategoricalWidgetsFeature | WidgetDesignStyleFeature | FiscalOnFeature | ReactAnalyticsWidgetEditorFeature | DynamicSQLFeature | NewCustomConnectorFeature | CrossTenantPerspectivesFeature | EnableDatamodelPerspectiveFeature | AlwaysDirectRelationsFeature | ModelStatisticsFeature | ExportingCsvFormattedFeature | FlexibleTooltipsFeature | DimensionalModelingFeature | CloudCDNFeature | OnboardingFeature)[];
123
+ type AiAssistantFeature = Feature<'aiAssistant', {
124
+ unified?: boolean;
125
+ nlqV3Enabled?: boolean;
126
+ isNlqV3Enabled?: boolean;
127
+ naturalResponseEnabled?: boolean;
128
+ sharedFormulasEnabled?: boolean;
129
+ aiAccessControl?: string;
130
+ quotaNotification?: boolean;
131
+ featureModelType?: string;
132
+ }>;
133
+ type AiStudioFeature = Feature<'aiStudio', {
134
+ realtime?: boolean;
135
+ usageDisplay?: boolean;
136
+ isRealtimeEnabled?: boolean;
137
+ isUsageDisplayEnabled?: boolean;
138
+ }>;
139
+ type NewNavigationBetaFeature = Feature<'newNavigationBeta'>;
140
+ export type Features = (AlertingFeature | LiveQueryFeature | NlqFeature | PivotFeature | CustomCodeFeature | CustomCodeTransformationFeature | BuildDestinationFeature | VersionHistoryFeature | EmbedCodeFeature | LiveCustomColumnFeature | ExportingEngineV2Feature | ExportingXlsxV2Feature | ExportingCsvFeature | ConnectionManagementFeature | SisenseLightFeature | WizardSqlEditorFeature | MultiTenancyFeature | BloxFeature | FunnelFeature | Cloud360Feature | BreakByToggleFeature | GitIntegrationFeature | InfusionFeature | InfusionWebClientFeature | NotebooksFeature | AdminWebClientFeature | DateTimeFiltersFeature | TextFiltersFeature | NumericFiltersFeature | FilterRelationsEnabledFeature | TimeLevelSupportEnabledFeature | SyncDashboardEventsFeature | UserProfileFeature | ScatterFeature | CustomFontsFeature | PreferWidgetImageServerExportFeature | NewAdminUIFeature | SharedFormulasFeature | SideBarFeature | InfusionTokenEndpointFeature | ExplanationsForIndicatorWidgetsFeature | ExplanationsForCategoricalWidgetsFeature | WidgetDesignStyleFeature | FiscalOnFeature | ReactAnalyticsWidgetEditorFeature | DynamicSQLFeature | NewCustomConnectorFeature | CrossTenantPerspectivesFeature | EnableDatamodelPerspectiveFeature | AlwaysDirectRelationsFeature | ModelStatisticsFeature | ExportingCsvFormattedFeature | FlexibleTooltipsFeature | DimensionalModelingFeature | CloudCDNFeature | OnboardingFeature | AiAssistantFeature | AiStudioFeature | NewNavigationBetaFeature)[];
124
141
  export type FeatureByKey<K extends string> = Extract<Features[number], {
125
142
  key: K;
126
143
  }>;
@@ -0,0 +1,5 @@
1
+ export { PluginProvider } from './plugin-provider';
2
+ export type { PluginProviderProps } from './plugin-provider';
3
+ export { PluginContext } from './plugin-context';
4
+ export type { PluginContextValue } from './plugin-context';
5
+ export type { Plugin, PluginValidationResult } from './types';
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ import { Plugin } from './types';
3
+ /**
4
+ * Context for accessing registered plugins
5
+ */
6
+ export interface PluginContextValue {
7
+ /**
8
+ * Array of validated and loaded plugins
9
+ */
10
+ plugins: readonly Plugin[];
11
+ }
12
+ /**
13
+ * React context for plugin management
14
+ */
15
+ export declare const PluginContext: import("react").Context<PluginContextValue>;
@@ -0,0 +1,21 @@
1
+ import { type ReactNode } from 'react';
2
+ import { Plugin } from './types';
3
+ /**
4
+ * Props for PluginProvider component
5
+ *
6
+ * @internal
7
+ */
8
+ export interface PluginProviderProps {
9
+ /**
10
+ * Array of plugins to register
11
+ */
12
+ plugins: Plugin[];
13
+ /**
14
+ * Child components
15
+ */
16
+ children: ReactNode;
17
+ }
18
+ /**
19
+ * Plugin Provider component that validates and provides access to plugins
20
+ */
21
+ export declare const PluginProvider: React.FC<PluginProviderProps>;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Plugin with metadata information
3
+ *
4
+ * @internal
5
+ */
6
+ export interface Plugin {
7
+ /**
8
+ * Unique name identifier for the plugin
9
+ */
10
+ name: string;
11
+ /**
12
+ * Semantic version of the plugin
13
+ */
14
+ version: string;
15
+ /**
16
+ * Required SDK API version range using simplified semver with standard AND/OR logic.
17
+ * - **OR**: `||` separates alternative ranges (version must match at least one).
18
+ * - **AND**: space-separated comparators (version must match all in that group).
19
+ *
20
+ * Supported comparators: `^x.y.z`, `~x.y.z`, `x.y.z`, `>=x.y.z`, `>x.y.z`, `<=x.y.z`, `<x.y.z`
21
+ *
22
+ * @example "^2.9.0" — any 2.x from 2.9.0 up (same major)
23
+ * @example "2.20.0" — exact version only
24
+ * @example "~2.9.0" — 2.9.x only (same major and minor)
25
+ * @example ">=2.0.0" — minimum version
26
+ * @example "^2.0.0 || ^3.0.0" — 2.x from 2.0.0 or 3.x from 3.0.0 (OR)
27
+ * @example ">1.2.3 <=2.3.1" — between 1.2.3 and 2.3.1 inclusive (AND)
28
+ * @example ">1.2.3 <=2.3.1 || ^3.0.0" — that range or any 3.x (AND + OR)
29
+ */
30
+ requiredApiVersion: string;
31
+ }
32
+ /**
33
+ * Result of plugin validation
34
+ *
35
+ * @internal
36
+ */
37
+ export interface PluginValidationResult {
38
+ /**
39
+ * The validated plugin
40
+ */
41
+ plugin: Plugin;
42
+ /**
43
+ * Whether the plugin is valid and should be loaded
44
+ */
45
+ isValid: boolean;
46
+ /**
47
+ * Reason for invalidation if isValid is false
48
+ */
49
+ reason?: string;
50
+ }
@@ -0,0 +1,9 @@
1
+ import { Plugin } from './types';
2
+ /**
3
+ * Validates and returns only valid plugins.
4
+ *
5
+ * @param plugins - Array of plugins to validate
6
+ * @param sdkVersion - Current SDK version
7
+ * @returns Array of valid plugins
8
+ */
9
+ export declare const getValidPlugins: (plugins: Plugin[], sdkVersion: string) => Plugin[];
@@ -270,6 +270,12 @@ declare const _default: {
270
270
  unknownResponse: string;
271
271
  invalidInput: string;
272
272
  noAvailableDataTopics: string;
273
+ failedToFetchCreditBalance: string;
274
+ };
275
+ quota: {
276
+ exceededErrorTitle: string;
277
+ exceededErrorDescription: string;
278
+ warningDescription: string;
273
279
  };
274
280
  };
275
281
  attribute: {
@@ -389,6 +395,14 @@ declare const _default: {
389
395
  nextGroup: string;
390
396
  };
391
397
  };
398
+ filterTile: {
399
+ menu: {
400
+ lock: string;
401
+ unlock: string;
402
+ lockGroup: string;
403
+ unlockGroup: string;
404
+ };
405
+ };
392
406
  };
393
407
  }[];
394
408
  export default _default;
@@ -270,6 +270,12 @@ declare const _default: {
270
270
  unknownResponse: string;
271
271
  invalidInput: string;
272
272
  noAvailableDataTopics: string;
273
+ failedToFetchCreditBalance: string;
274
+ };
275
+ quota: {
276
+ exceededErrorTitle: string;
277
+ exceededErrorDescription: string;
278
+ warningDescription: string;
273
279
  };
274
280
  };
275
281
  attribute: {
@@ -389,6 +395,14 @@ declare const _default: {
389
395
  nextGroup: string;
390
396
  };
391
397
  };
398
+ filterTile: {
399
+ menu: {
400
+ lock: string;
401
+ unlock: string;
402
+ lockGroup: string;
403
+ unlockGroup: string;
404
+ };
405
+ };
392
406
  };
393
407
  }[];
394
408
  export default _default;
@@ -270,6 +270,12 @@ declare const _default: {
270
270
  unknownResponse: string;
271
271
  invalidInput: string;
272
272
  noAvailableDataTopics: string;
273
+ failedToFetchCreditBalance: string;
274
+ };
275
+ quota: {
276
+ exceededErrorTitle: string;
277
+ exceededErrorDescription: string;
278
+ warningDescription: string;
273
279
  };
274
280
  };
275
281
  attribute: {
@@ -389,6 +395,14 @@ declare const _default: {
389
395
  nextGroup: string;
390
396
  };
391
397
  };
398
+ filterTile: {
399
+ menu: {
400
+ lock: string;
401
+ unlock: string;
402
+ lockGroup: string;
403
+ unlockGroup: string;
404
+ };
405
+ };
392
406
  };
393
407
  }[];
394
408
  export default _default;
@@ -270,6 +270,12 @@ declare const _default: {
270
270
  unknownResponse: string;
271
271
  invalidInput: string;
272
272
  noAvailableDataTopics: string;
273
+ failedToFetchCreditBalance: string;
274
+ };
275
+ quota: {
276
+ exceededErrorTitle: string;
277
+ exceededErrorDescription: string;
278
+ warningDescription: string;
273
279
  };
274
280
  };
275
281
  attribute: {
@@ -389,6 +395,14 @@ declare const _default: {
389
395
  nextGroup: string;
390
396
  };
391
397
  };
398
+ filterTile: {
399
+ menu: {
400
+ lock: string;
401
+ unlock: string;
402
+ lockGroup: string;
403
+ unlockGroup: string;
404
+ };
405
+ };
392
406
  };
393
407
  }[];
394
408
  export default _default;
@@ -270,6 +270,12 @@ declare const _default: {
270
270
  unknownResponse: string;
271
271
  invalidInput: string;
272
272
  noAvailableDataTopics: string;
273
+ failedToFetchCreditBalance: string;
274
+ };
275
+ quota: {
276
+ exceededErrorTitle: string;
277
+ exceededErrorDescription: string;
278
+ warningDescription: string;
273
279
  };
274
280
  };
275
281
  attribute: {
@@ -389,6 +395,14 @@ declare const _default: {
389
395
  nextGroup: string;
390
396
  };
391
397
  };
398
+ filterTile: {
399
+ menu: {
400
+ lock: string;
401
+ unlock: string;
402
+ lockGroup: string;
403
+ unlockGroup: string;
404
+ };
405
+ };
392
406
  };
393
407
  }[];
394
408
  export default _default;