@sisense/sdk-ui 1.21.0 → 1.23.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 (118) hide show
  1. package/dist/ai.cjs +57 -49
  2. package/dist/ai.js +844 -744
  3. package/dist/analytics-composer.cjs +89 -148
  4. package/dist/analytics-composer.js +1198 -1481
  5. package/dist/{get-widget-options-NhNoIBS9.js → derive-chart-family-CTpRObm1.js} +11138 -11042
  6. package/dist/{get-widget-options-BmZF5Ztf.cjs → derive-chart-family-DcALKnKU.cjs} +100 -100
  7. package/dist/index.cjs +116 -116
  8. package/dist/index.js +9303 -8779
  9. package/dist/packages/sdk-ui/src/ai/api/chat-rest-api.d.ts +1 -1
  10. package/dist/packages/sdk-ui/src/ai/api/types.d.ts +3 -23
  11. package/dist/packages/sdk-ui/src/ai/chart/chart-insights.d.ts +5 -0
  12. package/dist/packages/sdk-ui/src/ai/chart/nlq-chart-widget.d.ts +41 -0
  13. package/dist/packages/sdk-ui/src/ai/chat-config.d.ts +1 -1
  14. package/dist/packages/sdk-ui/src/ai/icons/ai-icon.d.ts +2 -0
  15. package/dist/packages/sdk-ui/src/ai/index.d.ts +2 -3
  16. package/dist/packages/sdk-ui/src/ai/messages/chart-message.d.ts +1 -2
  17. package/dist/packages/sdk-ui/src/ai/use-get-data-source-fields.d.ts +1 -1
  18. package/dist/packages/sdk-ui/src/analytics-composer/{translators → code}/code-templates.d.ts +1 -1
  19. package/dist/packages/sdk-ui/src/analytics-composer/{translators → code}/generate-code.d.ts +3 -3
  20. package/dist/packages/sdk-ui/src/analytics-composer/{translators → common}/utils.d.ts +1 -1
  21. package/dist/packages/sdk-ui/src/analytics-composer/index.d.ts +12 -1
  22. package/dist/packages/sdk-ui/src/analytics-composer/query/index.d.ts +1 -0
  23. package/dist/packages/sdk-ui/src/analytics-composer/{translators → query}/query-translator.d.ts +2 -3
  24. package/dist/packages/sdk-ui/src/analytics-composer/types.d.ts +149 -0
  25. package/dist/packages/sdk-ui/src/{ai/messages → analytics-composer/widget/chart-options}/get-widget-options.d.ts +5 -14
  26. package/dist/packages/sdk-ui/src/analytics-composer/widget/stringify-filters.d.ts +2 -0
  27. package/dist/packages/sdk-ui/src/analytics-composer/widget/to-widget-code.d.ts +3 -0
  28. package/dist/packages/sdk-ui/src/analytics-composer/widget/to-widget-props.d.ts +3 -0
  29. package/dist/packages/sdk-ui/src/analytics-composer/widget/widget-composer.d.ts +15 -0
  30. package/dist/packages/sdk-ui/src/api/rest-api.d.ts +5 -1
  31. package/dist/packages/sdk-ui/src/api/types/dashboard-dto.d.ts +1 -1
  32. package/dist/packages/sdk-ui/src/app/client-application.d.ts +60 -16
  33. package/dist/packages/sdk-ui/src/app/settings/settings.d.ts +5 -0
  34. package/dist/packages/sdk-ui/src/app/settings/types/user.d.ts +0 -1
  35. package/dist/packages/sdk-ui/src/boxplot-utils.d.ts +5 -4
  36. package/dist/packages/sdk-ui/src/chart/chart.d.ts +1 -0
  37. package/dist/packages/sdk-ui/src/chart/helpers/derive-chart-family.d.ts +8 -0
  38. package/dist/packages/sdk-ui/src/chart-data-options/utils.d.ts +1 -0
  39. package/dist/packages/sdk-ui/src/chart-options-processor/translations/translations-to-highcharts.d.ts +1 -1
  40. package/dist/packages/sdk-ui/src/common/components/menu/types.d.ts +1 -0
  41. package/dist/packages/sdk-ui/src/common/hooks/use-fetch.d.ts +1 -1
  42. package/dist/packages/sdk-ui/src/common/hooks/use-synced-state.d.ts +19 -0
  43. package/dist/packages/sdk-ui/src/common-filters/selection-utils.d.ts +9 -1
  44. package/dist/packages/sdk-ui/src/common-filters/use-common-filters.d.ts +4 -2
  45. package/dist/packages/sdk-ui/src/dashboard/dashboard-by-id.d.ts +1 -2
  46. package/dist/packages/sdk-ui/src/dashboard/dashboard-helpers.d.ts +86 -9
  47. package/dist/packages/sdk-ui/src/dashboard/dashboard.d.ts +9 -1
  48. package/dist/packages/sdk-ui/src/dashboard/index.d.ts +2 -1
  49. package/dist/packages/sdk-ui/src/dashboard/types.d.ts +18 -0
  50. package/dist/packages/sdk-ui/src/dashboard/use-composed-dashboard.d.ts +30 -0
  51. package/dist/packages/sdk-ui/src/dashboard/use-dashboard-theme.d.ts +40 -0
  52. package/dist/packages/sdk-ui/src/decorators/hook-decorators/with-tracking.d.ts +1 -0
  53. package/dist/packages/sdk-ui/src/filters/components/common/member-radio.d.ts +8 -0
  54. package/dist/packages/sdk-ui/src/filters/components/date-filter/date-range-filter-tile/date-range-filter-display.d.ts +2 -1
  55. package/dist/packages/sdk-ui/src/filters/components/filters-panel/filters-panel.d.ts +2 -2
  56. package/dist/packages/sdk-ui/src/filters/components/filters-panel/index.d.ts +1 -1
  57. package/dist/packages/sdk-ui/src/filters/components/member-filter-tile/member-list.d.ts +1 -0
  58. package/dist/packages/sdk-ui/src/formulas/use-get-shared-formula.d.ts +2 -2
  59. package/dist/packages/sdk-ui/src/index.d.ts +28 -13
  60. package/dist/packages/sdk-ui/src/models/dashboard/dashboard-model-translator.d.ts +2 -2
  61. package/dist/packages/sdk-ui/src/models/dashboard/dashboard-model.d.ts +1 -1
  62. package/dist/packages/sdk-ui/src/models/dashboard/index.d.ts +2 -0
  63. package/dist/packages/sdk-ui/src/models/dashboard/translate-dashboard-dto-utils.d.ts +11 -0
  64. package/dist/packages/sdk-ui/src/models/dashboard/translate-dashboard-utils.d.ts +1 -1
  65. package/dist/packages/sdk-ui/src/models/dashboard/use-dashboard-model/use-dasboard-model-utils.d.ts +22 -0
  66. package/dist/packages/sdk-ui/src/models/dashboard/use-dashboard-model/use-dashboard-model-reducer.d.ts +63 -0
  67. package/dist/packages/sdk-ui/src/models/dashboard/use-dashboard-model/use-dashboard-model.d.ts +38 -0
  68. package/dist/packages/sdk-ui/src/models/dashboard/use-get-dashboard-model.d.ts +3 -4
  69. package/dist/packages/sdk-ui/src/models/dashboard/use-get-dashboard-models.d.ts +1 -1
  70. package/dist/packages/sdk-ui/src/models/hierarchy/hierarchy-model-translator.d.ts +1 -1
  71. package/dist/packages/sdk-ui/src/models/hierarchy/use-get-hierarchy-models.d.ts +2 -2
  72. package/dist/packages/sdk-ui/src/models/widget/use-get-widget-model.d.ts +2 -2
  73. package/dist/packages/sdk-ui/src/models/widget/widget-model-translator.d.ts +19 -1
  74. package/dist/packages/sdk-ui/src/models/widget/widget-model.d.ts +2 -2
  75. package/dist/packages/sdk-ui/src/props.d.ts +47 -24
  76. package/dist/packages/sdk-ui/src/query-execution/execute-query-by-widget-id.d.ts +1 -1
  77. package/dist/packages/sdk-ui/src/query-execution/types.d.ts +1 -1
  78. package/dist/packages/sdk-ui/src/query-execution/use-execute-query-by-widget-id.d.ts +1 -1
  79. package/dist/packages/sdk-ui/src/sisense-context/custom-sisense-context-provider.d.ts +1 -3
  80. package/dist/packages/sdk-ui/src/sisense-context/sisense-context.d.ts +3 -0
  81. package/dist/packages/sdk-ui/src/translation/i18n-provider.d.ts +3 -1
  82. package/dist/packages/sdk-ui/src/translation/resources/en.d.ts +114 -2
  83. package/dist/packages/sdk-ui/src/translation/resources/index.d.ts +206 -4
  84. package/dist/packages/sdk-ui/src/types.d.ts +33 -5
  85. package/dist/packages/sdk-ui/src/utils/filters.d.ts +1 -0
  86. package/dist/packages/sdk-ui/src/{dashboard-widget → widget-by-id}/dashboard-widget.d.ts +4 -3
  87. package/dist/packages/sdk-ui/src/widget-by-id/translate-dashboard-filters.d.ts +4800 -0
  88. package/dist/packages/sdk-ui/src/{dashboard-widget → widget-by-id}/translate-panel-color-format.d.ts +3 -3
  89. package/dist/packages/sdk-ui/src/{dashboard-widget → widget-by-id}/translate-widget-data-options.d.ts +15 -5
  90. package/dist/packages/sdk-ui/src/{dashboard-widget → widget-by-id}/translate-widget-drilldown-options.d.ts +2 -2
  91. package/dist/packages/sdk-ui/src/{dashboard-widget → widget-by-id}/translate-widget-filters.d.ts +85 -83
  92. package/dist/packages/sdk-ui/src/{dashboard-widget → widget-by-id}/types.d.ts +1 -1
  93. package/dist/packages/sdk-ui/src/{dashboard-widget → widget-by-id}/use-fetch-widget-dto-model.d.ts +3 -3
  94. package/dist/packages/sdk-ui/src/{dashboard-widget → widget-by-id}/utils.d.ts +6 -13
  95. package/dist/packages/sdk-ui/src/widget-by-id/widget-by-id.d.ts +26 -0
  96. package/dist/packages/sdk-ui/src/widgets/common/drilldown-utils.d.ts +7 -0
  97. package/dist/packages/sdk-ui/src/widgets/common/{use-drilldown.d.ts → use-drilldown-core.d.ts} +14 -8
  98. package/dist/packages/sdk-ui/src/widgets/common-widget.d.ts +1 -0
  99. package/dist/packages/sdk-ui/src/widgets/hooks/use-drilldown.d.ts +27 -0
  100. package/dist/packages/sdk-ui/src/widgets/hooks/use-with-drilldown.d.ts +12 -0
  101. package/dist/packages/sdk-ui/src/widgets/widget.d.ts +9 -0
  102. package/dist/{table-widget-BPmucihM.js → useQuery-1xZMqnAI.js} +40059 -39949
  103. package/dist/useQuery-D9rZ58KS.cjs +821 -0
  104. package/dist/widget-composer-B17DVa2A.cjs +101 -0
  105. package/dist/widget-composer-DqjH_6dw.js +448 -0
  106. package/package.json +9 -9
  107. package/dist/packages/sdk-ui/src/ai/api/errors.d.ts +0 -4
  108. package/dist/packages/sdk-ui/src/ai/messages/jaql-element.d.ts +0 -28
  109. package/dist/packages/sdk-ui/src/analytics-composer/translators/index.d.ts +0 -3
  110. package/dist/packages/sdk-ui/src/analytics-composer/translators/model-translator.d.ts +0 -48
  111. package/dist/packages/sdk-ui/src/analytics-composer/translators/translate-filters-to-code.d.ts +0 -2
  112. package/dist/packages/sdk-ui/src/analytics-composer/translators/types.d.ts +0 -95
  113. package/dist/packages/sdk-ui/src/dashboard-widget/translate-dashboard-filters.d.ts +0 -4798
  114. package/dist/packages/sdk-ui/src/widgets/common/drilldown-connector.d.ts +0 -19
  115. package/dist/table-widget-BikAZUJv.cjs +0 -821
  116. /package/dist/packages/sdk-ui/src/analytics-composer/{translators → query}/query-templates.d.ts +0 -0
  117. /package/dist/packages/sdk-ui/src/analytics-composer/{translators/translate-props-to-code.d.ts → widget/stringify-props.d.ts} +0 -0
  118. /package/dist/packages/sdk-ui/src/{dashboard-widget → widget-by-id}/translate-widget-style-options.d.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  import { WidgetContainerStyleOptions } from '../types';
