@sisense/sdk-ui 1.27.1 → 1.29.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 (99) hide show
  1. package/dist/ai.cjs +50 -50
  2. package/dist/ai.js +968 -904
  3. package/dist/analytics-composer.cjs +49 -49
  4. package/dist/analytics-composer.js +374 -374
  5. package/dist/{derive-chart-family-H_RlUbXY.js → derive-chart-family-Cy3hlluo.js} +15339 -15478
  6. package/dist/{derive-chart-family-DDkQybGb.cjs → derive-chart-family-DWCXp57c.cjs} +103 -103
  7. package/dist/index.cjs +253 -120
  8. package/dist/index.js +11042 -8996
  9. package/dist/packages/sdk-ui/src/ai/api/chat-rest-api.d.ts +5 -3
  10. package/dist/packages/sdk-ui/src/ai/api/hooks.d.ts +3 -2
  11. package/dist/packages/sdk-ui/src/ai/api/types.d.ts +12 -2
  12. package/dist/packages/sdk-ui/src/ai/chart/chart-insights.d.ts +2 -2
  13. package/dist/packages/sdk-ui/src/ai/chart/nlq-chart-widget.d.ts +9 -1
  14. package/dist/packages/sdk-ui/src/ai/{get-nlg-query-result.d.ts → get-nlg-insights.d.ts} +21 -6
  15. package/dist/packages/sdk-ui/src/ai/index.d.ts +4 -3
  16. package/dist/packages/sdk-ui/src/ai/messages/insights-message.d.ts +2 -2
  17. package/dist/packages/sdk-ui/src/ai/{use-get-nlg-query-result.d.ts → use-get-nlg-insights.d.ts} +17 -10
  18. package/dist/packages/sdk-ui/src/ai/use-get-nlq-result.d.ts +74 -0
  19. package/dist/packages/sdk-ui/src/ai/use-get-query-recommendations.d.ts +11 -3
  20. package/dist/packages/sdk-ui/src/analytics-composer/common/stringify-props.d.ts +1 -1
  21. package/dist/packages/sdk-ui/src/analytics-composer/common/utils.d.ts +17 -1
  22. package/dist/packages/sdk-ui/src/analytics-composer/types.d.ts +30 -1
  23. package/dist/packages/sdk-ui/src/area-chart.d.ts +1 -1
  24. package/dist/packages/sdk-ui/src/areamap-chart.d.ts +1 -1
  25. package/dist/packages/sdk-ui/src/boxplot-utils.d.ts +3 -2
  26. package/dist/packages/sdk-ui/src/chart-data-options/types.d.ts +1 -1
  27. package/dist/packages/sdk-ui/src/chart-options-processor/subtype-to-design-options.d.ts +1 -1
  28. package/dist/packages/sdk-ui/src/chart-options-processor/translations/axis-section.d.ts +5 -2
  29. package/dist/packages/sdk-ui/src/chart-options-processor/translations/design-options.d.ts +1 -0
  30. package/dist/packages/sdk-ui/src/chart-options-processor/translations/value-label-section.d.ts +3 -1
  31. package/dist/packages/sdk-ui/src/common/components/button.d.ts +10 -0
  32. package/dist/packages/sdk-ui/src/common/components/popover.d.ts +23 -0
  33. package/dist/packages/sdk-ui/src/common/components/radio.d.ts +8 -0
  34. package/dist/packages/sdk-ui/src/common/hooks/use-combined-menu.d.ts +3 -4
  35. package/dist/packages/sdk-ui/src/const.d.ts +1 -0
  36. package/dist/packages/sdk-ui/src/dashboard/components/dashboard-container.d.ts +1 -1
  37. package/dist/packages/sdk-ui/src/dashboard/types.d.ts +6 -0
  38. package/dist/packages/sdk-ui/src/filters/components/cascading-filter-tile/cascading-filter-tile.d.ts +2 -2
  39. package/dist/packages/sdk-ui/src/filters/components/criteria-filter-tile/criteria-filter-tile.d.ts +1 -1
  40. package/dist/packages/sdk-ui/src/filters/components/custom-filter-tile.d.ts +1 -1
  41. package/dist/packages/sdk-ui/src/filters/components/date-filter/date-range-filter-tile/date-range-filter-tile.d.ts +1 -1
  42. package/dist/packages/sdk-ui/src/filters/components/date-filter/relative-date-filter-tile/relative-date-filter-tile.d.ts +1 -1
  43. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/common/index.d.ts +4 -0
  44. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/common/input.d.ts +5 -0
  45. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/common/search-input.d.ts +8 -0
  46. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/common/select/base.d.ts +14 -0
  47. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/common/select/index.d.ts +3 -0
  48. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/common/select/multi-select-item.d.ts +7 -0
  49. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/common/select/searchable-multi-select.d.ts +12 -0
  50. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/common/select/searchable-single-select.d.ts +12 -0
  51. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/common/select/single-select-item.d.ts +7 -0
  52. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/common/select/single-select.d.ts +12 -0
  53. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/common/select/types.d.ts +7 -0
  54. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/common/select/utils.d.ts +4 -0
  55. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/common/selectable-section.d.ts +11 -0
  56. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/filter-editor-popover.d.ts +12 -0
  57. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/filter-editor.d.ts +8 -0
  58. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/multi-select-control.d.ts +7 -0
  59. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/sections/include-all-section.d.ts +9 -0
  60. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/sections/members-section.d.ts +11 -0
  61. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/sections/text-condition-section.d.ts +11 -0
  62. package/dist/packages/sdk-ui/src/filters/components/filter-editor-popover/utils.d.ts +5 -0
  63. package/dist/packages/sdk-ui/src/filters/components/filter-tile-container.d.ts +42 -0
  64. package/dist/packages/sdk-ui/src/filters/components/filter-tile.d.ts +19 -35
  65. package/dist/packages/sdk-ui/src/filters/components/filters-panel/filters-panel.d.ts +2 -0
  66. package/dist/packages/sdk-ui/src/filters/components/filters-panel/index.d.ts +0 -1
  67. package/dist/packages/sdk-ui/src/filters/components/icons/arrow-down-icon.d.ts +1 -1
  68. package/dist/packages/sdk-ui/src/filters/components/icons/check-icon.d.ts +2 -0
  69. package/dist/packages/sdk-ui/src/filters/components/icons/index.d.ts +1 -0
  70. package/dist/packages/sdk-ui/src/filters/components/icons/search-icon.d.ts +1 -1
  71. package/dist/packages/sdk-ui/src/filters/components/index.d.ts +7 -0
  72. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/index.d.ts +1 -1
  73. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/member-filter-tile.d.ts +3 -3
  74. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/members-reducer.d.ts +7 -0
  75. package/dist/packages/sdk-ui/src/filters/components/unsupported-filter-tile.d.ts +1 -1
  76. package/dist/packages/sdk-ui/src/filters/helpers.d.ts +1 -122
  77. package/dist/packages/sdk-ui/src/filters/hooks/index.d.ts +1 -0
  78. package/dist/packages/sdk-ui/src/filters/hooks/use-get-filter-members.d.ts +77 -0
  79. package/dist/packages/sdk-ui/src/filters/index.d.ts +2 -7
  80. package/dist/packages/sdk-ui/src/index.d.ts +1 -1
  81. package/dist/packages/sdk-ui/src/models/widget/widget-model-translator.d.ts +9 -1
  82. package/dist/packages/sdk-ui/src/pivot-table/formatters/header-cell-formatters/header-cell-totals-formatter.d.ts +4 -0
  83. package/dist/packages/sdk-ui/src/props.d.ts +15 -15
  84. package/dist/packages/sdk-ui/src/query/date-formats/apply-date-format.d.ts +1 -1
  85. package/dist/packages/sdk-ui/src/translation/resources/en.d.ts +29 -0
  86. package/dist/packages/sdk-ui/src/translation/resources/index.d.ts +58 -0
  87. package/dist/packages/sdk-ui/src/types.d.ts +27 -2
  88. package/dist/packages/sdk-ui/src/utils/filter-relations.d.ts +30 -72
  89. package/dist/packages/sdk-ui/src/widget-by-id/dashboard-widget.d.ts +1 -1
  90. package/dist/packages/sdk-ui/src/widget-by-id/translate-widget-data-options.d.ts +1 -2
  91. package/dist/packages/sdk-ui/src/widget-by-id/types.d.ts +14 -0
  92. package/dist/packages/sdk-ui/src/widget-by-id/utils.d.ts +2 -57
  93. package/dist/useQuery-CRu7WcYd.cjs +916 -0
  94. package/dist/{useQuery-DOgANgSI.js → useQuery-CdtycPOg.js} +17043 -16999
  95. package/dist/{widget-composer-ldmqMCC4.cjs → widget-composer-DyY3yi_b.cjs} +10 -8
  96. package/dist/{widget-composer-NNyD6tF2.js → widget-composer-G4mPX-JO.js} +168 -143
  97. package/package.json +7 -7
  98. package/dist/packages/sdk-ui/src/filters/components/filters-panel/filters-panel-tile.d.ts +0 -24
  99. package/dist/useQuery-KI9icU5_.cjs +0 -915
