@adaptabletools/adaptable-cjs 22.0.0-canary.2 → 22.0.0-canary.3

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 (61) hide show
  1. package/index.css +52 -23
  2. package/index.css.map +1 -1
  3. package/package.json +1 -1
  4. package/src/AdaptableInterfaces/IAdaptable.d.ts +2 -2
  5. package/src/AdaptableState/Common/AdaptableStyle.d.ts +8 -0
  6. package/src/AdaptableState/FormatColumnState.d.ts +0 -8
  7. package/src/Api/DataSetApi.d.ts +1 -1
  8. package/src/Api/GridApi.d.ts +3 -3
  9. package/src/Api/Implementation/GridApiImpl.d.ts +9 -9
  10. package/src/Api/Implementation/GridApiImpl.js +16 -16
  11. package/src/Api/Internal/ColumnInternalApi.js +1 -1
  12. package/src/Api/Internal/FormatColumnInternalApi.d.ts +0 -10
  13. package/src/Api/Internal/FormatColumnInternalApi.js +1 -19
  14. package/src/Redux/ActionsReducers/NoteRedux.js +1 -1
  15. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +0 -3
  16. package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +2 -2
  17. package/src/Utilities/Constants/DocumentationLinkConstants.js +2 -2
  18. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +3 -3
  19. package/src/Utilities/Helpers/StyleHelper.js +14 -0
  20. package/src/Utilities/ObjectFactory.js +1 -1
  21. package/src/Utilities/Services/AnnotationsService.js +1 -1
  22. package/src/Utilities/Services/ModuleService.js +3 -3
  23. package/src/View/AdaptablePopover/index.d.ts +1 -0
  24. package/src/View/AdaptablePopover/index.js +1 -1
  25. package/src/View/Alert/ActiveAlertsPanel.js +8 -0
  26. package/src/View/Alert/AlertViewPanel.js +13 -9
  27. package/src/View/Alert/Utilities/getAlertButtonStyle.d.ts +1 -0
  28. package/src/View/Alert/Utilities/getAlertButtonStyle.js +8 -0
  29. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +23 -11
  30. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +2 -2
  31. package/src/View/CellSummary/CellSummaryViewPanel.js +15 -17
  32. package/src/View/Components/AdaptableDateInput/index.js +1 -1
  33. package/src/View/Components/Buttons/ButtonApply.js +1 -1
  34. package/src/View/Components/Buttons/ButtonClear.d.ts +1 -0
  35. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +18 -17
  36. package/src/View/Components/StyleComponent.js +20 -1
  37. package/src/View/Dashboard/DashboardPopup.js +4 -5
  38. package/src/View/Export/ExportDestinationPicker.js +1 -1
  39. package/src/View/Export/ExportStatusBar.js +4 -2
  40. package/src/View/Export/ExportViewPanel.js +25 -18
  41. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +0 -23
  42. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +2 -2
  43. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +57 -65
  44. package/src/View/QuickSearch/QuickSearchPopup.js +4 -1
  45. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +2 -2
  46. package/src/View/UIHelper.d.ts +2 -0
  47. package/src/View/UIHelper.js +16 -0
  48. package/src/agGrid/AdaptableAgGrid.d.ts +2 -2
  49. package/src/agGrid/AdaptableAgGrid.js +5 -5
  50. package/src/agGrid/AgGridColumnAdapter.js +3 -18
  51. package/src/components/Dashboard/DashboardToolbar.js +1 -1
  52. package/src/components/ExpressionEditor/EditorInput.js +19 -3
  53. package/src/components/Tree/TreeDropdown/index.js +1 -1
  54. package/src/env.js +2 -2
  55. package/src/metamodel/adaptable.metamodel.d.ts +9 -7
  56. package/src/metamodel/adaptable.metamodel.js +1 -1
  57. package/src/migration/AdaptableUpgradeHelper.js +2 -0
  58. package/src/migration/VersionUpgrade22.d.ts +6 -0
  59. package/src/migration/VersionUpgrade22.js +31 -0
  60. package/src/types.d.ts +1 -1
  61. package/tsconfig.cjs.tsbuildinfo +1 -1
@@ -133,6 +133,14 @@ const StyleComponent = (props) => {
133
133
  }
134
134
  setComponentStyle(newStyle);
135
135
  };
136
+ const onAlignmentChange = (alignment) => {
137
+ const newStyle = { ...componentStyle };
138
+ newStyle.Alignment = alignment;
139
+ if (alignment == 'Default') {
140
+ delete newStyle.Alignment;
141
+ }
142
+ setComponentStyle(newStyle);
143
+ };
136
144
  const Cmp = props.headless ? Flex_1.Box : Panel_1.default;
137
145
  const headerText = props.headerText ?? 'Style';
138
146
  const cmpProps = props.headless
