@adaptabletools/adaptable 22.0.0-canary.0 → 22.0.0-canary.10

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 (395) hide show
  1. package/README.md +4 -6
  2. package/agGrid.d.ts +9 -9
  3. package/agGrid.js +1 -0
  4. package/index.css +1280 -1400
  5. package/index.css.map +1 -1
  6. package/index.d.ts +66 -0
  7. package/index.js +73 -0
  8. package/package.json +3 -3
  9. package/src/AdaptableInterfaces/IAdaptable.d.ts +10 -1
  10. package/src/AdaptableOptions/ActionColumnOptions.d.ts +2 -2
  11. package/src/AdaptableOptions/AdaptablePlugin.js +6 -1
  12. package/src/AdaptableOptions/ColumnOptions.d.ts +2 -2
  13. package/src/AdaptableOptions/ContainerOptions.d.ts +55 -15
  14. package/src/AdaptableOptions/CustomSortOptions.d.ts +4 -0
  15. package/src/AdaptableOptions/DashboardOptions.d.ts +1 -2
  16. package/src/AdaptableOptions/ExportOptions.d.ts +1 -2
  17. package/src/AdaptableOptions/FilterOptions.d.ts +3 -0
  18. package/src/AdaptableOptions/ToolPanelOptions.d.ts +1 -2
  19. package/src/AdaptableState/AdaptableState.d.ts +2 -0
  20. package/src/AdaptableState/AlertState.d.ts +5 -2
  21. package/src/AdaptableState/ChartingState.d.ts +2 -2
  22. package/src/AdaptableState/Common/AdaptableAlert.d.ts +2 -2
  23. package/src/AdaptableState/Common/AdaptableButton.d.ts +2 -2
  24. package/src/AdaptableState/Common/AdaptableColumn.d.ts +16 -10
  25. package/src/AdaptableState/Common/AdaptableColumnContext.d.ts +9 -0
  26. package/src/AdaptableState/Common/AdaptableFlashingCell.d.ts +2 -2
  27. package/src/AdaptableState/Common/AdaptableObject.d.ts +20 -2
  28. package/src/AdaptableState/Common/AdaptableRowContext.d.ts +11 -0
  29. package/src/AdaptableState/Common/AdaptableStyle.d.ts +8 -0
  30. package/src/AdaptableState/Common/BaseContext.d.ts +2 -0
  31. package/src/AdaptableState/Common/ColumnHighlightInfo.d.ts +18 -0
  32. package/src/AdaptableState/Common/DataUpdateConfig.d.ts +17 -0
  33. package/src/AdaptableState/Common/NamedObject.d.ts +10 -0
  34. package/src/AdaptableState/Common/NamedObject.js +1 -0
  35. package/src/AdaptableState/Common/RowDataChangedInfo.d.ts +3 -0
  36. package/src/AdaptableState/Common/RowSummary.d.ts +1 -1
  37. package/src/AdaptableState/Common/Schedule.d.ts +8 -5
  38. package/src/AdaptableState/Common/SystemStatusMessageInfo.d.ts +2 -2
  39. package/src/AdaptableState/Common/TransposeConfig.d.ts +12 -10
  40. package/src/AdaptableState/CustomSortState.d.ts +5 -1
  41. package/src/AdaptableState/DashboardState.d.ts +1 -1
  42. package/src/AdaptableState/ExportState.d.ts +1 -1
  43. package/src/AdaptableState/FlashingCellState.d.ts +6 -2
  44. package/src/AdaptableState/FormatColumnState.d.ts +5 -9
  45. package/src/AdaptableState/InitialState.d.ts +10 -1
  46. package/src/AdaptableState/InternalState.d.ts +2 -0
  47. package/src/AdaptableState/LayoutState.d.ts +7 -3
  48. package/src/AdaptableState/NamedQueryState.d.ts +1 -1
  49. package/src/AdaptableState/PlusMinusState.d.ts +5 -1
  50. package/src/AdaptableState/Selection/GridCell.d.ts +9 -0
  51. package/src/AdaptableState/ShortcutState.d.ts +5 -1
  52. package/src/AdaptableState/StyledColumnState.d.ts +1 -1
  53. package/src/AdaptableState/ThemeState.d.ts +1 -1
  54. package/src/AdaptableState/UserInterfaceState.d.ts +14 -0
  55. package/src/AdaptableState/UserInterfaceState.js +1 -0
  56. package/src/Api/AlertApi.d.ts +6 -0
  57. package/src/Api/CustomSortApi.d.ts +12 -3
  58. package/src/Api/DataSetApi.d.ts +1 -1
  59. package/src/Api/FlashingCellApi.d.ts +6 -0
  60. package/src/Api/FormatColumnApi.d.ts +10 -4
  61. package/src/Api/GridApi.d.ts +29 -4
  62. package/src/Api/Implementation/ActionColumnApiImpl.js +1 -0
  63. package/src/Api/Implementation/AdaptableApiImpl.js +52 -0
  64. package/src/Api/Implementation/AlertApiImpl.d.ts +1 -0
  65. package/src/Api/Implementation/AlertApiImpl.js +6 -6
  66. package/src/Api/Implementation/ApiBase.d.ts +1 -1
  67. package/src/Api/Implementation/ApiBase.js +2 -1
  68. package/src/Api/Implementation/CalculatedColumnApiImpl.js +1 -0
  69. package/src/Api/Implementation/ChartingApiImpl.js +6 -2
  70. package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -1
  71. package/src/Api/Implementation/ColumnApiImpl.js +1 -0
  72. package/src/Api/Implementation/ColumnFilterApiImpl.js +1 -0
  73. package/src/Api/Implementation/CommentsApiImpl.js +1 -0
  74. package/src/Api/Implementation/CustomSortApiImpl.d.ts +6 -1
  75. package/src/Api/Implementation/CustomSortApiImpl.js +6 -2
  76. package/src/Api/Implementation/DashboardApiImpl.js +1 -0
  77. package/src/Api/Implementation/DataChangeHistoryApiImpl.js +12 -15
  78. package/src/Api/Implementation/DataImportApiImpl.js +1 -0
  79. package/src/Api/Implementation/DataSetApiImpl.js +1 -0
  80. package/src/Api/Implementation/EntitlementApiImpl.js +1 -0
  81. package/src/Api/Implementation/EventApiImpl.js +16 -14
  82. package/src/Api/Implementation/ExportApiImpl.js +1 -0
  83. package/src/Api/Implementation/ExpressionApiImpl.js +1 -0
  84. package/src/Api/Implementation/Fdc3ApiImpl.js +1 -0
  85. package/src/Api/Implementation/FilterApiImpl.js +3 -0
  86. package/src/Api/Implementation/FlashingCellApiImpl.d.ts +1 -0
  87. package/src/Api/Implementation/FlashingCellApiImpl.js +4 -0
  88. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +6 -5
  89. package/src/Api/Implementation/FormatColumnApiImpl.js +7 -5
  90. package/src/Api/Implementation/FreeTextColumnApiImpl.js +1 -0
  91. package/src/Api/Implementation/GridApiImpl.d.ts +10 -1
  92. package/src/Api/Implementation/GridApiImpl.js +36 -5
  93. package/src/Api/Implementation/GridFilterApiImpl.js +1 -0
  94. package/src/Api/Implementation/LayoutApiImpl.d.ts +1 -0
  95. package/src/Api/Implementation/LayoutApiImpl.js +5 -1
  96. package/src/Api/Implementation/LayoutHelpers.js +7 -0
  97. package/src/Api/Implementation/NamedQueryApiImpl.js +3 -2
  98. package/src/Api/Implementation/NoteApiImpl.js +1 -0
  99. package/src/Api/Implementation/PlusMinusApiImpl.d.ts +1 -0
  100. package/src/Api/Implementation/PlusMinusApiImpl.js +3 -0
  101. package/src/Api/Implementation/PredicateApiImpl.js +1 -0
  102. package/src/Api/Implementation/RowFormApiImpl.js +1 -0
  103. package/src/Api/Implementation/ScheduleApiImpl.d.ts +1 -0
  104. package/src/Api/Implementation/ScheduleApiImpl.js +4 -0
  105. package/src/Api/Implementation/ShortcutApiImpl.d.ts +1 -0
  106. package/src/Api/Implementation/ShortcutApiImpl.js +3 -0
  107. package/src/Api/Implementation/StyledColumnApiImpl.js +1 -0
  108. package/src/Api/Implementation/SystemStatusApiImpl.js +8 -9
  109. package/src/Api/Implementation/TeamSharingApiImpl.js +1 -0
  110. package/src/Api/Implementation/ThemeApiImpl.js +1 -0
  111. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +5 -0
  112. package/src/Api/Implementation/UserInterfaceApiImpl.js +15 -1
  113. package/src/Api/Internal/CalculatedColumnInternalApi.js +2 -2
  114. package/src/Api/Internal/ColumnInternalApi.js +1 -1
  115. package/src/Api/Internal/FormatColumnInternalApi.d.ts +0 -10
  116. package/src/Api/Internal/FormatColumnInternalApi.js +1 -19
  117. package/src/Api/Internal/FreeTextColumnInternalApi.js +2 -2
  118. package/src/Api/Internal/LayoutInternalApi.js +1 -1
  119. package/src/Api/Internal/NamedQueryInternalApi.js +4 -4
  120. package/src/Api/LayoutApi.d.ts +6 -0
  121. package/src/Api/PlusMinusApi.d.ts +6 -0
  122. package/src/Api/ScheduleApi.d.ts +6 -0
  123. package/src/Api/ShortcutApi.d.ts +6 -0
  124. package/src/Api/UserInterfaceApi.d.ts +17 -0
  125. package/src/Redux/ActionsReducers/FormatColumnRedux.d.ts +8 -0
  126. package/src/Redux/ActionsReducers/FormatColumnRedux.js +15 -0
  127. package/src/Redux/ActionsReducers/InternalRedux.d.ts +15 -0
  128. package/src/Redux/ActionsReducers/InternalRedux.js +36 -0
  129. package/src/Redux/ActionsReducers/LayoutRedux.d.ts +1 -1
  130. package/src/Redux/ActionsReducers/NoteRedux.js +1 -1
  131. package/src/Redux/ActionsReducers/UserInterfaceRedux.d.ts +11 -0
  132. package/src/Redux/ActionsReducers/UserInterfaceRedux.js +21 -0
  133. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +6 -0
  134. package/src/Redux/Store/AdaptableStore.js +121 -64
  135. package/src/Strategy/AdaptableModuleBase.js +4 -0
  136. package/src/Strategy/AlertModule.js +5 -0
  137. package/src/Strategy/BulkUpdateModule.js +8 -8
  138. package/src/Strategy/CalculatedColumnModule.js +1 -0
  139. package/src/Strategy/CellSummaryModule.js +1 -1
  140. package/src/Strategy/CustomSortModule.js +4 -0
  141. package/src/Strategy/DataChangeHistoryModule.js +1 -0
  142. package/src/Strategy/FlashingCellModule.js +6 -0
  143. package/src/Strategy/FormatColumnModule.js +4 -0
  144. package/src/Strategy/FreeTextColumnModule.js +1 -0
  145. package/src/Strategy/LayoutModule.js +6 -5
  146. package/src/Strategy/PlusMinusModule.js +7 -1
  147. package/src/Strategy/QuickSearchModule.js +1 -1
  148. package/src/Strategy/ScheduleModule.js +5 -0
  149. package/src/Strategy/SettingsPanelModule.js +11 -7
  150. package/src/Strategy/ShortcutModule.js +6 -0
  151. package/src/Strategy/SmartEditModule.js +10 -10
  152. package/src/Strategy/TeamSharingModule.js +10 -10
  153. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +0 -3
  154. package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +18 -17
  155. package/src/Utilities/Constants/DocumentationLinkConstants.js +18 -17
  156. package/src/Utilities/ExpressionFunctions/deepMap.js +31 -31
  157. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +3 -3
  158. package/src/Utilities/Extensions/StringExtensions.d.ts +2 -0
  159. package/src/Utilities/Extensions/StringExtensions.js +16 -0
  160. package/src/Utilities/Helpers/FormatHelper.js +9 -2
  161. package/src/Utilities/Helpers/StyleHelper.js +14 -0
  162. package/src/Utilities/MenuItem.js +18 -0
  163. package/src/Utilities/ObjectFactory.js +16 -3
  164. package/src/Utilities/Services/AggregatedScalarLiveValue.js +8 -0
  165. package/src/Utilities/Services/AlertService.js +6 -4
  166. package/src/Utilities/Services/AnnotationsService.js +4 -1
  167. package/src/Utilities/Services/CalculatedColumnExpressionService.js +2 -1
  168. package/src/Utilities/Services/ChartingService.js +1 -0
  169. package/src/Utilities/Services/DataService.js +11 -3
  170. package/src/Utilities/Services/Fdc3Service.js +9 -7
  171. package/src/Utilities/Services/FlashingCellService.js +5 -0
  172. package/src/Utilities/Services/LicenseService/index.js +1 -1
  173. package/src/Utilities/Services/MetamodelService.js +2 -2
  174. package/src/Utilities/Services/ModuleService.js +39 -41
  175. package/src/Utilities/Services/QueryLanguageService.js +6 -5
  176. package/src/Utilities/Services/RowFormService.js +1 -0
  177. package/src/Utilities/Services/RowSummaryService.js +10 -7
  178. package/src/Utilities/Services/TeamSharingService.js +3 -1
  179. package/src/Utilities/Services/ThemeService.js +13 -15
  180. package/src/Utilities/Services/ValidationService.js +2 -1
  181. package/src/Utilities/createAgStatusPanelComponent.js +3 -0
  182. package/src/Utilities/logDeprecation.js +3 -4
  183. package/src/Utilities/resolveContainerElement.d.ts +23 -0
  184. package/src/Utilities/resolveContainerElement.js +44 -0
  185. package/src/View/AdaptablePopover/index.d.ts +1 -0
  186. package/src/View/AdaptablePopover/index.js +1 -1
  187. package/src/View/Alert/ActiveAlertsPanel.js +8 -0
  188. package/src/View/Alert/AlertViewPanel.js +13 -9
  189. package/src/View/Alert/Utilities/getAlertButtonStyle.d.ts +1 -0
  190. package/src/View/Alert/Utilities/getAlertButtonStyle.js +8 -0
  191. package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +1 -0
  192. package/src/View/Alert/Wizard/AlertTypeWizardSection.d.ts +5 -2
  193. package/src/View/Alert/Wizard/AlertTypeWizardSection.js +47 -12
  194. package/src/View/Alert/Wizard/AlertWizard.js +14 -10
  195. package/src/View/Alert/Wizard/isValidAlertRules.js +1 -1
  196. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +24 -11
  197. package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +2 -2
  198. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +2 -2
  199. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
  200. package/src/View/CellSummary/CellSummaryViewPanel.js +16 -17
  201. package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +2 -2
  202. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +2 -2
  203. package/src/View/Components/AdaptableDateInput/index.js +1 -1
  204. package/src/View/Components/Buttons/ButtonApply.js +1 -1
  205. package/src/View/Components/Buttons/ButtonBase/index.js +9 -9
  206. package/src/View/Components/Buttons/ButtonClear.d.ts +1 -0
  207. package/src/View/Components/Buttons/EntityListActionButtons.d.ts +1 -2
  208. package/src/View/Components/Buttons/EntityListActionButtons.js +18 -18
  209. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.d.ts +1 -2
  210. package/src/View/Components/CellPopup/index.js +1 -1
  211. package/src/View/Components/ColumnFilter/FloatingFilter.js +41 -3
  212. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +1 -1
  213. package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +54 -2
  214. package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +1 -1
  215. package/src/View/Components/EntityRulesEditor/Utilities.js +5 -5
  216. package/src/View/Components/NewScopeComponent.js +3 -3
  217. package/src/View/Components/Panels/PanelDashboard/index.js +8 -8
  218. package/src/View/Components/Panels/PanelToolPanel/index.js +7 -7
  219. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +2 -1
  220. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupBody.js +1 -1
  221. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.d.ts +1 -1
  222. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +1 -8
  223. package/src/View/Components/Popups/AdaptablePopupConfirmation.js +1 -1
  224. package/src/View/Components/Popups/WindowPopups/WindowPopups.js +36 -1
  225. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +19 -18
  226. package/src/View/Components/StyleComponent.d.ts +1 -0
  227. package/src/View/Components/StyleComponent.js +94 -24
  228. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +2 -0
  229. package/src/View/Components/WizardSummaryPage.js +1 -1
  230. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +2 -1
  231. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +41 -15
  232. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +1 -1
  233. package/src/View/CustomSort/Wizard/CustomSortWizard.js +4 -4
  234. package/src/View/Dashboard/CustomToolbar.js +1 -1
  235. package/src/View/Dashboard/DashboardPopup.js +4 -5
  236. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -0
  237. package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +1 -1
  238. package/src/View/Export/ExportDestinationPicker.js +1 -1
  239. package/src/View/Export/ExportStatusBar.js +4 -2
  240. package/src/View/Export/ExportViewPanel.js +25 -18
  241. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.d.ts +2 -1
  242. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +34 -14
  243. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +14 -10
  244. package/src/View/FlashingCell/Wizard/isValidFlashingCellRules.js +1 -1
  245. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +46 -51
  246. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +2 -2
  247. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +20 -9
  248. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +1 -1
  249. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +3 -3
  250. package/src/View/GridFilter/GridFilterExpressionEditor.js +6 -1
  251. package/src/View/GridFilter/GridFilterViewPanel.js +33 -70
  252. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +57 -65
  253. package/src/View/Layout/LayoutViewPanel.js +1 -1
  254. package/src/View/Layout/TransposedPopup.js +144 -138
  255. package/src/View/Layout/Wizard/sections/AggregationsSection.js +1 -1
  256. package/src/View/Layout/Wizard/sections/FilterSection.js +1 -1
  257. package/src/View/Layout/Wizard/sections/GridFilterSection.js +1 -1
  258. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +3 -3
  259. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +8 -0
  260. package/src/View/Layout/Wizard/sections/RowSummarySection.js +1 -1
  261. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +2 -2
  262. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +35 -12
  263. package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +20 -15
  264. package/src/View/QuickSearch/QuickSearchPopup.js +4 -1
  265. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsIPushPull.js +12 -1
  266. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsOpenFin.js +12 -1
  267. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +14 -4
  268. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +12 -1
  269. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.d.ts +2 -1
  270. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.js +19 -10
  271. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.d.ts +2 -1
  272. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +25 -4
  273. package/src/View/Shortcut/Wizard/ShortcutWizard.js +18 -14
  274. package/src/View/SmartEdit/SmartEditViewPanel.js +1 -0
  275. package/src/View/StateManagement/handleExportState.js +1 -1
  276. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
  277. package/src/View/Theme/ThemePopup.js +13 -16
  278. package/src/View/UIHelper.d.ts +4 -1
  279. package/src/View/UIHelper.js +23 -14
  280. package/src/agGrid/Adaptable.js +15 -11
  281. package/src/agGrid/AdaptableAgGrid.d.ts +16 -3
  282. package/src/agGrid/AdaptableAgGrid.js +306 -103
  283. package/src/agGrid/AdaptableFilterHandler.js +4 -0
  284. package/src/agGrid/AdaptableLogger.d.ts +3 -0
  285. package/src/agGrid/AdaptableLogger.js +10 -0
  286. package/src/agGrid/AgGridAdapter.js +19 -9
  287. package/src/agGrid/AgGridColumnAdapter.d.ts +1 -0
  288. package/src/agGrid/AgGridColumnAdapter.js +20 -22
  289. package/src/agGrid/AgGridExportAdapter.js +15 -14
  290. package/src/agGrid/AgGridFilterAdapter.js +4 -0
  291. package/src/agGrid/AgGridFloatingFilterAdapter.js +4 -1
  292. package/src/agGrid/AgGridMenuAdapter.js +10 -1
  293. package/src/agGrid/AgGridModulesAdapter.js +2 -1
  294. package/src/agGrid/AgGridOptionsService.js +3 -0
  295. package/src/agGrid/AgGridThemeAdapter.js +4 -2
  296. package/src/agGrid/cellRenderers/ActionColumnRenderer.js +5 -0
  297. package/src/agGrid/cellRenderers/BadgeRenderer.js +2 -0
  298. package/src/agGrid/cellRenderers/PercentBarRenderer.js +1 -0
  299. package/src/agGrid/editors/AdaptableDateEditor/index.js +6 -3
  300. package/src/agGrid/editors/AdaptableNumberEditor/index.js +16 -12
  301. package/src/agGrid/editors/AdaptablePercentageEditor/index.js +17 -13
  302. package/src/agGrid/index.d.ts +6 -0
  303. package/src/agGrid/index.js +6 -0
  304. package/src/components/CheckBox/index.js +1 -1
  305. package/src/components/ColorPicker/ColorPicker.js +5 -4
  306. package/src/components/Dashboard/DashboardToolbar.js +1 -1
  307. package/src/components/Datepicker/index.js +1 -1
  308. package/src/components/Dropdown/Arrows.js +1 -1
  309. package/src/components/ExpressionEditor/DataTableEditor.js +3 -3
  310. package/src/components/ExpressionEditor/EditorInput.js +19 -3
  311. package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +1 -1
  312. package/src/components/FormLayout/index.js +1 -1
  313. package/src/components/OverlayTrigger/index.js +1 -1
  314. package/src/components/Select/Select.js +79 -16
  315. package/src/components/Tree/TreeDropdown/index.js +2 -2
  316. package/src/components/overlayBaseZIndex.js +1 -1
  317. package/src/components/utils/useContainerScrollObserver/index.js +17 -14
  318. package/src/devTools/index.js +54 -53
  319. package/src/env.js +2 -2
  320. package/src/layout-manager/src/LMEmitter.js +11 -11
  321. package/src/layout-manager/src/LMLogger.js +7 -0
  322. package/src/layout-manager/src/LayoutManagerModel.d.ts +1 -0
  323. package/src/layout-manager/src/index.js +81 -58
  324. package/src/layout-manager/src/normalizeLayoutModel.js +3 -0
  325. package/src/metamodel/adaptable.metamodel.d.ts +177 -8
  326. package/src/metamodel/adaptable.metamodel.js +1 -1
  327. package/src/migration/AdaptableUpgradeHelper.js +8 -3
  328. package/src/migration/VersionUpgrade.js +1 -0
  329. package/src/migration/VersionUpgrade17.js +5 -6
  330. package/src/migration/VersionUpgrade20.js +4 -4
  331. package/src/migration/VersionUpgrade22.d.ts +21 -0
  332. package/src/migration/VersionUpgrade22.js +187 -0
  333. package/src/parser/src/ExpressionEvaluationError.js +1 -0
  334. package/src/types.d.ts +9 -7
  335. package/themes/dark.css +30 -30
  336. package/themes/light.css +4 -2
  337. package/tsconfig.esm.tsbuildinfo +1 -1
  338. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/FinanceForm.js +0 -632
  339. package/src/View/Alert/AlertEntityRow.d.ts +0 -11
  340. package/src/View/Alert/AlertEntityRow.js +0 -28
  341. package/src/View/CalculatedColumn/CalculatedColumnSummary.d.ts +0 -21
  342. package/src/View/CalculatedColumn/CalculatedColumnSummary.js +0 -58
  343. package/src/View/Components/Buttons/ButtonFunction.d.ts +0 -7
  344. package/src/View/Components/Buttons/ButtonFunction.js +0 -8
  345. package/src/View/Components/Buttons/ButtonGeneral.d.ts +0 -5
  346. package/src/View/Components/Buttons/ButtonGeneral.js +0 -7
  347. package/src/View/Components/Buttons/ButtonPreviewDelete.d.ts +0 -4
  348. package/src/View/Components/Buttons/ButtonPreviewDelete.js +0 -5
  349. package/src/View/Components/Buttons/ButtonShow.d.ts +0 -5
  350. package/src/View/Components/Buttons/ButtonShow.js +0 -7
  351. package/src/View/Components/Buttons/ButtonShowChart.d.ts +0 -5
  352. package/src/View/Components/Buttons/ButtonShowChart.js +0 -7
  353. package/src/View/Components/Buttons/ButtonUndo.d.ts +0 -5
  354. package/src/View/Components/Buttons/ButtonUndo.js +0 -7
  355. package/src/View/Components/ExpressionWizard.d.ts +0 -24
  356. package/src/View/Components/ExpressionWizard.js +0 -77
  357. package/src/View/Components/FilterForm/Waiting.d.ts +0 -10
  358. package/src/View/Components/FilterForm/Waiting.js +0 -14
  359. package/src/View/Components/Panels/PanelFooter.d.ts +0 -10
  360. package/src/View/Components/Panels/PanelFooter.js +0 -9
  361. package/src/View/Components/Panels/PanelWithTwoButtons.d.ts +0 -12
  362. package/src/View/Components/Panels/PanelWithTwoButtons.js +0 -15
  363. package/src/View/Components/Panels/ToolPanelSettingsPanel.d.ts +0 -8
  364. package/src/View/Components/Panels/ToolPanelSettingsPanel.js +0 -26
  365. package/src/View/Components/Selectors/ColumnSelectorOld.d.ts +0 -18
  366. package/src/View/Components/Selectors/ColumnSelectorOld.js +0 -45
  367. package/src/View/Components/SharedProps/WizardScopeState.d.ts +0 -4
  368. package/src/View/Components/WizardSummaryRow.d.ts +0 -9
  369. package/src/View/Components/WizardSummaryRow.js +0 -11
  370. package/src/View/CustomSort/CustomSortSummary.d.ts +0 -23
  371. package/src/View/CustomSort/CustomSortSummary.js +0 -105
  372. package/src/View/DataImport/DataImportWizard/sections/ImportSection.d.ts +0 -9
  373. package/src/View/DataImport/DataImportWizard/sections/ImportSection.js +0 -19
  374. package/src/View/Export/Wizard/ReportColumnTypeWizard.d.ts +0 -19
  375. package/src/View/Export/Wizard/ReportColumnTypeWizard.js +0 -68
  376. package/src/View/Export/Wizard/ReportRowTypeWizard.d.ts +0 -19
  377. package/src/View/Export/Wizard/ReportRowTypeWizard.js +0 -68
  378. package/src/View/Export/Wizard/ReportSettingsWizard.d.ts +0 -21
  379. package/src/View/Export/Wizard/ReportSettingsWizard.js +0 -56
  380. package/src/View/Export/Wizard/ReportSummaryWizard.d.ts +0 -15
  381. package/src/View/Export/Wizard/ReportSummaryWizard.js +0 -35
  382. package/src/View/Filter/FilterSummary.d.ts +0 -18
  383. package/src/View/Filter/FilterSummary.js +0 -48
  384. package/src/View/FormatColumn/FormatColumnSummary.d.ts +0 -22
  385. package/src/View/FormatColumn/FormatColumnSummary.js +0 -90
  386. package/src/View/FreeTextColumn/FreeTextColumnSummary.d.ts +0 -22
  387. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +0 -88
  388. package/src/View/GridInfo/GridInfoPopup/AdaptableOptionsComponent.d.ts +0 -7
  389. package/src/View/GridInfo/GridInfoPopup/AdaptableOptionsComponent.js +0 -94
  390. package/src/View/PlusMinus/PlusMinusSummary.d.ts +0 -22
  391. package/src/View/PlusMinus/PlusMinusSummary.js +0 -95
  392. package/src/View/Wizard/WizardLegend.d.ts +0 -12
  393. package/src/View/Wizard/WizardLegend.js +0 -23
  394. /package/src/{View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/FinanceForm.d.ts → AdaptableState/Common/AdaptableRowContext.js} +0 -0
  395. /package/src/{View/Components/SharedProps/WizardScopeState.js → AdaptableState/Common/ColumnHighlightInfo.js} +0 -0