@@ -22,6 +22,8 @@ export interface DashboardByIdProps {
22
22
  * @alpha
23
23
  */
24
24
  persist?: boolean;
25
+ /** @internal */
26
+ enableFilterEditor?: boolean;
25
27
  }
26
28
  /**
27
29
  * Props for the DashboardContainer component
@@ -40,6 +42,8 @@ export interface DashboardContainerProps {
40
42
  * @internal
41
43
  */
42
44
  onChange?: (action: DashboardChangeAction) => void;
45
+ /** @internal */
46
+ enableFilterEditor?: boolean;
43
47
  }
44
48
  /**
45
49
  * Dashboard configuration
@@ -108,6 +112,8 @@ export interface DashboardProps {
108
112
  * @internal
109
113
  */
110
114
  onChange?: (action: DashboardChangeAction) => void;
115
+ /** @internal */
116
+ enableFilterEditor?: boolean;
111
117
  }
112
118
  /**
113
119
  * Props for the Dashboard Header component
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { CascadingFilter, DataSource, Filter } from '@sisense/sdk-data';
2
+ import { DataSource, Filter } from '@sisense/sdk-data';
3
3
  import { FilterVariant } from '../common/filter-utils.js';
4
4
  /**
5
5
  * Props for {@link CascadingFilterTile}
@@ -8,7 +8,7 @@ import { FilterVariant } from '../common/filter-utils.js';
8
8
  */
