@adaptabletools/adaptable-cjs 18.0.0-canary.2 → 18.0.0-canary.21

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 (369) hide show
  1. package/agGrid.d.ts +4 -21
  2. package/agGrid.js +5 -21
  3. package/base.css +22 -8
  4. package/base.css.map +1 -1
  5. package/index.css +101 -75
  6. package/index.css.map +1 -1
  7. package/package.json +4 -5
  8. package/src/AdaptableInterfaces/IAdaptable.d.ts +59 -108
  9. package/src/AdaptableOptions/AdaptableOptions.d.ts +7 -7
  10. package/src/AdaptableOptions/ColumnFilterOptions.d.ts +11 -4
  11. package/src/AdaptableOptions/ColumnOptions.d.ts +9 -4
  12. package/src/AdaptableOptions/CommentOptions.d.ts +33 -0
  13. package/src/AdaptableOptions/GroupingOptions.d.ts +0 -7
  14. package/src/AdaptableOptions/MenuOptions.d.ts +6 -54
  15. package/src/AdaptableOptions/MenuOptions.js +72 -75
  16. package/src/AdaptableOptions/{NotesOptions.d.ts → NoteOptions.d.ts} +7 -4
  17. package/src/AdaptableOptions/StateOptions.d.ts +6 -0
  18. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +17 -0
  19. package/src/Api/AdaptableApi.d.ts +9 -4
  20. package/src/Api/BulkUpdateApi.d.ts +0 -5
  21. package/src/Api/ColumnApi.d.ts +4 -0
  22. package/src/Api/CommentApi.d.ts +13 -14
  23. package/src/Api/ConfigApi.d.ts +4 -5
  24. package/src/Api/EventApi.d.ts +7 -9
  25. package/src/Api/Events/AdaptableReady.d.ts +3 -3
  26. package/src/Api/Events/CommentChanged.d.ts +11 -0
  27. package/src/Api/Events/GridDataChanged.d.ts +4 -4
  28. package/src/Api/GridApi.d.ts +23 -13
  29. package/src/Api/Implementation/ActionColumnApiImpl.d.ts +2 -0
  30. package/src/Api/Implementation/ActionColumnApiImpl.js +30 -0
  31. package/src/Api/Implementation/AdaptableApiImpl.d.ts +3 -2
  32. package/src/Api/Implementation/AdaptableApiImpl.js +5 -2
  33. package/src/Api/Implementation/ApiBase.d.ts +5 -3
  34. package/src/Api/Implementation/ApiBase.js +8 -2
  35. package/src/Api/Implementation/BulkUpdateApiImpl.d.ts +0 -1
  36. package/src/Api/Implementation/BulkUpdateApiImpl.js +0 -4
  37. package/src/Api/Implementation/CellSummaryApiImpl.d.ts +0 -5
  38. package/src/Api/Implementation/CellSummaryApiImpl.js +2 -23
  39. package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -0
  40. package/src/Api/Implementation/ColumnApiImpl.js +10 -0
  41. package/src/Api/Implementation/CommentsApiImpl.d.ts +5 -2
  42. package/src/Api/Implementation/CommentsApiImpl.js +7 -1
  43. package/src/Api/Implementation/ConfigApiImpl.d.ts +2 -2
  44. package/src/Api/Implementation/ConfigApiImpl.js +24 -13
  45. package/src/Api/Implementation/GridApiImpl.d.ts +6 -3
  46. package/src/Api/Implementation/GridApiImpl.js +51 -14
  47. package/src/Api/Implementation/LayoutApiImpl.d.ts +3 -0
  48. package/src/Api/Implementation/LayoutApiImpl.js +18 -0
  49. package/src/Api/Implementation/NoteApiImpl.d.ts +18 -0
  50. package/src/Api/Implementation/NoteApiImpl.js +45 -0
  51. package/src/Api/Implementation/OptionsApiImpl.d.ts +4 -4
  52. package/src/Api/Implementation/OptionsApiImpl.js +4 -4
  53. package/src/Api/Implementation/ScopeApiImpl.d.ts +2 -0
  54. package/src/Api/Implementation/ScopeApiImpl.js +20 -7
  55. package/src/Api/Implementation/StatusBarApiImpl.d.ts +0 -1
  56. package/src/Api/Implementation/StatusBarApiImpl.js +0 -3
  57. package/src/Api/Implementation/ToolPanelApiImpl.js +6 -6
  58. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +0 -3
  59. package/src/Api/Implementation/UserInterfaceApiImpl.js +0 -8
  60. package/src/Api/Internal/ActionRowInternalApi.d.ts +6 -1
  61. package/src/Api/Internal/ActionRowInternalApi.js +119 -1
  62. package/src/Api/Internal/AdaptableInternalApi.d.ts +6 -7
  63. package/src/Api/Internal/AdaptableInternalApi.js +21 -19
  64. package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +2 -0
  65. package/src/Api/Internal/CalculatedColumnInternalApi.js +72 -0
  66. package/src/Api/Internal/ColumnFilterInternalApi.d.ts +2 -0
  67. package/src/Api/Internal/ColumnFilterInternalApi.js +23 -1
  68. package/src/Api/Internal/ColumnInternalApi.d.ts +4 -1
  69. package/src/Api/Internal/ColumnInternalApi.js +12 -0
  70. package/src/Api/Internal/CommentsInternalApi.d.ts +4 -0
  71. package/src/Api/Internal/CommentsInternalApi.js +18 -0
  72. package/src/Api/Internal/CustomSortInternalApi.d.ts +3 -2
  73. package/src/Api/Internal/CustomSortInternalApi.js +32 -1
  74. package/src/Api/Internal/DataSetInternalApi.js +1 -1
  75. package/src/Api/Internal/ExportInternalApi.d.ts +2 -1
  76. package/src/Api/Internal/ExportInternalApi.js +4 -1
  77. package/src/Api/Internal/Fdc3InternalApi.js +2 -2
  78. package/src/Api/Internal/FormatColumnInternalApi.js +3 -2
  79. package/src/Api/Internal/FreeTextColumnInternalApi.d.ts +2 -0
  80. package/src/Api/Internal/FreeTextColumnInternalApi.js +61 -0
  81. package/src/Api/Internal/GridFilterInternalApi.d.ts +5 -0
  82. package/src/Api/Internal/GridFilterInternalApi.js +7 -1
  83. package/src/Api/Internal/GridInternalApi.d.ts +23 -3
  84. package/src/Api/Internal/GridInternalApi.js +141 -7
  85. package/src/Api/Internal/LayoutInternalApi.d.ts +1 -0
  86. package/src/Api/Internal/LayoutInternalApi.js +16 -0
  87. package/src/Api/Internal/NoteInternalApi.d.ts +4 -0
  88. package/src/Api/Internal/NoteInternalApi.js +18 -0
  89. package/src/Api/Internal/TeamSharingInternalApi.js +1 -1
  90. package/src/Api/InteropioPluginApi.d.ts +2 -2
  91. package/src/Api/LayoutApi.d.ts +15 -0
  92. package/src/Api/NoteApi.d.ts +48 -0
  93. package/src/Api/OptionsApi.d.ts +8 -8
  94. package/src/Api/ScopeApi.d.ts +10 -0
  95. package/src/Api/UserInterfaceApi.d.ts +0 -11
  96. package/src/EnvVars.d.ts +3 -0
  97. package/src/EnvVars.js +8 -0
  98. package/src/PredefinedConfig/AdaptableState.d.ts +2 -2
  99. package/src/PredefinedConfig/CommentState.d.ts +27 -23
  100. package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +4 -0
  101. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  102. package/src/PredefinedConfig/Common/AdaptableScope.d.ts +4 -1
  103. package/src/PredefinedConfig/Common/AggregationColumns.d.ts +1 -0
  104. package/src/PredefinedConfig/Common/AggregationColumns.js +5 -1
  105. package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +4 -0
  106. package/src/PredefinedConfig/Common/Enums.d.ts +2 -1
  107. package/src/PredefinedConfig/Common/Enums.js +1 -0
  108. package/src/PredefinedConfig/Common/Menu.d.ts +15 -1
  109. package/src/PredefinedConfig/Common/Menu.js +98 -0
  110. package/src/PredefinedConfig/Common/RowSummary.d.ts +21 -0
  111. package/src/PredefinedConfig/Common/RowSummary.js +20 -0
  112. package/src/PredefinedConfig/Common/TransposeConfig.d.ts +30 -0
  113. package/src/PredefinedConfig/Common/Types.d.ts +4 -4
  114. package/src/PredefinedConfig/Common/Types.js +4 -1
  115. package/src/PredefinedConfig/LayoutState.d.ts +5 -0
  116. package/src/PredefinedConfig/{NotesState.d.ts → NoteState.d.ts} +12 -22
  117. package/src/PredefinedConfig/PredefinedConfig.d.ts +3 -3
  118. package/src/PredefinedConfig/Selection/GridCell.d.ts +13 -0
  119. package/src/PredefinedConfig/SystemState.d.ts +9 -3
  120. package/src/Redux/ActionsReducers/LayoutRedux.d.ts +9 -0
  121. package/src/Redux/ActionsReducers/LayoutRedux.js +34 -11
  122. package/src/Redux/ActionsReducers/NoteRedux.d.ts +38 -0
  123. package/src/Redux/ActionsReducers/NoteRedux.js +89 -0
  124. package/src/Redux/ActionsReducers/SystemRedux.d.ts +6 -1
  125. package/src/Redux/ActionsReducers/SystemRedux.js +19 -6
  126. package/src/Redux/Store/AdaptableStore.d.ts +4 -6
  127. package/src/Redux/Store/AdaptableStore.js +66 -76
  128. package/src/Redux/Store/Interface/IAdaptableStore.d.ts +8 -2
  129. package/src/Strategy/AdaptableModuleBase.d.ts +8 -8
  130. package/src/Strategy/AdaptableModuleBase.js +13 -15
  131. package/src/Strategy/AlertModule.d.ts +1 -2
  132. package/src/Strategy/AlertModule.js +3 -56
  133. package/src/Strategy/BulkUpdateModule.js +1 -1
  134. package/src/Strategy/CalculatedColumnModule.d.ts +2 -3
  135. package/src/Strategy/CalculatedColumnModule.js +6 -26
  136. package/src/Strategy/CellSummaryModule.d.ts +8 -6
  137. package/src/Strategy/CellSummaryModule.js +78 -23
  138. package/src/Strategy/ChartingModule.d.ts +0 -1
  139. package/src/Strategy/ChartingModule.js +2 -22
  140. package/src/Strategy/ColumnFilterModule.d.ts +2 -3
  141. package/src/Strategy/ColumnFilterModule.js +44 -103
  142. package/src/Strategy/ColumnInfoModule.js +2 -0
  143. package/src/Strategy/{CommentsModule.d.ts → CommentModule.d.ts} +2 -5
  144. package/src/Strategy/{CommentsModule.js → CommentModule.js} +19 -25
  145. package/src/Strategy/CustomSortModule.js +3 -2
  146. package/src/Strategy/DashboardModule.d.ts +1 -2
  147. package/src/Strategy/DashboardModule.js +9 -15
  148. package/src/Strategy/DataChangeHistoryModule.d.ts +1 -0
  149. package/src/Strategy/DataChangeHistoryModule.js +3 -1
  150. package/src/Strategy/DataImportModule.d.ts +1 -1
  151. package/src/Strategy/DataImportModule.js +5 -5
  152. package/src/Strategy/DataSetModule.d.ts +1 -1
  153. package/src/Strategy/DataSetModule.js +1 -1
  154. package/src/Strategy/ExportModule.d.ts +1 -0
  155. package/src/Strategy/ExportModule.js +17 -2
  156. package/src/Strategy/Fdc3Module.js +3 -0
  157. package/src/Strategy/FlashingCellModule.d.ts +1 -2
  158. package/src/Strategy/FlashingCellModule.js +6 -19
  159. package/src/Strategy/FormatColumnModule.d.ts +0 -2
  160. package/src/Strategy/FormatColumnModule.js +6 -51
  161. package/src/Strategy/FreeTextColumnModule.d.ts +0 -1
  162. package/src/Strategy/FreeTextColumnModule.js +1 -31
  163. package/src/Strategy/GridFilterModule.d.ts +0 -1
  164. package/src/Strategy/GridFilterModule.js +0 -37
  165. package/src/Strategy/GridInfoModule.js +2 -0
  166. package/src/Strategy/Interface/IModule.d.ts +0 -1
  167. package/src/Strategy/LayoutModule.d.ts +9 -3
  168. package/src/Strategy/LayoutModule.js +148 -62
  169. package/src/Strategy/NamedQueryModule.d.ts +0 -1
  170. package/src/Strategy/NamedQueryModule.js +0 -19
  171. package/src/Strategy/{NotesModule.d.ts → NoteModule.d.ts} +2 -1
  172. package/src/Strategy/NoteModule.js +62 -0
  173. package/src/Strategy/PlusMinusModule.d.ts +1 -1
  174. package/src/Strategy/PlusMinusModule.js +2 -2
  175. package/src/Strategy/ScheduleModule.d.ts +1 -1
  176. package/src/Strategy/ScheduleModule.js +1 -1
  177. package/src/Strategy/SettingsPanelModule.js +3 -3
  178. package/src/Strategy/ShortcutModule.d.ts +1 -1
  179. package/src/Strategy/ShortcutModule.js +1 -1
  180. package/src/Strategy/SmartEditModule.js +1 -1
  181. package/src/Strategy/StyledColumnModule.d.ts +1 -1
  182. package/src/Strategy/StyledColumnModule.js +26 -26
  183. package/src/Strategy/SystemStatusModule.js +2 -2
  184. package/src/Strategy/TeamSharingModule.d.ts +1 -0
  185. package/src/Strategy/TeamSharingModule.js +5 -5
  186. package/src/Strategy/ToolPanelModule.d.ts +0 -1
  187. package/src/Strategy/ToolPanelModule.js +0 -23
  188. package/src/Strategy/Utilities/getScopeViewItems.js +3 -0
  189. package/src/Utilities/Constants/DocumentationLinkConstants.js +1 -1
  190. package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
  191. package/src/Utilities/Constants/GeneralConstants.js +3 -2
  192. package/src/Utilities/Constants/ModuleConstants.d.ts +6 -6
  193. package/src/Utilities/Constants/ModuleConstants.js +7 -7
  194. package/src/Utilities/Defaults/DefaultSettingsPanel.js +7 -6
  195. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +3 -2
  196. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +430 -1
  197. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -3
  198. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +1 -1
  199. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -1
  200. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +15 -0
  201. package/src/Utilities/Extensions/ArrayExtensions.d.ts +2 -0
  202. package/src/Utilities/Extensions/ArrayExtensions.js +6 -1
  203. package/src/Utilities/Helpers/AdaptableHelper.d.ts +3 -4
  204. package/src/Utilities/Helpers/AdaptableHelper.js +20 -60
  205. package/src/Utilities/Helpers/Helper.d.ts +2 -0
  206. package/src/Utilities/Helpers/Helper.js +6 -1
  207. package/src/Utilities/MenuItem.d.ts +7 -4
  208. package/src/Utilities/MenuItem.js +6 -3
  209. package/src/Utilities/ObjectFactory.d.ts +3 -3
  210. package/src/Utilities/ObjectFactory.js +4 -24
  211. package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +4 -2
  212. package/src/Utilities/Services/AggregatedScalarLiveValue.js +26 -19
  213. package/src/Utilities/Services/CellPopupService.js +2 -3
  214. package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +1 -1
  215. package/src/Utilities/Services/Interface/IReportService.d.ts +1 -4
  216. package/src/Utilities/Services/LicenseService/index.d.ts +3 -0
  217. package/src/Utilities/Services/LicenseService/index.js +1 -186
  218. package/src/Utilities/Services/MetamodelService.d.ts +1 -1
  219. package/src/Utilities/Services/MetamodelService.js +6 -3
  220. package/src/Utilities/Services/ModuleService.js +4 -0
  221. package/src/Utilities/Services/QueryLanguageService.d.ts +1 -1
  222. package/src/Utilities/Services/QueryLanguageService.js +4 -3
  223. package/src/Utilities/Services/ReportService.d.ts +7 -5
  224. package/src/Utilities/Services/ReportService.js +238 -22
  225. package/src/Utilities/Services/RowEditService.d.ts +3 -2
  226. package/src/Utilities/Services/RowEditService.js +3 -1
  227. package/src/Utilities/adaptableQlUtils.d.ts +2 -0
  228. package/src/Utilities/adaptableQlUtils.js +18 -0
  229. package/src/Utilities/license/decode.js +1 -70
  230. package/src/Utilities/license/hashing.js +1 -47
  231. package/src/View/AdaptableView.js +1 -3
  232. package/src/View/AdaptableViewFactory.js +2 -2
  233. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +2 -2
  234. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +1 -1
  235. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  236. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +3 -3
  237. package/src/View/CalculatedColumn/utils.d.ts +1 -1
  238. package/src/View/CellSummary/CellSummaryPopup.js +1 -1
  239. package/src/View/Comments/CommentsEditor.js +24 -11
  240. package/src/View/Comments/CommentsPopup.js +20 -11
  241. package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
  242. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.d.ts +5 -0
  243. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.js +46 -0
  244. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +5 -2
  245. package/src/View/Components/CellPopup/index.d.ts +1 -0
  246. package/src/View/Components/CellPopup/index.js +5 -2
  247. package/src/View/Components/FilterForm/FilterForm.js +20 -12
  248. package/src/View/Components/FilterForm/QuickFilterForm.js +15 -8
  249. package/src/View/Components/FilterForm/QuickFilterValues.js +39 -23
  250. package/src/View/Components/NewScopeComponent.js +34 -1
  251. package/src/View/Components/Popups/AdaptableLoadingScreen.d.ts +6 -5
  252. package/src/View/Components/Popups/AdaptableLoadingScreen.js +19 -9
  253. package/src/View/Components/Popups/AdaptableToaster.js +1 -1
  254. package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +7 -7
  255. package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +1 -0
  256. package/src/View/Components/Popups/WindowPopups/windowFactory.js +4 -1
  257. package/src/View/Components/Selectors/PermittedValuesSelector.js +2 -2
  258. package/src/View/Components/ValueSelector/index.d.ts +1 -0
  259. package/src/View/Components/ValueSelector/index.js +2 -2
  260. package/src/View/CustomSort/CustomSortSummary.js +1 -1
  261. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +8 -9
  262. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +1 -1
  263. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +3 -1
  264. package/src/View/GridFilter/GridFilterViewPanel.js +9 -5
  265. package/src/View/GridFilter/useGridFilterExpressionEditor.js +1 -1
  266. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -3
  267. package/src/View/Layout/LayoutViewPanel.js +2 -1
  268. package/src/View/Layout/TransposedPopup.d.ts +3 -0
  269. package/src/View/Layout/TransposedPopup.js +200 -0
  270. package/src/View/Layout/Wizard/LayoutWizard.js +36 -3
  271. package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
  272. package/src/View/Layout/Wizard/sections/RowSummarySection.d.ts +9 -0
  273. package/src/View/Layout/Wizard/sections/RowSummarySection.js +181 -0
  274. package/src/View/License/LicenseWatermark.js +1 -66
  275. package/src/View/Note/NotePopup.d.ts +2 -0
  276. package/src/View/{Notes/NotesPopup.js → Note/NotePopup.js} +19 -19
  277. package/src/View/SpecialColumnSettingsWizardStep.js +4 -4
  278. package/src/View/Theme/ThemeSelector.js +2 -2
  279. package/src/agGrid/ActionColumnRenderer.js +7 -6
  280. package/src/agGrid/Adaptable.d.ts +3 -455
  281. package/src/agGrid/Adaptable.js +7 -5291
  282. package/src/agGrid/AdaptableAgGrid.d.ts +354 -0
  283. package/src/agGrid/AdaptableAgGrid.js +3972 -0
  284. package/src/agGrid/AdaptableLogger.js +78 -13
  285. package/src/agGrid/AgGridAdapter.d.ts +64 -0
  286. package/src/agGrid/AgGridAdapter.js +590 -0
  287. package/src/agGrid/AgGridColumnAdapter.d.ts +56 -0
  288. package/src/agGrid/AgGridColumnAdapter.js +836 -0
  289. package/src/agGrid/AgGridMenuAdapter.d.ts +28 -0
  290. package/src/agGrid/AgGridMenuAdapter.js +282 -0
  291. package/src/agGrid/AgGridOptionsService.d.ts +15 -0
  292. package/src/agGrid/AgGridOptionsService.js +80 -0
  293. package/src/agGrid/BadgeRenderer.js +1 -1
  294. package/src/agGrid/CheckboxRenderer.js +1 -1
  295. package/src/agGrid/FilterWrapper.d.ts +2 -2
  296. package/src/agGrid/FilterWrapper.js +1 -1
  297. package/src/agGrid/attachAddaptableColumnTypes.d.ts +12 -12
  298. package/src/agGrid/defaultAdaptableOptions.d.ts +3 -0
  299. package/src/{Utilities/Defaults/DefaultAdaptableOptions.js → agGrid/defaultAdaptableOptions.js} +74 -18
  300. package/src/agGrid/editors/AdaptableDateEditor/index.d.ts +1 -1
  301. package/src/agGrid/editors/AdaptableDateEditor/index.js +3 -3
  302. package/src/agGrid/editors/AdaptableNumberEditor/index.d.ts +2 -2
  303. package/src/agGrid/editors/AdaptableNumberEditor/index.js +2 -2
  304. package/src/agGrid/weightedAverage.d.ts +0 -2
  305. package/src/agGrid/weightedAverage.js +1 -56
  306. package/src/components/ColorPicker/ColorPicker.d.ts +1 -1
  307. package/src/components/Datepicker/index.d.ts +1 -1
  308. package/src/components/Datepicker/index.js +10 -2
  309. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +2 -1
  310. package/src/components/ExpressionEditor/QueryBuilder/utils.d.ts +0 -1
  311. package/src/components/ExpressionEditor/QueryBuilder/utils.js +3 -17
  312. package/src/components/InfiniteTable/index.js +2 -2
  313. package/src/components/Input/index.d.ts +1 -2
  314. package/src/components/List/ListGroupItem/index.d.ts +1 -1
  315. package/src/components/Modal/index.d.ts +1 -0
  316. package/src/components/Modal/index.js +6 -4
  317. package/src/components/Select/Select.d.ts +3 -1
  318. package/src/components/Select/Select.js +4 -2
  319. package/src/components/Textarea/index.d.ts +2 -2
  320. package/src/components/icons/index.js +2 -0
  321. package/src/components/icons/note.js +2 -2
  322. package/src/components/icons/rows.d.ts +3 -0
  323. package/src/components/icons/rows.js +7 -0
  324. package/src/env.js +2 -2
  325. package/src/metamodel/adaptable.metamodel.d.ts +179 -25
  326. package/src/metamodel/adaptable.metamodel.js +1 -9316
  327. package/src/migration/AdaptableUpgradeHelper.d.ts +38 -0
  328. package/src/migration/AdaptableUpgradeHelper.js +52 -0
  329. package/src/migration/VersionUpgrade.d.ts +8 -0
  330. package/src/migration/VersionUpgrade.js +15 -0
  331. package/src/migration/VersionUpgrade17.d.ts +18 -0
  332. package/src/migration/VersionUpgrade17.js +347 -0
  333. package/src/migration/VersionUpgrade18.d.ts +5 -0
  334. package/src/migration/VersionUpgrade18.js +10 -0
  335. package/src/parser/src/parser.js +117 -1257
  336. package/src/parser/src/predicate/mapExpressionToQlPredicate.js +1 -1
  337. package/src/parser/src/predicate/mapQlPredicateToExpression.js +2 -1
  338. package/src/parser/src/types.d.ts +7 -2
  339. package/src/types.d.ts +26 -19
  340. package/tsconfig.cjs.tsbuildinfo +1 -1
  341. package/src/AdaptableOptions/CommentsOptions.d.ts +0 -28
  342. package/src/Api/Events/CommentsChangedInfo.d.ts +0 -5
  343. package/src/Api/Implementation/NotesApiImpl.d.ts +0 -16
  344. package/src/Api/Implementation/NotesApiImpl.js +0 -44
  345. package/src/Api/NotesApi.d.ts +0 -48
  346. package/src/PredefinedConfig/CellAddress.d.ts +0 -13
  347. package/src/PredefinedConfig/CellAddress.js +0 -5
  348. package/src/Redux/ActionsReducers/NotesRedux.d.ts +0 -39
  349. package/src/Redux/ActionsReducers/NotesRedux.js +0 -87
  350. package/src/Strategy/NotesModule.js +0 -62
  351. package/src/Utilities/Defaults/DefaultAdaptableOptions.d.ts +0 -2
  352. package/src/Utilities/Services/Interface/IRowEditService.d.ts +0 -3
  353. package/src/View/Components/ScopeComponent.d.ts +0 -24
  354. package/src/View/Components/ScopeComponent.js +0 -138
  355. package/src/View/Export/Wizard/ReportScopeWizard.d.ts +0 -17
  356. package/src/View/Export/Wizard/ReportScopeWizard.js +0 -52
  357. package/src/View/Notes/NotesPopup.d.ts +0 -2
  358. package/src/agGrid/agGridHelper.d.ts +0 -57
  359. package/src/agGrid/agGridHelper.js +0 -691
  360. package/src/agGrid/agGridMenuHelper.d.ts +0 -46
  361. package/src/agGrid/agGridMenuHelper.js +0 -673
  362. /package/src/AdaptableOptions/{CommentsOptions.js → CommentOptions.js} +0 -0
  363. /package/src/AdaptableOptions/{NotesOptions.js → NoteOptions.js} +0 -0
  364. /package/src/Api/Events/{CommentsChangedInfo.js → CommentChanged.js} +0 -0
  365. /package/src/Api/{NotesApi.js → NoteApi.js} +0 -0
  366. /package/src/PredefinedConfig/{NotesState.js → Common/TransposeConfig.js} +0 -0
  367. /package/src/{Utilities/Services/Interface/IRowEditService.js → PredefinedConfig/NoteState.js} +0 -0
  368. /package/src/View/{Notes → Note}/NoteEditor.d.ts +0 -0
  369. /package/src/View/{Notes → Note}/NoteEditor.js +0 -0
