@sisense/sdk-ui 0.14.0 → 0.16.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 (128) hide show
  1. package/dist/ai/api/chat-api-context.d.ts +12 -0
  2. package/dist/ai/api/chat-rest-api.d.ts +28 -0
  3. package/dist/ai/api/hooks.d.ts +74 -0
  4. package/dist/ai/api/types.d.ts +139 -0
  5. package/dist/ai/chat-box.d.ts +6 -0
  6. package/dist/ai/chat-frame.d.ts +8 -0
  7. package/dist/ai/chat-home.d.ts +2 -0
  8. package/dist/ai/chat-input.d.ts +7 -0
  9. package/dist/ai/chatbot-context.d.ts +11 -0
  10. package/dist/ai/chatbot.d.ts +27 -0
  11. package/dist/ai/data-topics/data-topic-item.d.ts +8 -0
  12. package/dist/ai/data-topics/data-topic-list.d.ts +10 -0
  13. package/dist/ai/data-topics/index.d.ts +2 -0
  14. package/dist/ai/icons/arrow-left-icon.d.ts +2 -0
  15. package/dist/ai/icons/clear-chat-icon.d.ts +2 -0
  16. package/dist/ai/icons/close-dialog-icon.d.ts +2 -0
  17. package/dist/ai/icons/expand-icon.d.ts +2 -0
  18. package/dist/ai/icons/info-icon.d.ts +2 -0
  19. package/dist/ai/icons/light-bulb-icon.d.ts +2 -0
  20. package/dist/ai/icons/loading-dots-icon.d.ts +2 -0
  21. package/dist/ai/icons/magic-wand-icon.d.ts +2 -0
  22. package/dist/ai/icons/message-icon.d.ts +2 -0
  23. package/dist/ai/icons/refresh-icon.d.ts +2 -0
  24. package/dist/ai/icons/sisense-logo.d.ts +2 -0
  25. package/dist/ai/icons/three-dots-icon.d.ts +2 -0
  26. package/dist/ai/index.d.ts +4 -0
  27. package/dist/ai/magic-wand-dropdown.d.ts +7 -0
  28. package/dist/ai/messages/chart-message-toolbar.d.ts +8 -0
  29. package/dist/ai/messages/chart-message.d.ts +8 -0
  30. package/dist/ai/messages/clear-history-message.d.ts +6 -0
  31. package/dist/ai/messages/get-widget-options.d.ts +13 -0
  32. package/dist/ai/messages/insights-message.d.ts +10 -0
  33. package/dist/ai/messages/jaql-element.d.ts +25 -0
  34. package/dist/ai/messages/message-list-resolver.d.ts +7 -0
  35. package/dist/ai/messages/message-resolver.d.ts +11 -0
  36. package/dist/ai/messages/text-message.d.ts +8 -0
  37. package/dist/ai/nav-back-button.d.ts +6 -0
  38. package/dist/ai/nlg-query-result.d.ts +20 -0
  39. package/dist/ai/suggestions/index.d.ts +4 -0
  40. package/dist/ai/suggestions/suggestion-dropdown-item.d.ts +7 -0
  41. package/dist/ai/suggestions/suggestion-dropdown-list.d.ts +7 -0
  42. package/dist/ai/suggestions/suggestion-item.d.ts +7 -0
  43. package/dist/ai/suggestions/suggestion-list-skeleton.d.ts +2 -0
  44. package/dist/ai/suggestions/suggestion-list.d.ts +7 -0
  45. package/dist/ai/suggestions/suggestions-with-intro.d.ts +8 -0
  46. package/dist/ai/toolbar.d.ts +8 -0
  47. package/dist/ai/use-chat-session.d.ts +22 -0
  48. package/dist/ai.d.ts +1 -0
  49. package/dist/ai.js +3390 -0
  50. package/dist/api/types/dashboard-dto.d.ts +5 -3
  51. package/dist/chart-data-options/coloring/consts.d.ts +3 -0
  52. package/dist/chart-data-options/coloring/utils.d.ts +6 -0
  53. package/dist/chart-data-options/get-translated-data-options.d.ts +6 -0
  54. package/dist/chart-options-processor/chart-options-service.d.ts +2 -74
  55. package/dist/chart-options-processor/translations/axis-section.d.ts +3 -1
  56. package/dist/chart-options-processor/translations/funnel-series.d.ts +1 -2
  57. package/dist/chart-options-processor/translations/legend-section.d.ts +2 -1
  58. package/dist/chart-options-processor/translations/pie-series.d.ts +1 -2
  59. package/dist/chart-options-processor/translations/translations-to-highcharts.d.ts +6 -2
  60. package/dist/charts/indicator/chart/indicator.d.ts +1 -1
  61. package/dist/charts/indicator/chart/ticker.d.ts +2 -2
  62. package/dist/charts/indicator/indicator-legacy-chart-options/default-options.d.ts +2 -1
  63. package/dist/charts/indicator/types.d.ts +47 -6
  64. package/dist/common/components/loading-indicator.d.ts +33 -0
  65. package/dist/common/icons/loading-icon.d.ts +6 -0
  66. package/dist/dashboard-widget/translate-dashboard-filters.d.ts +2 -2
  67. package/dist/dashboard-widget/translate-panel-color-format.d.ts +2 -2
  68. package/dist/dashboard-widget/translate-widget-data-options.d.ts +6 -6
  69. package/dist/dashboard-widget/translate-widget-filters.d.ts +4 -16
  70. package/dist/dashboard-widget/translate-widget-style-options.d.ts +1 -1
  71. package/dist/dashboard-widget/types.d.ts +21 -71
  72. package/dist/dashboard-widget/use-fetch-widget-dto-model.d.ts +7 -1
  73. package/dist/dashboard-widget/utils.d.ts +3 -3
  74. package/dist/filters/components/common/dropdown.d.ts +8 -0
  75. package/dist/filters/components/common/index.d.ts +4 -1
  76. package/dist/filters/components/common/radio.d.ts +7 -0
  77. package/dist/filters/components/common/triangle-indicator.d.ts +2 -0
  78. package/dist/filters/components/criteria-filter-tile/criteria-filter-display.d.ts +25 -0
  79. package/dist/filters/components/criteria-filter-tile/criteria-filter-menu.d.ts +22 -0
  80. package/dist/filters/components/criteria-filter-tile/criteria-filter-operations.d.ts +76 -0
  81. package/dist/filters/components/criteria-filter-tile/criteria-filter-tile.d.ts +44 -0
  82. package/dist/filters/components/criteria-filter-tile/index.d.ts +2 -0
  83. package/dist/filters/components/date-filter/date-filter/date-filter.d.ts +4 -0
  84. package/dist/filters/components/date-filter/date-range-filter-tile/date-range-filter-tile.d.ts +11 -3
  85. package/dist/filters/components/date-filter/date-range-filter-tile/use-date-limits.d.ts +2 -2
  86. package/dist/filters/components/filter-tile.d.ts +3 -0
  87. package/dist/filters/components/member-filter-tile/basic-member-filter-tile.d.ts +4 -0
  88. package/dist/filters/components/member-filter-tile/member-filter-tile.d.ts +3 -1
  89. package/dist/filters/components/member-filter-tile/members-reducer.d.ts +9 -1
  90. package/dist/filters/components/member-filter-tile/pill-section.d.ts +0 -1
  91. package/dist/filters/index.d.ts +1 -0
  92. package/dist/formulas/fetch-formula.d.ts +16 -0
  93. package/dist/formulas/index.d.ts +1 -0
  94. package/dist/formulas/use-get-shared-formula.d.ts +95 -0
  95. package/dist/highcharts-memorized.d.ts +4 -3
  96. package/dist/index.d.ts +3 -1
  97. package/dist/index.js +8974 -71500
  98. package/dist/models/dashboard/get-dashboard-models.d.ts +1 -1
  99. package/dist/models/dashboard/types.d.ts +1 -1
  100. package/dist/models/dashboard/use-get-dashboard-model.d.ts +1 -1
  101. package/dist/models/widget/get-widget-model.d.ts +4 -0
  102. package/dist/models/widget/index.d.ts +3 -1
  103. package/dist/models/widget/translate-widget.d.ts +1 -1
  104. package/dist/models/widget/use-get-widget-model.d.ts +102 -0
  105. package/dist/models/widget/widget-model.d.ts +122 -0
  106. package/dist/props.d.ts +30 -11
  107. package/dist/query/execute-query.d.ts +2 -0
  108. package/dist/query-execution/csv-query-state-reducer.d.ts +2 -0
  109. package/dist/query-execution/index.d.ts +4 -3
  110. package/dist/query-execution/query-state-reducer.d.ts +1 -58
  111. package/dist/query-execution/types.d.ts +190 -0
  112. package/dist/query-execution/use-execute-csv-query.d.ts +82 -0
  113. package/dist/query-execution/use-execute-query-by-widget-id.d.ts +2 -37
  114. package/dist/query-execution/use-execute-query.d.ts +8 -33
  115. package/dist/table/hooks/use-table-data.d.ts +5 -1
  116. package/dist/table/table.d.ts +3 -0
  117. package/dist/table-widget-5f3b1d03.js +64456 -0
  118. package/dist/themes/colors.d.ts +86 -0
  119. package/dist/translation/resources/en.d.ts +31 -0
  120. package/dist/translation/resources/index.d.ts +62 -0
  121. package/dist/types.d.ts +6 -0
  122. package/dist/utils/utility-types.d.ts +4 -0
  123. package/dist/widgets/common/drilldown-breadcrumbs/drilldown-breadcrumbs-navigation.d.ts +8 -0
  124. package/dist/widgets/common/drilldown-breadcrumbs/styled-buttons.d.ts +11 -0
  125. package/dist/widgets/common/widget-header-info-button.d.ts +8 -0
  126. package/dist/widgets/common/widget-header.d.ts +1 -1
  127. package/package.json +27 -8
  128. package/dist/models/widget/types.d.ts +0 -6
