@adaptabletools/adaptable-cjs 20.0.0-canary.3 → 20.0.0-canary.4

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 (40) hide show
  1. package/package.json +1 -1
  2. package/src/AdaptableOptions/CellSummaryOptions.d.ts +1 -1
  3. package/src/AdaptableOptions/ContainerOptions.d.ts +0 -7
  4. package/src/AdaptableOptions/DefaultAdaptableOptions.js +0 -1
  5. package/src/AdaptableOptions/EditOptions.d.ts +1 -1
  6. package/src/AdaptableOptions/ExportOptions.d.ts +4 -18
  7. package/src/AdaptableOptions/PredicateOptions.d.ts +4 -4
  8. package/src/Api/Implementation/AdaptableApiImpl.js +1 -0
  9. package/src/Api/Implementation/ExportApiImpl.js +3 -2
  10. package/src/Api/Implementation/ScheduleApiImpl.js +1 -1
  11. package/src/Api/Implementation/StyledColumnApiImpl.js +1 -1
  12. package/src/Api/Internal/EventInternalApi.js +6 -1
  13. package/src/Api/Internal/ExportInternalApi.js +1 -1
  14. package/src/PredefinedConfig/Common/AdaptableColumnContext.d.ts +1 -1
  15. package/src/PredefinedConfig/ExportState.d.ts +3 -3
  16. package/src/PredefinedConfig/LayoutState.d.ts +14 -14
  17. package/src/PredefinedConfig/StyledColumnState.d.ts +1 -1
  18. package/src/Strategy/StyledColumnModule.js +6 -6
  19. package/src/Utilities/ObjectFactory.js +1 -0
  20. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.d.ts +2 -0
  21. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +18 -2
  22. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsSummary.js +4 -0
  23. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsWizard.js +2 -1
  24. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.d.ts +3 -4
  25. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +348 -191
  26. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +2 -2
  27. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
  28. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +4 -4
  29. package/src/agGrid/AdaptableAgGrid.d.ts +1 -6
  30. package/src/agGrid/AdaptableAgGrid.js +24 -42
  31. package/src/agGrid/AgGridAdapter.js +3 -0
  32. package/src/agGrid/AgGridColumnAdapter.js +5 -3
  33. package/src/components/ColorPicker/ColorPicker.js +2 -2
  34. package/src/env.js +2 -2
  35. package/src/metamodel/adaptable.metamodel.d.ts +0 -15
  36. package/src/metamodel/adaptable.metamodel.js +1 -1
  37. package/src/migration/VersionUpgrade20.d.ts +1 -0
  38. package/src/migration/VersionUpgrade20.js +25 -0
  39. package/src/types.d.ts +1 -1
  40. package/tsconfig.cjs.tsbuildinfo +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable-cjs",
3
- "version": "20.0.0-canary.3",
3
+ "version": "20.0.0-canary.4",
4
4
  "description": "Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements",