@@ -220,7 +228,18 @@ const StyleComponent = (props) => {
220
228
  ], value: componentStyle.FontSize?.toString() ?? '', onChange: (value) => onFontSizeChange(value) }))) : (React.createElement(Flex_1.Flex, { flexDirection: "row", alignItems: "center", className: "twa:gap-2 twa:flex-wrap" }, fontSizes.map((enumName) => {
221
229
  return (React.createElement(Radio_1.default, { onClick: () => onFontSizeChange(enumName), checked: (enumName == 'Default' && !componentStyle.FontSize) ||
222
230
  componentStyle.FontSize === enumName, key: enumName }, enumName));
223
- }))))))),
231
+ }))),
232
+ React.createElement("span", null, "Alignment"),
233
+ React.createElement(Toggle_1.ToggleGroup, null,
234
+ React.createElement(Toggle_1.Toggle, { icon: "align-left", pressed: componentStyle.Alignment === 'Left', onPressedChange: (pressed) => pressed
235
+ ? onAlignmentChange('Left')
236
+ : onAlignmentChange('Default') }),
237
+ React.createElement(Toggle_1.Toggle, { icon: "align-center", pressed: componentStyle.Alignment === 'Center', onPressedChange: (pressed) => pressed
238
+ ? onAlignmentChange('Center')
239
+ : onAlignmentChange('Default') }),
240
+ React.createElement(Toggle_1.Toggle, { icon: "align-right", pressed: componentStyle.Alignment === 'Right', onPressedChange: (pressed) => pressed
241
+ ? onAlignmentChange('Right')
242
+ : onAlignmentChange('Default') })))))),
224
243
  !props.hidePreview && (React.createElement(Card_1.Card, { shadow: false },
225
244
  React.createElement(Card_1.Card.Title, null, "Preview"),
226
245
  React.createElement(Card_1.Card.Body, { className: "twa:grid twa:place-items-center" },
@@ -73,18 +73,17 @@ class DashboardPopupComponent extends React.Component {
73
73
  React.createElement(Flex_1.Flex, { flexDirection: "column", className: "twa:h-full twa:gap-4" },
74
74
  areDashboardSettingsVisible && (React.createElement(React.Fragment, null,
75
75
  React.createElement(Card_1.Card, null,
76
- React.createElement(Card_1.Card.Title, { gap: 8 },
77
- "Display Settings",
78
- React.createElement(ToggleButton_1.ToggleButton, { className: "twa:self-end", onChange: (visible) => this.props.onSetDashboardHidden(!visible), checked: !this.props.IsHidden, "data-name": "dashboard-visibility" }, this.props.IsHidden ? 'Hidden' : 'Visible')),
76
+ React.createElement(Card_1.Card.Title, { gap: 8 }, "Display Settings"),
79
77
  React.createElement(Card_1.Card.Body, { gap: 2, className: "twa:p-2" },
80
- React.createElement(ToggleButton_1.ToggleButton, { disabled: this.props.IsFloating, className: "twa:w-24", onChange: (expanded) => this.props.onSetDashboardCollapsed(!expanded), checked: !this.props.IsCollapsed, "data-name": "expand-state" }, this.props.IsCollapsed ? 'Collapsed' : 'Expanded'),
78
+ React.createElement(ToggleButton_1.ToggleButton, { className: "twa:w-24", onChange: (visible) => this.props.onSetDashboardHidden(!visible), checked: !this.props.IsHidden, "data-name": "dashboard-visibility" }, this.props.IsHidden ? 'Hidden' : 'Visible'),
79
+ this.props.DashboardState.Tabs?.length > 0 ? (React.createElement(ToggleButton_1.ToggleButton, { disabled: this.props.IsFloating, className: "twa:w-24", onChange: (expanded) => this.props.onSetDashboardCollapsed(!expanded), checked: !this.props.IsCollapsed, "data-name": "expand-state" }, this.props.IsCollapsed ? 'Collapsed' : 'Expanded')) : null,
81
80
  this.props.api.optionsApi.getDashboardOptions().canFloat ? (React.createElement(ToggleButton_1.ToggleButton, { className: "twa:w-24", onChange: (pinned) => this.props.onSetDashboardFloating(!pinned), checked: !this.props.IsFloating, "data-name": "floating" }, this.props.IsFloating ? 'Floating' : 'Pinned')) : null)))),
82
81
  React.createElement(Card_1.Card, { className: "twa:flex-1 twa:overflow-hidden", gap: 0 },
83
82
  React.createElement(Card_1.Card.Title, null, "Contents"),
84
83
  React.createElement(Card_1.Card.Body, { className: "twa:p-2" },
85
84
  React.createElement(Tabs_1.Tabs, { className: "twa:flex-1 twa:min-h-0" },
86
85
  React.createElement(Tabs_1.Tabs.Tab, { value: "pinned-toolbars" }, "Pinned Toolbars"),
87
- React.createElement(Tabs_1.Tabs.Tab, { value: "tabbed-toolbars" }, "Tabbed Toolbars"),
86
+ React.createElement(Tabs_1.Tabs.Tab, { value: "tabbed-toolbars" }, "Tabs & Toolbars"),
88
87
  React.createElement(Tabs_1.Tabs.Tab, { value: "buttons" }, "Buttons"),
89
88
  React.createElement(Tabs_1.Tabs.Content, { value: "pinned-toolbars", className: contentCls },
90
89
  React.createElement(PinnedToolbarsSelector_1.PinnedToolbarsSelector, null)),
@@ -16,7 +16,7 @@ const ExportDestinationPicker = ({ reportName, reportFormat, viewType, }) => {
16
16
  };
17
17
  const supportedDestinations = exportApi.getSupportedExportDestinations(reportFormat);
18
18
  if (supportedDestinations.length === 0 || supportedDestinations.length === 1) {
19
- return (react_1.default.createElement(ButtonExport_1.ButtonExport, { className: (0, clsx_1.default)(viewType !== 'StatusBar' ? 'twa:mr-[20px]' : undefined, 'twa:pr-0'), onClick: () => handleExport(supportedDestinations[0]), tooltip: "Export Report", disabled: reportName == undefined || reportFormat == undefined }));
19
+ return (react_1.default.createElement(ButtonExport_1.ButtonExport, { className: (0, clsx_1.default)(viewType !== 'StatusBar' ? '' : undefined, ''), onClick: () => handleExport(supportedDestinations[0]), tooltip: "Export Report", disabled: reportName == undefined || reportFormat == undefined }));
20
20
  }
21
21
  const destinationItems = supportedDestinations.map((destination) => ({
22
22
  label: destination,
@@ -8,14 +8,16 @@ const ReportNameSelector_1 = require("./ReportNameSelector");
8
8
  const ReportFormatSelector_1 = require("./ReportFormatSelector");
9
9
  const ExportDestinationPicker_1 = require("./ExportDestinationPicker");
10
10
  const AdaptableContext_1 = require("../AdaptableContext");
11
+ const Flex_1 = require("../../components/Flex");
11
12
  const ExportStatusBar = () => {
12
13
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
13
14
  const exportApi = adaptable.api.exportApi;
14
15
  const currentReportName = (0, react_redux_1.useSelector)((state) => state.Export.CurrentReport);
15
16
  const currentFormat = (0, react_redux_1.useSelector)((state) => state.Export.CurrentFormat);
16
17
  return (react_1.default.createElement(react_1.default.Fragment, null,
17
- react_1.default.createElement(ReportNameSelector_1.ReportNameSelector, { viewType: "StatusBar", size: 'small', reportName: currentReportName, onReportNameSelected: (reportName) => exportApi.selectReport(reportName) }),
18
- react_1.default.createElement(ReportFormatSelector_1.ReportFormatSelector, { viewType: "StatusBar", size: 'small', reportName: currentReportName, reportFormat: currentFormat, onReportFormatSelected: (reportFormat) => exportApi.selectFormat(reportFormat) }),
18
+ react_1.default.createElement(Flex_1.Flex, { className: "twa:gap-1" },
19
+ react_1.default.createElement(ReportNameSelector_1.ReportNameSelector, { viewType: "StatusBar", reportName: currentReportName, onReportNameSelected: (reportName) => exportApi.selectReport(reportName) }),
20
+ react_1.default.createElement(ReportFormatSelector_1.ReportFormatSelector, { viewType: "StatusBar", reportName: currentReportName, reportFormat: currentFormat, onReportFormatSelected: (reportFormat) => exportApi.selectFormat(reportFormat) })),
19
21
  react_1.default.createElement(ExportDestinationPicker_1.ExportDestinationPicker, { viewType: "StatusBar", reportName: currentReportName, reportFormat: currentFormat })));
20
22
  };
21
23
  exports.ExportStatusBar = ExportStatusBar;
@@ -19,6 +19,7 @@ const ReportNameSelector_1 = require("./ReportNameSelector");
19
19
  const ReportFormatSelector_1 = require("./ReportFormatSelector");
20
20
  const ExportDestinationPicker_1 = require("./ExportDestinationPicker");
21
21
  const Flex_1 = require("../../components/Flex");
22
+ const clsx_1 = tslib_1.__importDefault(require("clsx"));
22
23
  const ExportViewPanel = (props) => {
23
24
  const dispatch = (0, react_redux_1.useDispatch)();
24
25
  const exportApi = props.api.exportApi;
@@ -30,28 +31,34 @@ const ExportViewPanel = (props) => {
30
31
  const deleteMessage = currentReport
31
32
  ? `Are you sure you want to delete '${currentReport.Name}'?`
32
33
  : 'Are you sure you want to delete this report?';
33
- const elementType = props.viewType === 'Toolbar' ? 'DashboardToolbar' : 'ToolPanel';
34
- return (React.createElement(Flex_1.Flex, { flexDirection: "row", className: `ab-${elementType}__Export__panel twa:gap-2`, flexWrap: props.viewType === 'ToolPanel' ? 'wrap' : 'nowrap' },
34
+ const isToolbar = props.viewType === 'Toolbar';
35
+ const elementType = isToolbar ? 'DashboardToolbar' : 'ToolPanel';
36
+ return (React.createElement(Flex_1.Flex, { flexDirection: "row", className: (0, clsx_1.default)(`ab-${elementType}__CellSummary__wrap twa:gap-2 twa:flex-row`, {
37
+ 'twa:min-w-[486px] twa:flex-nowrap': isToolbar,
38
+ 'twa:flex-1 twa:flex-wrap': !isToolbar,
39
+ }) },
35
40
  React.createElement(ReportNameSelector_1.ReportNameSelector, { viewType: props.viewType, reportName: currentReportName, userReports: userReports, onReportNameSelected: (reportName) => exportApi.selectReport(reportName) }),
36
41
  React.createElement(ReportFormatSelector_1.ReportFormatSelector, { viewType: props.viewType, reportName: currentReportName, reportFormat: currentFormat, onReportFormatSelected: (reportFormat) => exportApi.selectFormat(reportFormat) }),
37
42
  React.createElement(Flex_1.Flex, { className: (0, join_1.default)(accessLevel == 'ReadOnly' ? GeneralConstants.READ_ONLY_STYLE : '', `ab-${elementType}__Export__controls twa:w-full`) },
38
- React.createElement(ExportDestinationPicker_1.ExportDestinationPicker, { viewType: props.viewType, reportName: currentReportName, reportFormat: currentFormat }),
39
- React.createElement(ButtonEdit_1.ButtonEdit, { onClick: () => dispatch(PopupRedux.PopupShowScreen(ModuleConstants.ExportModuleId, props.moduleInfo.Popup, {
40
- action: 'Edit',
41
- source: 'Toolbar',
42
- })), tooltip: "Edit Report", className: `ab-${elementType}__Export__edit`, disabled: currentReport == null, accessLevel: accessLevel }),
43
- React.createElement(ButtonNew_1.ButtonNew, { variant: "text", className: `ab-${elementType}__Export__new`, tone: "neutral", children: null, onClick: () => dispatch(PopupRedux.PopupShowScreen(ModuleConstants.ExportModuleId, props.moduleInfo.Popup, {
44
- action: 'New',
45
- source: 'Toolbar',
46
- })), tooltip: "Create New Report", accessLevel: props.accessLevel }),
47
- React.createElement(ButtonDelete_1.ButtonDelete, { tooltip: "Delete Report", className: `ab-${elementType}__Export__delete`, disabled: currentReport == null, ConfirmAction: ExportRedux.ReportDelete(currentReport), ConfirmationMsg: deleteMessage, ConfirmationTitle: 'Delete Report', accessLevel: accessLevel }),
48
- props.api.entitlementApi.isModuleFullEntitlement('Schedule') && (React.createElement(ButtonSchedule_1.ButtonSchedule, { className: `ab-${elementType}__Export__schedule twa:ml-1`, onClick: () => {
49
- const reportSchedule = ObjectFactory_1.default.CreateReportSchedule(currentReportName, currentFormat);
50
- dispatch(PopupRedux.PopupShowScreen(ModuleConstants.ScheduleModuleId, 'SchedulePopup', {
43
+ React.createElement(Flex_1.Flex, { className: "twa:min-w-[44px]" },
44
+ React.createElement(ExportDestinationPicker_1.ExportDestinationPicker, { viewType: props.viewType, reportName: currentReportName, reportFormat: currentFormat })),
45
+ React.createElement(Flex_1.Flex, null,
46
+ React.createElement(ButtonEdit_1.ButtonEdit, { onClick: () => dispatch(PopupRedux.PopupShowScreen(ModuleConstants.ExportModuleId, props.moduleInfo.Popup, {
47
+ action: 'Edit',
48
+ source: 'Toolbar',
49
+ })), tooltip: "Edit Report", className: `ab-${elementType}__Export__edit`, disabled: currentReport == null, accessLevel: accessLevel }),
50
+ React.createElement(ButtonNew_1.ButtonNew, { variant: "text", className: `ab-${elementType}__Export__new`, tone: "neutral", children: null, onClick: () => dispatch(PopupRedux.PopupShowScreen(ModuleConstants.ExportModuleId, props.moduleInfo.Popup, {
51
51
  action: 'New',
52
52
  source: 'Toolbar',
53
- value: reportSchedule,
54
- }));
55
- }, tooltip: "Schedule", disabled: currentReport == null, accessLevel: props.accessLevel })))));
53
+ })), tooltip: "Create New Report", accessLevel: props.accessLevel }),
54
+ React.createElement(ButtonDelete_1.ButtonDelete, { tooltip: "Delete Report", className: `ab-${elementType}__Export__delete`, disabled: currentReport == null, ConfirmAction: ExportRedux.ReportDelete(currentReport), ConfirmationMsg: deleteMessage, ConfirmationTitle: 'Delete Report', accessLevel: accessLevel }),
55
+ props.api.entitlementApi.isModuleFullEntitlement('Schedule') && (React.createElement(ButtonSchedule_1.ButtonSchedule, { className: `ab-${elementType}__Export__schedule`, onClick: () => {
56
+ const reportSchedule = ObjectFactory_1.default.CreateReportSchedule(currentReportName, currentFormat);
57
+ dispatch(PopupRedux.PopupShowScreen(ModuleConstants.ScheduleModuleId, 'SchedulePopup', {
58
+ action: 'New',
59
+ source: 'Toolbar',
60
+ value: reportSchedule,
61
+ }));
62
+ }, tooltip: "Schedule", disabled: currentReport == null, accessLevel: props.accessLevel }))))));
56
63
  };
57
64
  exports.ExportViewPanel = ExportViewPanel;
@@ -7,16 +7,11 @@ const FormLayout_1 = tslib_1.__importStar(require("../../../components/FormLayou
7
7
  const CheckBox_1 = require("../../../components/CheckBox");
8
8
  const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
9
9
  const Tag_1 = require("../../../components/Tag");
10
- const ToggleGroup_1 = require("../../../components/Toggle/ToggleGroup");
11
- const Toggle_1 = require("../../../components/Toggle/Toggle");
12
10
  const Radio_1 = tslib_1.__importStar(require("../../../components/Radio"));
13
11
  const Flex_1 = require("../../../components/Flex");
14
12
  const Card_1 = require("../../../components/Card");
15
13
  const renderFormatColumnSettingsSummary = (data) => {
16
14
  return (React.createElement(Flex_1.Box, { className: "twa:p-2" },
17
- React.createElement(Flex_1.Box, null,
18
- "Cell alignment ",
19
- React.createElement(Tag_1.Tag, null, data.CellAlignment ?? 'default')),
20
15
  React.createElement(Flex_1.Box, { className: "twa:mt-3" },
21
16
  "Data Rows ",
22
17
  React.createElement(Tag_1.Tag, null, data.RowScope?.ExcludeDataRows ? 'no' : 'yes')),
@@ -40,13 +35,6 @@ const renderFormatColumnSettingsSummary = (data) => {
40
35
  exports.renderFormatColumnSettingsSummary = renderFormatColumnSettingsSummary;
41
36
  const FormatColumnSettingsWizardSection = (props) => {
42
37
  const { data } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
43
- const onCellAlignmentSelectChanged = (CellAlignment) => {
44
- const newData = { ...data, CellAlignment };
45
- if (CellAlignment === null) {
46
- delete newData.CellAlignment;
47
- }
48
- props.onChange(newData);
49
- };
50
38
  const onExcludeDataRowsChanged = (ExcludeDataRows) => {
51
39
  props.onChange({
52
40
  ...data,
@@ -88,17 +76,6 @@ const FormatColumnSettingsWizardSection = (props) => {
88
76
  React.createElement(Card_1.Card.Body, null,
89
77
  React.createElement(Flex_1.Flex, { flexDirection: "row" },
90
78
  React.createElement(FormLayout_1.default, null,
91
- React.createElement(FormLayout_1.FormRow, { label: "Cell Alignment" },
92
- React.createElement(ToggleGroup_1.ToggleGroup, null,
93
- React.createElement(Toggle_1.Toggle, { icon: "align-left", pressed: data.CellAlignment === 'Left', onPressedChange: (pressed) => pressed
94
- ? onCellAlignmentSelectChanged('Left')
95
- : onCellAlignmentSelectChanged(null) }),
96
- React.createElement(Toggle_1.Toggle, { icon: "align-center", pressed: data.CellAlignment === 'Center', onPressedChange: (pressed) => pressed
97
- ? onCellAlignmentSelectChanged('Center')
98
- : onCellAlignmentSelectChanged(null) }),
99
- React.createElement(Toggle_1.Toggle, { icon: "align-right", pressed: data.CellAlignment === 'Right', onPressedChange: (pressed) => pressed
100
- ? onCellAlignmentSelectChanged('Right')
101
- : onCellAlignmentSelectChanged(null) }))),
102
79
  data.Target === 'cell' && (React.createElement(React.Fragment, null,
103
80
  React.createElement(FormLayout_1.FormRow, { label: "Exclude Data Rows:" },
104
81
  React.createElement(Flex_1.Flex, { alignItems: "center", className: "twa:ml-2" },
@@ -13,7 +13,6 @@ const isFormatColumnStyleValid = (data, api) => {
13
13
  if (data.Style &&
14
14
  UIHelper_1.default.IsEmptyStyle(data.Style) &&
15
15
  data.DisplayFormat === undefined &&
16
- data.CellAlignment === undefined &&
17
16
  !api.columnScopeApi.isSingleBooleanColumnScope(data.Scope)) {
18
17
  return 'No format applied';
19
18
  }
@@ -25,7 +24,8 @@ const toStyle = (data) => {
25
24
  ...(0, StyleHelper_1.convertAdaptableStyleToCSS)(data.Style ?? {}),
26
25
  borderWidth: data.Style?.BorderColor ? 2 : 0,
27
26
  borderStyle: 'solid',
28
- textAlign: data.CellAlignment ? data.CellAlignment.toLowerCase() : undefined,
27
+ // ToDO abcdefg
28
+ textAlign: data.Style?.Alignment ? data.Style.Alignment.toLowerCase() : undefined,
29
29
  };
30
30
  };
31
31
  const renderFormatColumnStyleWizardSummary = (data) => {
@@ -3,84 +3,75 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GridInfoPopup = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
+ const ArrayExtensions_1 = tslib_1.__importDefault(require("../../../Utilities/Extensions/ArrayExtensions"));
7
+ const EnvVars_1 = require("../../../EnvVars");
8
+ const AgGridModulesAdapter_1 = require("../../../agGrid/AgGridModulesAdapter");
9
+ const InfiniteTable_1 = require("../../../components/InfiniteTable");
6
10
  const Panel_1 = tslib_1.__importDefault(require("../../../components/Panel"));
7
11
  const Tabs_1 = require("../../../components/Tabs");
8
- const ArrayExtensions_1 = tslib_1.__importDefault(require("../../../Utilities/Extensions/ArrayExtensions"));
9
- const Helper_1 = tslib_1.__importDefault(require("../../../Utilities/Helpers/Helper"));
10
- const AdaptablePopover_1 = require("../../AdaptablePopover");
11
- const AdaptableObjectCollection_1 = require("../../Components/AdaptableObjectCollection");
12
- const AdaptableObjectRow_1 = require("../../Components/AdaptableObjectRow");
13
12
  const PopupPanel_1 = require("../../Components/Popups/AdaptablePopup/PopupPanel");
14
13
  const AdaptableObjectsSummary_1 = require("./AdaptableObjectsSummary");
15
- const EnvVars_1 = require("../../../EnvVars");
16
- const AgGridModulesAdapter_1 = require("../../../agGrid/AgGridModulesAdapter");
17
14
  const clsx_1 = tslib_1.__importDefault(require("clsx"));
18
15
  const adaptableVersion = EnvVars_1.ADAPTABLE_VERSION;
19
16
  const agGridVersion = AgGridModulesAdapter_1.AG_GRID_VERSION;
20
17
  const GridInfoPopup = (props) => {
21
18
  const api = props.api;
22
- const CreateGridSummaries = (colItems) => {
23
- const returnRows = [];
24
- const calcColumns = api.calculatedColumnApi
25
- .getCalculatedColumns()
26
- .map((c) => c.ColumnId);
27
- const actionColumns = api.actionColumnApi
28
- .getActionColumns()
29
- .map((ac) => ac.columnId);
30
- const freeTextColumns = api.freeTextColumnApi
31
- .getFreeTextColumns()
32
- .map((c) => c.ColumnId);
33
- const columnFilterDescription = api.filterApi.columnFilterApi.columnFiltersToString(api.filterApi.columnFilterApi.getColumnFilters());
34
- const gridFilterExpression = api.filterApi.gridFilterApi.getCurrentGridFilterExpression();
35
- const sorts = ArrayExtensions_1.default.IsNotNullOrEmpty(props.api.gridApi.getColumnSorts())
36
- ? api.gridApi.getColumnSorts().map((gs) => {
37
- return api.columnApi.getFriendlyNameForColumnId(gs.ColumnId) + ': ' + gs.SortOrder;
38
- })
39
- : null;
40
- const selectedRowInfo = api.gridApi.getSelectedRowInfo();
41
- if (api.optionsApi.getUserInterfaceOptions()?.showAdapTableVersion) {
42
- returnRows.push(createReadOnlyColItem(colItems, 'AdapTable Version', adaptableVersion));
43
- }
44
- if (api.optionsApi.getUserInterfaceOptions()?.showAgGridVersion) {
45
- returnRows.push(createReadOnlyColItem(colItems, 'AG Grid Version', agGridVersion));
46
- }
47
- returnRows.push(createReadOnlyColItem(colItems, 'Sorted Columns', ArrayExtensions_1.default.IsNotNullOrEmpty(sorts) ? sorts.join('; ') : 'None'));
48
- returnRows.push(createReadOnlyColItem(colItems, 'Column Filters', columnFilterDescription));
49
- returnRows.push(createReadOnlyColItem(colItems, 'Grid Filter', gridFilterExpression));
50
- returnRows.push(createReadOnlyColItem(colItems, 'All Rows', props.api.gridApi.getRowCount()));
51
- returnRows.push(createReadOnlyColItem(colItems, 'Visible Rows', props.api.gridApi.getVisibleRowCount()));
52
- returnRows.push(createReadOnlyColItem(colItems, 'Selected Rows', selectedRowInfo?.gridRows.length));
53
- returnRows.push(createReadOnlyColItem(colItems, 'Visible Selected Rows', selectedRowInfo?.gridRows.filter((gr) => gr.rowNode?.displayed == true).length));
54
- returnRows.push(createReadOnlyColItem(colItems, 'All Columns', props.api.gridApi.getColumnCount()));
55
- returnRows.push(createReadOnlyColItem(colItems, 'Visible Columns', props.api.gridApi.getVisibleColumnCount()));
56
- returnRows.push(createReadOnlyColItem(colItems, 'Calculated Columns', ArrayExtensions_1.default.IsNotNullOrEmpty(calcColumns)
19
+ const keyValuePairs = [];
20
+ const calcColumns = api.calculatedColumnApi
21
+ .getCalculatedColumns()
22
+ .map((c) => c.ColumnId);
23
+ const actionColumns = api.actionColumnApi
24
+ .getActionColumns()
25
+ .map((ac) => ac.columnId);
26
+ const freeTextColumns = api.freeTextColumnApi
27
+ .getFreeTextColumns()
28
+ .map((c) => c.ColumnId);
29
+ const columnFilterDescription = api.filterApi.columnFilterApi.columnFiltersToString(api.filterApi.columnFilterApi.getColumnFilters());
30
+ const gridFilterExpression = api.filterApi.gridFilterApi.getCurrentGridFilterExpression();
31
+ const sorts = ArrayExtensions_1.default.IsNotNullOrEmpty(props.api.gridApi.getColumnSorts())
32
+ ? api.gridApi.getColumnSorts().map((gs) => {
33
+ return api.columnApi.getFriendlyNameForColumnId(gs.ColumnId) + ': ' + gs.SortOrder;
34
+ })
35
+ : null;
36
+ const selectedRowInfo = api.gridApi.getSelectedRowInfo();
37
+ if (api.optionsApi.getUserInterfaceOptions()?.showAdapTableVersion) {
38
+ keyValuePairs.push({ Key: 'AdapTable Version', Value: adaptableVersion });
39
+ }
40
+ if (api.optionsApi.getUserInterfaceOptions()?.showAgGridVersion) {
41
+ keyValuePairs.push({ Key: 'AG Grid Version', Value: agGridVersion });
42
+ }
43
+ keyValuePairs.push({ Key: 'Sorted Columns', Value: ArrayExtensions_1.default.IsNotNullOrEmpty(sorts) ? sorts.join('; ') : 'None' });
44
+ keyValuePairs.push({ Key: 'Column Filters', Value: columnFilterDescription });
45
+ keyValuePairs.push({ Key: 'Grid Filter', Value: gridFilterExpression });
46
+ keyValuePairs.push({ Key: 'All Rows', Value: props.api.gridApi.getRowCount() });
47
+ keyValuePairs.push({ Key: 'Visible Rows', Value: props.api.gridApi.getVisibleRowCount() });
48
+ keyValuePairs.push({ Key: 'Selected Rows', Value: selectedRowInfo?.gridRows.length });
49
+ keyValuePairs.push({ Key: 'Visible Selected Rows', Value: selectedRowInfo?.gridRows.filter((gr) => gr.rowNode?.displayed == true).length });
50
+ keyValuePairs.push({ Key: 'All Columns', Value: props.api.gridApi.getColumnCount() });
51
+ keyValuePairs.push({ Key: 'Visible Columns', Value: props.api.gridApi.getVisibleColumnCount() });
52
+ keyValuePairs.push({ Key: 'Calculated Columns', Value: ArrayExtensions_1.default.IsNotNullOrEmpty(calcColumns)
57
53
  ? ArrayExtensions_1.default.createCommaSeparatedString(calcColumns)
58
- : 'None'));
59
- returnRows.push(createReadOnlyColItem(colItems, 'Free Text Columns', ArrayExtensions_1.default.IsNotNullOrEmpty(freeTextColumns)
54
+ : 'None' });
55
+ keyValuePairs.push({ Key: 'Free Text Columns', Value: ArrayExtensions_1.default.IsNotNullOrEmpty(freeTextColumns)
60
56
  ? ArrayExtensions_1.default.createCommaSeparatedString(freeTextColumns)
61
- : 'None'));
62
- returnRows.push(createReadOnlyColItem(colItems, 'Action Columns', ArrayExtensions_1.default.IsNotNullOrEmpty(actionColumns)
57
+ : 'None' });
58
+ keyValuePairs.push({ Key: 'CalcuActionlated Columns', Value: ArrayExtensions_1.default.IsNotNullOrEmpty(actionColumns)
63
59
  ? ArrayExtensions_1.default.createCommaSeparatedString(actionColumns)
64
- : 'None'));
65
- return returnRows;
60
+ : 'None' });
61
+ const domProps = {
62
+ className: 'twa:flex-1 twa:min-h-0 twa:w-full',
66
63
  };
67
- const createReadOnlyColItem = (colItems, item1, item2, item3) => {
68
- let rowColItems = Helper_1.default.cloneObject(colItems);
69
- rowColItems[0].Content = item1;
70
- rowColItems[1].Content = item2;
71
- if (item3) {
72
- let infoButton = React.createElement(AdaptablePopover_1.AdaptablePopover, { headerText: null, bodyText: [item3] });
73
- rowColItems[2].Content = infoButton;
74
- }
75
- return rowColItems;
64
+ keyValuePairs.map((keyValuePair) => {
65
+ return {
66
+ Key: keyValuePair.Key,
67
+ Value: keyValuePair.Value === 'Ignore' ? null : keyValuePair.Value,
68
+ };
69
+ })
70
+ .filter((x) => x.Value);
71
+ const columnsMap = {
72
+ Key: { field: 'Key', header: 'Property', defaultFlex: 1 },
73
+ Value: { field: 'Value', header: 'Value', defaultFlex: 3 },
76
74
  };
77
- let propValueColItems = [
78
- { Content: 'Property', Size: 5 },
79
- { Content: 'Value', Size: 7 },
80
- ];
81
- let gridSummaries = CreateGridSummaries(propValueColItems).map((x, index) => {
82
- return React.createElement(AdaptableObjectRow_1.AdaptableObjectRow, { key: index, colItems: x });
83
- });
84
75
  const baseClassName = 'ab-GridInfo';
85
76
  return (React.createElement(PopupPanel_1.PopupPanel, { className: (0, clsx_1.default)(baseClassName), headerText: 'Grid Info', glyphicon: 'info', scrollable: false },
86
77
  React.createElement(Panel_1.default, { className: "twa:flex-1 twa:border-none twa:shadow-md twa:overflow-hidden" },
@@ -89,7 +80,8 @@ const GridInfoPopup = (props) => {
89
80
  React.createElement(Tabs_1.Tabs.Tab, null, "Grid Summary"),
90
81
  React.createElement(Tabs_1.Tabs.Tab, null, "Grid State"),
91
82
  React.createElement(Tabs_1.Tabs.Content, null,
92
- React.createElement(AdaptableObjectCollection_1.AdaptableObjectCollection, { className: "twa:flex-1 twa:min-h-0" /* so the collection scrolls nicely, the header remains fixed*/, colItems: propValueColItems, items: gridSummaries })),
83
+ React.createElement(InfiniteTable_1.DataSource, { data: keyValuePairs, primaryKey: "Key" },
84
+ React.createElement(InfiniteTable_1.InfiniteTableGrid, { domProps: domProps, columns: columnsMap }))),
93
85
  React.createElement(Tabs_1.Tabs.Content, null,
94
86
  React.createElement(AdaptableObjectsSummary_1.AdaptableObjectsSummary, { className: "twa:min-h-0 twa:overflow-auto twa:p-2" })))))));
95
87
  };
@@ -39,7 +39,10 @@ const QuickSearchPopupComponent = (props) => {
39
39
  React.createElement(Card_1.Card, null,
40
40
  React.createElement(Card_1.Card.Title, null, "Behaviour"),
41
41
  React.createElement(Card_1.Card.Body, { className: "twa:p-1", gap: 2 },
42
- React.createElement(HelpBlock_1.default, { className: "twa:text-2 twa:w-fit" }, "Filters the Grid to only show rows with matching cells; use with care as can cause performance issues"),
42
+ React.createElement(HelpBlock_1.default, { className: "twa:text-2 twa:w-fit" },
43
+ "Filter Grid when searching to only show rows with matching cells; ",
44
+ React.createElement("b", null, "use with care"),
45
+ " as can cause performance issues"),
43
46
  React.createElement(CheckBox_1.CheckBox, { "data-name": "filter-quick-search-results", value: "existing", checked: state.RunQueryAfterQuickSearch, disabled: StringExtensions_1.default.IsNotNullOrEmpty(searchText), onChange: onQuickSearchBehaviourChange }, "Filter using Quick Search Results"))),
44
47
  React.createElement(Card_1.Card.Title, { border: false, className: "twa:pt-3" }, "Cell Matching Style"),
45
48
  React.createElement(Card_1.Card, null,
@@ -24,13 +24,13 @@ const ScheduleSettingsReminder = (props) => {
24
24
  const handleHeaderChange = (event) => {
25
25
  props.onChange({
26
26
  ...props.reminderSchedule,
27
- Header: event.target?.value,
27
+ Header: event.target.value,
28
28
  });
29
29
  };
30
30
  const handleMessageChange = (event) => {
31
31
  props.onChange({
32
32
  ...props.reminderSchedule,
33
- Message: event.target?.value,
33
+ Message: event.target.value,
34
34
  });
35
35
  };
36
36
  const handleDisplayNotificationChange = (checked) => {
@@ -38,6 +38,7 @@ export declare function getMessageTypeByStatusColour(statusColour: StatusColour)
38
38
  export declare function getButtonToneByMessageType(messageType: AdaptableMessageType): 'success' | 'error' | 'neutral' | 'none' | 'warning' | 'info' | 'accent';
39
39
  export declare function getGlyphByMessageType(messageType: AdaptableMessageType): AdaptableSystemIconName;
40
40
  export declare function getColorByMessageType(messageType: AdaptableMessageType): string;
41
+ export declare function getCSSColorByMessageType(messageType: AdaptableMessageType): string;
41
42
  export declare function getStyleForStatusColour(statusColour: StatusColour): CSSProperties;
42
43
  export declare function getStyleForMessageType(messageType: AdaptableMessageType): CSSProperties;
43
44
  export declare function getGlyphForStatusColour(statusColour: StatusColour): string;
@@ -75,6 +76,7 @@ export declare const UIHelper: {
75
76
  getGlyphForMessageType: typeof getGlyphForMessageType;
76
77
  getStyleForMessageType: typeof getStyleForMessageType;
77
78
  getMessageTypeFromAdaptableAlerts: typeof getMessageTypeFromAdaptableAlerts;
79
+ getCSSColorByMessageType: typeof getCSSColorByMessageType;
78
80
  getButtonColourForAdaptableAlerts: typeof getButtonColourForAdaptableAlerts;
79
81
  getButtonTextColourForArrayandMessageType: typeof getButtonTextColourForArrayandMessageType;
80
82
  getButtonTextColourForMessageType: typeof getButtonTextColourForMessageType;
@@ -13,6 +13,7 @@ exports.getMessageTypeByStatusColour = getMessageTypeByStatusColour;
13
13
  exports.getButtonToneByMessageType = getButtonToneByMessageType;
14
14
  exports.getGlyphByMessageType = getGlyphByMessageType;
15
15
  exports.getColorByMessageType = getColorByMessageType;
16
+ exports.getCSSColorByMessageType = getCSSColorByMessageType;
16
17
  exports.getStyleForStatusColour = getStyleForStatusColour;
17
18
  exports.getStyleForMessageType = getStyleForMessageType;
18
19
  exports.getGlyphForStatusColour = getGlyphForStatusColour;
@@ -234,6 +235,20 @@ function getColorByMessageType(messageType) {
234
235
  return 'var(--ab-color-info)';
235
236
  }
236
237
  }
238
+ function getCSSColorByMessageType(messageType) {
239
+ switch (messageType) {
240
+ case 'Error':
241
+ return 'error';
242
+ case 'Warning':
243
+ return 'warn';
244
+ case 'Success':
245
+ return 'success';
246
+ case 'Info':
247
+ return 'info';
248
+ default:
249
+ return '';
250
+ }
251
+ }
237
252
  function getStyleForStatusColour(statusColour) {
238
253
  let result;
239
254
  switch (statusColour) {
@@ -481,6 +496,7 @@ exports.UIHelper = {
481
496
  getGlyphForMessageType,
482
497
  getStyleForMessageType,
483
498
  getMessageTypeFromAdaptableAlerts,
499
+ getCSSColorByMessageType,
484
500
  getButtonColourForAdaptableAlerts,
485
501
  getButtonTextColourForArrayandMessageType,
486
502
  getButtonTextColourForMessageType,
@@ -257,10 +257,10 @@ export declare class AdaptableAgGrid implements IAdaptable {
257
257
  added: IRowNode[];
258
258
  updated: IRowNode[];
259
259
  }>;
260
- applyGridDataTransaction(dataTransaction: {
260
+ manageGridRows(dataRows: {
261
261
  add?: any[];
262
262
  update?: any[];
263
- remove?: any[];
263
+ delete?: any[];
264
264
  }, config?: DataUpdateConfig): Promise<{
265
265
  addedRows: IRowNode[];
266
266
  updatedRows: IRowNode[];
@@ -2471,18 +2471,18 @@ You need to define at least one Layout!`);
2471
2471
  });
2472
2472
  }
2473
2473
  }
2474
- async applyGridDataTransaction(dataTransaction, config = {}) {
2474
+ async manageGridRows(dataRows, config = {}) {
2475
2475
  const result = {
2476
2476
  addedRows: [],
2477
2477
  updatedRows: [],
2478
2478
  removedRows: [],
2479
2479
  };
2480
- if (!dataTransaction) {
2480
+ if (!dataRows) {
2481
2481
  return result;
2482
2482
  }
2483
- const addDataRows = dataTransaction.add;
2484
- const updateDataRows = dataTransaction.update;
2485
- const removeDataRows = dataTransaction.remove;
2483
+ const addDataRows = dataRows.add;
2484
+ const updateDataRows = dataRows.update;
2485
+ const removeDataRows = dataRows.delete;
2486
2486
  if (this.hasAutogeneratedPrimaryKey) {
2487
2487
  this.addSyntheticPrimaryKeyIfMissing(addDataRows);
2488
2488
  }
@@ -307,12 +307,10 @@ class AgGridColumnAdapter {
307
307
  // see #header_text_align
308
308
  const formatColumnWithTextAlignment = this.getRelevantFormatColumnHeaderStyles(abColumn)
309
309
  // we take the first one only, even if multiple are defined
310
- .find((fc) => fc.CellAlignment != undefined);
310
+ .find((fc) => fc.Style?.Alignment != undefined);
311
311
  if (formatColumnWithTextAlignment) {
312
- baseHeaderClass = [
313
- ...baseHeaderClass,
314
- `ab-header__align-${formatColumnWithTextAlignment.CellAlignment.toLowerCase()}`,
315
- ];
312
+ const alignment = formatColumnWithTextAlignment.Style.Alignment.toLowerCase();
313
+ baseHeaderClass = [...baseHeaderClass, `ab-header__align-${alignment}`];
316
314
  }
317
315
  const formatColumns = this.adaptableApi.formatColumnApi.internalApi.getFormatColumnWithStyleClassNameForColumn(abColumn, {
318
316
  target,
@@ -1268,19 +1266,6 @@ class AgGridColumnAdapter {
1268
1266
  const formatColumnStyle = formatColumn.Style
1269
1267
  ? (0, StyleHelper_1.convertAdaptableStyleToCSS)(formatColumn.Style)
1270
1268
  : {};
1271
- if (formatColumn.CellAlignment) {
1272
- switch (formatColumn.CellAlignment) {
1273
- case 'Left':
1274
- style.textAlign = 'left';
1275
- break;
1276
- case 'Right':
1277
- style.textAlign = 'right';
1278
- break;
1279
- case 'Center':
1280
- style.textAlign = 'center';
1281
- break;
1282
- }
1283
- }
1284
1269
  return { ...style, ...formatColumnStyle };
1285
1270
  }, {});
1286
1271
  }
@@ -12,5 +12,5 @@ function DashboardToolbar(props) {
12
12
  React.createElement(Flex_1.Flex, { className: "ab-Dashboard__toolbar-title twa:items-center twa:justify-center twa:px-2 twa:pb-1 twa:opacity-70", flexDirection: "row" },
13
13
  React.createElement("span", { className: "twa:text-2" }, props.title),
14
14
  props.showConfigure && (React.createElement(SimpleButton_1.default, { "aria-label": `Configure ${props.title}`, icon: "spanner", variant: "text", tone: "none", "data-name": "configure", iconSize: 16, className: "twa:ml-1", tooltip: props.tooltip || `Configure ${props.title}`, onClick: () => props.onConfigure() })),
15
- props.showClose && (React.createElement(SimpleButton_1.default, { "aria-label": `Close ${props.title}`, style: { alignSelf: 'flex-end' }, disabled: props.accessLevel == 'ReadOnly', "data-name": "close", icon: "close", variant: "text", tone: "none", iconSize: 16, className: "twa:ml-1", tooltip: props.tooltip || `Close ${props.title} Toolbar`, onClick: () => props.onClose() })))));
15
+ props.showClose && (React.createElement(SimpleButton_1.default, { "aria-label": `Close ${props.title}`, style: { alignSelf: 'flex-end' }, disabled: props.accessLevel == 'ReadOnly', "data-name": "close", icon: "close", variant: "text", tone: "none", iconSize: 16, className: "twa:ml-1", tooltip: props.tooltip || `Close ${props.title} Toolbar`, onClick: () => props.onClose?.() })))));
16
16
  }
@@ -6,7 +6,6 @@ const react_1 = require("react");
6
6
  const BaseEditorInput_1 = require("./BaseEditorInput");
7
7
  const editorButtonsSearch_1 = require("./editorButtonsSearch");
8
8
  const EditorContext_1 = require("./EditorContext");
9
- const StringExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Extensions/StringExtensions"));
10
9
  const editorButtonsAggregatedScalar_1 = require("./editorButtonsAggregatedScalar");
11
10
  const aggregatedScalarExpressionFunctions_1 = require("../../Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions");
12
11
  const editorButtonsCumulativeAggregatedScalar_1 = require("./editorButtonsCumulativeAggregatedScalar");
@@ -52,8 +51,25 @@ function EditorInput(props) {
52
51
  };
53
52
  }, [props.type]);
54
53
  const { setSelectedFunction } = (0, EditorContext_1.useExpressionEditor)();
55
- const queryName = `${StringExtensions_1.default.CapitaliseFirstLetter(props.type)}Query`;
56
- return (React.createElement(BaseEditorInput_1.BaseEditorInput, { type: 'main', value: props.value, placeholder: `Create ${queryName}`, onChange: props.onChange, onSelectedFunctionChange: setSelectedFunction, expressionFunctions: expressionFunctions, editorButtons: props.type === 'aggregatedScalar'
54
+ let queryName;
55
+ switch (props.type) {
56
+ case 'boolean':
57
+ queryName = 'Create an Expression that returns true / false';
58
+ break;
59
+ case 'scalar':
60
+ queryName = "Create an Expression that returns a single value of any type";
61
+ break;
62
+ case 'aggregatedScalar':
63
+ queryName = "Create an Expression that evaluates multiple rows and returns a value of any type";
64
+ break;
65
+ case 'cumulativeAggregatedScalar':
66
+ queryName = "Create a Cumulative Expression";
67
+ break;
68
+ case 'quantileAggregatedScalar':
69
+ queryName = "Create a Quantile Expression";
70
+ break;
71
+ }
72
+ return (React.createElement(BaseEditorInput_1.BaseEditorInput, { type: 'main', value: props.value, placeholder: queryName, onChange: props.onChange, onSelectedFunctionChange: setSelectedFunction, expressionFunctions: expressionFunctions, editorButtons: props.type === 'aggregatedScalar'
57
73
  ? editorButtonsAggregatedScalar_1.editorButtonsAggregatedScalar
58
74
  : props.type === 'cumulativeAggregatedScalar'
59
75
  ? editorButtonsCumulativeAggregatedScalar_1.editorButtonsCumulativeAggregatedScalar
@@ -254,7 +254,7 @@ function TreeDropdown(props) {
254
254
  } }, children));
255
255
  } },
256
256
  React.createElement(FieldWrap_1.default, { style: props.fieldStyle, className: "twa:w-full" },
257
- React.createElement(Input_1.default, { type: "text", readOnly: true, "data-name": "Select Values", placeholder: props.placeholder ?? 'Select a value', className: `twa:w-full ${props.clearable ? 'twa:pr-0' : ''}`, value: props.toDisplayValue ? props.toDisplayValue(value) : toDisplayValueDefault(value), onFocus: () => {
257
+ React.createElement(Input_1.default, { type: "text", readOnly: true, "data-name": "Select Values", "aria-expanded": visible, placeholder: props.placeholder ?? 'Select a value', className: `twa:w-full ${props.clearable ? 'twa:pr-0' : ''}`, value: props.toDisplayValue ? props.toDisplayValue(value) : toDisplayValueDefault(value), onFocus: () => {
258
258
  if (!visible) {
259
259
  setVisible(true);
260
260
  }
package/src/env.js CHANGED
@@ -2,6 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
4
  NEXT_PUBLIC_INFINITE_TABLE_LICENSE_KEY: "StartDate=2021-06-29|EndDate=2030-01-01|Owner=Adaptable|Type=distribution|TS=1624971462479|C=137829811,1004007071,2756196225,1839832928,3994409405,636616862" || '',
5
- PUBLISH_TIMESTAMP: 1769449948892 || Date.now(),
6
- VERSION: "22.0.0-canary.2" || '--current-version--',
5
+ PUBLISH_TIMESTAMP: 1770107080647 || Date.now(),
6
+ VERSION: "22.0.0-canary.3" || '--current-version--',
7
7
  };