@@ -0,0 +1,25 @@
1
+ import { FunctionComponent } from 'react';
2
+ import { FilterOptionType, CriteriaFilterValueType } from './criteria-filter-operations.js';
3
+ /**
4
+ * Props for {@link CriteriaFilterDisplay}
5
+ */
6
+ export interface CriteriaFilterDisplayProps {
7
+ filterType: FilterOptionType;
8
+ values?: CriteriaFilterValueType[];
9
+ }
10
+ /**
11
+ * UI component that provides a static, uneditable display of the criteria filter values, to be shown when vertically aligned filter tiles are collapsed.
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * return (
16
+ * <CriteriaFilterDisplay
17
+ * filterType={FilterOption.BETWEEN}
18
+ * values={[0, 100]}
19
+ * />
20
+ * );
21
+ * ```
22
+ * @param props - Criteria filter menu props
23
+ * @returns Criteria filter menu component
24
+ */
25
+ export declare const CriteriaFilterDisplay: FunctionComponent<CriteriaFilterDisplayProps>;
@@ -0,0 +1,22 @@
1
+ import { FunctionComponent } from 'react';
2
+ import { FilterOptionType, FilterVariant, CriteriaFilterValueType } from './criteria-filter-operations';
3
+ import { Measure } from '@sisense/sdk-data';
4
+ /**
5
+ * Props for {@link CriteriaFilterMenu}
6
+ *
7
+ * @internal
8
+ */
9
+ export interface CriteriaFilterMenuProps {
10
+ filterType: FilterOptionType;
11
+ arrangement?: FilterVariant;
12
+ defaultValues?: CriteriaFilterValueType[];
13
+ onUpdate?: (values: CriteriaFilterValueType[]) => void;
14
+ disabled?: boolean;
15
+ measures?: Measure[];
16
+ }
17
+ /**
18
+ * UI component that provides field(s) for the user to enter values for a numeric filter.
19
+ *
20
+ * @internal
21
+ */
22
+ export declare const CriteriaFilterMenu: FunctionComponent<CriteriaFilterMenuProps>;
@@ -0,0 +1,76 @@
1
+ import { Measure } from '@sisense/sdk-data';
2
+ import { CriteriaFilterType } from './criteria-filter-tile';
3
+ /**
4
+ * Collection of filter options for the {@link CriteriaFilterMenu},
5
+ * to be provided to subcomponents as the `filterType` prop.
6
+ *
7
+ * @internal
8
+ */
9
+ export declare const FilterOption: {
10
+ NOT_BETWEEN: string;
11
+ TOP: string;
12
+ BOTTOM: string;
13
+ BETWEEN: string;
14
+ EQUALS: string;
15
+ NOT_EQUALS: string;
16
+ LESS_THAN: string;
17
+ LESS_THAN_OR_EQUAL: string;
18
+ GREATER_THAN: string;
19
+ GREATER_THAN_OR_EQUAL: string;
20
+ IS: string;
21
+ IS_NOT: string;
22
+ CONTAINS: string;
23
+ NOT_CONTAIN: string;
24
+ STARTS_WITH: string;
25
+ NOT_STARTS_WITH: string;
26
+ ENDS_WITH: string;
27
+ NOT_ENDS_WITH: string;
28
+ LIKE: string;
29
+ };
30
+ export type FilterOptionType = keyof typeof FilterOption;
31
+ export type FilterVariant = 'vertical' | 'horizontal';
32
+ /**
33
+ * Object containing related information for a filter option,
34
+ * including the function to be used for filtering, the number of inputs,
35
+ * and the symbols to be displayed in the UI as field labels.
36
+ * Ranked indicates whether the filter is ranked (e.g. Top 10).
37
+ *
38
+ * @internal
39
+ */
40
+ export type FilterInfo = {
41
+ fn: Function;
42
+ inputCount: number;
43
+ symbols: string[];
44
+ message: string;
45
+ ranked: boolean;
46
+ type: string;
47
+ };
48
+ /**
49
+ * Map of {@link FilterOption} to {@link FilterInfo}
50
+ * for each type of filter available.
51
+ *
52
+ * @internal
53
+ */
54
+ export declare const CRITERIA_FILTER_MAP: {
55
+ [key: string]: FilterInfo;
56
+ };
57
+ /**
58
+ * Determines whether the arrangement of the filter menu is vertical.
59
+ *
60
+ * @param arrangement - Arrangement of the filter menu
61
+ * @returns True if the arrangement is vertical, false otherwise
62
+ * @internal
63
+ */
64
+ export declare const isVertical: (arrangement: FilterVariant) => boolean;
65
+ /**
66
+ * Given an input filter, use the filterType and operators to determine
67
+ * the corresponding {@link FilterOption} and {@link FilterInfo}.
68
+ *
69
+ * @internal
70
+ */
71
+ export declare const filterToOption: (filter: CriteriaFilterType) => FilterOptionType;
72
+ export type CriteriaFilterValueType = string | number | Measure;
73
+ export declare const filterToDefaultValues: (filter: CriteriaFilterType) => CriteriaFilterValueType[];
74
+ export declare const valuesToDisplayValues: (values: CriteriaFilterValueType[]) => (string | number)[];
75
+ export declare const translatedMsgNoVal: (message: string, t: Function) => any;
76
+ export declare const filterTypeToInputType: (filterType: string) => string;
@@ -0,0 +1,44 @@
1
+ /// <reference types="react" />
2
+ import { FilterVariant } from './criteria-filter-operations.js';
3
+ import { ExcludeFilter, Filter, Measure, NumericFilter, RankingFilter, TextFilter } from '@sisense/sdk-data';
4
+ /**
5
+ * Props for {@link CriteriaFilterTile}
6
+ */
7
+ export interface CriteriaFilterTileProps {
8
+ /** Title for the filter tile, which is rendered into the header */
9
+ title: string;
10
+ /** Text or numeric filter object to initialize filter type and default values */
11
+ filter: CriteriaFilterType;
12
+ /** Arrangement of the filter inputs. Use vertical for standard filter tiles and horizontal for toolbars */
13
+ arrangement?: FilterVariant;
14
+ /** Callback returning filter object, or null for failure */
15
+ onUpdate: (filter: Filter | null) => void;
16
+ /** List of available measures to rank by. Required only for ranking filters. */
17
+ measures?: Measure[];
18
+ }
19
+ export type CriteriaFilterType = NumericFilter | TextFilter | RankingFilter | ExcludeFilter;
20
+ /**
21
+ * UI component that allows the user to filter numeric or text attributes according to
22
+ * a number of built-in operations defined in the {@link NumericFilter}, {@link TextFilter}, or {@link RankingFilter}.
23
+ *
24
+ * The arrangement prop determines whether the filter is rendered vertically or horizontally, with the latter intended for toolbar use and omitting title, enable/disable, and collapse/expand functionality.
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * const initialRevenueFilter = filters.greaterThanOrEqual(DM.Commerce.Revenue, 10000);
29
+ * const [revenueFilter, setRevenueFilter] = useState<Filter | null>(initialRevenueFilter);
30
+ *
31
+ * return (
32
+ * <CriteriaFilterTile
33
+ * title={'Revenue'}
34
+ * filter={revenueFilter}
35
+ * onUpdate={setRevenueFilter}
36
+ * />
37
+ * );
38
+ * ```
39
+ *
40
+ * <img src="media://criteria-filter-tile-example-1.png" width="300px" />
41
+ * @param props - Criteria filter tile props
42
+ * @returns Criteria filter tile component
43
+ */
44
+ export declare const CriteriaFilterTile: import("react").FunctionComponent<CriteriaFilterTileProps>;
@@ -0,0 +1,2 @@
1
+ export { CriteriaFilterTile, type CriteriaFilterTileProps, type CriteriaFilterType, } from './criteria-filter-tile';
2
+ export { type FilterVariant } from './criteria-filter-operations';
@@ -24,6 +24,10 @@ export type DateRangeFilterProps = {
24
24
  maxDate: string;
25
25
  minDate: string;
26
26
  };
