@sisense/sdk-ui 1.12.0 → 1.13.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 (68) hide show
  1. package/dist/ai/api/chat-rest-api.d.ts +3 -4
  2. package/dist/ai/api/hooks.d.ts +2 -2
  3. package/dist/ai/api/types.d.ts +2 -16
  4. package/dist/ai/buttons/scroll-to-bottom-button.d.ts +3 -0
  5. package/dist/ai/chat-config.d.ts +8 -0
  6. package/dist/ai/common/constants.d.ts +1 -0
  7. package/dist/ai/common/tooltip.d.ts +2 -2
  8. package/dist/ai/data-topics/data-topic-list.d.ts +0 -1
  9. package/dist/ai/icons/scroll-to-bottom-icon.d.ts +1 -0
  10. package/dist/ai/scroll-to-bottom.d.ts +7 -0
  11. package/dist/ai.cjs +87 -70
  12. package/dist/ai.js +833 -917
  13. package/dist/chart/helpers/use-synced-data.d.ts +1 -1
  14. package/dist/chart-options-processor/chart-options-service.d.ts +4 -0
  15. package/dist/chart-options-processor/subtype-to-design-options.d.ts +13 -1
  16. package/dist/chart-options-processor/translations/tooltip-utils.d.ts +2 -0
  17. package/dist/common/components/loading-overlay.d.ts +1 -0
  18. package/dist/common-filters/common-filters-connector.d.ts +9 -0
  19. package/dist/common-filters/selection-utils.d.ts +11 -0
  20. package/dist/common-filters/types.d.ts +14 -0
  21. package/dist/common-filters/use-common-filters.d.ts +13 -0
  22. package/dist/common-filters/utils.d.ts +9 -0
  23. package/dist/common-filters/widget-header-clear-selection-button.d.ts +3 -0
  24. package/dist/dashboard/components/dashboard-container.d.ts +1 -1
  25. package/dist/dashboard/dashboard.d.ts +1 -1
  26. package/dist/dashboard/types.d.ts +5 -2
  27. package/dist/dashboard/utils.d.ts +0 -3
  28. package/dist/dashboard-widget/translate-dashboard-filters.d.ts +4772 -2
  29. package/dist/dashboard-widget/translate-widget-data-options.d.ts +1 -1
  30. package/dist/dashboard-widget/translate-widget-filters.d.ts +200 -37
  31. package/dist/dashboard-widget/types.d.ts +1 -0
  32. package/dist/dashboard-widget/utils.d.ts +3 -1
  33. package/dist/filters/components/cascading-filter-tile/cascading-filter-tile.d.ts +25 -0
  34. package/dist/filters/components/cascading-filter-tile/cascading-level-filter.d.ts +21 -0
  35. package/dist/filters/components/cascading-filter-tile/index.d.ts +1 -0
  36. package/dist/filters/components/criteria-filter-tile/criteria-filter-operations.d.ts +2 -2
  37. package/dist/filters/components/criteria-filter-tile/criteria-filter-tile.d.ts +6 -0
  38. package/dist/filters/components/custom-filter-tile.d.ts +43 -0
  39. package/dist/filters/components/date-filter/date-range-filter-tile/date-range-filter-tile.d.ts +6 -0
  40. package/dist/filters/components/date-filter/relative-date-filter-tile/relative-date-filter-tile.d.ts +8 -2
  41. package/dist/filters/components/date-filter/relative-date-filter-tile/relative-date-filter.d.ts +2 -2
  42. package/dist/filters/components/filter-tile.d.ts +21 -1
  43. package/dist/filters/components/filters-panel/filters-panel-tile.d.ts +4 -2
  44. package/dist/filters/components/filters-panel/filters-panel.d.ts +4 -2
  45. package/dist/filters/components/member-filter-tile/member-filter-tile.d.ts +4 -1
  46. package/dist/filters/components/member-filter-tile/member-list.d.ts +1 -1
  47. package/dist/filters/hooks/use-synchronized-filter.d.ts +12 -0
  48. package/dist/filters/index.d.ts +2 -0
  49. package/dist/filters/utils.d.ts +7 -0
  50. package/dist/index.cjs +213 -167
  51. package/dist/index.d.ts +1 -0
  52. package/dist/index.js +23056 -18772
  53. package/dist/models/dashboard/dashboard-model.d.ts +12 -8
  54. package/dist/models/dashboard/get-dashboard-model.d.ts +2 -1
  55. package/dist/models/dashboard/translate-dashboard-utils.d.ts +3 -1
  56. package/dist/models/dashboard/types.d.ts +3 -0
  57. package/dist/models/widget/get-widget-model.d.ts +2 -1
  58. package/dist/models/widget/translate-widget.d.ts +5 -2
  59. package/dist/models/widget/types.d.ts +9 -0
  60. package/dist/models/widget/widget-model.d.ts +31 -1
  61. package/dist/query/query-result-date-formatting.d.ts +1 -0
  62. package/dist/translation/resources/en.d.ts +4 -0
  63. package/dist/translation/resources/index.d.ts +8 -0
  64. package/dist/types.d.ts +9 -3
  65. package/dist/useQuery-C8plkncQ.cjs +603 -0
  66. package/dist/{useQuery-0UWck_2A.js → useQuery-D5W0RM1R.js} +20786 -20529
  67. package/package.json +10 -10
  68. package/dist/useQuery-DVHD0kJ-.cjs +0 -603