2
- import { LEGACY_DESIGN_TYPES } from './../themes/legacy-design-settings';
2
+ import { LEGACY_DESIGN_TYPES } from '../themes/legacy-design-settings';
3
3
  import { BaseJaql, Jaql, JaqlDataSource, JaqlSortDirection } from '@sisense/sdk-data';
4
4
  import { HierarchyId } from '../models/hierarchy';
5
5
  /**
@@ -1,6 +1,6 @@
1
- import { RestApi } from '../api/rest-api';
2
- import { DashboardDto } from '../api/types/dashboard-dto';
3
- import { WidgetDto } from './types';
1
+ import { RestApi } from '../api/rest-api.js';
2
+ import { DashboardDto } from '../api/types/dashboard-dto.js';
3
+ import { WidgetDto } from './types.js';
4
4
  /**
5
5
  * Fetches a Widget DTO model and, optionally, a Dashboard DTO model.
6
6
  *
@@ -1,10 +1,11 @@
1
- import { type Filter, JaqlSortDirection, FilterRelations, FilterRelationsModel, FilterRelationsJaql } from '@sisense/sdk-data';
2
- import { ChartSubtype } from '../chart-options-processor/subtype-to-design-options';
3
- import { ChartType, type SortDirection } from '../types';
4
- import { FiltersMergeStrategy, Panel, PanelItem, TextWidgetDtoStyle, WidgetStyle, WidgetSubtype, WidgetType } from './types';
5
- import { ChartProps, ChartWidgetProps, PivotTableWidgetProps, PluginWidgetProps, RenderToolbarHandler, TextWidgetProps, CommonWidgetProps, WithWidgetType, WidgetProps } from '..';
1
+ import { type Filter, FilterRelations, FilterRelationsModel, FilterRelationsJaql } from '@sisense/sdk-data';
2
+ import { ChartSubtype } from '../chart-options-processor/subtype-to-design-options.js';
3
+ import { ChartType } from '../types.js';
4
+ import { FiltersMergeStrategy, Panel, PanelItem, TextWidgetDtoStyle, WidgetStyle, WidgetSubtype, WidgetType } from './types.js';
5
+ import { ChartProps, ChartWidgetProps, PivotTableWidgetProps, PluginWidgetProps, RenderToolbarHandler, TextWidgetProps, CommonWidgetProps, WithWidgetType, WidgetProps } from '../index.js';
6
6
  import { WidgetTypeInternal } from '../models/widget/types';
7
7
  export declare function getChartType(widgetType: WidgetType): ChartType;
8
+ export declare function getWidgetTypeFromChartType(chartType: ChartType): WidgetType;
8
9
  export declare function getChartSubtype(widgetSubtype: WidgetSubtype): ChartSubtype | undefined;
9
10
  type WidgetTypeOrString = string | WidgetType;
10
11
  export declare function isSupportedWidgetType(widgetType: WidgetTypeOrString): widgetType is WidgetType;
@@ -69,14 +70,6 @@ export declare function registerDataPointsSelectedHandler(widgetProps: WidgetPro
69
70
  export declare function registerRenderToolbarHandler(widgetProps: WidgetProps, handler: RenderToolbarHandler): void;
70
71
  export declare function getEnabledPanelItems(panels: Panel[], panelName: string): PanelItem[];
71
72
  export declare function getRootPanelItem(item: PanelItem): PanelItem;
72
- /**
73
- * Gets the sort type based on the jaql sort direction.
74
- *
75
- * @param jaqlSort - The jaql sort direction.
76
- * @returns The sort direction.
77
- * @internal
78
- */
79
- export declare function getSortType(jaqlSort: `${JaqlSortDirection}` | undefined): SortDirection;
80
73
  /**
81
74
  * Gets a unique identifier for a filter, combining its attribute expression and granularity if available.
82
75
  *
@@ -0,0 +1,26 @@
1
+ import { type FunctionComponent } from 'react';
2
+ import { WidgetByIdProps } from '../props.js';
3
+ /**
4
+ * The WidgetById component, which is a thin wrapper on the {@link ChartWidget} component,
5
+ * is used to render a widget created in a Sisense Fusion instance.
6
+ *
7
+ * To learn more about using Sisense Fusion Widgets in Compose SDK,
8
+ * see [Sisense Fusion Widgets](/guides/sdk/guides/charts/guide-fusion-widgets.html).
9
+ *
10
+ * **Note:** Widget extensions based on JS scripts and add-ons in Fusion are not supported.
11
+ *
12
+ * ## Example
13
+ *
14
+ * Display two dashboard widgets from a Fusion instance.
15
+ *
16
+ * <iframe
17
+ * src='https://csdk-playground.sisense.com/?example=fusion-assets%2Ffusion-widgets&mode=docs'
18
+ * width=800
19
+ * height=870
20
+ * style='border:none;'
21
+ * />
22
+ *
23
+ * @group Fusion Assets
24
+ * @fusionEmbed
25
+ */
26
+ export declare const WidgetById: FunctionComponent<WidgetByIdProps>;
@@ -0,0 +1,7 @@
1
+ import { DataPoint, ChartType, ChartDataOptions } from '../../types';
2
+ import { Attribute } from '@sisense/sdk-data';
3
+ import { ScatterDataPoint } from '../..';
4
+ export declare function getDrilldownInitialDimension(chartType: ChartType, dataOptions: ChartDataOptions): Attribute | undefined;
5
+ export declare function isDrilldownApplicableToChart(chartType: ChartType, dataOptions: ChartDataOptions): boolean;
6
+ export declare function applyDrilldownDimension(chartType: ChartType, dataOptions: ChartDataOptions, drilldownDimension: Attribute): ChartDataOptions;
7
+ export declare function prepareDrilldownSelectionPoints(points: (DataPoint | ScatterDataPoint)[], nativeEvent: MouseEvent, dataOptions: ChartDataOptions): DataPoint[];
@@ -1,23 +1,30 @@
1
1
  import { type TFunction } from '@sisense/sdk-common';