27
+ /**
28
+ * Whether this is a dependent filter.
29
+ */
30
+ isDependent?: boolean;
27
31
  };
28
32
  /**
29
33
  * Date Filter component for filtering data by date range.
@@ -2,7 +2,7 @@
2
2
  import { LevelAttribute, DataSource, Filter } from '@sisense/sdk-data';
3
3
  export interface DateRangeFilterTileProps {
4
4
  /**
5
- * Title of the filter tile
5
+ * Filter tile title
6
6
  */
7
7
  title: string;
8
8
  /**
@@ -20,11 +20,15 @@ export interface DateRangeFilterTileProps {
20
20
  */
21
21
  filter: Filter;
22
22
  /**
23
- * Earliest valid date in date range select. If not specified a query will run.
23
+ * Earliest allowed date for selection.
24
+ *
25
+ * If not specified, the earliest date of the target date-level attribute will be used.
24
26
  */
25
27
  earliestDate?: string;
26
28
  /**
27
- * Last valid date in date range select. If not specified a query will run.
29
+ * Latest allowed date for selection.
30
+ *
31
+ * If not specified, the latest date of the target date-level attribute will be used.
28
32
  */
29
33
  lastDate?: string;
30
34
  /**
@@ -33,6 +37,10 @@ export interface DateRangeFilterTileProps {
33
37
  * @param filter - Date range filter
34
38
  */