@@ -1,9 +1,16 @@
1
1
  import * as React from 'react';
2
2
  import { Tabs } from '../../../../components/Tabs';
3
3
  import FormLayout, { FormRow } from '../../../../components/FormLayout';
4
+ import Input from '../../../../components/Input';
4
5
  import DropdownButton from '../../../../components/DropdownButton';
5
6
  import { Box } from '../../../../components/Flex';
6
7
  export const ScheduleSettingsOpenFin = (props) => {
8
+ const handleNameChange = (event) => {
9
+ props.onChange({
10
+ ...props.openFin,
11
+ Name: event.target.value,
12
+ });
13
+ };
7
14
  const reportOptions = props.allReports.map((report) => ({
8
15
  label: report.Name,
9
16
  value: report.Name,
@@ -17,9 +24,13 @@ export const ScheduleSettingsOpenFin = (props) => {
17
24
  }));
18
25
  return (React.createElement(Box, { "data-name": "schedule-settings-openfin" },
19
26
  React.createElement(Tabs, { autoFocus: false },
20
- React.createElement(Tabs.Tab, null, "OpenFin Schedule Settings"),
27
+ React.createElement(Tabs.Tab, null, "Settings"),
21
28
  React.createElement(Tabs.Content, null,
22
29
  React.createElement(FormLayout, null,
30
+ React.createElement(FormRow, { label: "Name" },
31
+ React.createElement(Input, { "data-name": "schedule-name", className: "twa:w-[300px]", onChange: handleNameChange, placeholder: "Enter Schedule Name", type: "string", value: props.openFin?.Name ?? '' })),
32
+ React.createElement(FormRow, { label: "" },
33
+ React.createElement(Box, { className: "twa:h-2" })),
23
34
  React.createElement(FormRow, { label: "Select Report" },
24
35
  React.createElement(DropdownButton, { "data-name": "select-report", columns: ['label'], className: "twa:w-[300px]", disabled: props.allReports.length == 0, items: reportOptions }, props?.openFin?.OpenFinReport?.ReportName || 'Select Report')))))));
25
36
  };
@@ -17,16 +17,22 @@ export const ScheduleSettingsReminder = (props) => {
17
17
  });