2
2
  import { Attribute, Column, MembersFilter } from '@sisense/sdk-data';
3
- import { StyledColumn, DrilldownSelection, DataPoint, ChartDataPoint, MenuItemSection } from '../../types.js';
3
+ import { StyledColumn, DrilldownSelection, DataPoint, ChartDataPoint } from '../../types.js';
4
4
  import { Hierarchy } from '../../models';
5
- type UseDrilldownParams = {
6
- drilldownPaths: (Attribute | Hierarchy)[];
5
+ type UseDrilldownCoreParams = {
6
+ drilldownPaths?: (Attribute | Hierarchy)[];
7
7
  initialDimension: Column | StyledColumn;
8
8
  drilldownSelections?: DrilldownSelection[];
9
9
  onDrilldownSelectionsChange?: (selections: DrilldownSelection[]) => void;
10
10
  };
11
- export declare const useDrilldown: (params: UseDrilldownParams) => {
11
+ export declare const useDrilldownCore: (params: UseDrilldownCoreParams) => {
12
+ drilldownSelections: DrilldownSelection[];
13
+ availableDrilldownPaths: (Attribute | Hierarchy)[];
12
14
  drilldownFilters: MembersFilter[];
13
15
  drilldownFiltersDisplayValues: string[][];
14
16
  drilldownDimension: Attribute;
15
17
  selectDrilldown: (points: DataPoint[], nextDimension: Attribute, hierarchy?: Hierarchy) => void;
16
18
  sliceDrilldownSelections: (i: number) => void;
17
19
  clearDrilldownSelections: () => void;
18
- drilldownSelections: DrilldownSelection[];
19
- availableDrilldownPaths: (Attribute | Hierarchy)[];
20
20
  };
21
+ /**
22
+ * Updates the drilldown selections based on the current selections, the next data points,
23
+ * and the specified hierarchy level.
24
+ *
25
+ * @internal
26
+ */
27
+ export declare const updateDrilldownSelections: (currentSelections: DrilldownSelection[], points: DataPoint[], nextDimension: Attribute, hierarchy?: Hierarchy) => DrilldownSelection[];
21
28
  /**
22
29
  * @internal
23
30
  */
@@ -26,7 +33,6 @@ export declare const processDrilldownSelections: (drilldownSelections: Drilldown
26
33
  drilldownFiltersDisplayValues: string[][];
27
34
  drilldownDimension: Attribute;
28
35
  };
36
+ export declare function getDisplayMemberNameFromDataPoint(point: ChartDataPoint): string;
29
37
  export declare function getMemberNameFromDataPoint(point: ChartDataPoint): string;
30
- export declare function getSelectionTitleMenuItem(points: DataPoint[], drilldownDimension: Attribute): MenuItemSection;
31
- export declare function getDrilldownMenuItems(availableDrilldownPaths: (Attribute | Hierarchy)[], drilldownDimension: Attribute, selectFn: (nextDimension: Attribute, hierarchy?: Hierarchy) => void, translate: TFunction): MenuItemSection;
32
38
  export {};
@@ -3,6 +3,7 @@ import { CommonWidgetProps } from '../props';
3
3
  /**
4
4
  * Facade component that renders a widget within a dashboard based on the widget type.
5
5
  *
6
+ * @group Dashboards
6
7
  * @internal
7
8
  */
8
9
  export declare const CommonWidget: React.FC<CommonWidgetProps>;
@@ -0,0 +1,27 @@
1
+ import { Attribute, Column } from '@sisense/sdk-data';
2
+ import { type TFunction } from '@sisense/sdk-common';
3
+ import { StyledColumn, DrilldownSelection, DataPoint, MenuPosition, MenuItemSection } from '../../types.js';
4
+ import { Hierarchy } from '../../models';
5
+ import { OpenMenuFn } from '../../common/components/menu/types.js';
6
+ type UseDrilldownParams = {
7
+ initialDimension: Column | StyledColumn;
8
+ drilldownPaths?: (Attribute | Hierarchy)[];
9
+ drilldownSelections?: DrilldownSelection[];
10
+ /**
11
+ * todo: make it optional when we will have a public `MenuProvider`.
12
+ * Without provided function, it should open internal menu with the help of `useMenu` hook
13
+ */
14
+ openMenu: OpenMenuFn;
15
+ onDrilldownSelectionsChange?: (selections: DrilldownSelection[]) => void;
16
+ };
17
+ export declare const useDrilldown: ({ initialDimension, drilldownPaths, drilldownSelections, openMenu, onDrilldownSelectionsChange, }: UseDrilldownParams) => {
18
+ drilldownDimension: Attribute;
19
+ drilldownFilters: import("@sisense/sdk-data").MembersFilter[];
20
+ breadcrumbs: import("react/jsx-runtime").JSX.Element;
21
+ openDrilldownMenu: (position: MenuPosition, points: DataPoint[]) => void;
22
+ };
23
+ /** @internal */
24
+ export declare function getSelectionTitleMenuItem(points: DataPoint[], drilldownDimension: Attribute): MenuItemSection;
25
+ /** @internal */
26
+ export declare function getDrilldownMenuItems(availableDrilldownPaths: (Attribute | Hierarchy)[], drilldownDimension: Attribute, selectFn: (nextDimension: Attribute, hierarchy?: Hierarchy) => void, translate: TFunction): MenuItemSection;
27
+ export {};
@@ -0,0 +1,12 @@
1
+ import { DrilldownSelection } from '../../types.js';
2
+ import { ChartWidgetProps } from '../../props.js';
3
+ type UseWithDrilldownParams = {
4
+ propsToExtend: ChartWidgetProps;
5
+ onDrilldownSelectionsChange?: (selections: DrilldownSelection[]) => void;
6
+ };
7
+ export declare const useWithDrilldown: ({ propsToExtend, onDrilldownSelectionsChange, }: UseWithDrilldownParams) => {
8
+ propsWithDrilldown: ChartWidgetProps;
9
+ isDrilldownEnabled: boolean | 0;
10
+ breadcrumbs: import("react/jsx-runtime").JSX.Element;
11
+ };
12
+ export {};
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { WidgetProps } from '..';
3
+ /**
4
+ * Facade component that renders a widget within a dashboard based on the widget type.
5
+ *
6
+ * @group Dashboards
7
+ * @alpha
8
+ */
9
+ export declare const Widget: React.FC<WidgetProps>;