35
39
  onChange: (filter: Filter) => void;
40
+ /**
41
+ * List of filters this filter is dependent on.
42
+ */
43
+ parentFilters?: Filter[];
36
44
  }
37
45
  /**
38
46
  * Date Range Filter Tile component for filtering data by date range.
@@ -1,7 +1,7 @@
1
- import { DataSource, LevelAttribute } from '@sisense/sdk-data';
1
+ import { DataSource, Filter, LevelAttribute } from '@sisense/sdk-data';
2
2
  type DateLimits = {
3
3
  minDate?: string;
4
4
  maxDate?: string;
5
5
  };
6
- export declare const useDateLimits: (userLimits: DateLimits, attribute: LevelAttribute, dataSource?: DataSource) => Required<DateLimits> | null;
6
+ export declare const useDateLimits: (userLimits: DateLimits, attribute: LevelAttribute, dataSource?: DataSource, parentFilters?: Filter[]) => Required<DateLimits> | null;
7
7
  export {};
@@ -1,8 +1,11 @@
1
1
  import type { FunctionComponent, ReactNode } from 'react';
2
+ import { FilterVariant } from './criteria-filter-tile/criteria-filter-operations';
2
3
  interface Props {
3
4
  title: string;
4
5
  renderContent: (collapsed: boolean, tileDisabled: boolean) => ReactNode;
6
+ arrangement?: FilterVariant;
5
7
  disabled?: boolean;
8
+ isDependent?: boolean;
6
9
  onToggleDisabled?: () => void;
7
10
  }
8
11
  /**
@@ -16,6 +16,10 @@ export interface BasicMemberFilterTileProps {
16
16
  onUpdateSelectedMembers?: (members: string[]) => void;
17
17
  /** Configurable limit on size of allowedMembers */