@@ -48,6 +48,7 @@ export interface WidgetDto {
48
48
  desc: string | null;
49
49
  options?: {
50
50
  dashboardFiltersMode: `${WidgetDashboardFilterMode}`;
51
+ selector: boolean;
51
52
  };
52
53
  }
53
54
  export type FiltersIgnoringRules = {
@@ -21,7 +21,9 @@ export declare function getRootPanelItem(item: PanelItem): PanelItem;
21
21
  export declare function getSortType(jaqlSort: `${JaqlSortDirection}` | undefined): SortDirection;
22
22
  /**
23
23
  * Merges two arrays of filter objects, prioritizing 'targetFilters' over 'sourceFilters',
24
- * and removes duplicates based on filter compare id
24
+ * and removes duplicates based on filter compare id.
25
+ *
26
+ * Saves the 'sourceFilters' filters order, while adds new filters to the end of the array.
25
27
  *
26
28
  * @param {Filter[]} [sourceFilters=[]] - The source array of filter objects.
27
29
  * @param {Filter[]} [targetFilters=[]] - The target array of filter objects.
@@ -0,0 +1,25 @@
1
+ /// <reference types="react" />
2
+ import { CascadingFilter, Filter } from '@sisense/sdk-data';
3
+ import { FilterVariant } from '../common/filter-utils.js';
4
+ /**
5
+ * Props for {@link CascadingFilterTile}
6
+ *
7
+ * @internal
8
+ */
9
+ export interface CascadingFilterTileProps {
10
+ /** Cascading filter object to initialize filter type and default values */
11
+ filter: CascadingFilter;
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
+ onChange: (filter: Filter) => void;
16
+ }
17
+ /**
18
+ * UI component representing group of cascading (dependent) filters.
19
+ *
20
+ * @param props - Cascading filter tile props
21
+ * @returns Cascading filter tile component
22
+ * @group Filter Tiles
23
+ * @internal
24
+ */
25
+ export declare const CascadingFilterTile: import("react").FunctionComponent<CascadingFilterTileProps>;
@@ -0,0 +1,21 @@
1
+ import { Filter } from '@sisense/sdk-data';
2
+ /**
3
+ * Props of the {@link CascadingLevelFilterTile} component
4
+ *
5
+ * @internal
6
+ */
7
+ export type CascadingLevelFilterTileProps = {
8
+ /** Filter to display */
9
+ filter: Filter;
10
+ parentFilters: Filter[];
11
+ /** Callback to handle filter change */
12
+ onChange: (filter: Filter | null) => void;
13
+ /** Whether the filter is the last in the list */
14
+ isLast?: boolean;
15
+ };
16
+ /**
17
+ * Filter tile component that renders a level filter based on its type
18
+ *
19
+ * @internal
20
+ */
21
+ export declare const CascadingLevelFilterTile: ({ filter, parentFilters, onChange, isLast, }: CascadingLevelFilterTileProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export { CascadingFilterTile, type CascadingFilterTileProps } from './cascading-filter-tile';
@@ -1,4 +1,4 @@
1
- import { Measure } from '@sisense/sdk-data';
1
+ import { Filter, Measure } from '@sisense/sdk-data';
2
2
  import { CriteriaFilterType } from './criteria-filter-tile';
3
3
  /**
4
4
  * Collection of filter options for the {@link CriteriaFilterMenu},
@@ -37,7 +37,7 @@ export type FilterOptionType = keyof typeof FilterOption;
37
37
  * @internal
38
38
  */
39
39
  export type FilterInfo = {
40
- fn: Function;
40
+ fn: (...args: any[]) => Filter;
41
41
  inputCount: number;
42
42
  symbols: string[];
43
43
  message: string;
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { FilterTileDesignOptions } from '../filter-tile.js';
2
3
  import { ExcludeFilter, Filter, Measure, NumericFilter, RankingFilter, TextFilter } from '@sisense/sdk-data';
3
4
  import { FilterVariant } from '../common/filter-utils.js';
4
5
  /**
@@ -15,6 +16,11 @@ export interface CriteriaFilterTileProps {
15
16
  onUpdate: (filter: Filter | null) => void;
16
17
  /** List of available measures to rank by. Required only for ranking filters. */
17
18
  measures?: Measure[];
19
+ /**
20
+ * Design options for the filter tile component
21
+ * @internal
22
+ */
23
+ tileDesignOptions?: FilterTileDesignOptions;
18
24
  }
19
25
  export type CriteriaFilterType = NumericFilter | TextFilter | RankingFilter | ExcludeFilter;
20
26
  /**
@@ -0,0 +1,43 @@
1
+ /// <reference types="react" />
2
+ import { Filter } from '@sisense/sdk-data';
3
+ /**
4
+ * Props for {@link CustomFilterTile}
5
+ *
6
+ * @internal
7
+ */
8
+ export interface CustomFilterTileProps {
9
+ /** Custom filter. */
10
+ filter: Filter;
11
+ /**
12
+ * Callback to handle changes in custom filter.
13
+ *
14
+ * @param filter - Custom filter
15
+ */
16
+ onUpdate: (filter: Filter | null) => void;
17
+ }
18
+ /**
19
+ * UI component for a custom filter defined with JAQL.
20
+ *
21
+ * @internal
22
+ * @example
23
+ * ```tsx
24
+ * const filterJaql = { from: 10, to: 20000 };
25
+ *
26
+ * const [customFilter, setCustomFilter] = useState<Filter>(
27
+ * filterFactory.customFilter(DM.Commerce.Cost, filterJaql),
28
+ * );
29
+ *
30
+ * return (
31
+ * <CustomFilterTile
32
+ * filter={customFilter}
33
+ * onChange={(filter: Filter) => {
34
+ * setCustomFilter(filter);
35
+ * }}
36
+ * />
37
+ * );
38
+ * ```
39
+ * @param props - Custom filter tile props
40
+ * @returns Custom filter tile component
41
+ * @group Filter Tiles
42
+ */
43
+ export declare const CustomFilterTile: import("react").FunctionComponent<CustomFilterTileProps>;
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { LevelAttribute, DataSource, Filter } from '@sisense/sdk-data';
3
+ import { FilterTileDesignOptions } from '../../filter-tile';
3
4
  export interface DateRangeFilterTileProps {
4
5
  /**
5
6
  * Filter tile title
@@ -47,6 +48,11 @@ export interface DateRangeFilterTileProps {
47
48
  * @internal
48
49
  */
49
50
  tiled?: boolean;
51
+ /**
52
+ * Design options for the filter tile component
53
+ * @internal
54
+ */
55
+ tileDesignOptions?: FilterTileDesignOptions;
50
56
  }
51
57
  /**
52
58
  * Date Range Filter Tile component for filtering data by date range.
@@ -1,6 +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
5
  /**
5
6
  * Props for {@link RelativeDateFilterTile}
6
7
  */
@@ -14,9 +15,9 @@ export interface RelativeDateFilterTileProps {
14
15
  /**
15
16
  * Callback function that is called when the relative date filter object should be updated.
16
17
  *
17
- * @param filter - Relative date filter, or null for failure/disabled
18
+ * @param filter - Relative date filter
18
19
  */
19
- onUpdate: (filter: Filter | null) => void;
20
+ onUpdate: (filter: Filter) => void;
20
21
  /**
21
22
  * Limit of the date range that can be selected.
22
23
  */
@@ -24,6 +25,11 @@ export interface RelativeDateFilterTileProps {
24
25
  maxDate: string;
25
26
  minDate: string;
26
27
  };
28
+ /**
29
+ * Design options for the filter tile component
30
+ * @internal
31
+ */
32
+ tileDesignOptions?: FilterTileDesignOptions;
27
33
  }
28
34
  /**
29
35
  * UI component that allows the user to filter date attributes according to
@@ -1,4 +1,4 @@
1
- import { Filter, RelativeDateFilter as RelativeDateFilterType } from '@sisense/sdk-data';
1
+ import { RelativeDateFilter as RelativeDateFilterType } from '@sisense/sdk-data';
2
2
  import { FilterVariant } from '../../common/index.js';
3
3
  import { FunctionComponent } from 'react';
4
4
  /**
@@ -7,7 +7,7 @@ import { FunctionComponent } from 'react';
7
7
  export interface RelativeDateFilterProps {
8
8
  filter: RelativeDateFilterType;
9
9
  arrangement?: FilterVariant;
10
- onUpdate: (filter: Filter | null) => void;
10
+ onUpdate: (filter: RelativeDateFilterType) => void;
11
11
  disabled: boolean;
12
12
  limit?: {
13
13
  maxDate: string;
@@ -1,11 +1,31 @@
1
1
  import type { FunctionComponent, ReactNode } from 'react';
2
2
  import { FilterVariant } from './common/filter-utils';
3
+ import { DeepRequired } from 'ts-essentials';
4
+ /**
5
+ * Design options for the filter tile component.
6
+ * @internal
7
+ */
8
+ export interface FilterTileDesignOptions {
9
+ header?: {
10
+ shouldBeShown?: boolean;
11
+ isCollapsible?: boolean;
12
+ hasBorder?: boolean;
13
+ };
14
+ border?: {
15
+ shouldBeShown?: boolean;
16
+ };
17
+ footer?: {
18
+ shouldBeShown?: boolean;
19
+ };
20
+ }
21
+ export type CompleteFilterTileDesignOptions = DeepRequired<FilterTileDesignOptions>;
3
22
  interface Props {
4
- title: string;
23
+ title?: string;
5
24
  renderContent: (collapsed: boolean, tileDisabled: boolean) => ReactNode;
6
25
  arrangement?: FilterVariant;
7
26
  disabled?: boolean;
8
27
  isDependent?: boolean;
28
+ design?: FilterTileDesignOptions;
9
29
  onToggleDisabled?: () => void;
10
30
  }
11
31
  /**
@@ -1,4 +1,4 @@
1
- import { Filter } from '@sisense/sdk-data';
1
+ import { DataSource, Filter } from '@sisense/sdk-data';
2
2
  /**
3
3
  * Props of the {@link FiltersPanelTile} component
4
4
  *
@@ -9,10 +9,12 @@ export type FiltersPanelTileProps = {
9
9
  filter: Filter;
10
10
  /** Callback to handle filter change */
11
11
  onChange: (filter: Filter | null) => void;
12
+ /** Default data source used for filter tiles */
13
+ defaultDataSource?: DataSource;
12
14
  };
13
15
  /**
14
16
  * Filter tile component that renders a filter based on its type
15
17
  *
16
18
  * @internal
17
19
  */
18
- export declare const FiltersPanelTile: ({ filter, onChange }: FiltersPanelTileProps) => import("react/jsx-runtime").JSX.Element;
20
+ export declare const FiltersPanelTile: ({ filter, onChange, defaultDataSource, }: FiltersPanelTileProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { Filter } from '@sisense/sdk-data';
1
+ import { DataSource, Filter } from '@sisense/sdk-data';
2
2
  /**
3
3
  * Props of the {@link FiltersPanel} component
4
4
  *
@@ -9,10 +9,12 @@ export type FiltersPanelProps = {
9
9
  filters: Filter[];
10
10
  /** Callback to handle changes in filters */
11
11
  onFiltersChange: (filters: Filter[]) => void;
12
+ /** Default data source used for filter tiles */
13
+ defaultDataSource?: DataSource;
12
14
  };
13
15
  /**
14
16
  * Filters panel component that renders a list of filter tiles
15
17
  *
16
18
  * @internal
17
19
  */
18
- export declare const FiltersPanel: ({ filters, onFiltersChange }: FiltersPanelProps) => import("react/jsx-runtime").JSX.Element;
20
+ export declare const FiltersPanel: ({ filters, onFiltersChange, defaultDataSource, }: FiltersPanelProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,6 @@
1
- import type { Attribute, DataSource, Filter } from '@sisense/sdk-data';
1
+ import { Attribute, DataSource, Filter } from '@sisense/sdk-data';
2
2
  import { FunctionComponent } from 'react';
3
+ import { FilterTileDesignOptions } from '../filter-tile';
3
4
  /**
4
5
  * Props for {@link MemberFilterTile}
5
6
  */
@@ -20,6 +21,8 @@ export interface MemberFilterTileProps {
20
21
  onChange: (filter: Filter | null) => void;
21
22
  /** List of filters this filter is dependent on */
22
23
  parentFilters?: Filter[];
24
+ /** Design options for the tile @internal */
25
+ tileDesignOptions?: FilterTileDesignOptions;
23
26
  }
24
27
  /**
25
28
  * UI component that allows the user to select members to include/exclude in a
@@ -3,7 +3,7 @@ import { Member, SelectedMember } from './members-reducer';
3
3
  export interface MemberListProps {
4
4
  members: Member[];
5
5
  selectedMembers: SelectedMember[];
6
- onSelectMember: (member: Member) => void;
6
+ onSelectMember: (member: Member, isSelected: boolean) => void;
7
7
  selectAllMembers: () => void;
8
8
  clearAllMembers: () => void;
9
9
  disabled: boolean;
@@ -0,0 +1,12 @@
1
+ import { Filter } from '@sisense/sdk-data';
2
+ /**
3
+ * Filter tiles supposed to be Controlled components (stateless) and to react on passed `filter`.
4
+ * But to achieve backward compatibility, we also need to handle `filter` as internal state
5
+ * in case of using Filter tile as Uncontrolled component (statefull).
6
+ *
7
+ * This hook helps with synchronization for both patterns.
8
+ */
9
+ export declare function useSynchronizedFilter<TFilter extends Filter = Filter>(filterFromProps: TFilter | null, updateFilterFromProps: (filter: TFilter) => void, createEmptyFilter?: () => TFilter): {
10
+ filter: TFilter;
11
+ updateFilter: (newFilter: TFilter) => void;
12
+ };
@@ -1,5 +1,7 @@
1
1
  export * from './components/member-filter-tile';
2
2
  export * from './components/date-filter';
3
3
  export * from './components/criteria-filter-tile';
4
+ export * from './components/cascading-filter-tile';
4
5
  export * from './components/filters-panel';
6
+ export * from './components/custom-filter-tile';
5
7
  export { type FilterVariant } from './components/common/filter-utils';
@@ -0,0 +1,7 @@
1
+ import { type Filter } from '@sisense/sdk-data';
2
+ /**
3
+ * Clones a filter with a toggled 'disabled' state.
4
+ * @param filter - Filter to clone
5
+ */
6
+ export declare const cloneFilterAndToggleDisabled: <TFilter extends Filter>(filter: TFilter) => TFilter;
7
+ export declare const cloneFilter: <TFilter extends Filter>(filter: TFilter) => TFilter;