@@ -33,7 +33,7 @@ const FreeTextColumnRedux = tslib_1.__importStar(require("../ActionsReducers/Fre
33
33
  const GridRedux = tslib_1.__importStar(require("../ActionsReducers/GridRedux"));
34
34
  const LayoutRedux = tslib_1.__importStar(require("../ActionsReducers/LayoutRedux"));
35
35
  const NamedQueryRedux = tslib_1.__importStar(require("../ActionsReducers/NamedQueryRedux"));
36
- const NotesRedux = tslib_1.__importStar(require("../ActionsReducers/NotesRedux"));
36
+ const NoteRedux = tslib_1.__importStar(require("../ActionsReducers/NoteRedux"));
37
37
  const PlusMinusRedux = tslib_1.__importStar(require("../ActionsReducers/PlusMinusRedux"));
38
38
  const QueryRedux = tslib_1.__importStar(require("../ActionsReducers/QueryRedux"));
39
39
  const QuickSearchRedux = tslib_1.__importStar(require("../ActionsReducers/QuickSearchRedux"));
@@ -51,9 +51,9 @@ const TeamSharingState_1 = require("../../PredefinedConfig/TeamSharingState");
51
51
  exports.INIT_STATE = 'INIT_STATE';
52
52
  exports.LOAD_STATE = 'LOAD_STATE';
53
53
  const NON_PERSIST_ACTIONS = {
54
- [exports.LOAD_STATE]: true,
55
54
  '@@INIT': true,
56
55
  '@@redux/init': true,
56
+ [exports.LOAD_STATE]: true,
57
57
  [exports.INIT_STATE]: true,
58
58
  // progress indicators should NOT interfere with state management as it may lead to race conditions due to load/persist state being async
59
59
  [SystemRedux_1.SYSTEM_PROGRESS_INDICATOR_SHOW]: true,
@@ -72,13 +72,12 @@ class AdaptableStore {
72
72
  /**
73
73
  *
74
74
  * @param adaptable The Adaptable instance
75
- * @param isAgGridReady A promise which is resolved when AG Grid is ready for binding
75
+ * @param postLoadHook A function that hydrates the state after it has been loaded from storage
76
76
  */
77
- constructor(adaptable, isAgGridReady) {
77
+ constructor(adaptable) {
78
78
  /*
79
79
  This is the main store for Adaptable State
80
80
  */
81
- this.isAgGridReady = isAgGridReady;
82
81
  this.loadStorageInProgress = false;
83
82
  this.loadStateOnStartup = true; // set to false if you want no state
84
83
  this.on = (eventName, callback) => {
@@ -90,7 +89,9 @@ class AdaptableStore {
90
89
  this.emit = (eventName, data) => {
91
90
  return this.emitter.emit(eventName, data);
92
91
  };
93
- this.loadStore = (adaptable, adaptableStateKey, predefinedConfig) => {
92
+ this.loadStore = (config) => {
93
+ const { adaptable, adaptableStateKey, predefinedConfig, postLoadHook } = config;
94
+ const postProcessState = postLoadHook !== null && postLoadHook !== void 0 ? postLoadHook : ((state) => state);
94
95
  this.storageEngine.setStateKey(adaptableStateKey);
95
96
  // START STATE LOAD
96
97
  this.loadStorageInProgress = true;
@@ -98,17 +99,15 @@ class AdaptableStore {
98
99
  .load(predefinedConfig)
99
100
  .then((storedState) => {
100
101
  if (storedState && this.loadStateOnStartup) {
101
- this.TheStore.dispatch((0, exports.LoadState)(adaptable.adaptableOptions.stateOptions.applyState(storedState)));
102
+ this.TheStore.dispatch((0, exports.LoadState)(postProcessState(adaptable.adaptableOptions.stateOptions.applyState(storedState))));
102
103
  }
103
104
  })
104
- // we need AG Grid to be ready because several states(ex. Layout) depend on its API
105
- .then(() => this.isAgGridReady)
106
105
  .then(() => {
107
106
  this.TheStore.dispatch((0, exports.InitState)());
108
107
  // END STATE LOAD
109
108
  this.loadStorageInProgress = false;
110
109
  }, (e) => {
111
- adaptable.logger.error('Failed to load previous Adaptable State : ', e);
110
+ adaptable.logger.consoleError('Failed to load previous Adaptable State : ', e);
112
111
  //for now i'm still initializing Adaptable even if loading state has failed....
113
112
  //we may revisit that later
114
113
  this.TheStore.dispatch((0, exports.InitState)());
@@ -128,6 +127,7 @@ class AdaptableStore {
128
127
  Popup: PopupRedux.PopupReducer,
129
128
  System: SystemRedux.SystemReducer,
130
129
  Plugins: PluginsRedux.PluginsReducer,
130
+ Comment: CommentsRedux.CommentsReducer,
131
131
  // Reducers for Persisted State
132
132
  Alert: AlertRedux.AlertReducer,
133
133
  FlashingCell: FlashingCellRedux.FlashingCellReducer,
@@ -149,8 +149,7 @@ class AdaptableStore {
149
149
  ToolPanel: ToolPanelRedux.ToolPanelReducer,
150
150
  Charting: ChartingRedux.ChartingReducer,
151
151
  StyledColumn: StyledColumnRedux.StyledColumnReducer,
152
- Notes: NotesRedux.NotesReducer,
153
- Comment: CommentsRedux.CommentsReducer,
152
+ Note: NoteRedux.NoteReducer,
154
153
  Query: QueryRedux.QueryReducer,
155
154
  NamedQuery: NamedQueryRedux.NamedQueryReducer,
156
155
  };
@@ -166,17 +165,6 @@ class AdaptableStore {
166
165
  case exports.LOAD_STATE:
167
166
  const { State } = action;
168
167
  Object.keys(State).forEach((key) => {
169
- // this check should be removed in version 12 !!!
170
- if (key === 'Chart') {
171
- adaptable.logger.consoleWarn(`DEPRECATED: AdapTable Charts Plugin is deprecated! AG Grid built-in charts are fully supported & integrated in AdapTable.
172
-
173
- Please contact 'support@adaptabletools.com' if you require any charting features that are not currently available.`);
174
- }
175
- if (key === 'SparklineColumn') {
176
- adaptable.logger.consoleWarn(`DEPRECATED: AdapTable SparklineColumn is deprecated! AG Grid built-in Sparklines are fully supported & integrated in AdapTable.
177
-
178
- Please contact 'support@adaptabletools.com' if you require any sparklines features that are not currently available.`);
179
- }
180
168
  state[key] = State[key];
181
169
  });
182
170
  break;
@@ -257,7 +245,6 @@ class AdaptableStore {
257
245
  ...pluginsMiddleware // the plugins middleware
258
246
  )));
259
247
  this.storageEngine = storageEngine;
260
- this.loadStore(adaptable, adaptable.adaptableOptions.adaptableStateKey);
261
248
  }
262
249
  destroy() {
263
250
  var _a;
@@ -282,7 +269,7 @@ exports.AdaptableStore = AdaptableStore;
282
269
  const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
283
270
  return function (next) {
284
271
  return function (action) {
285
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
272
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
286
273
  switch (action.type) {
287
274
  /*******************
288
275
  * NAMED QUERY ACTIONS
@@ -330,6 +317,14 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
330
317
  const ret = next(action);
331
318
  return ret;
332
319
  }
320
+ /*******************
321
+ * System Row Summary ACTIONS
322
+ *******************/
323
+ case SystemRedux.SYSTEM_SUMMARY_ROW_SET: {
324
+ let nextAction = next(action);
325
+ adaptable.api.layoutApi.internalApi.setupRowSummaries();
326
+ return nextAction;
327
+ }
333
328
  /*******************
334
329
  * FLASHING CELL ACTIONS
335
330
  *******************/
@@ -345,7 +340,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
345
340
  }
346
341
  case SystemRedux.SYSTEM_FLASHING_CELL_DELETE_ALL: {
347
342
  let ret = next(action);
348
- adaptable.redrawRenderedRows();
343
+ adaptable.redrawBody();
349
344
  return ret;
350
345
  }
351
346
  /*******************
@@ -401,7 +396,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
401
396
  });
402
397
  }
403
398
  // called also for rendered column actions, see RENDERED COLUMN ACTIONS block
404
- adaptable.setupColumns();
399
+ adaptable.updateColumnModelAndRefreshGrid();
405
400
  return returnAction;
406
401
  }
407
402
  /*******************
@@ -416,7 +411,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
416
411
  case FlashingCellRedux.FLASHING_CELL_DEFINITION_SUSPEND_ALL: {
417
412
  const returnAction = next(action);
418
413
  // called also for rendered column actions, see RENDERED COLUMN ACTIONS block
419
- adaptable.setupColumns();
414
+ adaptable.updateColumnModelAndRefreshGrid();
420
415
  return returnAction;
421
416
  }
422
417
  /**
@@ -581,11 +576,6 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
581
576
  /*******************
582
577
  * SPECIAL COLUMN ACTIONS
583
578
  *******************/
584
- case CalculatedColumnRedux.CALCULATED_COLUMN_READY: {
585
- // create aggregated scalar columns at grid startup
586
- adaptable.api.calculatedColumnApi.refreshAggregatedCalculatedColumns();
587
- return;
588
- }
589
579
  /**
590
580
  * Use Case: We have added / edited / deleted a Special Column (i.e. one not in initial ColumnDefs)
591
581
  * Action: We update the Special ColumnDefs
@@ -603,7 +593,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
603
593
  .createAggregatedScalarLiveValue(returnAction.calculatedColumn);
604
594
  adaptable.api.calculatedColumnApi.internalApi.fireCalculatedColumnChangedEvent(action.type, actionTyped.calculatedColumn);
605
595
  }
606
- adaptable.updateColDefsForSpecialColumns();
596
+ adaptable.updateColumnModelAndRefreshGrid();
607
597
  return returnAction;
608
598
  }
609
599
  /**
@@ -628,7 +618,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
628
618
  .getCalculatedColumnExpressionService()
629
619
  .destroyAggregatedScalarLiveValue(returnAction.calculatedColumn);
630
620
  adaptable.api.calculatedColumnApi.internalApi.fireCalculatedColumnChangedEvent(action.type, actionTyped.calculatedColumn);
631
- adaptable.updateColDefsForSpecialColumns();
621
+ adaptable.updateColumnModelAndRefreshGrid();
632
622
  return returnAction;
633
623
  }
634
624
  /**
@@ -649,7 +639,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
649
639
  return;
650
640
  }
651
641
  const returnAction = next(action);
652
- adaptable.updateColDefsForSpecialColumns();
642
+ adaptable.updateColumnModelAndRefreshGrid();
653
643
  return returnAction;
654
644
  }
655
645
  /*******************
@@ -686,7 +676,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
686
676
  case CustomSortRedux.CUSTOM_SORT_UNSUSPEND_ALL: {
687
677
  const returnAction = next(action);
688
678
  // called also for alert actions, see ALERT ACTIONS block
689
- adaptable.setupColumns();
679
+ adaptable.updateColumnModelAndRefreshGrid();
690
680
  return returnAction;
691
681
  }
692
682
  /*******************
@@ -785,7 +775,6 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
785
775
  draftLayoutAction = GridRedux.LayoutDraftColumnFilterUnsuspendAll();
786
776
  break;
787
777
  }
788
- // GRID FILTER
789
778
  returnAction = next(draftLayoutAction);
790
779
  }
791
780
  setTimeout(() => {
@@ -805,17 +794,27 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
805
794
  case LayoutRedux.LAYOUT_GRID_FILTER_CLEAR:
806
795
  case LayoutRedux.LAYOUT_GRID_FILTER_SUSPEND:
807
796
  case LayoutRedux.LAYOUT_GRID_FILTER_UNSUSPEND: {
808
- setTimeout(() => adaptable.applyGridFiltering(), 5);
809
- adaptable.api.gridFilterApi.internalApi.fireGridFilterAppliedEvent();
810
- adaptable.api.layoutApi.internalApi.fireLayoutChangedEvent(action.type, null, middlewareAPI.getState().Layout);
811
797
  const currentLayout = adaptable.api.layoutApi.getCurrentLayout();
812
798
  let returnAction;
799
+ // - calls GridFilterApplied - examples
800
+ adaptable.api.gridFilterApi.internalApi.fireGridFilterAppliedEvent();
801
+ // - layout change event, row summary is triggered
802
+ adaptable.api.layoutApi.internalApi.fireLayoutChangedEvent(action.type, null, middlewareAPI.getState().Layout);
803
+ setTimeout(() => {
804
+ // - agGridApi.onFilterChanged
805
+ // - internal 'AdapTableFiltersApplied' event - evaluates row summary
806
+ // - refresh selected cells and rows
807
+ adaptable.applyGridFiltering();
808
+ }, 5);
813
809
  if (((_h = adaptable.adaptableOptions.layoutOptions) === null || _h === void 0 ? void 0 : _h.autoSaveLayouts) &&
814
810
  !currentLayout.IsReadOnly) {
815
- returnAction = action;
811
+ return next(action);
816
812
  }
817
813
  else {
818
- // save in draft
814
+ if (!middlewareAPI.getState().Grid.CurrentLayout) {
815
+ const currentLayout = adaptable.api.layoutApi.getCurrentLayout();
816
+ middlewareAPI.dispatch(GridRedux.LayoutUpdateCurrentDraft(currentLayout));
817
+ }
819
818
  switch (action.type) {
820
819
  case LayoutRedux.LAYOUT_GRID_FILTER_SET:
821
820
  returnAction = GridRedux.LayoutDraftGridFilterSet(Object.assign(Object.assign({}, currentLayout.GridFilter), { Expression: action.gridFilter }));
@@ -876,12 +875,12 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
876
875
  * Note ACTIONS
877
876
  *******************/
878
877
  /**
879
- * Use Case: Notes has been edited/deleted/added
878
+ * Use Case: Note has been edited/deleted/added
880
879
  * Action: Triangle can be removed/added
881
880
  */
882
- case NotesRedux.NOTES_ADD:
883
- case NotesRedux.NOTES_EDIT:
884
- case NotesRedux.NOTES_DELETE: {
881
+ case NoteRedux.NOTE_ADD:
882
+ case NoteRedux.NOTE_EDIT:
883
+ case NoteRedux.NOTE_DELETE: {
885
884
  let returnAction = next(action);
886
885
  const node = adaptable.api.gridApi.getRowNodeForPrimaryKey(returnAction.adaptableNote.PrimaryKeyValue);
887
886
  adaptable.refreshCells([node], [returnAction.adaptableNote.ColumnId], true);
@@ -915,9 +914,9 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
915
914
  requestAnimationFrame(() => {
916
915
  var _a, _b;
917
916
  const commentThreads = adaptable.api.commentApi.getCommentThreads();
918
- adaptable.api.eventApi.emit('CommentsChanged', adaptable.api.commentApi.getCommentThreads());
917
+ adaptable.api.eventApi.emit('CommentChanged', adaptable.api.commentApi.getCommentThreads());
919
918
  (_b = (_a = adaptable.api.optionsApi
920
- .getCommentsOptions()) === null || _a === void 0 ? void 0 : _a.persistCommentThreads) === null || _b === void 0 ? void 0 : _b.call(_a, commentThreads);
919
+ .getCommentOptions()) === null || _a === void 0 ? void 0 : _a.persistCommentThreads) === null || _b === void 0 ? void 0 : _b.call(_a, commentThreads);
921
920
  });
922
921
  }
923
922
  return returnAction;
@@ -942,7 +941,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
942
941
  }
943
942
  }
944
943
  // This cannot be called because it would trigger an infinite loop
945
- // adaptable.api.eventApi.emit('CommentsChanged', commentThreads);
944
+ // adaptable.api.eventApi.emit('CommentChanged', commentThreads);
946
945
  // refresh all comments cells to show or hide the triangle
947
946
  [...addedCommentThreads, ...deletedCommentThreads].forEach((commentThread) => {
948
947
  const node = adaptable.api.gridApi.getRowNodeForPrimaryKey(commentThread.PrimaryKeyValue);
@@ -1026,12 +1025,18 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1026
1025
  let returnAction = next(action);
1027
1026
  const newLayoutState = middlewareAPI.getState().Layout;
1028
1027
  adaptable.api.layoutApi.internalApi.fireLayoutChangedEvent(action.type, oldLayoutState, newLayoutState);
1028
+ // Tell Grid to apply column filtering if filters have been changed in a loaded Layout
1029
1029
  const oldFilters = (_k = oldLayoutState.Layouts.find((l) => l.Name == oldLayoutState.CurrentLayout)) === null || _k === void 0 ? void 0 : _k.ColumnFilters;
1030
1030
  const newFilters = (_l = newLayoutState.Layouts.find((l) => l.Name == newLayoutState.CurrentLayout)) === null || _l === void 0 ? void 0 : _l.ColumnFilters;
1031
- // Tell Grid to apply filtering if filters have been changed in a loaded Layout
1032
1031
  if (adaptable.api.columnFilterApi.internalApi.areColumnFiltersDifferent(oldFilters, newFilters)) {
1033
1032
  adaptable.applyColumnFiltering();
1034
1033
  }
1034
+ // Tell Grid to apply filtering if filters have been changed in a loaded Layout
1035
+ const oldGridFilter = (_m = oldLayoutState.Layouts.find((l) => l.Name == oldLayoutState.CurrentLayout)) === null || _m === void 0 ? void 0 : _m.GridFilter;
1036
+ const newGridFilter = (_o = newLayoutState.Layouts.find((l) => l.Name == newLayoutState.CurrentLayout)) === null || _o === void 0 ? void 0 : _o.GridFilter;
1037
+ if (adaptable.api.gridFilterApi.internalApi.isGridFilterDifferent(oldGridFilter, newGridFilter)) {
1038
+ adaptable.applyGridFiltering();
1039
+ }
1035
1040
  if (returnAction.type == LayoutRedux.LAYOUT_SELECT ||
1036
1041
  returnAction.type == LayoutRedux.LAYOUT_DELETE ||
1037
1042
  returnAction.type == LayoutRedux.LAYOUT_SET_COLUMN_CAPTION) {
@@ -1044,7 +1049,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1044
1049
  // tell grid the layout has been selected
1045
1050
  adaptable.setLayout(currentLayout);
1046
1051
  }
1047
- if (!((_m = adaptable.adaptableOptions.layoutOptions) === null || _m === void 0 ? void 0 : _m.autoSaveLayouts)) {
1052
+ if (!((_p = adaptable.adaptableOptions.layoutOptions) === null || _p === void 0 ? void 0 : _p.autoSaveLayouts)) {
1048
1053
  middlewareAPI.dispatch(GridRedux.LayoutUpdateCurrentDraft(currentLayout));
1049
1054
  }
1050
1055
  }
@@ -1052,7 +1057,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1052
1057
  returnAction.type == LayoutRedux.LAYOUT_SAVE) {
1053
1058
  const actionTyped = action;
1054
1059
  // if autosave is false
1055
- if (!((_o = adaptable.adaptableOptions.layoutOptions) === null || _o === void 0 ? void 0 : _o.autoSaveLayouts)) {
1060
+ if (!((_q = adaptable.adaptableOptions.layoutOptions) === null || _q === void 0 ? void 0 : _q.autoSaveLayouts)) {
1056
1061
  // and the current layout is saved, make sure we also update the draft
1057
1062
  if (actionTyped.layout.Name === newLayoutState.CurrentLayout) {
1058
1063
  middlewareAPI.dispatch(GridRedux.LayoutUpdateCurrentDraft(actionTyped.layout));
@@ -1070,6 +1075,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1070
1075
  adaptable.setLayout(savingLayout);
1071
1076
  }
1072
1077
  }
1078
+ adaptable.refreshQuickFilter();
1073
1079
  return returnAction;
1074
1080
  }
1075
1081
  /*******************
@@ -1280,12 +1286,6 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1280
1286
  }
1281
1287
  return next(action);
1282
1288
  }
1283
- case SystemRedux_1.SYSTEM_VISUAL_EXPORT_BEGIN:
1284
- case SystemRedux_1.SYSTEM_VISUAL_EXPORT_END: {
1285
- let returnAction = next(action);
1286
- adaptable.ReportService.resetExcelStyleMemoization();
1287
- return returnAction;
1288
- }
1289
1289
  /*******************
1290
1290
  * CHARTING ACTIONS
1291
1291
  *******************/
@@ -1663,24 +1663,14 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1663
1663
  *******************/
1664
1664
  case exports.INIT_STATE: {
1665
1665
  let returnAction = next(action);
1666
- if (adaptable.isDestroyed) {
1667
- return returnAction;
1668
- }
1669
- // make sure we have the grid columns in state, before we do any layout work
1670
- adaptable.updateColumnsIntoStore();
1671
- const layoutState = middlewareAPI.getState().Layout;
1672
- const defaultLayout = adaptable.api.layoutApi.internalApi.createDefaultLayoutIfNeeded();
1673
- let currentLayout = (layoutState === null || layoutState === void 0 ? void 0 : layoutState.CurrentLayout) || (defaultLayout === null || defaultLayout === void 0 ? void 0 : defaultLayout.Name);
1674
- if (!adaptable.api.layoutApi.getLayoutByName(currentLayout)) {
1675
- currentLayout = defaultLayout ? defaultLayout.Name : layoutState.Layouts[0].Name;
1666
+ if (adaptable.isReady) {
1667
+ // TODO see #create-create-module-menu
1668
+ // create the module menu (for use in the dashboard and the toolpanel)
1669
+ // we need this here for when the state key is changed
1670
+ // since we need the transient state to be restored in the same
1671
+ // way as when Adaptable is initialised.
1672
+ adaptable.ModuleService.createModuleMenus();
1676
1673
  }
1677
- middlewareAPI.dispatch(LayoutRedux.LayoutSelect(currentLayout));
1678
- // do this now so it sets module entitlements
1679
- adaptable.EntitlementService.setModulesEntitlements();
1680
- // create the module menu (for use in the dashboard and the toolpanel)
1681
- adaptable.ModuleService.createModuleMenus();
1682
- // update initial mode of DataChangeHistory
1683
- adaptable.api.internalApi.initializeDataChangeHistory();
1684
1674
  return returnAction;
1685
1675
  }
1686
1676
  default: {
@@ -2,10 +2,16 @@ import * as Redux from 'redux';
2
2
  import { AdaptableState } from '../../../PredefinedConfig/AdaptableState';
3
3
  import { PredefinedConfig } from '../../../types';
4
4
  import { IAdaptable } from '../../../AdaptableInterfaces/IAdaptable';
5
+ export interface LoadStoreConfig {
6
+ adaptable: IAdaptable;
7
+ adaptableStateKey: string;
8
+ predefinedConfig?: PredefinedConfig;
9
+ postLoadHook?: (state: AdaptableState) => AdaptableState;
10
+ }
5
11
  export interface IAdaptableStore {
6
12
  TheStore: Redux.Store<AdaptableState>;
7
- Load: PromiseLike<any>;
8
- loadStore: (adaptable: IAdaptable, adaptableStateKey: string, predefinedConfig?: PredefinedConfig) => PromiseLike<any>;
13
+ Load: Promise<any>;
14
+ loadStore: (config: LoadStoreConfig) => Promise<any>;
9
15
  getCurrentStorageState: () => AdaptableState | void;
10
16
  saveStateNow: (adaptable: IAdaptable) => Promise<any>;
11
17
  on: (eventName: string, callback: (data?: any) => any) => () => void;
@@ -3,7 +3,7 @@ import { Action } from 'redux';
3
3
  import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
4
4
  import { ModuleParams } from '../View/Components/SharedProps/ModuleViewPopupProps';
5
5
  import { MenuItemShowPopup, MenuItemDoReduxAction, MenuItemDoClickFunction } from '../Utilities/MenuItem';
6
- import { AdaptableMenuItem, ContextMenuContext } from '../PredefinedConfig/Common/Menu';
6
+ import { AdaptableMenuItem, AdaptableContextMenuItemName, ContextMenuContext, AdaptableColumnMenuItemName } from '../PredefinedConfig/Common/Menu';
7
7
  import { AdaptableModule } from '../PredefinedConfig/Common/Types';
8
8
  import { TeamSharingImportInfo } from '../PredefinedConfig/TeamSharingState';
9
9
  import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
@@ -29,27 +29,27 @@ export declare abstract class AdaptableModuleBase implements IModule {
29
29
  */
30
30
  isModuleObjectsShareable(): boolean;
31
31
  isModuleEditable(): boolean;
32
- updateOldConfig(): void;
33
32
  getModuleAdaptableObjects(): AdaptableObject[];
34
33
  getExplicitlyReferencedColumnIds(adaptableObject: AdaptableObject): string[];
35
34
  getReferencedNamedQueryNames(adaptableObject: AdaptableObject): string[];
36
35
  hasNamedQueryReferences(): boolean;
37
- handleAdaptableReady(): void;
38
- handleConfigReloaded(adaptableStateReloadedInfo: AdaptableStateReloadedInfo): void;
36
+ onAdaptableReady(): void;
37
+ onAdaptableStateReloaded(adaptableStateReloadedInfo: AdaptableStateReloadedInfo): void;
39
38
  setModuleEntitlement(): void;
40
39
  addModuleMenuItem(source: 'ModuleMenu' | 'ModuleButton'): AdaptableMenuItem | undefined;
41
40
  addModuleButtonMenuItem(): AdaptableMenuItem | undefined;
42
41
  addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
43
42
  addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
44
- createMainMenuItemShowPopup({ Label, ComponentName, Icon, PopupParams, }: {
43
+ createMainMenuItemShowPopup({ Name, Label, ComponentName, Icon, PopupParams, }: {
44
+ Name: AdaptableColumnMenuItemName | AdaptableContextMenuItemName;
45
45
  Label: string;
46
46
  ComponentName: string;
47
47
  Icon: AdaptableSystemIconName;
48
48
  PopupParams?: ModuleParams;
49
49
  }): MenuItemShowPopup;
50
- createColumnMenuItemClickFunction(Label: string, Icon: AdaptableSystemIconName, ClickFunction: () => void): MenuItemDoClickFunction;
51
- createColumnMenuItemReduxAction(Label: string, Icon: AdaptableSystemIconName, Action: Action): MenuItemDoReduxAction;
52
- createColumnMenuItemShowPopup(Label: string, ComponentName: string, Icon: AdaptableSystemIconName, PopupParams?: ModuleParams): MenuItemShowPopup;
50
+ createMenuItemClickFunction(Name: AdaptableColumnMenuItemName | AdaptableContextMenuItemName, Label: string, Icon: AdaptableSystemIconName, ClickFunction: () => void): MenuItemDoClickFunction;
51
+ createMenuItemReduxAction(Name: AdaptableColumnMenuItemName | AdaptableContextMenuItemName, Label: string, Icon: AdaptableSystemIconName, Action: Action): MenuItemDoReduxAction;
52
+ createMenuItemShowPopup(Name: AdaptableColumnMenuItemName | AdaptableContextMenuItemName, Label: string, ComponentName: string, Icon: AdaptableSystemIconName, PopupParams?: ModuleParams): MenuItemShowPopup;
53
53
  getTeamSharingAction(): TeamSharingImportInfo<AdaptableObject> | undefined;
54
54
  getModuleNamedQueryReferences(): string[];
55
55
  getModuleCalculatedColumnReferences(): CalculatedColumn[];
@@ -20,11 +20,11 @@ class AdaptableModuleBase {
20
20
  };
21
21
  this.api = api;
22
22
  this.api.eventApi.on('AdaptableReady', () => {
23
- this.handleAdaptableReady();
23
+ this.onAdaptableReady();
24
24
  this.api.configApi.dispatchStateReadyAction(this.moduleInfo.ModuleName);
25
25
  });
26
26
  this.api.eventApi.on('AdaptableStateReloaded', (adaptableStateReloadedInfo) => {
27
- this.handleConfigReloaded(adaptableStateReloadedInfo);
27
+ this.onAdaptableStateReloaded(adaptableStateReloadedInfo);
28
28
  });
29
29
  }
30
30
  getViewAccessLevel() {
@@ -47,9 +47,6 @@ class AdaptableModuleBase {
47
47
  isModuleEditable() {
48
48
  return this.hasRequiredAccessLevel(this.getEditAccessLevel());
49
49
  }
50
- updateOldConfig() {
51
- // override where deprecated configs have to be migrated
52
- }
53
50
  getModuleAdaptableObjects() {
54
51
  // override where necessary in base classes
55
52
  return [];
@@ -67,10 +64,10 @@ class AdaptableModuleBase {
67
64
  // this will skip the unnecessary evaluation of modules which do not have Named Query references
68
65
  return true;
69
66
  }
70
- handleAdaptableReady() {
67
+ onAdaptableReady() {
71
68
  // override where necessary in base classes
72
69
  }
73
- handleConfigReloaded(adaptableStateReloadedInfo) {
70
+ onAdaptableStateReloaded(adaptableStateReloadedInfo) {
74
71
  // override where necessary in base classes
75
72
  }
76
73
  setModuleEntitlement() {
@@ -85,6 +82,7 @@ class AdaptableModuleBase {
85
82
  maxWidth: this.getPopupMaxWidth(),
86
83
  };
87
84
  return this.createMainMenuItemShowPopup({
85
+ Name: 'internal',
88
86
  Label: this.moduleInfo.FriendlyName,
89
87
  ComponentName: this.moduleInfo.Popup,
90
88
  Icon: this.moduleInfo.Glyph,
@@ -105,20 +103,20 @@ class AdaptableModuleBase {
105
103
  return undefined;
106
104
  }
107
105
  // creates the menu items in the main dropdown
108
- createMainMenuItemShowPopup({ Label, ComponentName, Icon, PopupParams, }) {
109
- return new MenuItem_1.MenuItemShowPopup(Label, this.moduleInfo.ModuleName, ComponentName, Icon, true, PopupParams);
106
+ createMainMenuItemShowPopup({ Name, Label, ComponentName, Icon, PopupParams, }) {
107
+ return new MenuItem_1.MenuItemShowPopup(Name, Label, this.moduleInfo.ModuleName, ComponentName, Icon, true, PopupParams);
110
108
  }
111
109
  // creates a menu item for the column menu to perform a function
112
- createColumnMenuItemClickFunction(Label, Icon, ClickFunction) {
113
- return new MenuItem_1.MenuItemDoClickFunction(Label, this.moduleInfo.ModuleName, ClickFunction, Icon, true);
110
+ createMenuItemClickFunction(Name, Label, Icon, ClickFunction) {
111
+ return new MenuItem_1.MenuItemDoClickFunction(Name, Label, this.moduleInfo.ModuleName, ClickFunction, Icon, true);
114
112
  }
115
113
  // creates a menu item for the column menu to enact a Redux action
116
- createColumnMenuItemReduxAction(Label, Icon, Action) {
117
- return new MenuItem_1.MenuItemDoReduxAction(Label, this.moduleInfo.ModuleName, Action, Icon, true);
114
+ createMenuItemReduxAction(Name, Label, Icon, Action) {
115
+ return new MenuItem_1.MenuItemDoReduxAction(Name, Label, this.moduleInfo.ModuleName, Action, Icon, true);
118
116
  }
119
117
  // popups called by the column menu - invisible if module is hidden or readonly
120
- createColumnMenuItemShowPopup(Label, ComponentName, Icon, PopupParams) {
121
- return new MenuItem_1.MenuItemShowPopup(Label, this.moduleInfo.ModuleName, ComponentName, Icon, true, PopupParams);
118
+ createMenuItemShowPopup(Name, Label, ComponentName, Icon, PopupParams) {
119
+ return new MenuItem_1.MenuItemShowPopup(Name, Label, this.moduleInfo.ModuleName, ComponentName, Icon, true, PopupParams);
122
120
  }
123
121
  getTeamSharingAction() {
124
122
  return undefined;
@@ -8,13 +8,12 @@ import { AdaptableModuleView, AdaptableObjectCompactView, AdaptableObjectView, I
8
8
  import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
9
9
  export declare class AlertModule extends AdaptableModuleBase implements IModule {
10
10
  constructor(api: AdaptableApi);
11
+ onAdaptableReady(): void;
11
12
  getModuleAdaptableObjects(config?: {
12
13
  includeLayoutNotAssociatedObjects?: boolean;
13
14
  }): AdaptableObject[];
14
15
  getExplicitlyReferencedColumnIds(alertDefinition: AlertDefinition): string[];
15
16
  getReferencedNamedQueryNames(alertDefinition: AlertDefinition): string[];
16
- updateOldConfig(): void;
17
- private updateAlertSingleToMultiplePredicates;
18
17
  addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
19
18
  private handleCellDataChanged;
20
19
  private handleGridDataChanged;
@@ -17,12 +17,12 @@ const AlertEmptyView_1 = require("../View/Alert/AlertEmptyView");
17
17
  const AlertStatusSubPanel_1 = require("../View/Alert/AlertStatusSubPanel");
18
18
  const ActiveAlertsPanelItemLabel_1 = require("../View/Alert/ActiveAlertsPanelItemLabel");
19
19
  const getObjectTagsViewItems_1 = require("./Utilities/getObjectTagsViewItems");
20
- const updateSingleToMultiplePredicates_1 = require("./Utilities/updateSingleToMultiplePredicates");
21
- const Helper_1 = require("../Utilities/Helpers/Helper");
22
20
  const getAlertType_1 = require("../View/Alert/Utilities/getAlertType");
23
21
  class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
24
22
  constructor(api) {
25
23
  super(ModuleConstants.AlertModuleId, ModuleConstants.AlertModuleFriendlyName, 'alert', 'AlertPopup', 'Get notified when things happen in Adaptable that you need to know about', api);
24
+ }
25
+ onAdaptableReady() {
26
26
  this.api.internalApi
27
27
  .getDataService()
28
28
  .on('CellDataChanged', (cellDataChangedInfo) => {
@@ -75,59 +75,6 @@ class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
75
75
  }
76
76
  return this.api.namedQueryApi.internalApi.getReferencedNamedQueryNames(queryExpression);
77
77
  }
78
- updateOldConfig() {
79
- var _a;
80
- this.updateAlertSingleToMultiplePredicates();
81
- // 1. Make all (new) Flashing Cells have a Predicate if none exists
82
- const alertState = this.api.alertApi.getAlertState();
83
- const flashingAlertDefinitions = alertState.FlashingAlertDefinitions;
84
- const flashingCellDefinitions = this.api.flashingCellApi.getFlashingCellDefinitions();
85
- if (ArrayExtensions_1.ArrayExtensions.IsEmpty(flashingCellDefinitions) &&
86
- ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(flashingAlertDefinitions)) {
87
- this.api.flashingCellApi.setFlashingCellDefinitions(flashingAlertDefinitions);
88
- // TODO: state does not clear
89
- this.api.flashingCellApi.internalApi.clearFlashingCellState();
90
- }
91
- (_a = alertState.AlertDefinitions) === null || _a === void 0 ? void 0 : _a.forEach((alertDefinition) => {
92
- // if ShowPopup then change to DisplayNotificate
93
- if (alertDefinition.AlertProperties &&
94
- alertDefinition.AlertProperties.ShowPopup &&
95
- alertDefinition.AlertProperties.ShowPopup == true &&
96
- !alertDefinition.AlertProperties.DisplayNotification) {
97
- alertDefinition.AlertProperties.DisplayNotification = true;
98
- alertDefinition.AlertProperties.ShowPopup = undefined;
99
- }
100
- // if no rule but a predicate then use that
101
- if (!alertDefinition.Rule) {
102
- if (alertDefinition.Predicate && alertDefinition.Predicate != undefined) {
103
- const predicate = alertDefinition.Predicate;
104
- alertDefinition.Rule = {
105
- Predicate: predicate,
106
- };
107
- alertDefinition.Predicate = undefined;
108
- }
109
- }
110
- else {
111
- //migrate alert definitions with `AggregationExpression` (now `AggregatedBooleanExpression`)
112
- const obsoleteAggregationExpression = alertDefinition.Rule['AggregationExpression'];
113
- if (obsoleteAggregationExpression) {
114
- alertDefinition.Rule.AggregatedBooleanExpression = obsoleteAggregationExpression;
115
- }
116
- }
117
- });
118
- }
119
- updateAlertSingleToMultiplePredicates() {
120
- const alertDefinitions = this.api.alertApi.getAlertDefinitions({
121
- includeLayoutNotAssociatedObjects: true,
122
- });
123
- alertDefinitions.forEach((alertDefinition) => {
124
- if (alertDefinition.Rule && 'Predicate' in alertDefinition.Rule) {
125
- const preparedAlertDefinition = (0, Helper_1.cloneObject)(alertDefinition);
126
- (0, updateSingleToMultiplePredicates_1.updateSingleToMultiplePredicates)(preparedAlertDefinition.Rule);
127
- this.api.alertApi.editAlertDefinition(preparedAlertDefinition);
128
- }
129
- });
130
- }
131
78
  addContextMenuItems(menuContext) {
132
79
  const items = [];
133
80
  if (!menuContext.isRowGroupColumn && this.isModuleAvailable()) {
@@ -140,7 +87,7 @@ class AlertModule extends AdaptableModuleBase_1.AdaptableModuleBase {
140
87
  relevantAlert = this.api.alertApi.internalApi.getAdaptableAlertWithHighlightRow(menuContext.rowNode);
141
88
  }
142
89
  if (relevantAlert) {
143
- items.push(this.createColumnMenuItemReduxAction('Clear Alert', this.moduleInfo.Glyph, SystemRedux.SystemAlertDelete(relevantAlert)));
90
+ items.push(this.createMenuItemReduxAction('alert-clear', 'Clear Alert', this.moduleInfo.Glyph, SystemRedux.SystemAlertDelete(relevantAlert)));
144
91
  }
145
92
  }
146
93
  }
@@ -26,7 +26,7 @@ class BulkUpdateModule extends AdaptableModuleBase_1.AdaptableModuleBase {
26
26
  let popUpParams = {
27
27
  source: 'ContextMenu',
28
28
  };
29
- menuItemShowPopup = this.createMainMenuItemShowPopup({
29
+ menuItemShowPopup = this.createMainMenuItemShowPopup({ Name: 'bulk-update-apply',
30
30
  Label: 'Apply Bulk Update',
31
31
  ComponentName: this.moduleInfo.Popup,
32
32
  Icon: this.moduleInfo.Glyph,
@@ -8,12 +8,11 @@ import { CalculatedColumn } from '../PredefinedConfig/CalculatedColumnState';
8
8
  import { AdaptableObjectItemView, IModule } from './Interface/IModule';
9
9
  import { AdaptableApi } from '../Api/AdaptableApi';
10
10
  import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
11
- import { AdaptableStateReloadedInfo } from '../Api/Events/AdaptableStateReloaded';
12
11
  export declare class CalculatedColumnModule extends AdaptableModuleBase implements IModule {
13
12
  constructor(api: AdaptableApi);
14
- handleConfigReloaded(adaptableStateReloadedInfo: AdaptableStateReloadedInfo): void;
13
+ onAdaptableReady(): void;
14
+ onAdaptableStateReloaded(): void;
15
15
  getModuleAdaptableObjects(): AdaptableObject[];
16
- updateOldConfig(): void;
17
16
  getExplicitlyReferencedColumnIds(calculatedColumn: CalculatedColumn): string[];
18
17
  getReferencedNamedQueryNames(calculatedColumn: CalculatedColumn): string[];
19
18
  private isCalculatedColumn;