18
18
  maxAllowedMembers?: number;
19
+ /** Whether this is a dependent filter */
20
+ isDependent?: boolean;
21
+ /** Flag to update selected members when caused by an external change */
22
+ shouldUpdateSelectedMembers?: boolean;
19
23
  }
20
24
  /**
21
25
  * UI component that, given a list of members to select from and a list of
@@ -12,12 +12,14 @@ export interface MemberFilterTileProps {
12
12
  * If not specified, the query will use the `defaultDataSource` specified in the parent Sisense Context.
13
13
  */
14
14
  dataSource?: DataSource;
15
- /** Attribute to filter on. A query will be run to fetch all this attribute's members */
15
+ /** Attribute to filter on. A query will run to fetch all this attribute's members */
16
16
  attribute: Attribute;
17
17
  /** Source filter object. Caller is responsible for keeping track of filter state */
18
18
  filter: Filter | null;
19
19
  /** Callback indicating when the source member filter object should be updated */
20
20
  onChange: (filter: Filter | null) => void;
21
+ /** List of filters this filter is dependent on */
22
+ parentFilters?: Filter[];
21
23
  }
22
24
  /**
23
25
  * UI component that allows the user to select members to include/exclude in a
@@ -20,6 +20,14 @@ type DeselectMemberAction = {
20
20
  type SelectAllMembersAction = {
21
21
  type: 'selectAllMembers';
22
22
  };
23
+ type UpdatePossibleMembersAction = {
24
+ type: 'updatePossibleMembers';
25
+ members: Member[];
26
+ };
27
+ type UpdateMembersAction = {
28
+ type: 'updateMembers';
29
+ members: SelectedMember[];
30
+ };
23
31
  type ClearAllMembersAction = {
24
32
  type: 'clearAllMembers';
25
33
  };
@@ -27,6 +35,6 @@ type ToggleSelectedMemberAction = {
27
35
  type: 'toggleSelectedMember';
28
36
  memberKey: string;
29
37
  };
30
- export type MembersAction = SelectMemberAction | DeselectMemberAction | SelectAllMembersAction | ClearAllMembersAction | ToggleSelectedMemberAction;
38
+ export type MembersAction = SelectMemberAction | DeselectMemberAction | SelectAllMembersAction | UpdatePossibleMembersAction | UpdateMembersAction | ClearAllMembersAction | ToggleSelectedMemberAction;
31
39
  export declare function membersReducer(state: MembersState, action: MembersAction): MembersState;
32
40
  export {};
@@ -1,7 +1,6 @@
1
1
  import type { FunctionComponent } from 'react';
2
2
  import { SelectedMember } from './members-reducer';
3
3
  export interface PillSectionProps {
4
- membersSize: number;
5
4
  selectedMembers: SelectedMember[];
6
5
  onToggleSelectedMember: (key: string) => void;
7
6
  disabled: boolean;
@@ -1,2 +1,3 @@
1
1
  export * from './components/member-filter-tile';
2
2
  export * from './components/date-filter';
3
+ export * from './components/criteria-filter-tile';
@@ -0,0 +1,16 @@
1
+ import { ClientApplication } from '../app/client-application.js';
2
+ import { DimensionalCalculatedMeasure } from '@sisense/sdk-data';
3
+ /**
4
+ * Fetch a formula by oid from the default Sisense instance
5
+ *
6
+ * @param oid - Formula identifier in Sisense instance
7
+ * @param app - Client application
8
+ */
9
+ export declare function fetchFormulaByOid(oid: string, app: ClientApplication): Promise<DimensionalCalculatedMeasure | null>;
10
+ /**
11
+ * Fetch a shared formula by name and data source from the Sisense instance
12
+ *
13
+ * @param name - Formula name/title in Sisense instance
14
+ * @param dataSource - Data source in Sisense instance
15
+ */
16
+ export declare function fetchFormula(name: string, dataSource: string, app: ClientApplication): Promise<DimensionalCalculatedMeasure | null>;
@@ -0,0 +1 @@
1
+ export * from './use-get-shared-formula';
@@ -0,0 +1,95 @@
1
+ import { CalculatedMeasure } from '@sisense/sdk-data';
2
+ import { UseGetSharedFormulaParams } from '../props.js';
3
+ import { HookEnableParam } from '../common/hooks/types.js';
4
+ /**
5
+ * Parameters for {@link useGetSharedFormula} hook.
6
+ */
7
+ export interface GetSharedFormulaParams extends UseGetSharedFormulaParams, HookEnableParam {
8
+ /**
9
+ * Dashboard identifier
10
+ */
11
+ dashboardOid: string;
12
+ }
13
+ /**
14
+ * States of a shared formula load.
15
+ */
16
+ export type SharedFormulaState = SharedFormulaLoadingState | SharedFormulaErrorState | SharedFormulaSuccessState;
17
+ /**
18
+ * State of a shared formula loading.
19
+ */
20
+ export type SharedFormulaLoadingState = {
21
+ /** Whether the shared formula is loading */
22
+ isLoading: true;
23
+ /** Whether the shared formula load has failed */
24
+ isError: false;
25
+ /** Whether the shared formula load has succeeded */
26
+ isSuccess: false;
27
+ /** The error if any occurred */
28
+ error: undefined;
29
+ /** The result shared formula if the load has succeeded */
30
+ formula: CalculatedMeasure | null;
31
+ /** The status of the shared formula load */
32
+ status: 'loading';
33
+ };
34
+ /**
35
+ * State of a shared formula load that has failed.
36
+ */
37
+ export type SharedFormulaErrorState = {
38
+ /** Whether the shared formula is loading */
39
+ isLoading: false;
40
+ /** Whether the shared formula load has failed */
41
+ isError: true;
42
+ /** Whether the shared formula load has succeeded */
43
+ isSuccess: false;
44
+ /** The error if any occurred */
45
+ error: Error;
46
+ /** The result shared formula if the load has succeeded */
47
+ formula: undefined;
48
+ /** The status of the shared formula load */
49
+ status: 'error';
50
+ };
51
+ /**
52
+ * State of a shared formula load that has succeeded.
53
+ */
54
+ export type SharedFormulaSuccessState = {
55
+ /** Whether the shared formula is loading */
56
+ isLoading: false;
57
+ /** Whether the shared formula load has failed */
58
+ isError: false;
59
+ /** Whether the shared formula load has succeeded */
60
+ isSuccess: true;
61
+ /** The error if any occurred */
62
+ error: undefined;
63
+ /** The result shared formula if the load has succeeded */
64
+ formula: CalculatedMeasure | null;
65
+ /** The status of the shared formula load */
66
+ status: 'success';
67
+ };
68
+ /**
69
+ * Fetch a [shared formula](https://docs.sisense.com/main/SisenseLinux/shared-formulas.htm) from the Sisense instance
70
+ *
71
+ * Formula can be identified either by `oid` or by name and data source pair
72
+ *
73
+ * When the retrieval is successful but the shared formula is not found, the result is altered from being `undefined` to `null`
74
+ *
75
+ * @example
76
+ * An example of retrieving a shared formula by oid:
77
+ ```tsx
78
+ const { formula, isLoading, isError } = useGetSharedFormula({ oid: 'd61c337b-fabc-4e9e-b4cc-a30116857153' })
79
+ ```
80
+ * @example
81
+ * An example of retrieving a shared formula by name and data source:
82
+ ```tsx
83
+ const { formula, isLoading, isError } = useGetSharedFormula({ name: 'My Shared Formula', datasource: DM.DataSource })
84
+ ```
85
+ * @param params - {@link UseGetSharedFormulaParams}
86
+ * @param dataSource - Data source in Sisense instance
87
+ * @returns Formula load state that contains the status of the execution, the result formula, or the error if any
88
+ */
89
+ export declare const useGetSharedFormula: (params: UseGetSharedFormulaParams) => SharedFormulaState;
90
+ /**
91
+ * {@link useGetSharedFormula} without tracking to be used inside other hooks or components in Compose SDK.
92
+ *
93
+ * @internal
94
+ */
95
+ export declare function useGetSharedFormulaInternal(params: UseGetSharedFormulaParams): SharedFormulaState;
@@ -1,6 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { HighchartsOptionsInternal } from './chart-options-processor/chart-options-service';
3
- export declare const HighchartsReactMemoized: import("react").MemoExoticComponent<({ options, immutable, }: {
3
+ type HighchartsReactMemoizedProps = {
4
4
  options: HighchartsOptionsInternal;
5
- immutable: boolean | null | undefined;
6
- }) => JSX.Element>;
5
+ };
6
+ export declare const HighchartsReactMemoized: import("react").MemoExoticComponent<({ options }: HighchartsReactMemoizedProps) => JSX.Element>;
7
+ export {};
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export * from './chart-data-options/types';
7
7
  export { Chart } from './chart';