5
5
  "keywords": [
6
6
  "web-components",
@@ -9,7 +9,7 @@ export interface CellSummaryOptions<TData = any> {
9
9
  */
10
10
  customCellSummaryOperations?: CustomCellSummaryOperation<TData>[];
11
11
  /**
12
- * Numeric format to use for summary value; note relevant Format Columns with a DisplayFormat take precedence over this
12
+ * Numeric format to use for summary value; a Format Column DisplayFormat will take precedence
13
13
  */
14
14
  numericDisplayFormat?: NumberFormatterOptions | ((columnContext: AdaptableColumnContext) => NumberFormatterOptions);
15
15
  }
@@ -16,13 +16,6 @@ export interface ContainerOptions {
16
16
  * @gridInfoItem
17
17
  */
18
18
  agGridContainer?: string | HTMLElement;
19
- /**
20
- * How long to wait for AG Grid before giving up trying to connect
21
- *
22
- * @defaultValue 60s
23
- * @gridInfoItem
24
- */
25
- agGridContainerWaitTimeout?: number;
26
19
  /**
27
20
  * Name of div where popups appear
28
21
  *
@@ -58,7 +58,6 @@ const DefaultAdaptableOptions = {
58
58
  containerOptions: {
59
59
  adaptableContainer: 'adaptable',
60
60
  agGridContainer: 'grid',
61
- agGridContainerWaitTimeout: 60000,
62
61
  modalContainer: undefined,
63
62
  systemStatusContainer: undefined,
64
63
  alertContainer: undefined,
@@ -26,7 +26,7 @@ export interface EditOptions<TData = any> {
26
26
  */
27
27
  smartEditCustomOperations?: SmartEditCustomOperation<TData>[];
28
28
  /**
29
- * Dropdown values displayed when column is being edited
29
+ * Columns that will display a Select dropdown when editing
30
30
  */
31
31
  showSelectCellEditor?: (currentColumContext: AdaptableColumnContext<TData>) => boolean;
32
32
  /**
@@ -13,7 +13,7 @@ export interface ExportOptions<TData = any> {
13
13
  *
14
14
  * @defaultValue rawValue
15
15
  */
16
- exportDataFormat?: DataFormatType | DataFormatDataType | ((dataFormatTypeContext: DataFormatTypeContext<TData>) => DataFormatType);
16
+ exportDataFormat?: DataFormatType | DataFormatDataType | ((context: AdaptableColumnContext<TData>) => DataFormatType);
17
17
  /**
18
18
  * Optional custom format for Date columns when exporting
19
19
  *
@@ -66,7 +66,7 @@ export interface ExportOptions<TData = any> {
66
66
  * Whether a Column is included in System Reports and available in UI for selection
67
67
  * @defaultValue true
68
68
  */
69
- isColumnExportable?: (exportableColumnContext: ExportableColumnContext) => boolean;
69
+ isColumnExportable?: (context: AdaptableColumnContext) => boolean;
70
70
  /**
71
71
  * Function invoked before a Report is run, enabling users to preload the data before it is exported
72
72
  */
@@ -257,11 +257,6 @@ export interface ReportContext extends BaseExportContext {
257
257
  */
258
258
  reportData: ExportResultData;
259
259
  }
260
- /**
261
- * Context used for setting whether a Column is exportable
262
- */
263
- export interface ExportableColumnContext extends AdaptableColumnContext {
264
- }
265
260
  /**
266
261
  * Context used for providing a custom filename for a Report
267
262
  */
@@ -271,23 +266,14 @@ export interface ReportFileNameContext extends BaseExportContext {
271
266
  */
272
267
  fileName: string;
273
268
  }
274
- /**
275
- * Context provided when setting a Data Format Type for Export
276
- */
277
- export interface DataFormatTypeContext<TData = any> extends BaseContext {
278
- /**
279
- * Column being exported
280
- */
281
- column: AdaptableColumn<TData>;
282
- }
283
269
  /**
284
270
  * Defines the Format Data Types for all Data Types
285
271
  */
286
272
  export interface DataFormatDataType {
287
273
  /**
288
- * Data Format type for String columns
274
+ * Data Format type for String / Text columns
289
275
  */
290
- string?: DataFormatType;
276
+ text?: DataFormatType;
291
277
  /**
292
278
  * Data Format type for Number columns
293
279
  */
@@ -36,10 +36,10 @@ export interface PredicateOptions {
36
36
  */
37
37
  caseSensitivePredicates?: boolean;
38
38
  /**
39
- * Should Values (IN) Predicate evaluate using datetime (rather than date)
40
- * @defaultValue true
41
- * @noCodeItem
42
- */
39
+ * Should Values (IN) Predicate evaluate using datetime (rather than date)
40
+ * @defaultValue true
41
+ * @noCodeItem
42
+ */
43
43
  evaluateValuesPredicateUsingTime?: boolean;
44
44
  }
45
45
  /**
@@ -144,6 +144,7 @@ class AdaptableApiImpl {
144
144
  this.formatColumnApi = null;
145
145
  this.freeTextColumnApi = null;
146
146
  this.gridApi = null;
147
+ this.rowFormApi = null;
147
148
  this.internalApi = null;
148
149
  this.layoutApi = null;
149
150
  this.pluginsApi = null;
@@ -147,10 +147,11 @@ class ExportApiImpl extends ApiBase_1.ApiBase {
147
147
  isColumnExportable(adaptableColumn) {
148
148
  const isExportableFn = this.getExportOptions().isColumnExportable;
149
149
  if (typeof isExportableFn === 'function') {
150
- return isExportableFn({
150
+ const adaptableColumnContext = {
151
151
  ...this.getAdaptableInternalApi().buildBaseContext(),
152
152
  column: adaptableColumn,
153
- });
153
+ };
154
+ return isExportableFn(adaptableColumnContext);
154
155
  }
155
156
  return true;
156
157
  }
@@ -163,7 +163,7 @@ class ScheduleApiImpl extends ApiBase_1.ApiBase {
163
163
  }
164
164
  else if (scheduleType == 'Report') {
165
165
  const reportSchedule = schedule;
166
- this.getExportApi().exportReport(reportSchedule.ReportName, reportSchedule.ReportFormat, 'Download');
166
+ this.getExportApi().exportReport(reportSchedule.ReportName, reportSchedule.ReportFormat, reportSchedule.ExportDestination ?? 'Download');
167
167
  }
168
168
  else if (scheduleType == 'ipushpull') {
169
169
  const ippApi = this.getAdaptableApi().pluginsApi.getipushpullPluginApi();
@@ -39,7 +39,7 @@ class StyledColumnApiImpl extends ApiBase_1.ApiBase {
39
39
  if (!column) {
40
40
  return false;
41
41
  }
42
- return !!this.getStyledColumns().find((styledColumn) => !!styledColumn.SparkLineStyle && styledColumn.ColumnId === column.columnId);
42
+ return !!this.getStyledColumns().find((styledColumn) => !!styledColumn.SparklineStyle && styledColumn.ColumnId === column.columnId);
43
43
  }
44
44
  getActiveStyledColumnForColumn(column) {
45
45
  const styledColumns = this.getActiveStyledColumns();
@@ -63,7 +63,12 @@ class EventInternalApi extends ApiBase_1.ApiBase {
63
63
  isToolbarStateChangedToHidden,
64
64
  };
65
65
  if (!(0, isEqual_1.default)(oldDashboardState, newDashboardState)) {
66
- setTimeout(() => this.getEventApi().emit('DashboardChanged', dashboardChangedInfo));
66
+ setTimeout(() => {
67
+ const eventApi = this.getEventApi();
68
+ if (eventApi) {
69
+ eventApi.emit('DashboardChanged', dashboardChangedInfo);
70
+ }
71
+ });
67
72
  }
68
73
  }
69
74
  fireAlertFiredEvent(alertToFire) {
@@ -117,7 +117,7 @@ class ExportInternalApi extends ApiBase_1.ApiBase {
117
117
  // format is customized based on column data type
118
118
  switch (columnDataType) {
119
119
  case 'text':
120
- return dataFormatDataType.string;
120
+ return dataFormatDataType.text;
121
121
  case 'number':
122
122
  return dataFormatDataType.number;
123
123
  case 'date':
@@ -5,7 +5,7 @@ import { BaseContext } from './BaseContext';
5
5
  */
6
6
  export interface AdaptableColumnContext<TData = any> extends BaseContext {
7
7
  /**
8
- * Column being filtered
8
+ * The current Column
9
9
  */
10
10
  column: AdaptableColumn<TData>;
11
11
  }
@@ -3,9 +3,9 @@ import { BaseSchedule } from './Common/Schedule';
3
3
  import { ColumnScope } from './Common/ColumnScope';
4
4
  import { AdaptableColumnBase } from './Common/AdaptableColumn';
5
5
  import { AdaptableObject } from './Common/AdaptableObject';
6
- import { AdaptableFormData } from './Common/AdaptableForm';
7
6
  import { AdaptableBooleanQuery } from './Common/AdaptableQuery';
8
7
  import { TypeHint } from './Common/Types';
8
+ import { ExportDestinationType } from '../AdaptableOptions/ExportOptions';
9
9
  /**
10
10
  * Predefined Configuration for Export Module
11
11
  */
@@ -61,9 +61,9 @@ export interface ReportSchedule extends BaseSchedule {
61
61
  */
62
62
  ReportFormat: ReportFormatType;
63
63
  /**
64
- * Additional data for a Custom Destination produced by a Dynamic Form
64
+ * Destination of Report to run on Schedule
65
65
  */
66
- ExportDestinationData?: AdaptableFormData;
66
+ ExportDestination?: ExportDestinationType;
67
67
  }
68
68
  /**
69
69
  * Defines the data in a Report run by AdapTable
@@ -100,19 +100,19 @@ export interface TableLayout extends LayoutBase {
100
100
  */
101
101
  RowGroupDisplayType?: 'single' | 'multi';
102
102
  /**
103
- * Pivot Columns - can NOT be provided
103
+ * Pivot Columns - must NOT be provided
104
104
  */
105
105
  PivotColumns?: never;
106
106
  /**
107
- * Pivot Group Columns - can NOT be provided
107
+ * Pivot Group Columns - must NOT be provided
108
108
  */
109
109
  PivotGroupedColumns?: never;
110
110
  /**
111
- * Pivot Expansions - can NOT be provided
111
+ * Pivot Expansions - must NOT be provided
112
112
  */
113
113
  PivotExpandLevel?: never;
114
114
  /**
115
- * Pivot Aggregation Columns - can NOT be provided
115
+ * Pivot Aggregation Columns - must NOT be provided
116
116
  */
117
117
  PivotAggregationColumns?: never;
118
118
  }
@@ -137,31 +137,31 @@ export interface PivotLayout extends LayoutBase {
137
137
  */
138
138
  PivotGroupedColumns?: string[];
139
139
  /**
140
- * Table Columns - can NOT be provided
140
+ * Table Columns - must NOT be provided
141
141
  */
142
142
  TableColumns?: never;
143
143
  /**
144
- * Table Aggregation Columns - can NOT be provided
144
+ * Table Aggregation Columns - must NOT be provided
145
145
  */
146
146
  TableAggregationColumns?: never;
147
147
  /**
148
- * Row Grouped Columns Columns - can NOT be provided
148
+ * Row Grouped Columns Columns - must NOT be provided
149
149
  */
150
150
  RowGroupedColumns?: never;
151
151
  }
152
- /**
153
- * Object used for defining which Row Group Values are Expanded or Collapsed
154
- */
155
- export type RowGroupValuesWithExceptionKeys = {
156
- RowGroupDefaultBehavior: 'expanded' | 'collapsed';
157
- ExceptionGroupKeys?: any[][];
158
- };
159
152
  /**
160
153
  * Manages how (and which) Row Group values are stored
161
154
  */
162
155
  export type RowGroupValues = {
163
156
  RowGroupDefaultBehavior: 'always-expanded' | 'always-collapsed';
164
157
  } | RowGroupValuesWithExceptionKeys;
158
+ /**
159
+ * Defines which Row Group Values are expanded or collapsed
160
+ */
161
+ export type RowGroupValuesWithExceptionKeys = {
162
+ RowGroupDefaultBehavior: 'expanded' | 'collapsed';
163
+ ExceptionGroupKeys?: any[][];
164
+ };
165
165
  /**
166
166
  * Defines a map of Columns with a String value
167
167
  */
@@ -32,7 +32,7 @@ export interface StyledColumn extends SuspendableObject {
32
32
  /**
33
33
  * Displays a Sparkline Chart in an array column
34
34
  */
35
- SparkLineStyle?: SparklineStyle;
35
+ SparklineStyle?: SparklineStyle;
36
36
  /**
37
37
  * Displays cell values in Column as a Badge
38
38
  */
@@ -39,12 +39,12 @@ class StyledColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
39
39
  // because if just one then it was created in AG Grid and we dont want to edit it
40
40
  }
41
41
  else {
42
- const hasSparklineStyle = styledColumn != null && styledColumn.SparkLineStyle != null;
42
+ const hasSparklineStyle = styledColumn != null && styledColumn.SparklineStyle != null;
43
43
  if (!hasSparklineStyle) {
44
44
  styledColumn = {
45
45
  ...ObjectFactory_1.default.CreateEmptyStyledColumn(),
46
46
  ColumnId: column.columnId,
47
- SparkLineStyle: {},
47
+ SparklineStyle: {},
48
48
  };
49
49
  }
50
50
  let label = hasSparklineStyle ? 'Edit ' : 'Create ';
@@ -52,7 +52,7 @@ class StyledColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
52
52
  ? 'styled-column-sparkline-edit'
53
53
  : 'styled-column-sparkline-add';
54
54
  let popupParam = {
55
- action: sparklineColumnExists ? 'Edit' : 'New',
55
+ action: hasSparklineStyle ? 'Edit' : 'New',
56
56
  source: 'ColumnMenu',
57
57
  value: styledColumn,
58
58
  config: {
@@ -165,7 +165,7 @@ class StyledColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
165
165
  else if (styledColumn.PercentBarStyle) {
166
166
  return 'percent';
167
167
  }
168
- else if (styledColumn.SparkLineStyle) {
168
+ else if (styledColumn.SparklineStyle) {
169
169
  return 'spark-line';
170
170
  }
171
171
  else if (styledColumn.BadgeStyle) {
@@ -252,7 +252,7 @@ class StyledColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
252
252
  else if (styledColumn.PercentBarStyle) {
253
253
  type = 'Percent Bar';
254
254
  }
255
- else if (styledColumn.SparkLineStyle) {
255
+ else if (styledColumn.SparklineStyle) {
256
256
  type = 'Spark Line';
257
257
  }
258
258
  else if (styledColumn.BadgeStyle) {
@@ -268,7 +268,7 @@ class StyledColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
268
268
  else if (styledColumn.PercentBarStyle) {
269
269
  type = 'styled-column-percent-bar-edit';
270
270
  }
271
- else if (styledColumn.SparkLineStyle) {
271
+ else if (styledColumn.SparklineStyle) {
272
272
  type = 'styled-column-sparkline-edit';
273
273
  }
274
274
  else if (styledColumn.BadgeStyle) {
@@ -180,6 +180,7 @@ function CreateEmptyReportSchedule() {
180
180
  Schedule: CreateEmptySchedule(),
181
181
  ReportName: GeneralConstants_1.EMPTY_STRING,
182
182
  ReportFormat: GeneralConstants_1.EMPTY_STRING,
183
+ ExportDestination: 'Download',
183
184
  };
184
185
  }
185
186
  exports.CreateEmptyReportSchedule = CreateEmptyReportSchedule;
@@ -1,10 +1,12 @@
1
1
  import * as React from 'react';
2
+ import { ExportDestinationType } from '../../../../AdaptableOptions/ExportOptions';
2
3
  import { Report, ReportFormatType, ReportSchedule } from '../../../../PredefinedConfig/ExportState';
3
4
  interface ReportScheduleProps {
4
5
  report: ReportSchedule;
5
6
  onChange: (reminder: ReportSchedule) => void;
6
7
  allReports: Report[];
7
8
  allFormats: ReportFormatType[];
9
+ allDestinations: ExportDestinationType[];
8
10
  }
9
11
  export declare const ScheduleSettingsReport: React.FunctionComponent<ReportScheduleProps>;
10
12
  export {};
@@ -22,14 +22,24 @@ const ScheduleSettingsReport = (props) => {
22
22
  });
23
23
  },
24
24
  }));
25
+ const destinationOptions = props.allDestinations.map((destination) => ({
26
+ label: destination,
27
+ value: destination,
28
+ onClick: () => {
29
+ props.onChange({
30
+ ...props.report,
31
+ ExportDestination: destination,
32
+ });
33
+ },
34
+ }));
25
35
  return (React.createElement(rebass_1.Box, { "data-name": "schedule-settings-report" },
26
36
  React.createElement(Tabs_1.Tabs, { autoFocus: false, mb: 3 },
27
- React.createElement(Tabs_1.Tabs.Tab, null, "Report Schedule Settings"),
37
+ React.createElement(Tabs_1.Tabs.Tab, null, "Report Settings"),
28
38
  React.createElement(Tabs_1.Tabs.Content, null,
29
39
  React.createElement(FormLayout_1.default, null,
30
40
  React.createElement(FormLayout_1.FormRow, { label: "Export" },
31
41
  React.createElement(rebass_1.Box, { maxWidth: 300 },
32
- React.createElement(Select_1.Select, { "data-name": "select-export", options: reportOptions, value: props?.report?.ReportName, placeholder: "Select Export", onChange: (value) => props.onChange({
42
+ React.createElement(Select_1.Select, { "data-name": "select-report", options: reportOptions, value: props?.report?.ReportName, placeholder: "Select Export", onChange: (value) => props.onChange({
33
43
  ...props.report,
34
44
  ReportName: value,
35
45
  }) }))),
@@ -38,6 +48,12 @@ const ScheduleSettingsReport = (props) => {
38
48
  React.createElement(Select_1.Select, { "data-name": "select-format", options: formatOptions, value: props?.report?.ReportFormat, placeholder: "Select Format", onChange: (value) => props.onChange({
39
49
  ...props.report,
40
50
  ReportFormat: value,
51
+ }) }))),
52
+ React.createElement(FormLayout_1.FormRow, { label: "Destination" },
53
+ React.createElement(rebass_1.Box, { maxWidth: 300 },
54
+ React.createElement(Select_1.Select, { "data-name": "select-destination", options: destinationOptions, value: props?.report?.ExportDestination, placeholder: "Select Format", onChange: (value) => props.onChange({
55
+ ...props.report,
56
+ ExportDestination: value,
41
57
  }) }))))))));
42
58
  };
43
59
  exports.ScheduleSettingsReport = ScheduleSettingsReport;
@@ -43,6 +43,10 @@ const getScheduleSettingsValues = (data) => {
43
43
  label: 'Report Format',
44
44
  value: report?.ReportFormat || 'Not Specified',
45
45
  },
46
+ {
47
+ label: 'Export Destination',
48
+ value: report?.ExportDestination || 'Download',
49
+ },
46
50
  ];
47
51
  }
48
52
  if (data.ScheduleType === Enums_1.ScheduleType.ipushpull) {
@@ -17,7 +17,8 @@ const ScheduleSettingsWizard = (props) => {
17
17
  }
18
18
  if (data?.ScheduleType === Enums_1.ScheduleType.Report) {
19
19
  const allFormats = api.exportApi.getAvailableSystemFormats();
20
- return (React.createElement(ScheduleSettingsReport_1.ScheduleSettingsReport, { allReports: allReports ?? [], allFormats: allFormats ?? [], report: data, onChange: props.onChange }));
20
+ const allDestinations = api.exportApi.getAllExportDestinations();
21
+ return (React.createElement(ScheduleSettingsReport_1.ScheduleSettingsReport, { allReports: allReports ?? [], allFormats: allFormats ?? [], allDestinations: allDestinations ?? [], report: data, onChange: props.onChange }));
21
22
  }
22
23
  if (data?.ScheduleType === Enums_1.ScheduleType.ipushpull) {
23
24
  const ippApi = api.pluginsApi.getipushpullPluginApi();
@@ -1,6 +1,5 @@
1
1
  import * as React from 'react';
2
- import { StyledColumn } from '../../../types';
3
- export interface StyledColumnSparklineSettingsSectionProps {
2
+ import type { StyledColumn } from '../../../types';
3
+ export declare const StyledColumnSparklineSettingsSection: React.FC<{
4
4
  onChange: (data: StyledColumn) => void;
5
- }
6
- export declare const StyledColumnSparklineSettingsSection: React.FunctionComponent<StyledColumnSparklineSettingsSectionProps>;
5
+ }>;