@adaptabletools/adaptable-cjs 22.0.0-canary.1 → 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 (177) hide show
  1. package/index.css +55 -37
  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/AdaptableOptions/AdaptablePlugin.js +6 -1
  6. package/src/AdaptableOptions/ExportOptions.d.ts +1 -2
  7. package/src/AdaptableOptions/FilterOptions.d.ts +3 -0
  8. package/src/AdaptableState/Common/AdaptableColumn.d.ts +6 -0
  9. package/src/AdaptableState/Common/AdaptableStyle.d.ts +8 -0
  10. package/src/AdaptableState/Common/RowDataChangedInfo.d.ts +3 -0
  11. package/src/AdaptableState/FormatColumnState.d.ts +0 -8
  12. package/src/AdaptableState/InitialState.d.ts +1 -1
  13. package/src/AdaptableState/Selection/GridCell.d.ts +9 -0
  14. package/src/Api/DataSetApi.d.ts +1 -1
  15. package/src/Api/GridApi.d.ts +3 -3
  16. package/src/Api/Implementation/ActionColumnApiImpl.js +1 -0
  17. package/src/Api/Implementation/AdaptableApiImpl.js +52 -0
  18. package/src/Api/Implementation/AlertApiImpl.js +1 -0
  19. package/src/Api/Implementation/ApiBase.js +1 -0
  20. package/src/Api/Implementation/CalculatedColumnApiImpl.js +1 -0
  21. package/src/Api/Implementation/ChartingApiImpl.js +4 -0
  22. package/src/Api/Implementation/ColumnApiImpl.js +1 -0
  23. package/src/Api/Implementation/ColumnFilterApiImpl.js +1 -0
  24. package/src/Api/Implementation/CommentsApiImpl.js +1 -0
  25. package/src/Api/Implementation/CustomSortApiImpl.js +1 -0
  26. package/src/Api/Implementation/DashboardApiImpl.js +1 -0
  27. package/src/Api/Implementation/DataChangeHistoryApiImpl.js +12 -15
  28. package/src/Api/Implementation/DataImportApiImpl.js +1 -0
  29. package/src/Api/Implementation/DataSetApiImpl.js +1 -0
  30. package/src/Api/Implementation/EntitlementApiImpl.js +1 -0
  31. package/src/Api/Implementation/EventApiImpl.js +16 -14
  32. package/src/Api/Implementation/ExportApiImpl.js +1 -0
  33. package/src/Api/Implementation/ExpressionApiImpl.js +1 -0
  34. package/src/Api/Implementation/Fdc3ApiImpl.js +1 -0
  35. package/src/Api/Implementation/FilterApiImpl.js +3 -0
  36. package/src/Api/Implementation/FlashingCellApiImpl.js +1 -0
  37. package/src/Api/Implementation/FormatColumnApiImpl.js +1 -0
  38. package/src/Api/Implementation/FreeTextColumnApiImpl.js +1 -0
  39. package/src/Api/Implementation/GridApiImpl.d.ts +9 -9
  40. package/src/Api/Implementation/GridApiImpl.js +17 -16
  41. package/src/Api/Implementation/GridFilterApiImpl.js +1 -0
  42. package/src/Api/Implementation/LayoutApiImpl.js +1 -0
  43. package/src/Api/Implementation/NamedQueryApiImpl.js +1 -0
  44. package/src/Api/Implementation/NoteApiImpl.js +1 -0
  45. package/src/Api/Implementation/PredicateApiImpl.js +1 -0
  46. package/src/Api/Implementation/RowFormApiImpl.js +1 -0
  47. package/src/Api/Implementation/StyledColumnApiImpl.js +1 -0
  48. package/src/Api/Implementation/SystemStatusApiImpl.js +2 -0
  49. package/src/Api/Implementation/TeamSharingApiImpl.js +1 -0
  50. package/src/Api/Implementation/ThemeApiImpl.js +1 -0
  51. package/src/Api/Implementation/UserInterfaceApiImpl.js +2 -1
  52. package/src/Api/Internal/ColumnInternalApi.js +1 -1
  53. package/src/Api/Internal/FormatColumnInternalApi.d.ts +0 -10
  54. package/src/Api/Internal/FormatColumnInternalApi.js +1 -19
  55. package/src/Redux/ActionsReducers/NoteRedux.js +1 -1
  56. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +6 -0
  57. package/src/Redux/Store/AdaptableStore.js +49 -43
  58. package/src/Strategy/AdaptableModuleBase.js +4 -0
  59. package/src/Strategy/AlertModule.js +1 -0
  60. package/src/Strategy/CalculatedColumnModule.js +1 -0
  61. package/src/Strategy/CellSummaryModule.js +1 -1
  62. package/src/Strategy/DataChangeHistoryModule.js +1 -0
  63. package/src/Strategy/FlashingCellModule.js +1 -0
  64. package/src/Strategy/FreeTextColumnModule.js +1 -0
  65. package/src/Strategy/LayoutModule.js +2 -1
  66. package/src/Strategy/PlusMinusModule.js +2 -0
  67. package/src/Strategy/ScheduleModule.js +1 -0
  68. package/src/Strategy/ShortcutModule.js +2 -0
  69. package/src/Strategy/TeamSharingModule.js +10 -10
  70. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +0 -3
  71. package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +3 -3
  72. package/src/Utilities/Constants/DocumentationLinkConstants.js +3 -3
  73. package/src/Utilities/ExpressionFunctions/deepMap.js +31 -31
  74. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +3 -3
  75. package/src/Utilities/Helpers/StyleHelper.js +14 -0
  76. package/src/Utilities/MenuItem.js +18 -0
  77. package/src/Utilities/ObjectFactory.js +1 -1
  78. package/src/Utilities/Services/AggregatedScalarLiveValue.js +8 -0
  79. package/src/Utilities/Services/AlertService.js +6 -4
  80. package/src/Utilities/Services/AnnotationsService.js +4 -1
  81. package/src/Utilities/Services/CalculatedColumnExpressionService.js +2 -1
  82. package/src/Utilities/Services/ChartingService.js +1 -0
  83. package/src/Utilities/Services/DataService.js +10 -2
  84. package/src/Utilities/Services/Fdc3Service.js +5 -3
  85. package/src/Utilities/Services/FlashingCellService.js +5 -0
  86. package/src/Utilities/Services/LicenseService/index.js +1 -1
  87. package/src/Utilities/Services/MetamodelService.js +2 -2
  88. package/src/Utilities/Services/ModuleService.js +4 -3
  89. package/src/Utilities/Services/QueryLanguageService.js +6 -5
  90. package/src/Utilities/Services/RowFormService.js +1 -0
  91. package/src/Utilities/Services/RowSummaryService.js +10 -7
  92. package/src/Utilities/Services/TeamSharingService.js +3 -1
  93. package/src/Utilities/Services/ThemeService.js +11 -9
  94. package/src/Utilities/Services/ValidationService.js +1 -0
  95. package/src/Utilities/createAgStatusPanelComponent.js +3 -0
  96. package/src/View/AdaptablePopover/index.d.ts +1 -0
  97. package/src/View/AdaptablePopover/index.js +1 -1
  98. package/src/View/Alert/ActiveAlertsPanel.js +8 -0
  99. package/src/View/Alert/AlertViewPanel.js +13 -9
  100. package/src/View/Alert/Utilities/getAlertButtonStyle.d.ts +1 -0
  101. package/src/View/Alert/Utilities/getAlertButtonStyle.js +8 -0
  102. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +24 -11
  103. package/src/View/CalculatedColumn/CalculatedColumnSummary.js +8 -8
  104. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +2 -2
  105. package/src/View/CellSummary/CellSummaryViewPanel.js +16 -17
  106. package/src/View/Components/AdaptableDateInput/index.js +1 -1
  107. package/src/View/Components/Buttons/ButtonApply.js +1 -1
  108. package/src/View/Components/Buttons/ButtonBase/index.js +9 -9
  109. package/src/View/Components/Buttons/ButtonClear.d.ts +1 -0
  110. package/src/View/Components/Buttons/EntityListActionButtons.js +18 -18
  111. package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +1 -1
  112. package/src/View/Components/ExpressionWizard.js +5 -5
  113. package/src/View/Components/Panels/PanelDashboard/index.js +8 -8
  114. package/src/View/Components/Panels/PanelToolPanel/index.js +7 -7
  115. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +18 -17
  116. package/src/View/Components/StyleComponent.js +20 -1
  117. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +2 -0
  118. package/src/View/CustomSort/CustomSortSummary.js +13 -13
  119. package/src/View/Dashboard/DashboardPopup.js +4 -5
  120. package/src/View/Export/ExportDestinationPicker.js +1 -1
  121. package/src/View/Export/ExportStatusBar.js +4 -2
  122. package/src/View/Export/ExportViewPanel.js +25 -18
  123. package/src/View/FormatColumn/FormatColumnSummary.js +13 -13
  124. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +0 -23
  125. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +2 -2
  126. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +13 -13
  127. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +57 -65
  128. package/src/View/QuickSearch/QuickSearchPopup.js +4 -1
  129. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +2 -2
  130. package/src/View/SmartEdit/SmartEditViewPanel.js +1 -0
  131. package/src/View/Theme/ThemePopup.js +13 -16
  132. package/src/View/UIHelper.d.ts +2 -0
  133. package/src/View/UIHelper.js +16 -0
  134. package/src/agGrid/Adaptable.js +4 -0
  135. package/src/agGrid/AdaptableAgGrid.d.ts +2 -2
  136. package/src/agGrid/AdaptableAgGrid.js +104 -38
  137. package/src/agGrid/AdaptableFilterHandler.js +4 -0
  138. package/src/agGrid/AdaptableLogger.d.ts +3 -0
  139. package/src/agGrid/AdaptableLogger.js +10 -0
  140. package/src/agGrid/AgGridAdapter.js +11 -1
  141. package/src/agGrid/AgGridColumnAdapter.js +5 -18
  142. package/src/agGrid/AgGridExportAdapter.js +10 -9
  143. package/src/agGrid/AgGridFilterAdapter.js +4 -0
  144. package/src/agGrid/AgGridFloatingFilterAdapter.js +3 -0
  145. package/src/agGrid/AgGridMenuAdapter.js +1 -0
  146. package/src/agGrid/AgGridModulesAdapter.js +2 -1
  147. package/src/agGrid/AgGridOptionsService.js +3 -0
  148. package/src/agGrid/AgGridThemeAdapter.js +2 -0
  149. package/src/agGrid/cellRenderers/ActionColumnRenderer.js +5 -0
  150. package/src/agGrid/cellRenderers/BadgeRenderer.js +2 -0
  151. package/src/agGrid/cellRenderers/PercentBarRenderer.js +1 -0
  152. package/src/agGrid/editors/AdaptableDateEditor/index.js +6 -3
  153. package/src/agGrid/editors/AdaptableNumberEditor/index.js +16 -12
  154. package/src/agGrid/editors/AdaptablePercentageEditor/index.js +17 -13
  155. package/src/agGrid/index.d.ts +6 -0
  156. package/src/agGrid/index.js +6 -0
  157. package/src/components/Dashboard/DashboardToolbar.js +1 -1
  158. package/src/components/Datepicker/index.js +1 -1
  159. package/src/components/ExpressionEditor/EditorInput.js +19 -3
  160. package/src/components/Tree/TreeDropdown/index.js +1 -1
  161. package/src/components/overlayBaseZIndex.js +1 -1
  162. package/src/components/utils/useContainerScrollObserver/index.js +17 -14
  163. package/src/devTools/index.js +54 -53
  164. package/src/env.js +2 -2
  165. package/src/layout-manager/src/LMEmitter.js +11 -11
  166. package/src/layout-manager/src/LMLogger.js +7 -0
  167. package/src/layout-manager/src/index.js +56 -51
  168. package/src/metamodel/adaptable.metamodel.d.ts +66 -7
  169. package/src/metamodel/adaptable.metamodel.js +1 -1
  170. package/src/migration/AdaptableUpgradeHelper.js +5 -0
  171. package/src/migration/VersionUpgrade.js +1 -0
  172. package/src/migration/VersionUpgrade17.js +1 -2
  173. package/src/migration/VersionUpgrade22.d.ts +6 -0
  174. package/src/migration/VersionUpgrade22.js +31 -0
  175. package/src/parser/src/ExpressionEvaluationError.js +1 -0
  176. package/src/types.d.ts +1 -1
  177. package/tsconfig.cjs.tsbuildinfo +1 -1