18
18
  },
19
19
  }));
20
+ const handleNameChange = (event) => {
21
+ props.onChange({
22
+ ...props.reminderSchedule,
23
+ Name: event.target.value,
24
+ });
25
+ };
20
26
  const handleHeaderChange = (event) => {
21
27
  props.onChange({
22
28
  ...props.reminderSchedule,
23
- Header: event.target?.value,
29
+ Header: event.target.value,
24
30
  });
25
31
  };
26
32
  const handleMessageChange = (event) => {
27
33
  props.onChange({
28
34
  ...props.reminderSchedule,
29
- Message: event.target?.value,
35
+ Message: event.target.value,
30
36
  });
31
37
  };
32
38
  const handleDisplayNotificationChange = (checked) => {
@@ -41,11 +47,15 @@ export const ScheduleSettingsReminder = (props) => {
41
47
  DisplaySystemStatusMessage: checked,
42
48
  });
43
49
  };
44
- return (React.createElement(Box, { "data-name": "schedule-settings-remainder" },
50
+ return (React.createElement(Box, { "data-name": "schedule-settings-reminder" },
45
51
  React.createElement(Tabs, { autoFocus: false },
46
- React.createElement(Tabs.Tab, null, "Reminder Schedule Settings"),
52
+ React.createElement(Tabs.Tab, null, "Settings"),
47
53
  React.createElement(Tabs.Content, null,
48
54
  React.createElement(FormLayout, null,
55
+ React.createElement(FormRow, { label: "Name" },
56
+ React.createElement(Input, { "data-name": "schedule-name", className: "twa:w-[300px]", onChange: handleNameChange, placeholder: "Enter Reminder Name", type: "string", value: props.reminderSchedule?.Name ?? '' })),
57
+ React.createElement(FormRow, { label: "" },
58
+ React.createElement(Box, { className: "twa:h-2" })),
49
59
  React.createElement(FormRow, { label: "Header" },
50
60
  React.createElement(Input, { "data-name": "header", className: "twa:w-[300px]", onChange: handleHeaderChange, placeholder: "Enter Reminder Header", type: "string", value: props.reminderSchedule?.Header })),
51
61
  React.createElement(FormRow, { label: "Message" },
@@ -1,9 +1,16 @@
1
1
  import * as React from 'react';
2
2
  import FormLayout, { FormRow } from '../../../../components/FormLayout';
3
+ import Input from '../../../../components/Input';
3
4
  import { Select } from '../../../../components/Select';
4
5
  import { Tabs } from '../../../../components/Tabs';
5
6
  import { Box } from '../../../../components/Flex';
6
7
  export const ScheduleSettingsReport = (props) => {
8
+ const handleNameChange = (event) => {
9
+ props.onChange({
10
+ ...props.report,
11
+ Name: event.target.value,
12
+ });
13
+ };
7
14
  const reportOptions = props.allReports.map((report) => ({
8
15
  label: report.Name,
9
16
  value: report.Name,
@@ -30,9 +37,13 @@ export const ScheduleSettingsReport = (props) => {
30
37
  }));
31
38
  return (React.createElement(Box, { "data-name": "schedule-settings-report" },
32
39
  React.createElement(Tabs, { autoFocus: false, className: "twa:mb-3" },
33
- React.createElement(Tabs.Tab, null, "Report Settings"),
40
+ React.createElement(Tabs.Tab, null, "Settings"),
34
41
  React.createElement(Tabs.Content, null,
35
42
  React.createElement(FormLayout, null,
43
+ React.createElement(FormRow, { label: "Name" },
44
+ React.createElement(Input, { "data-name": "schedule-name", className: "twa:w-[300px]", onChange: handleNameChange, placeholder: "Enter Schedule Name", type: "string", value: props.report?.Name ?? '' })),
45
+ React.createElement(FormRow, { label: "" },
46
+ React.createElement(Box, { className: "twa:h-2" })),
36
47
  React.createElement(FormRow, { label: "Export" },
37
48
  React.createElement(Box, { className: "twa:max-w-[300px]" },
38
49
  React.createElement(Select, { "data-name": "select-report", options: reportOptions, value: props?.report?.ReportName, placeholder: "Select Export", onChange: (value) => props.onChange({
@@ -1,2 +1,3 @@
1
+ import { AdaptableApi } from '../../../../Api/AdaptableApi';
1
2
  import { BaseSchedule } from '../../../../AdaptableState/Common/Schedule';
2
- export declare const isSettingsValid: (schedule: BaseSchedule) => true | "Message type not selected" | "Reminder header not specified" | "Reminder message not specified" | "Report source not specified" | "Report format not selected" | "Report not selected" | "Report folder not selected" | "Report page not selected";
3
+ export declare const isSettingsValid: (schedule: BaseSchedule, api: AdaptableApi) => true | "A name is required." | "A Schedule with this name already exists." | "Please select a message type." | "A reminder header is required." | "A reminder message is required." | "Please select a report." | "Please select a report format." | "Please select a report folder." | "Please select a report page.";
@@ -1,43 +1,52 @@
1
1
  import { ScheduleType } from '../../../../AdaptableState/Common/Enums';
2
2
  import StringExtensions from '../../../../Utilities/Extensions/StringExtensions';
3
- export const isSettingsValid = (schedule) => {
3
+ export const isSettingsValid = (schedule, api) => {
4
+ // Validate Name - mandatory and unique
5
+ if (!schedule.Name?.trim()) {
6
+ return 'A name is required.';
7
+ }
8
+ const allSchedules = api.scheduleApi.getSchedules();
9
+ const isDuplicateName = allSchedules.some((s) => s.Name === schedule.Name && s.Uuid !== schedule.Uuid);
10
+ if (isDuplicateName) {
11
+ return 'A Schedule with this name already exists.';
12
+ }
4
13
  if (schedule.ScheduleType === ScheduleType.Reminder) {
5
14
  const reminder = schedule;
6
15
  if (!reminder.MessageType) {
7
- return 'Message type not selected';
16
+ return 'Please select a message type.';
8
17
  }
9
18
  if (StringExtensions.IsNullOrEmpty(reminder?.Header)) {
10
- return 'Reminder header not specified';
19
+ return 'A reminder header is required.';
11
20
  }
12
21
  if (StringExtensions.IsNullOrEmpty(reminder?.Message)) {
13
- return 'Reminder message not specified';
22
+ return 'A reminder message is required.';
14
23
  }
15
24
  }
16
25
  if (schedule.ScheduleType === ScheduleType.Report) {
17
26
  const report = schedule;
18
27
  if (StringExtensions.IsNullOrEmpty(report?.ReportName)) {
19
- return 'Report source not specified';
28
+ return 'Please select a report.';
20
29
  }
21
30
  if (StringExtensions.IsNullOrEmpty(report?.ReportFormat)) {
22
- return 'Report format not selected';
31
+ return 'Please select a report format.';
23
32
  }
24
33
  }
25
34
  if (schedule.ScheduleType === ScheduleType.ipushpull) {
26
35
  const ipushpull = schedule;
27
36
  if (StringExtensions.IsNullOrEmpty(ipushpull?.IPushPullReport?.ReportName)) {
28
- return 'Report not selected';
37
+ return 'Please select a report.';
29
38
  }
30
39
  if (StringExtensions.IsNullOrEmpty(ipushpull?.IPushPullReport?.Folder)) {
31
- return 'Report folder not selected';
40
+ return 'Please select a report folder.';
32
41
  }
33
42
  if (StringExtensions.IsNullOrEmpty(ipushpull?.IPushPullReport?.Page)) {
34
- return 'Report page not selected';
43
+ return 'Please select a report page.';
35
44
  }
36
45
  }
37
46
  if (schedule.ScheduleType === ScheduleType.OpenFin) {
38
47
  const openfin = schedule;
39
48
  if (StringExtensions.IsNullOrEmpty(openfin?.OpenFinReport?.ReportName)) {
40
- return 'Report not selected';
49
+ return 'Please select a report.';
41
50
  }
42
51
  }
43
52
  return true;
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { Shortcut } from '../../../AdaptableState/ShortcutState';
3
- export declare const isSettingsValid: (data: Shortcut) => string | true;
3
+ import { AdaptableApi } from '../../../types';
4
+ export declare const isSettingsValid: (data: Shortcut, api: AdaptableApi) => string | true;
4
5
  export declare const ShortcutSettingsSummary: React.FunctionComponent;
5
6
  interface ShortcutSettingsWizardProps {
6
7
  availableKeys: Array<string>;
@@ -9,7 +9,15 @@ import { Tag } from '../../../components/Tag';
9
9
  import HelpBlock from '../../../components/HelpBlock';
10
10
  import { Select } from '../../../components/Select';
11
11
  import { Box, Flex } from '../../../components/Flex';
12
- export const isSettingsValid = (data) => {
12
+ export const isSettingsValid = (data, api) => {
13
+ if (!data.Name?.trim()) {
14
+ return 'Name is required';
15
+ }
16
+ const allShortcuts = api.shortcutApi.getShortcuts();
17
+ const isDuplicateName = allShortcuts.some((s) => s.Name === data.Name && s.Uuid !== data.Uuid);
18
+ if (isDuplicateName) {
19
+ return 'A Shortcut already exists with that name';
20
+ }
13
21
  const shortcutKey = data.ShortcutKey && typeof data.ShortcutKey === 'string' ? '' : 'Shortcut key is not selected';
14
22
  const shortcutValue = typeof data.ShortcutValue === 'number' ? '' : 'Shortcut value is not specified';
15
23
  const shortcutOperation = data.ShortcutOperation && typeof data.ShortcutOperation === 'string'
@@ -21,6 +29,9 @@ export const isSettingsValid = (data) => {
21
29
  export const ShortcutSettingsSummary = () => {
22
30
  const { data: shortcut } = useOnePageAdaptableWizardContext();
23
31
  return (React.createElement(React.Fragment, null,
32
+ React.createElement(SummaryText, null,
33
+ "Name ",
34
+ React.createElement(Tag, null, shortcut.Name || 'Not specified')),
24
35
  React.createElement(SummaryText, null,
25
36
  "Shortcut Key ",
26
37
  React.createElement(Tag, null, shortcut.ShortcutKey || 'Not selected')),
@@ -33,6 +44,12 @@ export const ShortcutSettingsSummary = () => {
33
44
  };
34
45
  export const ShortcutSettingsWizard = (props) => {
35
46
  const { data: shortcut } = useOnePageAdaptableWizardContext();
47
+ const handleNameChange = (event) => {
48
+ props.onChange({
49
+ ...shortcut,
50
+ Name: event.target.value,
51
+ });
52
+ };
36
53
  const handleKeyChange = React.useCallback((ShortcutKey) => {
37
54
  props.onChange({
38
55
  ...shortcut,
@@ -63,17 +80,21 @@ export const ShortcutSettingsWizard = (props) => {
63
80
  React.createElement(Tabs.Tab, null, "Shortcut Settings"),
64
81
  React.createElement(Tabs.Content, null,
65
82
  React.createElement(FormLayout, null,
66
- React.createElement(FormRow, null,
83
+ React.createElement(FormRow, { label: "Name" },
84
+ React.createElement(Input, { "data-name": "shortcut-name", className: "twa:flex-1 twa:max-w-[200px] twa:mr-3", onChange: handleNameChange, placeholder: "Enter Name", value: shortcut.Name ?? '' })),
85
+ React.createElement(FormRow, { label: "" },
86
+ React.createElement(Box, { className: "twa:h-2" })),
87
+ React.createElement(FormRow, { label: "" },
67
88
  React.createElement(HelpBlock, { className: "twa:text-2 twa:mb-0" }, "Keyboard key that, when pressed, triggers the Shortcut")),
68
89
  React.createElement(FormRow, { label: "Key" },
69
90
  React.createElement(Flex, { flexDirection: "row" },
70
91
  React.createElement(Select, { "data-name": "shortcut-key", placeholder: "Select Key", options: optionKeys, onChange: (key) => handleKeyChange(key), value: shortcut.ShortcutKey || 'Select Key' }))),
71
- React.createElement(FormRow, null,
92
+ React.createElement(FormRow, { label: "" },
72
93
  React.createElement(HelpBlock, { className: "twa:text-2 twa:mb-0" }, "Mathematical operation performed on Cell's current value (using the Shortcut's 'value') - used to calculate the Cell's new total")),
73
94
  React.createElement(FormRow, { label: "Operation" },
74
95
  React.createElement(Flex, { flexDirection: "row" },
75
96
  React.createElement(Select, { "data-name": "shortcut-operation", placeholder: "Select Operation", options: optionActions, onChange: (operation) => handleOperationChange(operation), value: shortcut.ShortcutOperation }))),
76
- React.createElement(FormRow, null,
97
+ React.createElement(FormRow, { label: "" },
77
98
  React.createElement(HelpBlock, { className: "twa:text-2 twa:mb-0" }, "Number that is used - together with the 'Operation' and the current cell value - to calculate the new total for the cell")),
78
99
  React.createElement(FormRow, { label: "Value" },
79
100
  React.createElement(Flex, { flexDirection: "row" },
@@ -11,8 +11,9 @@ import { shortcutKeys } from '../shortcutKeys';
11
11
  import { useAdaptable } from '../../AdaptableContext';
12
12
  import { ObjectTagsWizardSection, renderObjectTagsSummary, } from '../../Wizard/ObjectTagsWizardSection';
13
13
  import { Box } from '../../../components/Flex';
14
+ import StringExtensions from '../../../Utilities/Extensions/StringExtensions';
14
15
  export const ShortcutWizard = (props) => {
15
- const [shortcut, setShortcut] = React.useState(() => {
16
+ const [shortcut, doSetShortcut] = React.useState(() => {
16
17
  const shortcut = props.data ? cloneObject(props.data) : ObjectFactory.CreateEmptyShortcut();
17
18
  shortcut.Scope = shortcut.Scope ?? { All: true };
18
19
  if (props.popupParams?.column && props.popupParams?.action === 'New') {
@@ -22,10 +23,13 @@ export const ShortcutWizard = (props) => {
22
23
  }
23
24
  return shortcut;
24
25
  });
26
+ const setShortcut = React.useCallback((data) => {
27
+ doSetShortcut(data);
28
+ }, []);
25
29
  const adaptable = useAdaptable();
26
30
  const availableKeys = React.useMemo(() => {
27
31
  const availableKeys = shortcutKeys.filter((key) => adaptable.api.shortcutApi.getShortcuts().every((shortcut) => shortcut.ShortcutKey !== key));
28
- if (shortcut) {
32
+ if (shortcut && StringExtensions.IsNotNullOrEmptyOrWhiteSpace(shortcut.ShortcutKey)) {
29
33
  availableKeys.push(shortcut.ShortcutKey);
30
34
  }
31
35
  availableKeys.sort();
@@ -42,18 +46,6 @@ export const ShortcutWizard = (props) => {
42
46
  props.onFinishWizard(shortcut);
43
47
  };
44
48
  return (React.createElement(OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: shortcut, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
45
- {
46
- title: 'Target',
47
- isValid: isScopeValid,
48
- details: 'Specify where Shortcut should be applied',
49
- renderSummary: () => renderScopeSummary(shortcut.Scope, {
50
- scopeWholeRow: 'Shortcut is triggered for all numeric cells',
51
- scopeColumns: 'Shortcut is triggered for cells in selected columns',
52
- scopeDataTypes: 'Shortcut is triggered for all numeric cells',
53
- }),
54
- render: () => (React.createElement(Box, { className: "twa:p-2" },
55
- React.createElement(ShortcutScopeWizardSection, { onChange: setShortcut }))),
56
- },
57
49
  {
58
50
  title: 'Settings',
59
51
  isValid: isSettingsValid,
@@ -69,6 +61,18 @@ export const ShortcutWizard = (props) => {
69
61
  render: () => (React.createElement(Box, { className: "twa:p-2" },
70
62
  React.createElement(ShortcutSettingsWizard, { availableKeys: props.availableKeys ?? availableKeys, onChange: setShortcut }))),
71
63
  },
64
+ {
65
+ title: 'Target',
66
+ isValid: isScopeValid,
67
+ details: 'Specify where Shortcut should be applied',
68
+ renderSummary: () => renderScopeSummary(shortcut.Scope, {
69
+ scopeWholeRow: 'Shortcut is triggered for all numeric cells',
70
+ scopeColumns: 'Shortcut is triggered for cells in selected columns',
71
+ scopeDataTypes: 'Shortcut is triggered for all numeric cells',
72
+ }),
73
+ render: () => (React.createElement(Box, { className: "twa:p-2" },
74
+ React.createElement(ShortcutScopeWizardSection, { onChange: setShortcut }))),
75
+ },
72
76
  {
73
77
  details: 'Select Shortcut Tags',
74
78
  title: 'Tags',
@@ -13,6 +13,7 @@ import { connect } from 'react-redux';
13
13
  import { Select } from '../../components/Select';
14
14
  import { Flex } from '../../components/Flex';
15
15
  class SmartEditViewPanelComponent extends React.Component {
16
+ cleanupEvent;
16
17
  constructor(props) {
17
18
  super(props);
18
19
  this.state = {
@@ -6,7 +6,7 @@ export const handleExportState = (type, name, state, api) => {
6
6
  Helper.copyToClipboard(stringifiedState);
7
7
  break;
8
8
  case 'Console':
9
- api.consoleLog('Adaptable State: ', state);
9
+ api.consoleLog('Adaptable state:', state);
10
10
  break;
11
11
  case 'JSON':
12
12
  const jsonFileName = name + '.json';
@@ -15,7 +15,7 @@ export const renderStyledColumnColumnSummary = (data) => {
15
15
  };
16
16
  export const isValidStyledColumnColumn = (data) => {
17
17
  if (!data.ColumnId) {
18
- return 'You have to select a Column for Styled Column';
18
+ return 'Please select a column for the Styled Column.';
19
19
  }
20
20
  return true;
21
21
  };
@@ -11,22 +11,6 @@ import { Icon } from '../../components/icons';
11
11
  import { ThemeSelector } from './ThemeSelector';
12
12
  import { Box } from '../../components/Flex';
13
13
  class ThemePopupComponent extends React.Component {
14
- constructor() {
15
- super(...arguments);
16
- this.handleCreateNewTheme = (variant) => {
17
- let nthItem = this.props.UserThemes.length + 1;
18
- let name = 'Custom-Theme-' + nthItem;
19
- // make sure it is unique
20
- while (this.props.UserThemes.some((theme) => theme.Name === name)) {
21
- nthItem++;
22
- name = 'Custom-Theme-' + nthItem;
23
- }
24
- const newTheme = ObjectFactory.CreateEmptyTheme(name);
25
- newTheme.Variant = variant;
26
- this.props.api.themeApi.addUserTheme(newTheme);
27
- this.props.api.themeApi.loadTheme(newTheme.Name);
28
- };
29
- }
30
14
  render() {
31
15
  const isCustomTheme = this.props.api.themeApi
32
16
  .getUserThemes()
@@ -59,6 +43,19 @@ class ThemePopupComponent extends React.Component {
59
43
  onChangeTheme(value) {
60
44
  this.props.SelectTheme(value);
61
45
  }
46
+ handleCreateNewTheme = (variant) => {
47
+ let nthItem = this.props.UserThemes.length + 1;
48
+ let name = 'Custom-Theme-' + nthItem;
49
+ // make sure it is unique
50
+ while (this.props.UserThemes.some((theme) => theme.Name === name)) {
51
+ nthItem++;
52
+ name = 'Custom-Theme-' + nthItem;
53
+ }
54
+ const newTheme = ObjectFactory.CreateEmptyTheme(name);
55
+ newTheme.Variant = variant;
56
+ this.props.api.themeApi.addUserTheme(newTheme);
57
+ this.props.api.themeApi.loadTheme(newTheme.Name);
58
+ };
62
59
  }
63
60
  function mapStateToProps(state, ownProps) {
64
61
  return {
@@ -6,6 +6,7 @@ import { Schedule, Weekday } from '../AdaptableState/Common/Schedule';
6
6
  import { AdaptableColumnDataType, AdaptableSystemIconName, AdaptableOptions } from '../types';
7
7
  import { AdaptableAlert } from '../AdaptableState/Common/AdaptableAlert';
8
8
  import { AdaptableMessageType } from '../AdaptableState/Common/AdaptableMessageType';
9
+ import type { ContainerContext } from '../AdaptableOptions/ContainerOptions';
9
10
  export declare const BLACK: string;
10
11
  export declare const WHITE: string;
11
12
  export declare const LIGHT_GRAY: string;
@@ -31,13 +32,14 @@ export declare function getDefaultColors(): string[];
31
32
  export declare function getEmptyConfigState(): EditableConfigEntityState;
32
33
  export declare function getDescriptionForDataType(dataType: AdaptableColumnDataType): "text" | "number" | "date";
33
34
  export declare function getPlaceholderForDataType(dataType: AdaptableColumnDataType): "Enter Value" | "Enter Number" | "Enter Date";
34
- export declare function getModalContainer(adaptableOptions: AdaptableOptions, document: Document): HTMLElement;
35
+ export declare function getModalContainer(adaptableOptions: AdaptableOptions, document: Document, context?: ContainerContext): HTMLElement;
35
36
  export declare function IsEmptyStyle(style: AdaptableStyle): boolean;
36
37
  export declare function IsNotEmptyStyle(style: AdaptableStyle): boolean;
37
38
  export declare function getMessageTypeByStatusColour(statusColour: StatusColour): AdaptableMessageType;
38
39
  export declare function getButtonToneByMessageType(messageType: AdaptableMessageType): 'success' | 'error' | 'neutral' | 'none' | 'warning' | 'info' | 'accent';
39
40
  export declare function getGlyphByMessageType(messageType: AdaptableMessageType): AdaptableSystemIconName;
40
41
  export declare function getColorByMessageType(messageType: AdaptableMessageType): string;
42
+ export declare function getCSSColorByMessageType(messageType: AdaptableMessageType): string;
41
43
  export declare function getStyleForStatusColour(statusColour: StatusColour): CSSProperties;
42
44
  export declare function getStyleForMessageType(messageType: AdaptableMessageType): CSSProperties;
43
45
  export declare function getGlyphForStatusColour(statusColour: StatusColour): string;
@@ -75,6 +77,7 @@ export declare const UIHelper: {
75
77
  getGlyphForMessageType: typeof getGlyphForMessageType;
76
78
  getStyleForMessageType: typeof getStyleForMessageType;
77
79
  getMessageTypeFromAdaptableAlerts: typeof getMessageTypeFromAdaptableAlerts;
80
+ getCSSColorByMessageType: typeof getCSSColorByMessageType;
78
81
  getButtonColourForAdaptableAlerts: typeof getButtonColourForAdaptableAlerts;
79
82
  getButtonTextColourForArrayandMessageType: typeof getButtonTextColourForArrayandMessageType;
80
83
  getButtonTextColourForMessageType: typeof getButtonTextColourForMessageType;
@@ -2,6 +2,7 @@ import { WizardStatus, } from './Components/SharedProps/EditableConfigEntityStat
2
2
  import { FontWeight, FontStyle, StatusColour } from '../AdaptableState/Common/Enums';
3
3
  import { StringExtensions } from '../Utilities/Extensions/StringExtensions';
4
4
  import ArrayExtensions from '../Utilities/Extensions/ArrayExtensions';
5
+ import { resolveContainerElement } from '../Utilities/resolveContainerElement';
5
6
  export const BLACK = 'Black';
6
7
  export const WHITE = 'White';
7
8
  export const LIGHT_GRAY = 'LightGray';
@@ -120,19 +121,12 @@ export function getPlaceholderForDataType(dataType) {
120
121
  return 'Enter Date';
121
122
  }
122
123
  }
123
- export function getModalContainer(adaptableOptions, document) {
124
- let modalContainer;
125
- if (adaptableOptions.containerOptions.modalContainer) {
126
- // this has been set, so we use the property
127
- modalContainer =
128
- typeof adaptableOptions.containerOptions.modalContainer === 'string'
129
- ? document.getElementById(adaptableOptions.containerOptions.modalContainer)
130
- : adaptableOptions.containerOptions.modalContainer;
131
- if (modalContainer) {
132
- const modalContainerClassName = ' modal-container';
133
- if (!modalContainer.className.includes(modalContainerClassName)) {
134
- modalContainer.className += modalContainerClassName;
135
- }
124
+ export function getModalContainer(adaptableOptions, document, context) {
125
+ let modalContainer = resolveContainerElement(adaptableOptions.containerOptions.modalContainer, context, document);
126
+ if (modalContainer) {
127
+ const modalContainerClassName = ' modal-container';
128
+ if (!modalContainer.className.includes(modalContainerClassName)) {
129
+ modalContainer.className += modalContainerClassName;
136
130
  }
137
131
  }
138
132
  if (!modalContainer) {
@@ -202,6 +196,20 @@ export function getColorByMessageType(messageType) {
202
196
  return 'var(--ab-color-info)';
203
197
  }
204
198
  }
199
+ export function getCSSColorByMessageType(messageType) {
200
+ switch (messageType) {
201
+ case 'Error':
202
+ return 'error';
203
+ case 'Warning':
204
+ return 'warn';
205
+ case 'Success':
206
+ return 'success';
207
+ case 'Info':
208
+ return 'info';
209
+ default:
210
+ return '';
211
+ }
212
+ }
205
213
  export function getStyleForStatusColour(statusColour) {
206
214
  let result;
207
215
  switch (statusColour) {
@@ -409,7 +417,7 @@ export function getAdaptableToolPanelWidth() {
409
417
  return getNumericCSSVariableValue(getCSSVariableValue('--ab-cmp-toolpanel__width'), 200);
410
418
  }
411
419
  export function getSimpleButtonPaddingWidth() {
412
- return getNumericCSSVariableValue(getCSSVariableValue('--ab-space-1'), 4);
420
+ return getNumericCSSVariableValue(getCSSVariableValue('--ab-base-space'), 4);
413
421
  }
414
422
  export function getCSSVariableValue(cssVariable) {
415
423
  if (!isBrowserDocumentAvailable()) {
@@ -449,6 +457,7 @@ export const UIHelper = {
449
457
  getGlyphForMessageType,
450
458
  getStyleForMessageType,
451
459
  getMessageTypeFromAdaptableAlerts,
460
+ getCSSColorByMessageType,
452
461
  getButtonColourForAdaptableAlerts,
453
462
  getButtonTextColourForArrayandMessageType,
454
463
  getButtonTextColourForMessageType,
@@ -5,6 +5,7 @@ import { AdaptableAgGrid } from './AdaptableAgGrid';
5
5
  import { getDefaultAdaptableOptions } from '../AdaptableOptions/DefaultAdaptableOptions';
6
6
  import { renderReactRoot as defaultRenderReactRoot } from '../renderReactRoot';
7
7
  import AdaptableWizardView from '../View/AdaptableWizardView';
8
+ import { resolveContainerElement } from '../Utilities/resolveContainerElement';
8
9
  export class Adaptable {
9
10
  /**
10
11
  * Initializer for Adaptable
@@ -21,6 +22,10 @@ export class Adaptable {
21
22
  }
22
23
  }
23
24
  export class AdaptableNoCodeWizard {
25
+ init;
26
+ adaptableOptions;
27
+ extraOptions;
28
+ agGridModules;
24
29
  /**
25
30
  * @param adaptableOptions
26
31
  */
@@ -35,19 +40,18 @@ export class AdaptableNoCodeWizard {
35
40
  this.render();
36
41
  }
37
42
  render(container) {
38
- let id = getDefaultAdaptableOptions().containerOptions.adaptableContainer || 'adaptable';
39
43
  if (!container) {
40
- let containerOptionsContainer = this.adaptableOptions.containerOptions?.adaptableContainer;
41
- if (containerOptionsContainer) {
42
- if (typeof containerOptionsContainer === 'string') {
43
- id = containerOptionsContainer ?? id;
44
- }
45
- else {
46
- container = containerOptionsContainer;
47
- }
48
- }
44
+ const initContext = {
45
+ adaptableId: this.adaptableOptions?.adaptableId ?? '',
46
+ adaptableStateKey: this.adaptableOptions?.adaptableStateKey ?? '',
47
+ adaptableContext: this.adaptableOptions?.adaptableContext,
48
+ };
49
+ container = resolveContainerElement(this.adaptableOptions.containerOptions?.adaptableContainer, initContext);
50
+ }
51
+ if (!container) {
52
+ const defaultId = getDefaultAdaptableOptions().containerOptions.adaptableContainer || 'adaptable';
53
+ container = document.getElementById(defaultId);
49
54
  }
50
- container = container || document.getElementById(id);
51
55
  if (!container) {
52
56
  throw new Error('Cannot find container in which to render Adaptable No Code Wizard');
53
57
  }
@@ -1,5 +1,5 @@
1
1
  import { AdaptableOptions } from '../AdaptableOptions/AdaptableOptions';
2
- import { ChartRef, Column, GridApi, GridOptions, IRowNode, Module, RowModelType } from 'ag-grid-enterprise';
2
+ import { ChartRef, Column, GridApi, GridOptions, IRowNode, Module, RowModelType, StatusPanelDef } from 'ag-grid-enterprise';
3
3
  import { AdaptableLogger } from './AdaptableLogger';
4
4
  import { AdaptableApi, DestroyConfig } from '../Api/AdaptableApi';
5
5
  import { AdaptableVariant, IAdaptable, NormalizeAdaptableStateOptions } from '../AdaptableInterfaces/IAdaptable';
@@ -20,7 +20,7 @@ import { Fdc3Service } from '../Utilities/Services/Fdc3Service';
20
20
  import { AnnotationsService } from '../Utilities/Services/AnnotationsService';
21
21
  import { IModuleCollection } from '../Strategy/Interface/IModule';
22
22
  import { AgGridMenuAdapter } from './AgGridMenuAdapter';
23
- import { AdaptableColumn, AdaptableTheme, ChartDefinition, ColumnSort, DataUpdateConfig, GridCell, InFilterValueResult, Layout, SelectedCellInfo, SelectedRowInfo } from '../types';
23
+ import { AdaptableColumn, AdaptableTheme, ChartDefinition, ColumnSort, DataRowConfig, DataUpdateConfig, GridCell, InFilterValueResult, Layout, SelectedCellInfo, SelectedRowInfo } from '../types';
24
24
  import { RenderReactRootFn } from '../renderReactRoot';
25
25
  import { AgGridOptionsService } from './AgGridOptionsService';
26
26
  import { AgGridColumnAdapter } from './AgGridColumnAdapter';
@@ -119,6 +119,8 @@ export declare class AdaptableAgGrid implements IAdaptable {
119
119
  * Temporary, these are MIGRATION technical debts, and should be removed as soon as possible
120
120
  */
121
121
  private adaptableStatusPanelKeys;
122
+ private adaptableStatusPanelDefs;
123
+ hasAdaptableStatusBar: boolean;
122
124
  _PRIVATE_adaptableJSXElement: React.JSX.Element;
123
125
  private _prevLayout;
124
126
  private __prevLayoutForRefresh;
@@ -163,6 +165,11 @@ export declare class AdaptableAgGrid implements IAdaptable {
163
165
  private refreshInitialSortIfNeeded;
164
166
  showQuickFilter(): void;
165
167
  hideQuickFilter(): void;
168
+ showAdaptableToolPanel(): void;
169
+ hideAdaptableToolPanel(): void;
170
+ private buildAdaptableToolPanelDef;
171
+ showAdaptableStatusBar(): void;
172
+ hideAdaptableStatusBar(): void;
166
173
  private normalizeAdaptableOptions;
167
174
  private setInitialGridOptions;
168
175
  /**
@@ -170,6 +177,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
170
177
  */
171
178
  private initializeAgGrid;
172
179
  useRowNodeLookUp(): boolean;
180
+ private buildInitContainerContext;
173
181
  getAgGridContainerElement(): HTMLElement | null;
174
182
  getAdaptableContainerElement(): HTMLElement;
175
183
  refreshSelectedCellsState(): SelectedCellInfo | undefined;
@@ -257,6 +265,11 @@ export declare class AdaptableAgGrid implements IAdaptable {
257
265
  added: IRowNode[];
258
266
  updated: IRowNode[];
259
267
  }>;
268
+ manageGridRows(dataRowConfig: DataRowConfig, dataUpdateConfig?: DataUpdateConfig): Promise<{
269
+ addedRows: IRowNode[];
270
+ updatedRows: IRowNode[];
271
+ removedRows: IRowNode[];
272
+ }>;
260
273
  deleteRows(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): Promise<IRowNode[]>;
261
274
  getRowNodeForPrimaryKey(primaryKeyValue: any): any;
262
275
  hideColumn(columnId: string): void;
@@ -283,7 +296,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
283
296
  getGridCellsForColumn(columnId: string, onlyVisibleRows?: boolean): GridCell[] | undefined;
284
297
  getRowNodesForPrimaryKeys(primaryKeyValues: any[]): any[];
285
298
  getRowNodeByIndex(index: number): IRowNode;
286
- getAgGridStatusPanels(): import("ag-grid-enterprise").StatusPanelDef[];
299
+ getAgGridStatusPanels(): StatusPanelDef[];
287
300
  setDataValue(value: any, column: AdaptableColumn, primaryKeyValue: any, rowNode?: IRowNode): void;
288
301
  forAllRowNodesDo(func: (rowNode: IRowNode, rowIndex: number) => void, config?: {
289
302
  includeGroupRows?: boolean;