8
8
  export { ThemeProvider } from './theme-provider';
9
9
  export { DashboardWidget } from './dashboard-widget/dashboard-widget';
10
+ export { type WidgetType, type CartesianWidgetType, type CategoricalWidgetType, type TabularWidgetType, } from './dashboard-widget/types';
10
11
  export * from './query-execution';
11
12
  export { executeQuery } from './query/execute-query';
12
13
  export { SisenseContextProvider } from './sisense-context/sisense-context-provider';
@@ -31,7 +32,8 @@ export * from './sisense-context/custom-sisense-context-provider';
31
32
  export * from './theme-provider/custom-theme-provider';
32
33
  export { getThemeSettingsByOid } from './themes/theme-loader';
33
34
  export { getDefaultThemeSettings } from './chart-options-processor/theme-option-service';
34
- export { useGetDashboardModel, useGetDashboardModels, getDashboardModel, getDashboardModels, type DashboardModel, type GetDashboardModelParams, type GetDashboardModelsParams, type DashboardModelState, type DashboardModelLoadingState, type DashboardModelSuccessState, type DashboardModelErrorState, type DashboardModelsState, type DashboardModelsLoadingState, type DashboardModelsSuccessState, type DashboardModelsErrorState, type WidgetModel, } from './models';
35
+ export { useGetDashboardModel, useGetDashboardModels, getDashboardModel, getDashboardModels, useGetWidgetModel, getWidgetModel, type DashboardModel, type GetDashboardModelParams, type GetDashboardModelsParams, type DashboardModelState, type DashboardModelLoadingState, type DashboardModelSuccessState, type DashboardModelErrorState, type DashboardModelsState, type DashboardModelsLoadingState, type DashboardModelsSuccessState, type DashboardModelsErrorState, type WidgetModel, type WidgetDataOptions, type WidgetModelState, type WidgetModelLoadingState, type WidgetModelErrorState, type WidgetModelSuccessState, type GetWidgetModelParams, type GetDashboardModelOptions, type GetDashboardModelsOptions, } from './models';
35
36
  export * from './props';
36
37
  export * from './types';
37
38
  export * from './filters';
39
+ export * from './formulas';