9
9
  export interface CascadingFilterTileProps {
10
10
  /** Cascading filter object to initialize filter type and default values */
11
- filter: CascadingFilter;
11
+ filter: Filter;
12
12
  /**
13
13
  * Data source the query is run against - e.g. `Sample ECommerce`
14
14
  *
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { FilterTileDesignOptions } from '../filter-tile.js';
2
+ import { FilterTileDesignOptions } from '../filter-tile-container.js';
3
3
  import { ExcludeFilter, Filter, Measure, NumericFilter, RankingFilter, TextFilter } from '@sisense/sdk-data';
4
4
  import { FilterVariant } from '../common/filter-utils.js';
5
5
  /**
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { Filter } from '@sisense/sdk-data';
3
- import { FilterTileDesignOptions } from './filter-tile';
3
+ import { FilterTileDesignOptions } from './filter-tile-container';
4
4
  /**
5
5
  * Props for {@link CustomFilterTile}
6
6
  *
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { LevelAttribute, DataSource, Filter } from '@sisense/sdk-data';
3
- import { FilterTileDesignOptions } from '../../filter-tile';
3
+ import { FilterTileDesignOptions } from '../../filter-tile-container';
4
4
  export interface DateRangeFilterTileProps {
5
5
  /**
6
6
  * Filter tile title
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { Filter } from '@sisense/sdk-data';
3
3
  import { FilterVariant } from '../../common/index.js';
4
- import { FilterTileDesignOptions } from '../../filter-tile.js';
4
+ import { FilterTileDesignOptions } from '../../filter-tile-container.js';
5
5
  /**
6
6
  * Props for {@link RelativeDateFilterTile}
7
7
  */
@@ -0,0 +1,4 @@
1
+ export * from './input';
2
+ export * from './selectable-section';
3
+ export * from './search-input';
4
+ export * from './select';
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export declare const Input: import("@emotion/styled").StyledComponent<{
3
+ theme?: import("@emotion/react").Theme | undefined;
4
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
5
+ }, import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, {}>;
@@ -0,0 +1,8 @@
1
+ import { CSSProperties } from 'react';
2
+ type SearchInputProps = {
3
+ placeholder?: string;
4
+ onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
5
+ style?: CSSProperties;
6
+ };
7
+ export declare const SearchInput: (props: SearchInputProps) => import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ import { Focusable } from './types';
3
+ export declare const SelectContainer: import("@emotion/styled").StyledComponent<{
4
+ theme?: import("@emotion/react").Theme | undefined;
5
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
6
+ } & Focusable, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
7
+ export declare const SelectItemContainer: import("@emotion/styled").StyledComponent<{
8
+ theme?: import("@emotion/react").Theme | undefined;
9
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
10
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
11
+ export declare const SelectLabel: import("@emotion/styled").StyledComponent<{
12
+ theme?: import("@emotion/react").Theme | undefined;
13
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
14
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
@@ -0,0 +1,3 @@
1
+ export { SingleSelect } from './single-select';
2
+ export { SearchableMultiSelect } from './searchable-multi-select';
3
+ export { SearchableSingleSelect } from './searchable-single-select';
@@ -0,0 +1,7 @@
1
+ import { SelectItem } from './types';
2
+ type MultiSelectItemProps<Value> = SelectItem<Value> & {
3
+ selected: boolean;
4
+ onSelect?: (value: Value) => void;
5
+ };
6
+ export declare function MultiSelectItem<Value = unknown>(props: MultiSelectItemProps<Value>): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,12 @@
1
+ import { CSSProperties } from 'react';
2
+ import { SelectItem } from './types';
3
+ type SearchableMultiSelectProps<Value> = {
4
+ values?: Value[];
5
+ items: SelectItem<Value>[];
6
+ style?: CSSProperties;
7
+ placeholder?: string;
8
+ onChange?: (values: Value[]) => void;
9
+ };
10
+ /** @internal */
11
+ export declare function SearchableMultiSelect<Value = unknown>(props: SearchableMultiSelectProps<Value>): import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,12 @@
1
+ import { CSSProperties } from 'react';
2
+ import { SelectItem } from './types';
3
+ type SearchableSingleSelectProps<Value> = {
4
+ value?: Value;
5
+ items: SelectItem<Value>[];
6
+ style?: CSSProperties;
7
+ placeholder?: string;
8
+ onChange?: (value: Value) => void;
9
+ };
10
+ /** @internal */
11
+ export declare function SearchableSingleSelect<Value = unknown>(props: SearchableSingleSelectProps<Value>): import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,7 @@
1
+ import { SelectItem } from './types';
2
+ type SingleSelectItemProps<Value> = SelectItem<Value> & {
3
+ selected: boolean;
4
+ onSelect?: (value: Value) => void;
5
+ };
6
+ export declare function SingleSelectItem<Value = unknown>(props: SingleSelectItemProps<Value>): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,12 @@
1
+ import { CSSProperties } from 'react';
2
+ import { SelectItem } from './types';
3
+ type SelectProps<Value> = {
4
+ value?: Value;
5
+ multiple?: boolean;
6
+ items: SelectItem<Value>[];
7
+ style?: CSSProperties;
8
+ onChange?: (value: Value) => void;
9
+ };
10
+ /** @internal */
11
+ export declare function SingleSelect<Value = unknown>(props: SelectProps<Value>): import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,7 @@
1
+ export type Focusable = {
2
+ focus?: boolean;
3
+ };
4
+ export type SelectItem<Value> = {
5
+ value: Value;
6
+ displayValue?: string;
7
+ };
@@ -0,0 +1,4 @@
1
+ import { PopoverAnchorPosition } from '../../../../../common/components/popover';
2
+ import { SelectItem } from './types';
3
+ export declare const calculatePopoverPosition: (anchorEl: HTMLDivElement | null, contentHeight?: number) => PopoverAnchorPosition;
4
+ export declare function getSelectedItemsDisplayValue<Value>(items: SelectItem<Value>[], values: Value[]): string | undefined;
@@ -0,0 +1,11 @@
1
+ import { CSSProperties, ReactNode } from 'react';
2
+ type ChildrenFn = (select: () => void) => ReactNode;
3
+ type SelectableSectionProps = {
4
+ selected: boolean;
5
+ style?: CSSProperties;
6
+ onSelect: (selected: boolean) => void;
7
+ children: ReactNode | ChildrenFn;
8
+ };
9
+ /** @internal */
10
+ export declare const SelectableSection: ({ selected, style, children, onSelect, }: SelectableSectionProps) => import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,12 @@
1
+ import { type Filter } from '@sisense/sdk-data';
2
+ import { PopoverAnchorPosition } from '../../../common/components/popover';
3
+ type FilterEditorPopoverPosition = Pick<PopoverAnchorPosition, 'anchorEl'>;
4
+ type FilterEditorPopoverProps = {
5
+ filter?: Filter | null;
6
+ position?: FilterEditorPopoverPosition;
7
+ onChange?: (filter: Filter) => void;
8
+ onClose?: () => void;
9
+ };
10
+ /** @internal */
11
+ export declare const FilterEditorPopover: ({ filter, position, onChange, onClose, }: FilterEditorPopoverProps) => import("react/jsx-runtime").JSX.Element | null;
12
+ export {};
@@ -0,0 +1,8 @@
1
+ import { Filter } from '@sisense/sdk-data';
2
+ type FilterEditorProps = {
3
+ filter: Filter;
4
+ onChange?: (filter: Filter | null) => void;
5
+ };
6
+ /** @internal */
7
+ export declare const FilterEditor: ({ filter, onChange }: FilterEditorProps) => import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,7 @@
1
+ type MultiSelectControlProps = {
2
+ enabled: boolean;
3
+ onChange?: (enabled: boolean) => void;
4
+ };
5
+ /** @internal */
6
+ export declare const MultiSelectControl: ({ enabled, onChange }: MultiSelectControlProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,9 @@
1
+ import { Filter } from '@sisense/sdk-data';
2
+ type IncludeAllSectionProps = {
3
+ filter: Filter;
4
+ selected: boolean;
5
+ onChange: (newFilter: Filter) => void;
6
+ };
7
+ /** @internal */
8
+ export declare const IncludeAllSection: ({ filter, selected, onChange }: IncludeAllSectionProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,11 @@
1
+ import { Filter } from '@sisense/sdk-data';
2
+ type MembersSectionProps = {
3
+ filter: Filter;
4
+ selected: boolean;
5
+ members: string[];
6
+ multiSelectEnabled: boolean;
7
+ onChange: (filter: Filter | null) => void;
8
+ };
9
+ /** @internal */
10
+ export declare const MembersSection: (props: MembersSectionProps) => import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,11 @@
1
+ import { Filter } from '@sisense/sdk-data';
2
+ type TextConditionSectionProps = {
3
+ filter: Filter;
4
+ selected: boolean;
5
+ members: string[];
6
+ multiSelectEnabled: boolean;
7
+ onChange: (filter: Filter | null) => void;
8
+ };
9
+ /** @internal */
10
+ export declare const TextConditionSection: ({ filter, selected, members, multiSelectEnabled, onChange, }: TextConditionSectionProps) => import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,5 @@
1
+ import { Filter, MembersFilter } from '@sisense/sdk-data';
2
+ export declare function isIncludeAllFilter(filter: Filter): filter is MembersFilter;
3
+ export declare function isIncludeMembersFilter(filter: Filter): filter is MembersFilter;
4
+ export declare function isExcludeMembersFilter(filter: Filter): filter is MembersFilter;
5
+ export declare function isConditionalFilter(filter: Filter): boolean;
@@ -0,0 +1,42 @@
1
+ import type { FunctionComponent, ReactNode } from 'react';
2
+ import { FilterVariant } from './common/filter-utils';
3
+ import { DeepRequired } from 'ts-essentials';
4
+ /**
5
+ * Design options for the filter tile component.
6
+ *
7
+ * @internal
8
+ */
9
+ export interface FilterTileDesignOptions {
10
+ header?: {
11
+ shouldBeShown?: boolean;
12
+ isCollapsible?: boolean;
13
+ hasBorder?: boolean;
14
+ hasBackgroundFilterIcon?: boolean;
15
+ };
16
+ border?: {
17
+ shouldBeShown?: boolean;
18
+ };
19
+ footer?: {
20
+ shouldBeShown?: boolean;
21
+ };
22
+ }
23
+ export type CompleteFilterTileDesignOptions = DeepRequired<FilterTileDesignOptions>;
24
+ interface FilterTileContainerProps {
25
+ title?: string;
26
+ renderContent: (collapsed: boolean, tileDisabled: boolean) => ReactNode;
27
+ arrangement?: FilterVariant;
28
+ disabled?: boolean;
29
+ isDependent?: boolean;
30
+ design?: FilterTileDesignOptions;
31
+ onToggleDisabled?: () => void;
32
+ onDelete?: () => void;
33
+ onEdit?: () => void;
34
+ locked?: boolean;
35
+ }
36
+ /**
37
+ * Generic component that owns common functionality of a filter "tile" like
38
+ * collapsible content and an enable/disable toggle. This is intended to match
39
+ * the style of filter tiles in the right sidebar on a Sisense dashboard.
40
+ */
41
+ export declare const FilterTileContainer: FunctionComponent<FilterTileContainerProps>;
42
+ export {};
@@ -1,42 +1,26 @@
1
- import type { FunctionComponent, ReactNode } from 'react';
2
- import { FilterVariant } from './common/filter-utils';
3
- import { DeepRequired } from 'ts-essentials';
1
+ /// <reference types="react" />
2
+ import { DataSource, Filter } from '@sisense/sdk-data';
4
3
  /**
5
- * Design options for the filter tile component.
4
+ * Props of the {@link FilterTile} component
6
5
  *
7
- * @internal
8
6
  */
9
- export interface FilterTileDesignOptions {
10
- header?: {
11
- shouldBeShown?: boolean;
12
- isCollapsible?: boolean;
13
- hasBorder?: boolean;
14
- hasBackgroundFilterIcon?: boolean;
15
- };
16
- border?: {
17
- shouldBeShown?: boolean;
18
- };
19
- footer?: {
20
- shouldBeShown?: boolean;
21
- };
22
- }
23
- export type CompleteFilterTileDesignOptions = DeepRequired<FilterTileDesignOptions>;
24
- interface Props {
25
- title?: string;
26
- renderContent: (collapsed: boolean, tileDisabled: boolean) => ReactNode;
27
- arrangement?: FilterVariant;
28
- disabled?: boolean;
29
- isDependent?: boolean;
30
- design?: FilterTileDesignOptions;
31
- onToggleDisabled?: () => void;
7
+ export type FilterTileProps = {
8
+ /** Filter to display */
9
+ filter: Filter;
10
+ /** Callback to handle filter change */
11
+ onChange: (filter: Filter | null) => void;
12
+ /** Filter delete callback */
32
13
  onDelete?: () => void;
14
+ /** Filter edit callback */
33
15
  onEdit?: () => void;
34
- locked?: boolean;
35
- }
16
+ /** Default data source used for filter tiles */
17
+ defaultDataSource?: DataSource;
18
+ };
36
19
  /**
37
- * Generic component that owns common functionality of a filter "tile" like
38
- * collapsible content and an enable/disable toggle. This is intended to match
39
- * the style of filter tiles in the right sidebar on a Sisense dashboard.
20
+ * Facade component that renders a filter tile based on filter type
21
+ *
22
+ * @group Filter Tiles
23
+ * @shortDescription Facade component rendering a filter tile based on filter type
24
+ * @beta
40
25
  */
41
- export declare const FilterTile: FunctionComponent<Props>;
42
- export {};
26
+ export declare const FilterTile: React.FC<FilterTileProps>;
@@ -11,6 +11,8 @@ export type FiltersPanelProps = {
11
11
  onFiltersChange: (filters: Filter[] | FilterRelations) => void;
12
12
  /** Default data source used for filter tiles */
13
13
  defaultDataSource?: DataSource;
14
+ /** @internal */
15
+ enableFilterEditor?: boolean;
14
16
  };
15
17
  /**
16
18
  * Filters panel component that renders a list of filter tiles
@@ -1,2 +1 @@
1
1
  export { FiltersPanel, type FiltersPanelProps } from './filters-panel';
2
- export { FiltersPanelTile } from './filters-panel-tile';
@@ -1,2 +1,2 @@
1
1
  import type { SVGProps } from 'react';
2
- export declare const ArrowDownIcon: (props: Pick<SVGProps<SVGElement>, 'className' | 'width' | 'height' | 'fill' | 'onClick'>) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const ArrowDownIcon: (props: Pick<SVGProps<SVGElement>, 'className' | 'style' | 'width' | 'height' | 'fill' | 'onClick'>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare const CheckIcon: (props: Pick<SVGProps<SVGElement>, 'className' | 'width' | 'height' | 'color'>) => import("react/jsx-runtime").JSX.Element;
@@ -7,3 +7,4 @@ export { LockIcon } from './lock-icon';
7
7
  export { DateIcon } from './date-icon';
8
8
  export { ArrowDownIcon } from './arrow-down-icon';
9
9
  export { CubeIcon } from './cube-icon';
10
+ export { CheckIcon } from './check-icon';
@@ -1,2 +1,2 @@
1
1
  import type { SVGProps } from 'react';
2
- export declare const SearchIcon: (props: Pick<SVGProps<SVGElement>, 'className' | 'width' | 'height'>) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const SearchIcon: (props: Pick<SVGProps<SVGElement>, 'className' | 'width' | 'height' | 'color' | 'opacity'>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ export * from './member-filter-tile';
2
+ export * from './date-filter';
3
+ export * from './criteria-filter-tile';
4
+ export * from './cascading-filter-tile';
5
+ export * from './filters-panel';
6
+ export * from './custom-filter-tile';
7
+ export * from './filter-tile';
@@ -1,3 +1,3 @@
1
1
  export { MemberFilterTile, type MemberFilterTileProps } from './member-filter-tile';
2
2
  export { BasicMemberFilterTile, type BasicMemberFilterTileProps } from './basic-member-filter-tile';
3
- export type { Member } from './members-reducer';
3
+ export type { Member, SelectedMember } from './members-reducer';
@@ -1,8 +1,8 @@
1
1
  import { Attribute, DataSource, Filter } from '@sisense/sdk-data';
2
2
  import { FunctionComponent } from 'react';
3
- import { FilterTileDesignOptions } from '../filter-tile';
3
+ import { FilterTileDesignOptions } from '../filter-tile-container';
4
4
  /**
5
- * Props for {@link MemberFilterTile}
5
+ * Props for {@link @sisense/sdk-ui!MemberFilterTile | `MemberFilterTile`}
6
6
  */
7
7
  export interface MemberFilterTileProps {
8
8
  /** Title for the filter tile, which is rendered into the header */
@@ -17,7 +17,7 @@ export interface MemberFilterTileProps {
17
17
  attribute: Attribute;
18
18
  /** Source filter object. Caller is responsible for keeping track of filter state */
19
19
  filter: Filter | null;
20
- /** Callback indicating when the source member filter object should be updated */
20
+ /** Callback indicating when the source members filter should be updated */
21
21
  onChange: (filter: Filter | null) => void;
22
22
  /** Filter delete callback */
23
23
  onDelete?: () => void;
@@ -1,8 +1,15 @@
1
1
  export interface Member {
2
+ /** Key of the member */
2
3
  key: string;
4
+ /** Title of the member */
3
5
  title: string;
4
6
  }
5
7
  export interface SelectedMember extends Member {
8
+ /**
9
+ * Boolean flag whether the member is inactive
10
+ *
11
+ * If not specified, the default value is `false`
12
+ */
6
13
  inactive?: boolean;
7
14
  }
8
15
  type MembersState = {
@@ -1,4 +1,4 @@
1
- import { FilterTileDesignOptions } from '../../filters/components/filter-tile';
1
+ import { FilterTileDesignOptions } from '../../filters/components/filter-tile-container';
2
2
  import { Filter } from '@sisense/sdk-data';
3
3
  export type UnsupportedFilterTileProps = {
4
4
  filter: Filter;
@@ -1,122 +1 @@
1
- import { Filter, FilterRelations } from '@sisense/sdk-data';
2
- /**
3
- * Returns a function that adds a filter to existing filters or filter relations.
4
- *
5
- * @param filter - The filter to add.
6
- * @returns A function that takes existing filters or filter relations and returns updated filters or filter relations with the new filter added.
7
- * @group Filter Utilities
8
- * @example
9
- * ```ts
10
- * // Using with an array of filters
11
- * const originalFilters = [filterByAgeRange];
12
- * const updatedFilters = withAddedFilter(filterByCost)(originalFilters);
13
- * // [filterByAgeRange, filterByCost]
14
- *
15
- * // Using with filter relations
16
- * const originalFilterRelations = filterFactory.logic.or(filterByAgeRange, filterByRevenue);
17
- * const updatedFilterRelations = withAddedFilter(filterByCost)(originalFilterRelations);
18
- * // (filterByAgeRange OR filterByRevenue) AND filterByCost
19
- * ```
20
- * @internal
21
- */
22
- export declare function withAddedFilter(filter: Filter): (filters: Filter[] | FilterRelations | undefined) => Filter[] | FilterRelations;
23
- /**
24
- * Returns a function that adds multiple filters to existing filters or filter relations.
25
- *
26
- * @param filtersToAdd - An array of filters to add.
27
- * @returns A function that takes existing filters or filter relations and returns updated filters or filter relations with the new filters added.
28
- * @group Filter Utilities
29
- * @example
30
- * ```ts
31
- * // Using with an array of filters
32
- * const originalFilters = [filterByAgeRange];
33
- * const updatedFilters = withAddedFilters([filterByCost, filterByRevenue])(originalFilters);
34
- * // [filterByAgeRange, filterByCost, filterByRevenue]
35
- *
36
- * // Using with filter relations
37
- * const originalFilterRelations = filterFactory.logic.or(filterByAgeRange, filterByRevenue);
38
- * const updatedFilterRelations = withAddedFilters([filterByCost, filterByRevenue])(originalFilterRelations);
39
- * // (filterByAgeRange OR filterByRevenue) AND filterByCost AND filterByRevenue
40
- * ```
41
- *
42
- * @internal
43
- */
44
- export declare function withAddedFilters(filtersToAdd: Filter[]): (filters: Filter[] | FilterRelations | undefined) => Filter[] | FilterRelations;
45
- /**
46
- * Returns a function that removes a filter from existing filters or filter relations.
47
- *
48
- * @param filterToRemove - The filter to remove.
49
- * @returns A function that takes existing filters or filter relations and returns updated filters or filter relations without the specified filter.
50
- * @group Filter Utilities
51
- * @example
52
- * ```ts
53
- * // Using with an array of filters
54
- * const originalFilters = [filterByAgeRange, filterByRevenue, filterByCost];
55
- * const updatedFilters = withoutFilter(filterByCost)(originalFilters);
56
- * // [filterByAgeRange, filterByRevenue]
57
- *
58
- * // Using with filter relations
59
- * const originalFilterRelations = filterFactory.logic.or(filterByAgeRange, filterByRevenue);
60
- * const updatedFiltersRelations = withoutFilter(filterByRevenue)(originalFilterRelations);
61
- * // filterByAgeRange
62
- * ```
63
- *
64
- * @internal
65
- */
66
- export declare function withoutFilter(filterToRemove: Filter): (filters: Filter[] | FilterRelations | undefined) => Filter[] | FilterRelations;
67
- /**
68
- * Returns a function that removes multiple filters from existing filters or filter relations.
69
- *
70
- * @param filtersToRemove - An array of filters to remove.
71
- * @returns A function that takes existing filters or filter relations and returns updated filters or filter relations without the specified filters.
72
- * @group Filter Utilities
73
- * @example
74
- * ```ts
75
- * // Using with an array of filters
76
- * const originalFilters = [filterByAgeRange, filterByRevenue, filterByCost];
77
- * const updatedFilters = withRemovedFilters([filterByRevenue, filterByCost])(originalFilters);
78
- * // [filterByAgeRange]
79
- *
80
- * // Using with filter relations
81
- * const originalFilterRelations = filterFactory.logic.or(filterByAgeRange, filterByRevenue);
82
- * const updatedFiltersRelations = withRemovedFilters([filterByRevenue])(originalFilterRelations);
83
- * // filterByAgeRange
84
- * ```
85
- *
86
- * @internal
87
- */
88
- export declare function withoutFilters(filtersToRemove: Filter[]): (filters: Filter[] | FilterRelations | undefined) => Filter[] | FilterRelations;
89
- /**
90
- * Returns a function that replaces a filter with a new filter in existing filters or filter relations.
91
- *
92
- * @param filterToReplace - The filter to replace.
93
- * @param newFilter - The new filter to use as a replacement.
94
- * @returns A function that takes existing filters or filter relations and returns updated filters or filter relations with the filter replaced.
95
- * @group Filter Utilities
96
- * @example
97
- * ```ts
98
- * // Using with an array of filters
99
- * const originalFilters = [filterByAgeRange, filterByRevenue];
100
- * const updatedFilters = withReplacedFilter(filterByRevenue, filterByCost)(originalFilters);
101
- * // [filterByAgeRange, filterByCost]
102
- *
103
- * // Using with filter relations
104
- * const originalFilterRelations = filterFactory.logic.or(filterByAgeRange, filterByRevenue);
105
- * const updatedFilterRelations = withReplacedFilter(filterByRevenue, filterByCost)(originalFilterRelations);
106
- * // (filterByAgeRange OR filterByCost)
107
- * ```
108
- *
109
- * @internal
110
- */
111
- export declare function withReplacedFilter(filterToReplace: Filter, newFilter: Filter): (filters: Filter[] | FilterRelations | undefined) => Filter[] | FilterRelations;
112
- /**
113
- * Finds a filter in an array of filters or filter relations.
114
- * Returns the first filter that satisfies the provided search function.
115
- * @group Filter Utilities
116
- * @param filters - An array of filters or filter relations to search.
117
- * @param searchFn - A function that takes a filter and returns a boolean indicating whether the filter satisfies the search criteria.
118
- * @returns The first filter that satisfies the search function, or `undefined` if no filter is found.
119
- *
120
- * @internal
121
- */
122
- export declare function findFilter(filters: Filter[] | FilterRelations | undefined, searchFn: (filter: Filter) => boolean): Filter | undefined;
1
+ export { splitFiltersAndRelations, calculateNewRelations, combineFiltersAndRelations, getRelationsWithReplacedFilter, getFiltersArray, withAddedFilter, withAddedFilters, withoutFilter, withoutFilters, withReplacedFilter, findFilter, } from '@sisense/sdk-data';
@@ -0,0 +1 @@
1
+ export { useGetFilterMembers, type GetFilterMembersParams, type GetFilterMembersResult, type GetFilterMembersSuccess, type GetFilterMembersError, } from './use-get-filter-members';