@@ -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) => {
@@ -17,6 +17,7 @@ const react_redux_1 = require("react-redux");
17
17
  const Select_1 = require("../../components/Select");
18
18
  const Flex_1 = require("../../components/Flex");
19
19
  class SmartEditViewPanelComponent extends React.Component {
20
+ cleanupEvent;
20
21
  constructor(props) {
21
22
  super(props);
22
23
  this.state = {
@@ -15,22 +15,6 @@ const icons_1 = require("../../components/icons");
15
15
  const ThemeSelector_1 = require("./ThemeSelector");
16
16
  const Flex_1 = require("../../components/Flex");
17
17
  class ThemePopupComponent extends React.Component {
18
- constructor() {
19
- super(...arguments);
20
- this.handleCreateNewTheme = (variant) => {
21
- let nthItem = this.props.UserThemes.length + 1;
22
- let name = 'Custom-Theme-' + nthItem;
23
- // make sure it is unique
24
- while (this.props.UserThemes.some((theme) => theme.Name === name)) {
25
- nthItem++;
26
- name = 'Custom-Theme-' + nthItem;
27
- }
28
- const newTheme = ObjectFactory_1.default.CreateEmptyTheme(name);
29
- newTheme.Variant = variant;
30
- this.props.api.themeApi.addUserTheme(newTheme);
31
- this.props.api.themeApi.loadTheme(newTheme.Name);
32
- };
33
- }
34
18
  render() {
35
19
  const isCustomTheme = this.props.api.themeApi
36
20
  .getUserThemes()
@@ -63,6 +47,19 @@ class ThemePopupComponent extends React.Component {
63
47
  onChangeTheme(value) {
64
48
  this.props.SelectTheme(value);
65
49
  }
50
+ handleCreateNewTheme = (variant) => {
51
+ let nthItem = this.props.UserThemes.length + 1;
52
+ let name = 'Custom-Theme-' + nthItem;
53
+ // make sure it is unique
54
+ while (this.props.UserThemes.some((theme) => theme.Name === name)) {
55
+ nthItem++;
56
+ name = 'Custom-Theme-' + nthItem;
57
+ }
58
+ const newTheme = ObjectFactory_1.default.CreateEmptyTheme(name);
59
+ newTheme.Variant = variant;
60
+ this.props.api.themeApi.addUserTheme(newTheme);
61
+ this.props.api.themeApi.loadTheme(newTheme.Name);
62
+ };
66
63
  }
67
64
  function mapStateToProps(state, ownProps) {
68
65
  return {
@@ -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,
@@ -26,6 +26,10 @@ class Adaptable {
26
26
  }
27
27
  exports.Adaptable = Adaptable;
28
28
  class AdaptableNoCodeWizard {
29
+ init;
30
+ adaptableOptions;
31
+ extraOptions;
32
+ agGridModules;
29
33
  /**
30
34
  * @param adaptableOptions
31
35
  */
@@ -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[];
@@ -159,38 +159,77 @@ LocalEventService_Prototype.dispatchEvent = function (event) {
159
159
  const adaptableInstances = {};
160
160
  const publishTimestamp = Number(EnvVars_1.ADAPTABLE_PUBLISH_TIMESTAMP);
161
161
  class AdaptableAgGrid {
162
+ logger;
163
+ _id;
164
+ lifecycleState;
165
+ variant;
166
+ emitter;
167
+ /**
168
+ * Runtime flags
169
+ */
170
+ hasAutogeneratedPrimaryKey;
171
+ hasAdaptableToolPanel;
172
+ initWithLazyData;
173
+ _rawAdaptableOptions;
174
+ adaptableOptions;
175
+ _isDetailGrid;
176
+ _isDetailGridForIndex;
177
+ agGridOptionsService;
178
+ agGridAdapter;
179
+ agGridColumnAdapter;
180
+ agGridMenuAdapter;
181
+ agGridExportAdapter;
182
+ agGridThemeAdapter;
183
+ agGridModulesAdapter;
184
+ DANGER_USE_GETTER_adaptableContainerElement;
185
+ DANGER_USE_GETTER_agGridContainerElement;
186
+ api;
187
+ adaptableStore;
188
+ adaptableModules;
189
+ DataService;
190
+ CalculatedColumnExpressionService;
191
+ ModuleService;
192
+ ValidationService;
193
+ QueryLanguageService;
194
+ AlertService;
195
+ TeamSharingService;
196
+ MetamodelService;
197
+ RowFormService;
198
+ Fdc3Service;
199
+ AnnotationsService;
200
+ FlashingCellService;
201
+ LicenseService;
202
+ ChartingService;
203
+ ThemeService;
204
+ rowListeners;
205
+ throttleFilterOnDataChange;
206
+ debouncedSetSelectedRows;
207
+ debouncedSetSelectedCells;
208
+ agGridListenerKeydown;
209
+ agGridListenerMouseEnter;
210
+ agGridListenerMouseLeave;
211
+ listenerGlobalSetRowSelection;
212
+ listenerGlobalChartingChanges;
213
+ listenerCellEditingStarted;
214
+ listenerFirstDataRendered;
215
+ listenerPivotChanged;
216
+ listenerCellSelectionChanged;
217
+ listenerSortChanged;
218
+ listenerColumnGroupOpened;
219
+ layoutManager;
220
+ columnMinMaxValuesCache = {};
221
+ renderReactRoot = (node, container) => (0, renderReactRoot_1.renderReactRoot)(node, container);
222
+ unmountReactRoot;
223
+ unmountLoadingScreen;
224
+ /**
225
+ * Temporary, these are MIGRATION technical debts, and should be removed as soon as possible
226
+ */
227
+ adaptableStatusPanelKeys = [];
228
+ // see #no_additional_react_root
229
+ _PRIVATE_adaptableJSXElement;
230
+ _prevLayout;
231
+ __prevLayoutForRefresh;
162
232
  constructor(config) {
163
- this.columnMinMaxValuesCache = {};
164
- this.renderReactRoot = (node, container) => (0, renderReactRoot_1.renderReactRoot)(node, container);
165
- /**
166
- * Temporary, these are MIGRATION technical debts, and should be removed as soon as possible
167
- */
168
- this.adaptableStatusPanelKeys = [];
169
- // only for our private / internal events used within Adaptable
170
- // public events are emitted through the EventApi
171
- this._emit = (eventName, data) => {
172
- if (this.emitter) {
173
- return this.emitter.emit(eventName, data);
174
- }
175
- };
176
- this._emitSync = (eventName, data) => {
177
- if (this.emitter) {
178
- return this.emitter.emitSync(eventName, data);
179
- }
180
- };
181
- this._on = (eventName, callback) => {
182
- if (!this.emitter) {
183
- return () => { };
184
- }
185
- return this.emitter.on(eventName, callback);
186
- };
187
- this._onIncludeFired = (eventName, callback) => {
188
- if (!this.emitter) {
189
- return () => { };
190
- }
191
- return this.emitter.onIncludeFired(eventName, callback);
192
- };
193
- this.__updateColumnModelAndRefreshGrid_already_called = false;
194
233
  this.lifecycleState = 'initial';
195
234
  this.emitter = new Emitter_1.default();
196
235
  this.agGridOptionsService = new AgGridOptionsService_1.AgGridOptionsService(this);
@@ -226,6 +265,30 @@ class AdaptableAgGrid {
226
265
  get isDestroyed() {
227
266
  return this.lifecycleState === 'preDestroyed';
228
267
  }
268
+ // only for our private / internal events used within Adaptable
269
+ // public events are emitted through the EventApi
270
+ _emit = (eventName, data) => {
271
+ if (this.emitter) {
272
+ return this.emitter.emit(eventName, data);
273
+ }
274
+ };
275
+ _emitSync = (eventName, data) => {
276
+ if (this.emitter) {
277
+ return this.emitter.emitSync(eventName, data);
278
+ }
279
+ };
280
+ _on = (eventName, callback) => {
281
+ if (!this.emitter) {
282
+ return () => { };
283
+ }
284
+ return this.emitter.on(eventName, callback);
285
+ };
286
+ _onIncludeFired = (eventName, callback) => {
287
+ if (!this.emitter) {
288
+ return () => { };
289
+ }
290
+ return this.emitter.onIncludeFired(eventName, callback);
291
+ };
229
292
  /**
230
293
  * Internal initializer for Adaptable, directly called by the React and Angular Adaptable wrappers
231
294
  * @private
@@ -786,7 +849,8 @@ You need to define at least one Layout!`);
786
849
  return original_autoGroupColumnDef;
787
850
  }
788
851
  if (typeof original_autoGroupColumnDef?.filter === 'object') {
789
- this.logger.warn(`autoGroupColumnDef.filter is set and overrides the Adaptable custom filter mechanism! We recommend using a ColumnOptions.columnHeader instead!`);
852
+ this.logger.consoleWarn(`autoGroupColumnDef.filter is set and overrides the Adaptable custom filter mechanism, so Adaptable will not be able to manage filtering for the Group Column!
853
+ Please contact the Adaptable Support Team for further assistance and investigation.`);
790
854
  return original_autoGroupColumnDef;
791
855
  }
792
856
  const autoGroupColumnDef = { ...original_autoGroupColumnDef };
@@ -794,7 +858,8 @@ You need to define at least one Layout!`);
794
858
  // !! DO NOT REMOVE THIS !!
795
859
  // see https://github.com/ag-grid/ag-grid/blob/6f43ff257c2e285068eb425b655e58d6eeb89816/packages/ag-grid-enterprise/src/rowHierarchy/autoColService.ts#L225
796
860
  autoGroupColumnDef.filterValueGetter = (params) => {
797
- this.logger.error('autoGroupColumnDef.filterValueGetter was called unexpectedly; this is not an expected execution path!', params);
861
+ this.logger.consoleWarn(`An unexpected invocation of autoGroupColumnDef.filterValueGetter was detected. This execution path is not expected under normal operation.
862
+ Please contact the Adaptable Support Team for further assistance and investigation.`, params);
798
863
  return '';
799
864
  };
800
865
  // !! it is important that we always return the same component / handler instances
@@ -2070,6 +2135,7 @@ You need to define at least one Layout!`);
2070
2135
  }
2071
2136
  return rawValue;
2072
2137
  }
2138
+ __updateColumnModelAndRefreshGrid_already_called = false;
2073
2139
  updateColumnModelAndRefreshGrid() {
2074
2140
  if (this.__updateColumnModelAndRefreshGrid_already_called) {
2075
2141
  return;
@@ -2405,18 +2471,18 @@ You need to define at least one Layout!`);
2405
2471
  });
2406
2472
  }
2407
2473
  }
2408
- async applyGridDataTransaction(dataTransaction, config = {}) {
2474
+ async manageGridRows(dataRows, config = {}) {
2409
2475
  const result = {
2410
2476
  addedRows: [],
2411
2477
  updatedRows: [],
2412
2478
  removedRows: [],
2413
2479
  };
2414
- if (!dataTransaction) {
2480
+ if (!dataRows) {
2415
2481
  return result;
2416
2482
  }
2417
- const addDataRows = dataTransaction.add;
2418
- const updateDataRows = dataTransaction.update;
2419
- const removeDataRows = dataTransaction.remove;
2483
+ const addDataRows = dataRows.add;
2484
+ const updateDataRows = dataRows.update;
2485
+ const removeDataRows = dataRows.delete;
2420
2486
  if (this.hasAutogeneratedPrimaryKey) {
2421
2487
  this.addSyntheticPrimaryKeyIfMissing(addDataRows);
2422
2488
  }
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AdaptableFilterHandler = void 0;
4
4
  class AdaptableFilterHandler {
5
+ adaptableApi;
6
+ colId;
7
+ filterDisplayValuesResult;
8
+ previousFilterDisplayValuesResult;
5
9
  constructor(adaptableApi) {
6
10
  this.adaptableApi = adaptableApi;
7
11
  }
@@ -1,5 +1,8 @@
1
1
  import { AdaptableMessageType } from '../AdaptableState/Common/AdaptableMessageType';
2
2
  export declare const errorOnce: (message: string) => void;
3
+ /**
4
+ * AdapTable's Logger
5
+ */
3
6
  export declare class AdaptableLogger {
4
7
  private adaptableId;
5
8
  private debugger;
@@ -15,7 +15,17 @@ const errorOnce = (message) => {
15
15
  errorOnceFlags[message] = true;
16
16
  };
17
17
  exports.errorOnce = errorOnce;
18
+ /**
19
+ * AdapTable's Logger
20
+ */
18
21
  class AdaptableLogger {
22
+ adaptableId;
23
+ debugger;
24
+ infoLogger;
25
+ successLogger;
26
+ warnLogger;
27
+ errorLogger;
28
+ perfLogger;
19
29
  // use static loggers whenever access to AdaptableLogger instance is not feasible
20
30
  static consoleErrorBase(message, ...optionalParams) {
21
31
  if (optionalParams?.length) {
@@ -17,9 +17,19 @@ const AggregationColumns_1 = require("../AdaptableState/Common/AggregationColumn
17
17
  const DANGER_AG_GRID_BEANS_MAP = {};
18
18
  const getColumnApiModule = () => ag_grid_enterprise_1.ColumnApiModule;
19
19
  class AgGridAdapter {
20
+ _adaptableInstance;
21
+ DANGER_USE_GETTER_gridApi;
22
+ DANGER_gridApi_from_args;
23
+ // see #gridOpts_monkey_patch
24
+ DANGER_updateGridOptionsMonkeyPatcher;
25
+ // see #aggColumnFilters_monkey_patch
26
+ DANGER_doFiltersPassMonkeyPatcher;
27
+ DANGER_isAggFilterPresentMonkeyPatcher;
28
+ activePivotColumnFilters_MEMO = new WeakMap();
29
+ initialGridOptions;
30
+ _agGridId;
20
31
  constructor(_adaptableInstance, config) {
21
32
  this._adaptableInstance = _adaptableInstance;
22
- this.activePivotColumnFilters_MEMO = new WeakMap();
23
33
  const columnApiModuleReference = config?.getAgGridColumnApiModuleReference?.() ?? getColumnApiModule();
24
34
  const ColumnDefFactory_Prototype = columnApiModuleReference?.beans?.[0]?.prototype;
25
35
  if (!ColumnDefFactory_Prototype) {
@@ -32,6 +32,8 @@ function getEditorForColumnDataType(columnDataType, variant) {
32
32
  }
33
33
  }
34
34
  class AgGridColumnAdapter {
35
+ adaptableInstance;
36
+ colDefPropertyCache;
35
37
  constructor(adaptableInstance) {
36
38
  this.adaptableInstance = adaptableInstance;
37
39
  this.colDefPropertyCache = new Map();
@@ -305,12 +307,10 @@ class AgGridColumnAdapter {
305
307
  // see #header_text_align
306
308
  const formatColumnWithTextAlignment = this.getRelevantFormatColumnHeaderStyles(abColumn)
307
309
  // we take the first one only, even if multiple are defined
308
- .find((fc) => fc.CellAlignment != undefined);
310
+ .find((fc) => fc.Style?.Alignment != undefined);
309
311
  if (formatColumnWithTextAlignment) {
310
- baseHeaderClass = [
311
- ...baseHeaderClass,
312
- `ab-header__align-${formatColumnWithTextAlignment.CellAlignment.toLowerCase()}`,
313
- ];
312
+ const alignment = formatColumnWithTextAlignment.Style.Alignment.toLowerCase();
313
+ baseHeaderClass = [...baseHeaderClass, `ab-header__align-${alignment}`];
314
314
  }
315
315
  const formatColumns = this.adaptableApi.formatColumnApi.internalApi.getFormatColumnWithStyleClassNameForColumn(abColumn, {
316
316
  target,
@@ -1266,19 +1266,6 @@ class AgGridColumnAdapter {
1266
1266
  const formatColumnStyle = formatColumn.Style
1267
1267
  ? (0, StyleHelper_1.convertAdaptableStyleToCSS)(formatColumn.Style)
1268
1268
  : {};
1269
- if (formatColumn.CellAlignment) {
1270
- switch (formatColumn.CellAlignment) {
1271
- case 'Left':
1272
- style.textAlign = 'left';
1273
- break;
1274
- case 'Right':
1275
- style.textAlign = 'right';
1276
- break;
1277
- case 'Center':
1278
- style.textAlign = 'center';
1279
- break;
1280
- }
1281
- }
1282
1269
  return { ...style, ...formatColumnStyle };
1283
1270
  }, {});
1284
1271
  }
@@ -12,17 +12,18 @@ const Uuid_1 = require("../AdaptableState/Uuid");
12
12
  const udsv_1 = require("udsv");
13
13
  const GeneralConstants_1 = require("../Utilities/Constants/GeneralConstants");
14
14
  class AgGridExportAdapter {
15
+ _adaptableInstance;
16
+ /**
17
+ * !!!
18
+ * do NOT mutate this array reference, this is passed only initially to AG Grid and we can only change it's internal state
19
+ */
20
+ DANGER_excelStyles = [];
21
+ originalExcelStyles = [];
22
+ excelStylesCache = {};
23
+ cellOrHeaderClassKey2ExcelStyleIdMap = {};
24
+ excelStylesWithFormattedDate = {};
15
25
  constructor(_adaptableInstance) {
16
26
  this._adaptableInstance = _adaptableInstance;
17
- /**
18
- * !!!
19
- * do NOT mutate this array reference, this is passed only initially to AG Grid and we can only change it's internal state
20
- */
21
- this.DANGER_excelStyles = [];
22
- this.originalExcelStyles = [];
23
- this.excelStylesCache = {};
24
- this.cellOrHeaderClassKey2ExcelStyleIdMap = {};
25
- this.excelStylesWithFormattedDate = {};
26
27
  }
27
28
  get agGridApi() {
28
29
  return this._adaptableInstance.agGridAdapter.getAgGridApi();