@adaptabletools/adaptable 18.0.0-canary.2 → 18.0.0-canary.20

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 (366) hide show
  1. package/agGrid.d.ts +4 -21
  2. package/agGrid.js +9 -26
  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 +58 -108
  9. package/src/AdaptableOptions/AdaptableOptions.d.ts +13 -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 +71 -74
  16. package/src/AdaptableOptions/{NotesOptions.d.ts → NoteOptions.d.ts} +7 -4
  17. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +17 -0
  18. package/src/Api/AdaptableApi.d.ts +9 -4
  19. package/src/Api/BulkUpdateApi.d.ts +0 -5
  20. package/src/Api/ColumnApi.d.ts +4 -0
  21. package/src/Api/CommentApi.d.ts +11 -12
  22. package/src/Api/ConfigApi.d.ts +4 -5
  23. package/src/Api/EventApi.d.ts +7 -9
  24. package/src/Api/Events/AdaptableReady.d.ts +3 -3
  25. package/src/Api/Events/CommentChanged.d.ts +11 -0
  26. package/src/Api/Events/GridDataChanged.d.ts +4 -4
  27. package/src/Api/GridApi.d.ts +23 -13
  28. package/src/Api/Implementation/ActionColumnApiImpl.d.ts +2 -0
  29. package/src/Api/Implementation/ActionColumnApiImpl.js +30 -0
  30. package/src/Api/Implementation/AdaptableApiImpl.d.ts +3 -2
  31. package/src/Api/Implementation/AdaptableApiImpl.js +5 -2
  32. package/src/Api/Implementation/ApiBase.d.ts +5 -3
  33. package/src/Api/Implementation/ApiBase.js +8 -2
  34. package/src/Api/Implementation/BulkUpdateApiImpl.d.ts +0 -1
  35. package/src/Api/Implementation/BulkUpdateApiImpl.js +0 -4
  36. package/src/Api/Implementation/CellSummaryApiImpl.d.ts +0 -5
  37. package/src/Api/Implementation/CellSummaryApiImpl.js +2 -23
  38. package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -0
  39. package/src/Api/Implementation/ColumnApiImpl.js +10 -0
  40. package/src/Api/Implementation/CommentsApiImpl.d.ts +5 -2
  41. package/src/Api/Implementation/CommentsApiImpl.js +7 -1
  42. package/src/Api/Implementation/ConfigApiImpl.d.ts +2 -2
  43. package/src/Api/Implementation/ConfigApiImpl.js +21 -13
  44. package/src/Api/Implementation/GridApiImpl.d.ts +6 -3
  45. package/src/Api/Implementation/GridApiImpl.js +49 -14
  46. package/src/Api/Implementation/LayoutApiImpl.d.ts +3 -0
  47. package/src/Api/Implementation/LayoutApiImpl.js +18 -0
  48. package/src/Api/Implementation/NoteApiImpl.d.ts +18 -0
  49. package/src/Api/Implementation/NoteApiImpl.js +40 -0
  50. package/src/Api/Implementation/OptionsApiImpl.d.ts +4 -4
  51. package/src/Api/Implementation/OptionsApiImpl.js +4 -4
  52. package/src/Api/Implementation/ScopeApiImpl.d.ts +2 -0
  53. package/src/Api/Implementation/ScopeApiImpl.js +20 -7
  54. package/src/Api/Implementation/StatusBarApiImpl.d.ts +0 -1
  55. package/src/Api/Implementation/StatusBarApiImpl.js +0 -3
  56. package/src/Api/Implementation/ToolPanelApiImpl.js +6 -6
  57. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +0 -3
  58. package/src/Api/Implementation/UserInterfaceApiImpl.js +0 -8
  59. package/src/Api/Internal/ActionRowInternalApi.d.ts +5 -1
  60. package/src/Api/Internal/ActionRowInternalApi.js +106 -0
  61. package/src/Api/Internal/AdaptableInternalApi.d.ts +6 -7
  62. package/src/Api/Internal/AdaptableInternalApi.js +21 -19
  63. package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +2 -0
  64. package/src/Api/Internal/CalculatedColumnInternalApi.js +71 -0
  65. package/src/Api/Internal/ColumnFilterInternalApi.d.ts +2 -0
  66. package/src/Api/Internal/ColumnFilterInternalApi.js +23 -1
  67. package/src/Api/Internal/ColumnInternalApi.d.ts +4 -1
  68. package/src/Api/Internal/ColumnInternalApi.js +12 -0
  69. package/src/Api/Internal/CommentsInternalApi.d.ts +4 -0
  70. package/src/Api/Internal/CommentsInternalApi.js +14 -0
  71. package/src/Api/Internal/CustomSortInternalApi.d.ts +3 -2
  72. package/src/Api/Internal/CustomSortInternalApi.js +32 -1
  73. package/src/Api/Internal/DataSetInternalApi.js +1 -1
  74. package/src/Api/Internal/ExportInternalApi.d.ts +2 -1
  75. package/src/Api/Internal/ExportInternalApi.js +4 -1
  76. package/src/Api/Internal/Fdc3InternalApi.js +2 -2
  77. package/src/Api/Internal/FormatColumnInternalApi.js +3 -2
  78. package/src/Api/Internal/FreeTextColumnInternalApi.d.ts +2 -0
  79. package/src/Api/Internal/FreeTextColumnInternalApi.js +60 -0
  80. package/src/Api/Internal/GridFilterInternalApi.d.ts +5 -0
  81. package/src/Api/Internal/GridFilterInternalApi.js +7 -1
  82. package/src/Api/Internal/GridInternalApi.d.ts +23 -3
  83. package/src/Api/Internal/GridInternalApi.js +141 -7
  84. package/src/Api/Internal/LayoutInternalApi.d.ts +1 -0
  85. package/src/Api/Internal/LayoutInternalApi.js +16 -0
  86. package/src/Api/Internal/NoteInternalApi.d.ts +4 -0
  87. package/src/Api/Internal/NoteInternalApi.js +14 -0
  88. package/src/Api/Internal/TeamSharingInternalApi.js +1 -1
  89. package/src/Api/InteropioPluginApi.d.ts +2 -2
  90. package/src/Api/LayoutApi.d.ts +15 -0
  91. package/src/Api/NoteApi.d.ts +48 -0
  92. package/src/Api/OptionsApi.d.ts +8 -8
  93. package/src/Api/ScopeApi.d.ts +10 -0
  94. package/src/Api/UserInterfaceApi.d.ts +0 -11
  95. package/src/EnvVars.d.ts +3 -0
  96. package/src/EnvVars.js +4 -0
  97. package/src/PredefinedConfig/AdaptableState.d.ts +2 -2
  98. package/src/PredefinedConfig/CommentState.d.ts +27 -23
  99. package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +4 -0
  100. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  101. package/src/PredefinedConfig/Common/AdaptableScope.d.ts +4 -1
  102. package/src/PredefinedConfig/Common/AggregationColumns.d.ts +1 -0
  103. package/src/PredefinedConfig/Common/AggregationColumns.js +3 -0
  104. package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +4 -0
  105. package/src/PredefinedConfig/Common/Enums.d.ts +2 -1
  106. package/src/PredefinedConfig/Common/Enums.js +1 -0
  107. package/src/PredefinedConfig/Common/Menu.d.ts +15 -1
  108. package/src/PredefinedConfig/Common/Menu.js +97 -1
  109. package/src/PredefinedConfig/Common/RowSummary.d.ts +21 -0
  110. package/src/PredefinedConfig/Common/RowSummary.js +17 -0
  111. package/src/PredefinedConfig/Common/TransposeConfig.d.ts +25 -0
  112. package/src/PredefinedConfig/Common/Types.d.ts +4 -4
  113. package/src/PredefinedConfig/Common/Types.js +4 -1
  114. package/src/PredefinedConfig/LayoutState.d.ts +5 -0
  115. package/src/PredefinedConfig/{NotesState.d.ts → NoteState.d.ts} +12 -22
  116. package/src/PredefinedConfig/PredefinedConfig.d.ts +3 -3
  117. package/src/PredefinedConfig/Selection/GridCell.d.ts +13 -0
  118. package/src/PredefinedConfig/SystemState.d.ts +9 -3
  119. package/src/Redux/ActionsReducers/LayoutRedux.d.ts +9 -0
  120. package/src/Redux/ActionsReducers/LayoutRedux.js +32 -10
  121. package/src/Redux/ActionsReducers/NoteRedux.d.ts +38 -0
  122. package/src/Redux/ActionsReducers/{NotesRedux.js → NoteRedux.js} +29 -28
  123. package/src/Redux/ActionsReducers/SystemRedux.d.ts +6 -1
  124. package/src/Redux/ActionsReducers/SystemRedux.js +16 -4
  125. package/src/Redux/Store/AdaptableStore.d.ts +4 -6
  126. package/src/Redux/Store/AdaptableStore.js +67 -77
  127. package/src/Redux/Store/Interface/IAdaptableStore.d.ts +8 -2
  128. package/src/Strategy/AdaptableModuleBase.d.ts +8 -8
  129. package/src/Strategy/AdaptableModuleBase.js +13 -15
  130. package/src/Strategy/AlertModule.d.ts +1 -2
  131. package/src/Strategy/AlertModule.js +3 -56
  132. package/src/Strategy/BulkUpdateModule.js +1 -1
  133. package/src/Strategy/CalculatedColumnModule.d.ts +2 -3
  134. package/src/Strategy/CalculatedColumnModule.js +6 -26
  135. package/src/Strategy/CellSummaryModule.d.ts +8 -6
  136. package/src/Strategy/CellSummaryModule.js +78 -23
  137. package/src/Strategy/ChartingModule.d.ts +0 -1
  138. package/src/Strategy/ChartingModule.js +2 -22
  139. package/src/Strategy/ColumnFilterModule.d.ts +2 -3
  140. package/src/Strategy/ColumnFilterModule.js +44 -103
  141. package/src/Strategy/ColumnInfoModule.js +2 -0
  142. package/src/Strategy/{CommentsModule.d.ts → CommentModule.d.ts} +2 -5
  143. package/src/Strategy/{CommentsModule.js → CommentModule.js} +17 -23
  144. package/src/Strategy/CustomSortModule.js +3 -2
  145. package/src/Strategy/DashboardModule.d.ts +1 -2
  146. package/src/Strategy/DashboardModule.js +9 -15
  147. package/src/Strategy/DataChangeHistoryModule.d.ts +1 -0
  148. package/src/Strategy/DataChangeHistoryModule.js +3 -1
  149. package/src/Strategy/DataImportModule.d.ts +1 -1
  150. package/src/Strategy/DataImportModule.js +5 -5
  151. package/src/Strategy/DataSetModule.d.ts +1 -1
  152. package/src/Strategy/DataSetModule.js +1 -1
  153. package/src/Strategy/ExportModule.d.ts +1 -0
  154. package/src/Strategy/ExportModule.js +17 -2
  155. package/src/Strategy/Fdc3Module.js +3 -0
  156. package/src/Strategy/FlashingCellModule.d.ts +1 -2
  157. package/src/Strategy/FlashingCellModule.js +6 -19
  158. package/src/Strategy/FormatColumnModule.d.ts +0 -2
  159. package/src/Strategy/FormatColumnModule.js +6 -51
  160. package/src/Strategy/FreeTextColumnModule.d.ts +0 -1
  161. package/src/Strategy/FreeTextColumnModule.js +1 -31
  162. package/src/Strategy/GridFilterModule.d.ts +0 -1
  163. package/src/Strategy/GridFilterModule.js +0 -37
  164. package/src/Strategy/GridInfoModule.js +2 -0
  165. package/src/Strategy/Interface/IModule.d.ts +0 -1
  166. package/src/Strategy/LayoutModule.d.ts +9 -3
  167. package/src/Strategy/LayoutModule.js +143 -63
  168. package/src/Strategy/NamedQueryModule.d.ts +0 -1
  169. package/src/Strategy/NamedQueryModule.js +0 -19
  170. package/src/Strategy/{NotesModule.d.ts → NoteModule.d.ts} +2 -1
  171. package/src/Strategy/NoteModule.js +57 -0
  172. package/src/Strategy/PlusMinusModule.d.ts +1 -1
  173. package/src/Strategy/PlusMinusModule.js +2 -2
  174. package/src/Strategy/ScheduleModule.d.ts +1 -1
  175. package/src/Strategy/ScheduleModule.js +1 -1
  176. package/src/Strategy/SettingsPanelModule.js +3 -3
  177. package/src/Strategy/ShortcutModule.d.ts +1 -1
  178. package/src/Strategy/ShortcutModule.js +1 -1
  179. package/src/Strategy/SmartEditModule.js +1 -1
  180. package/src/Strategy/StyledColumnModule.d.ts +1 -1
  181. package/src/Strategy/StyledColumnModule.js +26 -26
  182. package/src/Strategy/SystemStatusModule.js +2 -2
  183. package/src/Strategy/TeamSharingModule.d.ts +1 -0
  184. package/src/Strategy/TeamSharingModule.js +5 -5
  185. package/src/Strategy/ToolPanelModule.d.ts +0 -1
  186. package/src/Strategy/ToolPanelModule.js +0 -23
  187. package/src/Strategy/Utilities/getScopeViewItems.js +3 -0
  188. package/src/Utilities/Constants/DocumentationLinkConstants.js +1 -1
  189. package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
  190. package/src/Utilities/Constants/GeneralConstants.js +1 -0
  191. package/src/Utilities/Constants/ModuleConstants.d.ts +6 -6
  192. package/src/Utilities/Constants/ModuleConstants.js +6 -6
  193. package/src/Utilities/Defaults/DefaultSettingsPanel.js +7 -6
  194. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +3 -2
  195. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +429 -1
  196. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -3
  197. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +1 -1
  198. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -1
  199. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +15 -0
  200. package/src/Utilities/Extensions/ArrayExtensions.d.ts +2 -0
  201. package/src/Utilities/Extensions/ArrayExtensions.js +4 -0
  202. package/src/Utilities/Helpers/AdaptableHelper.d.ts +3 -4
  203. package/src/Utilities/Helpers/AdaptableHelper.js +18 -58
  204. package/src/Utilities/Helpers/Helper.d.ts +2 -0
  205. package/src/Utilities/Helpers/Helper.js +4 -0
  206. package/src/Utilities/MenuItem.d.ts +7 -4
  207. package/src/Utilities/MenuItem.js +6 -3
  208. package/src/Utilities/ObjectFactory.d.ts +3 -3
  209. package/src/Utilities/ObjectFactory.js +4 -24
  210. package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +4 -2
  211. package/src/Utilities/Services/AggregatedScalarLiveValue.js +26 -19
  212. package/src/Utilities/Services/CellPopupService.js +2 -3
  213. package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +1 -1
  214. package/src/Utilities/Services/Interface/IReportService.d.ts +1 -4
  215. package/src/Utilities/Services/LicenseService/index.d.ts +3 -0
  216. package/src/Utilities/Services/LicenseService/index.js +1 -181
  217. package/src/Utilities/Services/MetamodelService.d.ts +1 -1
  218. package/src/Utilities/Services/MetamodelService.js +6 -3
  219. package/src/Utilities/Services/ModuleService.js +4 -0
  220. package/src/Utilities/Services/QueryLanguageService.d.ts +1 -1
  221. package/src/Utilities/Services/QueryLanguageService.js +4 -3
  222. package/src/Utilities/Services/ReportService.d.ts +7 -5
  223. package/src/Utilities/Services/ReportService.js +238 -22
  224. package/src/Utilities/Services/RowEditService.d.ts +3 -2
  225. package/src/Utilities/Services/RowEditService.js +3 -1
  226. package/src/Utilities/adaptableQlUtils.d.ts +2 -0
  227. package/src/Utilities/adaptableQlUtils.js +14 -0
  228. package/src/Utilities/license/decode.js +1 -65
  229. package/src/Utilities/license/hashing.js +1 -43
  230. package/src/View/AdaptableView.js +1 -3
  231. package/src/View/AdaptableViewFactory.js +2 -2
  232. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +2 -2
  233. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +1 -1
  234. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  235. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +3 -3
  236. package/src/View/CalculatedColumn/utils.d.ts +1 -1
  237. package/src/View/CellSummary/CellSummaryPopup.js +1 -1
  238. package/src/View/Comments/CommentsEditor.js +24 -11
  239. package/src/View/Comments/CommentsPopup.js +20 -11
  240. package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
  241. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.d.ts +5 -0
  242. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.js +42 -0
  243. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +5 -2
  244. package/src/View/Components/CellPopup/index.d.ts +1 -0
  245. package/src/View/Components/CellPopup/index.js +5 -2
  246. package/src/View/Components/FilterForm/FilterForm.js +20 -12
  247. package/src/View/Components/FilterForm/QuickFilterForm.js +15 -8
  248. package/src/View/Components/NewScopeComponent.js +34 -1
  249. package/src/View/Components/Popups/AdaptableLoadingScreen.d.ts +6 -5
  250. package/src/View/Components/Popups/AdaptableLoadingScreen.js +19 -9
  251. package/src/View/Components/Popups/AdaptableToaster.js +1 -1
  252. package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +7 -7
  253. package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +1 -0
  254. package/src/View/Components/Popups/WindowPopups/windowFactory.js +3 -0
  255. package/src/View/Components/Selectors/PermittedValuesSelector.js +2 -2
  256. package/src/View/Components/ValueSelector/index.d.ts +1 -0
  257. package/src/View/Components/ValueSelector/index.js +2 -2
  258. package/src/View/CustomSort/CustomSortSummary.js +1 -1
  259. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +8 -9
  260. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +1 -1
  261. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +3 -1
  262. package/src/View/GridFilter/GridFilterViewPanel.js +9 -5
  263. package/src/View/GridFilter/useGridFilterExpressionEditor.js +1 -1
  264. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -3
  265. package/src/View/Layout/LayoutViewPanel.js +2 -1
  266. package/src/View/Layout/TransposedPopup.d.ts +3 -0
  267. package/src/View/Layout/TransposedPopup.js +195 -0
  268. package/src/View/Layout/Wizard/LayoutWizard.js +36 -3
  269. package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
  270. package/src/View/Layout/Wizard/sections/RowSummarySection.d.ts +9 -0
  271. package/src/View/Layout/Wizard/sections/RowSummarySection.js +174 -0
  272. package/src/View/License/LicenseWatermark.js +1 -61
  273. package/src/View/Note/NotePopup.d.ts +2 -0
  274. package/src/View/{Notes/NotesPopup.js → Note/NotePopup.js} +17 -17
  275. package/src/View/SpecialColumnSettingsWizardStep.js +4 -4
  276. package/src/View/Theme/ThemeSelector.js +3 -3
  277. package/src/agGrid/ActionColumnRenderer.js +7 -6
  278. package/src/agGrid/Adaptable.d.ts +3 -455
  279. package/src/agGrid/Adaptable.js +8 -5292
  280. package/src/agGrid/AdaptableAgGrid.d.ts +352 -0
  281. package/src/agGrid/AdaptableAgGrid.js +3963 -0
  282. package/src/agGrid/AdaptableLogger.js +77 -11
  283. package/src/agGrid/AgGridAdapter.d.ts +64 -0
  284. package/src/agGrid/AgGridAdapter.js +585 -0
  285. package/src/agGrid/AgGridColumnAdapter.d.ts +56 -0
  286. package/src/agGrid/AgGridColumnAdapter.js +831 -0
  287. package/src/agGrid/AgGridMenuAdapter.d.ts +28 -0
  288. package/src/agGrid/AgGridMenuAdapter.js +277 -0
  289. package/src/agGrid/AgGridOptionsService.d.ts +15 -0
  290. package/src/agGrid/AgGridOptionsService.js +76 -0
  291. package/src/agGrid/BadgeRenderer.js +1 -1
  292. package/src/agGrid/CheckboxRenderer.js +1 -1
  293. package/src/agGrid/FilterWrapper.d.ts +2 -2
  294. package/src/agGrid/FilterWrapper.js +1 -1
  295. package/src/agGrid/attachAddaptableColumnTypes.d.ts +12 -12
  296. package/src/agGrid/defaultAdaptableOptions.d.ts +3 -0
  297. package/src/{Utilities/Defaults/DefaultAdaptableOptions.js → agGrid/defaultAdaptableOptions.js} +71 -17
  298. package/src/agGrid/editors/AdaptableDateEditor/index.d.ts +1 -1
  299. package/src/agGrid/editors/AdaptableDateEditor/index.js +3 -3
  300. package/src/agGrid/editors/AdaptableNumberEditor/index.d.ts +2 -2
  301. package/src/agGrid/editors/AdaptableNumberEditor/index.js +2 -2
  302. package/src/agGrid/weightedAverage.d.ts +0 -2
  303. package/src/agGrid/weightedAverage.js +0 -54
  304. package/src/components/ColorPicker/ColorPicker.d.ts +1 -1
  305. package/src/components/Datepicker/index.d.ts +1 -1
  306. package/src/components/Datepicker/index.js +10 -2
  307. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +2 -1
  308. package/src/components/ExpressionEditor/QueryBuilder/utils.d.ts +0 -1
  309. package/src/components/ExpressionEditor/QueryBuilder/utils.js +1 -14
  310. package/src/components/InfiniteTable/index.js +2 -2
  311. package/src/components/Input/index.d.ts +1 -2
  312. package/src/components/List/ListGroupItem/index.d.ts +1 -1
  313. package/src/components/Modal/index.d.ts +1 -0
  314. package/src/components/Modal/index.js +4 -3
  315. package/src/components/Select/Select.d.ts +3 -1
  316. package/src/components/Select/Select.js +4 -2
  317. package/src/components/Textarea/index.d.ts +2 -2
  318. package/src/components/icons/index.js +2 -0
  319. package/src/components/icons/note.js +2 -2
  320. package/src/components/icons/rows.d.ts +3 -0
  321. package/src/components/icons/rows.js +4 -0
  322. package/src/env.js +2 -2
  323. package/src/metamodel/adaptable.metamodel.d.ts +186 -32
  324. package/src/metamodel/adaptable.metamodel.js +1 -9313
  325. package/src/migration/AdaptableUpgradeHelper.d.ts +38 -0
  326. package/src/migration/AdaptableUpgradeHelper.js +48 -0
  327. package/src/migration/VersionUpgrade.d.ts +8 -0
  328. package/src/migration/VersionUpgrade.js +11 -0
  329. package/src/migration/VersionUpgrade17.d.ts +18 -0
  330. package/src/migration/VersionUpgrade17.js +342 -0
  331. package/src/migration/VersionUpgrade18.d.ts +5 -0
  332. package/src/migration/VersionUpgrade18.js +6 -0
  333. package/src/parser/src/parser.js +117 -1257
  334. package/src/parser/src/predicate/mapExpressionToQlPredicate.js +1 -1
  335. package/src/parser/src/predicate/mapQlPredicateToExpression.js +2 -1
  336. package/src/parser/src/types.d.ts +7 -2
  337. package/src/types.d.ts +26 -19
  338. package/tsconfig.esm.tsbuildinfo +1 -1
  339. package/src/AdaptableOptions/CommentsOptions.d.ts +0 -28
  340. package/src/Api/Events/CommentsChangedInfo.d.ts +0 -5
  341. package/src/Api/Implementation/NotesApiImpl.d.ts +0 -16
  342. package/src/Api/Implementation/NotesApiImpl.js +0 -39
  343. package/src/Api/NotesApi.d.ts +0 -48
  344. package/src/PredefinedConfig/CellAddress.d.ts +0 -13
  345. package/src/PredefinedConfig/CellAddress.js +0 -4
  346. package/src/Redux/ActionsReducers/NotesRedux.d.ts +0 -39
  347. package/src/Strategy/NotesModule.js +0 -57
  348. package/src/Utilities/Defaults/DefaultAdaptableOptions.d.ts +0 -2
  349. package/src/Utilities/Services/Interface/IRowEditService.d.ts +0 -3
  350. package/src/View/Components/ScopeComponent.d.ts +0 -24
  351. package/src/View/Components/ScopeComponent.js +0 -133
  352. package/src/View/Export/Wizard/ReportScopeWizard.d.ts +0 -17
  353. package/src/View/Export/Wizard/ReportScopeWizard.js +0 -47
  354. package/src/View/Notes/NotesPopup.d.ts +0 -2
  355. package/src/agGrid/agGridHelper.d.ts +0 -57
  356. package/src/agGrid/agGridHelper.js +0 -686
  357. package/src/agGrid/agGridMenuHelper.d.ts +0 -46
  358. package/src/agGrid/agGridMenuHelper.js +0 -668
  359. /package/src/AdaptableOptions/{CommentsOptions.js → CommentOptions.js} +0 -0
  360. /package/src/AdaptableOptions/{NotesOptions.js → NoteOptions.js} +0 -0
  361. /package/src/Api/Events/{CommentsChangedInfo.js → CommentChanged.js} +0 -0
  362. /package/src/Api/{NotesApi.js → NoteApi.js} +0 -0
  363. /package/src/PredefinedConfig/{NotesState.js → Common/TransposeConfig.js} +0 -0
  364. /package/src/{Utilities/Services/Interface/IRowEditService.js → PredefinedConfig/NoteState.js} +0 -0
  365. /package/src/View/{Notes → Note}/NoteEditor.d.ts +0 -0
  366. /package/src/View/{Notes → Note}/NoteEditor.js +0 -0
@@ -10,8 +10,6 @@ import { getFormatColumnStyleViewItems } from './Utilities/FormatColumn/getForma
10
10
  import { getObjectTagsViewItems } from './Utilities/getObjectTagsViewItems';
11
11
  import { getRuleViewItems } from './Utilities/getRuleViewItems';
12
12
  import { MoveFormatColumn } from '../View/FormatColumn/MoveFormatColumn';
13
- import { cloneObject } from '../Utilities/Helpers/Helper';
14
- import { updateSingleToMultiplePredicates } from './Utilities/updateSingleToMultiplePredicates';
15
13
  import ArrayExtensions from '../Utilities/Extensions/ArrayExtensions';
16
14
  export class FormatColumnModule extends AdaptableModuleBase {
17
15
  constructor(api) {
@@ -39,51 +37,6 @@ export class FormatColumnModule extends AdaptableModuleBase {
39
37
  }
40
38
  return this.api.namedQueryApi.internalApi.getReferencedNamedQueryNames(queryExpression);
41
39
  }
42
- updateOldConfig() {
43
- this.updateFormatColumnSingleToMultiplePredicates();
44
- // update ConditionalStyle StatusBarPanel
45
- const oldStatusBars = this.api.internalApi.getState().StatusBar.StatusBars;
46
- let replaceConditionalStyleStatusBar = false;
47
- const newStatusBars = oldStatusBars.map((statusBar) => (Object.assign(Object.assign({}, statusBar), { StatusBarPanels: [
48
- ...new Set(statusBar.StatusBarPanels.map((statusBarPanel) => {
49
- if (statusBarPanel === 'ConditionalStyle') {
50
- replaceConditionalStyleStatusBar = true;
51
- return 'FormatColumn';
52
- }
53
- return statusBarPanel;
54
- })),
55
- ] })));
56
- if (replaceConditionalStyleStatusBar) {
57
- this.api.statusBarApi.setStatusBarPanels(newStatusBars);
58
- }
59
- // update ConditionalStyle dashboard buttons
60
- const dashboardModuleButtons = this.api.internalApi.getState().Dashboard.ModuleButtons;
61
- if (dashboardModuleButtons.includes('ConditionalStyle')) {
62
- dashboardModuleButtons[dashboardModuleButtons.indexOf('ConditionalStyle')] = 'FormatColumn';
63
- const test2 = dashboardModuleButtons;
64
- this.api.dashboardApi.setModuleButtons([
65
- ...new Set(dashboardModuleButtons),
66
- ]);
67
- }
68
- // update ConditionalStyle toolPanel buttons
69
- const toolPanelModuleButtons = this.api.internalApi.getState().ToolPanel.ModuleButtons;
70
- if (toolPanelModuleButtons.includes('ConditionalStyle')) {
71
- toolPanelModuleButtons[toolPanelModuleButtons.indexOf('ConditionalStyle')] = 'FormatColumn';
72
- this.api.toolPanelApi.setModuleButtons([
73
- ...new Set(dashboardModuleButtons),
74
- ]);
75
- }
76
- }
77
- updateFormatColumnSingleToMultiplePredicates() {
78
- const formatColumns = this.api.formatColumnApi.getFormatColumns();
79
- formatColumns.forEach((formatColumn) => {
80
- if (formatColumn.Rule && 'Predicate' in formatColumn.Rule) {
81
- const preparedFormatColumn = cloneObject(formatColumn);
82
- updateSingleToMultiplePredicates(preparedFormatColumn.Rule);
83
- this.api.formatColumnApi.editFormatColumn(preparedFormatColumn);
84
- }
85
- });
86
- }
87
40
  addColumnMenuItems(column) {
88
41
  let returnColumnMenuItems = [];
89
42
  if (column && this.isModuleEditable() && !column.isSparkline) {
@@ -92,12 +45,12 @@ export class FormatColumnModule extends AdaptableModuleBase {
92
45
  action: 'New',
93
46
  source: 'ColumnMenu',
94
47
  };
95
- const createFormatColumnMenuItem = this.createColumnMenuItemShowPopup('Create', this.moduleInfo.Popup, 'plus', createPopupParam);
48
+ const createFormatColumnMenuItem = this.createMenuItemShowPopup('format-column-add', 'Create', this.moduleInfo.Popup, 'plus', createPopupParam);
96
49
  const formatColumnsForColumn = this.api.formatColumnApi.getFormatColumnsForColumnId(column.columnId);
97
50
  // .filter((fc) => this.api.scopeApi.isSingleColumnScope(fc.Scope));
98
51
  // if no formats then just show Create
99
52
  if (ArrayExtensions.IsNullOrEmpty(formatColumnsForColumn)) {
100
- returnColumnMenuItems.push(this.createColumnMenuItemShowPopup('Create Format Column', this.moduleInfo.Popup, this.moduleInfo.Glyph, createPopupParam));
53
+ returnColumnMenuItems.push(this.createMenuItemShowPopup('format-column-add', 'Create Format Column', this.moduleInfo.Popup, this.moduleInfo.Glyph, createPopupParam));
101
54
  // if 1 format then show a Create and an Edit
102
55
  }
103
56
  else if (formatColumnsForColumn.length == 1) {
@@ -107,8 +60,9 @@ export class FormatColumnModule extends AdaptableModuleBase {
107
60
  value: formatColumnsForColumn[0],
108
61
  source: 'ColumnMenu',
109
62
  };
110
- const editFormatColumnMenuItem = this.createColumnMenuItemShowPopup('Edit', this.moduleInfo.Popup, 'edit', editPopupParam);
63
+ const editFormatColumnMenuItem = this.createMenuItemShowPopup('format-column-edit', 'Edit', this.moduleInfo.Popup, 'edit', editPopupParam);
111
64
  returnColumnMenuItems.push({
65
+ name: 'parent',
112
66
  label: 'Format Column',
113
67
  module: this.moduleInfo.ModuleName,
114
68
  isVisible: true,
@@ -123,8 +77,9 @@ export class FormatColumnModule extends AdaptableModuleBase {
123
77
  const moduleInfo = this.api.internalApi
124
78
  .getModuleService()
125
79
  .getModuleInfoByModule('FormatColumn');
126
- const editFormatColumnMenuItem = this.createColumnMenuItemReduxAction('Show Current', this.moduleInfo.Glyph, PopupRedux.PopupShowScreen('FormatColumn', moduleInfo.Popup));
80
+ const editFormatColumnMenuItem = this.createMenuItemReduxAction('format-column-edit', 'Show Current', this.moduleInfo.Glyph, PopupRedux.PopupShowScreen('FormatColumn', moduleInfo.Popup));
127
81
  returnColumnMenuItems.push({
82
+ name: 'parent',
128
83
  label: 'Format Column',
129
84
  module: this.moduleInfo.ModuleName,
130
85
  isVisible: true,
@@ -12,7 +12,6 @@ export declare class FreeTextColumnModule extends AdaptableModuleBase implements
12
12
  isModuleAvailable(): boolean;
13
13
  getModuleAdaptableObjects(): FreeTextColumn[];
14
14
  hasNamedQueryReferences(): boolean;
15
- updateOldConfig(): void;
16
15
  addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
17
16
  getTeamSharingAction(): TeamSharingImportInfo<FreeTextColumn>;
18
17
  toView(freeTextColumn: FreeTextColumn): AdaptableObjectView;
@@ -17,36 +17,6 @@ export class FreeTextColumnModule extends AdaptableModuleBase {
17
17
  hasNamedQueryReferences() {
18
18
  return false;
19
19
  }
20
- updateOldConfig() {
21
- // make sure all default to type string
22
- const allFreeTextColumns = this.getModuleAdaptableObjects();
23
- for (const freeTextColumn of allFreeTextColumns) {
24
- const unTypedCol = freeTextColumn;
25
- if (unTypedCol.DataType) {
26
- const dataType = unTypedCol.DataType;
27
- delete unTypedCol['DataType'];
28
- if (!freeTextColumn.FreeTextColumnSettings) {
29
- freeTextColumn.FreeTextColumnSettings = {
30
- DataType: dataType,
31
- };
32
- }
33
- else {
34
- freeTextColumn.FreeTextColumnSettings.DataType = dataType;
35
- }
36
- this.api.freeTextColumnApi.editFreeTextColumn(freeTextColumn);
37
- }
38
- if (!freeTextColumn.FreeTextColumnSettings) {
39
- freeTextColumn.FreeTextColumnSettings = {
40
- DataType: 'String',
41
- };
42
- this.api.freeTextColumnApi.editFreeTextColumn(freeTextColumn);
43
- }
44
- if (!freeTextColumn.FreeTextColumnSettings.DataType) {
45
- freeTextColumn.FreeTextColumnSettings.DataType = 'String';
46
- this.api.freeTextColumnApi.editFreeTextColumn(freeTextColumn);
47
- }
48
- }
49
- }
50
20
  addColumnMenuItems(column) {
51
21
  if (column && this.isModuleEditable()) {
52
22
  if (this.api.freeTextColumnApi
@@ -58,7 +28,7 @@ export class FreeTextColumnModule extends AdaptableModuleBase {
58
28
  source: 'ColumnMenu',
59
29
  };
60
30
  return [
61
- this.createColumnMenuItemShowPopup('Edit Free Text Column', this.moduleInfo.Popup, this.moduleInfo.Glyph, popupParam),
31
+ this.createMenuItemShowPopup('free-text-column-edit', 'Edit Free Text Column', this.moduleInfo.Popup, this.moduleInfo.Glyph, popupParam),
62
32
  ];
63
33
  }
64
34
  }
@@ -3,6 +3,5 @@ import { AdaptableModuleView, IModule } from './Interface/IModule';
3
3
  import { AdaptableModuleBase } from './AdaptableModuleBase';
4
4
  export declare class GridFilterModule extends AdaptableModuleBase implements IModule {
5
5
  constructor(api: AdaptableApi);
6
- updateOldConfig(): void;
7
6
  getViewProperties(): AdaptableModuleView;
8
7
  }
@@ -2,47 +2,10 @@ import { AdaptableModuleBase } from './AdaptableModuleBase';
2
2
  import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
3
3
  import { EditGridFilterButton } from '../View/NamedQuery/EditCurrentQueryButton';
4
4
  import { GridFilterStatusbar } from '../View/GridFilter/GridFilterStatusbar';
5
- import StringExtensions from '../Utilities/Extensions/StringExtensions';
6
5
  export class GridFilterModule extends AdaptableModuleBase {
7
6
  constructor(api) {
8
7
  super(ModuleConstants.GridFilterModuleId, ModuleConstants.GridFilterFriendlyName, 'filter-list', 'GridFilterPopup', 'Controls the Grid Filter funtionality', api);
9
8
  }
10
- updateOldConfig() {
11
- var _a, _b;
12
- const oldQueryState = this.api.internalApi.getAdaptableState().Query;
13
- // - move query to current layout
14
- const expression = oldQueryState.CurrentQuery;
15
- if (expression &&
16
- StringExtensions.IsNullOrEmpty(this.api.gridFilterApi.getCurrentGridFilterExpression())) {
17
- this.api.gridFilterApi.setGridFilterExpression(expression);
18
- }
19
- // - move dashboard/toolbar
20
- let updateTabs = false;
21
- const tabs = this.api.dashboardApi.getTabs().map((tab) => {
22
- if (tab.Toolbars.includes('Query')) {
23
- updateTabs = true;
24
- return Object.assign(Object.assign({}, tab), {
25
- // replace with 'GridFilter'
26
- Toolbars: tab.Toolbars.map((t) => (t == 'Query' ? 'GridFilter' : t)) });
27
- }
28
- return tab;
29
- });
30
- if (updateTabs) {
31
- this.api.dashboardApi.setTabs(tabs);
32
- }
33
- // - move pinned toolbars
34
- let updatePinnedToolbars = false;
35
- const pinnedToolbars = (_b = (_a = this.api.dashboardApi.getPinnedToolbars()) === null || _a === void 0 ? void 0 : _a.map) === null || _b === void 0 ? void 0 : _b.call(_a, (pinnedToolbar) => {
36
- if (pinnedToolbar == 'Query') {
37
- updatePinnedToolbars = true;
38
- return 'GridFilter';
39
- }
40
- return pinnedToolbar;
41
- });
42
- if (updatePinnedToolbars) {
43
- this.api.dashboardApi.setPinnedToolbars(pinnedToolbars);
44
- }
45
- }
46
9
  getViewProperties() {
47
10
  return {
48
11
  getStatusBarPanelProps: () => {
@@ -11,6 +11,7 @@ export class GridInfoModule extends AdaptableModuleBase {
11
11
  if (this.isModuleAvailable()) {
12
12
  return [
13
13
  this.createMainMenuItemShowPopup({
14
+ Name: 'grid-info-show',
14
15
  Label: 'Grid Info',
15
16
  ComponentName: this.moduleInfo.Popup,
16
17
  Icon: this.moduleInfo.Glyph,
@@ -22,6 +23,7 @@ export class GridInfoModule extends AdaptableModuleBase {
22
23
  if (this.isModuleAvailable()) {
23
24
  return [
24
25
  this.createMainMenuItemShowPopup({
26
+ Name: 'grid-info-show',
25
27
  Label: 'Grid Info',
26
28
  ComponentName: this.moduleInfo.Popup,
27
29
  Icon: this.moduleInfo.Glyph,
@@ -156,7 +156,6 @@ export interface IModule {
156
156
  getModuleFreeTextColumnReferences(): FreeTextColumn[];
157
157
  getPopupMaxWidth(): number | undefined;
158
158
  canBeAssociatedWithLayouts(): boolean;
159
- updateOldConfig(): void;
160
159
  /**
161
160
  * The following view options are used to render adaptable objects and
162
161
  * module general views.
@@ -7,16 +7,17 @@ import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
7
7
  import { AdaptableApi } from '../Api/AdaptableApi';
8
8
  import { AdaptableModuleView, IModule, TeamSharingReferences } from './Interface/IModule';
9
9
  import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
10
+ import { AggregatedScalarLiveValue } from '../Utilities/Services/AggregatedScalarLiveValue';
10
11
  export declare class LayoutModule extends AdaptableModuleBase implements IModule {
12
+ cachedCellSummary: Map<string, AggregatedScalarLiveValue>;
11
13
  protected LayoutState: LayoutState;
12
14
  constructor(api: AdaptableApi);
13
- updateOldConfig(): void;
14
- private clearUnsuportedFeaturesFromLayout;
15
+ onAdaptableReady(): void;
16
+ rowSummariesSubscribtions(): void;
15
17
  getModuleAdaptableObjects(): AdaptableObject[];
16
18
  getExplicitlyReferencedColumnIds(layout: Layout): string[];
17
19
  getTeamSharingReferences(adaptableObject: AdaptableObject): TeamSharingReferences;
18
20
  hasNamedQueryReferences(): boolean;
19
- handleAdaptableReady(): void;
20
21
  addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
21
22
  addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
22
23
  private createViewPivotItemsMenuItem;
@@ -44,4 +45,9 @@ export declare class LayoutModule extends AdaptableModuleBase implements IModule
44
45
  getViewProperties(): AdaptableModuleView;
45
46
  handleLayoutChange(): void;
46
47
  getReferencedNamedQueryNames(layout: Layout): string[];
48
+ /**
49
+ *
50
+ * @param colId optional to evaluate only one column
51
+ */
52
+ private evaluateRowSummary;
47
53
  }
@@ -15,42 +15,16 @@ import { SHOW_PIVOT_COLUMN_DETAILS } from '../View/Components/Popups/WindowPopup
15
15
  import flattenDeep from 'lodash/flattenDeep';
16
16
  import StringExtensions from '../Utilities/Extensions/StringExtensions';
17
17
  import { getGridFilterViewItems } from '../View/Layout/Wizard/getGridFilterPreview';
18
+ import { AggregatedScalarLiveValue } from '../Utilities/Services/AggregatedScalarLiveValue';
19
+ import { SystemRowSummarySet } from '../Redux/ActionsReducers/SystemRedux';
20
+ import { ROW_SUMMARY_ROW_ID, WEIGHTED_AVERAGE_AGGREATED_FUNCTION, } from '../PredefinedConfig/Common/RowSummary';
21
+ import Helper from '../Utilities/Helpers/Helper';
18
22
  export class LayoutModule extends AdaptableModuleBase {
19
23
  constructor(api) {
20
24
  super(ModuleConstants.LayoutModuleId, ModuleConstants.LayoutFriendlyName, 'grid', 'LayoutPopup', 'Named sets of column visibility, order, groupings, aggregation, pivots etc.', api);
21
- this.clearUnsuportedFeaturesFromLayout = (layout) => {
22
- const layoutSupportedFeatures = this.api.layoutApi.internalApi.getLayoutSupportedFeatures();
23
- let needsUpdate = false;
24
- const layoutToSave = Object.assign({}, layout);
25
- if (!layoutSupportedFeatures.RowGroupedColumns && layout.RowGroupedColumns) {
26
- delete layoutToSave.RowGroupedColumns;
27
- needsUpdate = true;
28
- }
29
- if (!layoutSupportedFeatures.AggregationColumns && layout.AggregationColumns) {
30
- delete layoutToSave.AggregationColumns;
31
- needsUpdate = true;
32
- }
33
- if (!layoutSupportedFeatures.PivotColumns && layout.PivotColumns) {
34
- delete layoutToSave.PivotColumns;
35
- delete layoutToSave.EnablePivot;
36
- needsUpdate = true;
37
- }
38
- if (!layoutSupportedFeatures.ColumnFilters && layout.ColumnFilters) {
39
- delete layoutToSave.ColumnFilters;
40
- needsUpdate = true;
41
- }
42
- if (!layoutSupportedFeatures.GridFilter && layout.GridFilter) {
43
- delete layoutToSave.GridFilter;
44
- needsUpdate = true;
45
- }
46
- if (!layoutSupportedFeatures.ColumnSorts && layout.ColumnSorts) {
47
- delete layoutToSave.ColumnSorts;
48
- needsUpdate = true;
49
- }
50
- if (needsUpdate) {
51
- this.api.layoutApi.createOrUpdateLayout(layoutToSave);
52
- }
53
- };
25
+ this.cachedCellSummary = new Map();
26
+ }
27
+ onAdaptableReady() {
54
28
  this.api.eventApi.on('LayoutChanged', (layoutChangedInfo) => {
55
29
  var _a;
56
30
  if (layoutChangedInfo.newLayoutState.CurrentLayout !==
@@ -59,17 +33,45 @@ export class LayoutModule extends AdaptableModuleBase {
59
33
  this.handleLayoutChange();
60
34
  }
61
35
  });
36
+ requestAnimationFrame(() => {
37
+ this.api.layoutApi.internalApi.fireLayoutChangedEvent('ADAPTABLE_READY', null, this.api.layoutApi.getLayoutState());
38
+ });
39
+ this.rowSummariesSubscribtions();
62
40
  }
63
- updateOldConfig() {
64
- /**
65
- * Viewport mode does not support a few
66
- * features instead of complicating the
67
- * logic where layout is applied, it is easier and
68
- * less error prone to just remove it.
69
- */
70
- if (this.api.gridApi.getAgGridRowModelType() === 'viewport') {
71
- this.api.layoutApi.getLayouts().forEach(this.clearUnsuportedFeaturesFromLayout);
72
- }
41
+ rowSummariesSubscribtions() {
42
+ // ROW SUMMARY
43
+ this.evaluateRowSummary();
44
+ this.api.eventApi.on('AdaptableStateReloaded', () => {
45
+ this.evaluateRowSummary();
46
+ });
47
+ this.api.eventApi.on('GridDataChanged', (event) => {
48
+ this.evaluateRowSummary();
49
+ });
50
+ this.api.eventApi.on('CellChanged', (event) => {
51
+ const columnId = event.cellChange.column.columnId;
52
+ this.evaluateRowSummary({
53
+ columnId,
54
+ });
55
+ });
56
+ this.api.eventApi.on('LayoutChanged', (event) => {
57
+ // exclude filter events, those are handled in another event
58
+ if (event.actionName.includes('FILTER')) {
59
+ return;
60
+ }
61
+ setTimeout(() => {
62
+ // the timeout is added so the grid has time to repond to the layout changed
63
+ this.evaluateRowSummary();
64
+ }, 16);
65
+ });
66
+ const adaptable = this.api.internalApi.getAdaptableInstance();
67
+ adaptable._on('AdapTableFiltersApplied', () => {
68
+ // we need to use this instead of layout changed
69
+ // so the rows have time to update
70
+ this.evaluateRowSummary();
71
+ });
72
+ adaptable._on('FirstDataRendered', () => {
73
+ this.evaluateRowSummary();
74
+ });
73
75
  }
74
76
  getModuleAdaptableObjects() {
75
77
  return this.api.layoutApi.getLayouts();
@@ -137,18 +139,13 @@ export class LayoutModule extends AdaptableModuleBase {
137
139
  hasNamedQueryReferences() {
138
140
  return true;
139
141
  }
140
- handleAdaptableReady() {
141
- requestAnimationFrame(() => {
142
- this.api.layoutApi.internalApi.fireLayoutChangedEvent('ADAPTABLE_READY', null, this.api.layoutApi.getLayoutState());
143
- });
144
- }
145
142
  addColumnMenuItems(column) {
146
143
  var _a, _b;
147
144
  let returnColumnMenuItems = [];
148
145
  if (this.isModuleEditable()) {
149
146
  const isReadOnlyLayout = this.api.layoutApi.isCurrentLayoutReadOnly();
150
147
  if (!isReadOnlyLayout) {
151
- returnColumnMenuItems.push(this.createColumnMenuItemShowPopup('Edit Layout', this.moduleInfo.Popup, this.moduleInfo.Glyph, {
148
+ returnColumnMenuItems.push(this.createMenuItemShowPopup('layout-edit', 'Edit Layout', this.moduleInfo.Popup, this.moduleInfo.Glyph, {
152
149
  action: 'Edit',
153
150
  source: 'ColumnMenu',
154
151
  value: this.api.layoutApi.getCurrentLayout(),
@@ -156,10 +153,10 @@ export class LayoutModule extends AdaptableModuleBase {
156
153
  }
157
154
  if (column) {
158
155
  if (!isReadOnlyLayout) {
159
- returnColumnMenuItems.push(this.createColumnMenuItemClickFunction('Change Caption', 'edit', () => this.api.layoutApi.showChangeColumnCaption(column)));
156
+ returnColumnMenuItems.push(this.createMenuItemClickFunction('layout-column-caption-change', 'Change Caption', 'edit', () => this.api.layoutApi.showChangeColumnCaption(column)));
160
157
  }
161
158
  if (column.hideable) {
162
- returnColumnMenuItems.push(this.createColumnMenuItemClickFunction('Hide Column', 'visibility-off-bold', () => {
159
+ returnColumnMenuItems.push(this.createMenuItemClickFunction('layout-column-hide', 'Hide Column', 'visibility-off-bold', () => {
163
160
  this.api.columnApi.hideColumn(column.columnId);
164
161
  }));
165
162
  }
@@ -168,23 +165,24 @@ export class LayoutModule extends AdaptableModuleBase {
168
165
  if (column) {
169
166
  const hasExistingSelection = (_b = (_a = this.api.gridApi.getSelectedCellInfo()) === null || _a === void 0 ? void 0 : _a.gridCells) === null || _b === void 0 ? void 0 : _b.length;
170
167
  if (hasExistingSelection) {
171
- selectMenuItems.push(this.createColumnMenuItemClickFunction('Column (Preserve Selection)', 'column-add', () => {
168
+ selectMenuItems.push(this.createMenuItemClickFunction('layout-column-select-preserve', 'Column (Preserve Selection)', 'column-add', () => {
172
169
  this.api.columnApi.addColumnToSelection(column.columnId);
173
170
  }));
174
- selectMenuItems.push(this.createColumnMenuItemClickFunction('Column (Reset Selection)', 'columns', () => {
171
+ selectMenuItems.push(this.createMenuItemClickFunction('layout-column-select-reset', 'Column (Reset Selection)', 'columns', () => {
175
172
  this.api.columnApi.selectColumn(column.columnId);
176
173
  }));
177
174
  }
178
175
  else {
179
- selectMenuItems.push(this.createColumnMenuItemClickFunction('Column', 'columns', () => {
176
+ selectMenuItems.push(this.createMenuItemClickFunction('layout-column-select', 'Column', 'columns', () => {
180
177
  this.api.columnApi.selectColumn(column.columnId);
181
178
  }));
182
179
  }
183
180
  }
184
- selectMenuItems.push(this.createColumnMenuItemClickFunction('Whole Grid', this.moduleInfo.Glyph, () => {
181
+ selectMenuItems.push(this.createMenuItemClickFunction('layout-select-all', 'Whole Grid', this.moduleInfo.Glyph, () => {
185
182
  this.api.gridApi.selectAll();
186
183
  }));
187
184
  returnColumnMenuItems.push({
185
+ name: 'layout-select-parent',
188
186
  label: 'Select',
189
187
  isVisible: true,
190
188
  module: this.moduleInfo.ModuleName,
@@ -199,7 +197,7 @@ export class LayoutModule extends AdaptableModuleBase {
199
197
  addContextMenuItems(menuContext) {
200
198
  let returnColumnMenuItems = [];
201
199
  if (this.isModuleEditable() && !this.api.layoutApi.isCurrentLayoutReadOnly()) {
202
- returnColumnMenuItems.push(this.createColumnMenuItemShowPopup('Edit Layout', this.moduleInfo.Popup, this.moduleInfo.Glyph, {
200
+ returnColumnMenuItems.push(this.createMenuItemShowPopup('layout-edit', 'Edit Layout', this.moduleInfo.Popup, this.moduleInfo.Glyph, {
203
201
  action: 'Edit',
204
202
  source: 'ColumnMenu',
205
203
  }));
@@ -211,18 +209,19 @@ export class LayoutModule extends AdaptableModuleBase {
211
209
  let clickFunction = () => {
212
210
  this.api.gridApi.deselectAll();
213
211
  };
214
- returnColumnMenuItems.push(this.createColumnMenuItemClickFunction('Clear Selected Cells', 'undo', clickFunction));
212
+ returnColumnMenuItems.push(this.createMenuItemClickFunction('layout-clear-selection', 'Clear Selected Cells', 'undo', clickFunction));
215
213
  if (this.isModuleAvailable()) {
216
214
  let gridMenuItems = [];
217
215
  let autoSizeFunction = () => {
218
216
  this.api.columnApi.autosizeAllColumns();
219
217
  };
220
- gridMenuItems.push(this.createColumnMenuItemClickFunction('Auto Size', 'arrow-expand', autoSizeFunction));
218
+ gridMenuItems.push(this.createMenuItemClickFunction('layout-auto-size', 'Auto Size', 'arrow-expand', autoSizeFunction));
221
219
  let clickFunction = () => {
222
220
  this.api.gridApi.selectAll();
223
221
  };
224
- gridMenuItems.push(this.createColumnMenuItemClickFunction('Select', 'tab-unselected', clickFunction));
222
+ gridMenuItems.push(this.createMenuItemClickFunction('layout-select-all', 'Select', 'tab-unselected', clickFunction));
225
223
  returnColumnMenuItems.push({
224
+ name: 'layout-grid-parent',
226
225
  label: 'Grid',
227
226
  module: this.moduleInfo.ModuleName,
228
227
  isVisible: true,
@@ -239,7 +238,7 @@ export class LayoutModule extends AdaptableModuleBase {
239
238
  }
240
239
  createViewPivotItemsMenuItem(menuContext) {
241
240
  // current group => menuContext.rowNode.field;
242
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
241
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
243
242
  const selectedCellInfo = (_a = menuContext.selectedCellInfo) !== null && _a !== void 0 ? _a : this.api.gridApi.getSelectedCellInfo();
244
243
  if (((_b = selectedCellInfo === null || selectedCellInfo === void 0 ? void 0 : selectedCellInfo.gridCells) === null || _b === void 0 ? void 0 : _b.length) !== 1) {
245
244
  return;
@@ -280,7 +279,9 @@ export class LayoutModule extends AdaptableModuleBase {
280
279
  }
281
280
  const data = flattenDeep(getData(menuContext.rowNode.childrenAfterFilter));
282
281
  const rowGroups = currentLayout.RowGroupedColumns;
283
- const cellValue = isPivotColumn ? menuContext.rowNode.aggData[columnId] : gridCell.displayValue;
282
+ const cellValue = isPivotColumn
283
+ ? (_o = (_m = menuContext.rowNode) === null || _m === void 0 ? void 0 : _m.aggData) === null || _o === void 0 ? void 0 : _o[columnId]
284
+ : gridCell.displayValue;
284
285
  const popupProps = {
285
286
  hasPivotValue: isPivotColumn,
286
287
  columnId,
@@ -292,6 +293,7 @@ export class LayoutModule extends AdaptableModuleBase {
292
293
  pivotColumnId,
293
294
  };
294
295
  return {
296
+ name: 'layout-aggregated-view',
295
297
  module: this.moduleInfo.ModuleName,
296
298
  isVisible: true,
297
299
  label: 'Expand Aggregated Value',
@@ -321,7 +323,7 @@ export class LayoutModule extends AdaptableModuleBase {
321
323
  return this.getModuleAdaptableObjects().map((layout) => this.toView(layout));
322
324
  }
323
325
  toView(layout) {
324
- var _a, _b, _c, _d, _e, _f;
326
+ var _a, _b, _c, _d, _e, _f, _g;
325
327
  const maxColumnsToDisplay = (_b = (_a = this.api.optionsApi.getLayoutOptions().layoutViewOptions) === null || _a === void 0 ? void 0 : _a.maxColumnsToDisplay) !== null && _b !== void 0 ? _b : 10;
326
328
  const columnIdToFriendlyName = (columnId) => {
327
329
  return this.api.columnApi.getFriendlyNameForColumnId(columnId);
@@ -390,6 +392,22 @@ export class LayoutModule extends AdaptableModuleBase {
390
392
  (layout === null || layout === void 0 ? void 0 : layout.GridFilter) &&
391
393
  StringExtensions.IsNotNullOrEmpty(layout.GridFilter.Expression) &&
392
394
  getGridFilterViewItems(layout),
395
+ ((_g = layout === null || layout === void 0 ? void 0 : layout.RowSummaries) === null || _g === void 0 ? void 0 : _g.length) && {
396
+ name: 'Row Summaries',
397
+ values: layout === null || layout === void 0 ? void 0 : layout.RowSummaries.map((rowSummary) => {
398
+ var _a;
399
+ const columns = Object.entries((_a = rowSummary.ColumnsMap) !== null && _a !== void 0 ? _a : {})
400
+ .map(([columnId, expression]) => {
401
+ if (columnId === 'Source' || columnId === 'Uuid') {
402
+ return '';
403
+ }
404
+ return `${expression}(${columnIdToFriendlyName(columnId)})`;
405
+ })
406
+ .filter(Boolean)
407
+ .join(', ');
408
+ return `${rowSummary.Position}: ${columns}`;
409
+ }),
410
+ },
393
411
  ].filter(Boolean),
394
412
  abObject: layout,
395
413
  };
@@ -435,7 +453,7 @@ export class LayoutModule extends AdaptableModuleBase {
435
453
  .setUpScheduleJobs();
436
454
  // CustomSort, FlashingCell, FormatColumn
437
455
  // we need to refresh the column defs, as some configs may have changed
438
- this.api.internalApi.getAdaptableInstance().setupColumns();
456
+ this.api.internalApi.getAdaptableInstance().updateColumnModelAndRefreshGrid();
439
457
  }
440
458
  getReferencedNamedQueryNames(layout) {
441
459
  var _a;
@@ -444,4 +462,66 @@ export class LayoutModule extends AdaptableModuleBase {
444
462
  }
445
463
  return this.api.namedQueryApi.internalApi.getReferencedNamedQueryNames(layout.GridFilter.Expression);
446
464
  }
465
+ /**
466
+ *
467
+ * @param colId optional to evaluate only one column
468
+ */
469
+ evaluateRowSummary(reason) {
470
+ var _a;
471
+ const currentLayout = this.api.layoutApi.getCurrentLayout();
472
+ const rowSummaries = (_a = this.api.layoutApi.getCurrentLayout().RowSummaries) !== null && _a !== void 0 ? _a : [];
473
+ const rowSummariesResults = rowSummaries.map(({ ColumnsMap, Position }) => {
474
+ return {
475
+ Position,
476
+ RowData: Object.entries(ColumnsMap !== null && ColumnsMap !== void 0 ? ColumnsMap : {}).reduce((acc, [columnId, expression]) => {
477
+ const key = `${columnId}-${expression}`;
478
+ let expressionLiveValue = this.cachedCellSummary.get(key);
479
+ if (expressionLiveValue) {
480
+ if (!reason) {
481
+ // refresh all of them
482
+ expressionLiveValue.refresh();
483
+ }
484
+ else if ('columnId' in reason && reason.columnId === columnId) {
485
+ expressionLiveValue.refresh();
486
+ }
487
+ }
488
+ if (!expressionLiveValue) {
489
+ try {
490
+ let aggregatedScalarExpression = `${expression}([${columnId}])`;
491
+ if (aggregatedScalarExpression.includes(WEIGHTED_AVERAGE_AGGREATED_FUNCTION) &&
492
+ currentLayout.AggregationColumns[columnId] &&
493
+ typeof currentLayout.AggregationColumns[columnId] === 'object') {
494
+ const weight = currentLayout.AggregationColumns[columnId]
495
+ .weightedColumnId;
496
+ if (weight) {
497
+ aggregatedScalarExpression = `AVG([${columnId}], WEIGHT([${weight}]))`;
498
+ }
499
+ }
500
+ expressionLiveValue = new AggregatedScalarLiveValue({
501
+ aggregatedScalarExpression,
502
+ }, ModuleConstants.LayoutModuleId, this.api, () => {
503
+ return this.api.gridApi.getVisibleRowNodes();
504
+ });
505
+ }
506
+ catch (e) {
507
+ this.api.logError('Error evaluating row summary', e);
508
+ }
509
+ this.cachedCellSummary.set(key, expressionLiveValue);
510
+ }
511
+ let value = null;
512
+ if (expressionLiveValue) {
513
+ value = expressionLiveValue.getGlobalAggregatedValue();
514
+ if (typeof value === 'number' && !isNaN(value)) {
515
+ value = Helper.roundNumber(value, 2);
516
+ }
517
+ }
518
+ acc[columnId] = value;
519
+ return acc;
520
+ }, {
521
+ [ROW_SUMMARY_ROW_ID]: true,
522
+ }),
523
+ };
524
+ });
525
+ this.api.internalApi.dispatchReduxAction(SystemRowSummarySet(rowSummariesResults));
526
+ }
447
527
  }
@@ -8,7 +8,6 @@ import { IModule } from './Interface/IModule';
8
8
  export declare class NamedQueryModule extends AdaptableModuleBase implements IModule {
9
9
  constructor(api: AdaptableApi);
10
10
  getModuleAdaptableObjects(): AdaptableObject[];
11
- updateOldConfig(): void;
12
11
  getTeamSharingAction(): TeamSharingImportInfo<NamedQuery>;
13
12
  getExplicitlyReferencedColumnIds(namedQuery: NamedQuery): string[];
14
13
  getReferencedNamedQueryNames(namedQuery: NamedQuery): string[];
@@ -1,6 +1,5 @@
1
1
  import * as NamedQueryRedux from '../Redux/ActionsReducers/NamedQueryRedux';
2
2
  import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
3
- import ArrayExtensions from '../Utilities/Extensions/ArrayExtensions';
4
3
  import { EditGridFilterButton } from '../View/NamedQuery/EditCurrentQueryButton';
5
4
  import { NamedQueryWizard } from '../View/NamedQuery/Wizard/NamedQueryWizard';
6
5
  import { AdaptableModuleBase } from './AdaptableModuleBase';
@@ -12,24 +11,6 @@ export class NamedQueryModule extends AdaptableModuleBase {
12
11
  getModuleAdaptableObjects() {
13
12
  return this.api.namedQueryApi.getNamedQueries();
14
13
  }
15
- updateOldConfig() {
16
- // - move named queries from old Query State to this Module
17
- // Note: GridFilter Module moves the "old" CurrentQuery into Layout
18
- const oldQueryState = this.api.internalApi.getAdaptableState().Query;
19
- const oldNamedQueries = oldQueryState.NamedQueries;
20
- if (ArrayExtensions.IsNotNullOrEmpty(oldNamedQueries)) {
21
- const currentNamedQueries = this.api.namedQueryApi.getNamedQueries();
22
- oldNamedQueries.forEach((oldNamedQuery) => {
23
- const currentQuery = currentNamedQueries.find((q) => q.Name === oldNamedQuery.Name);
24
- if (!currentQuery) {
25
- this.api.namedQueryApi.addNamedQuery(oldNamedQuery);
26
- }
27
- });
28
- }
29
- if (oldQueryState) {
30
- this.api.namedQueryApi.internalApi.cleanupQueryRedux();
31
- }
32
- }
33
14
  getTeamSharingAction() {
34
15
  return {
35
16
  ModuleEntities: this.api.namedQueryApi.getNamedQueries(),
@@ -2,9 +2,10 @@ import { AdaptableApi } from '../Api/AdaptableApi';
2
2
  import { AdaptableMenuItem, ContextMenuContext } from '../PredefinedConfig/Common/Menu';
3
3
  import { AdaptableModuleBase } from './AdaptableModuleBase';
4
4
  import { IModule } from './Interface/IModule';
5
- export declare class NotesModule extends AdaptableModuleBase implements IModule {
5
+ export declare class NoteModule extends AdaptableModuleBase implements IModule {
6
6
  private adaptable;
7
7
  constructor(api: AdaptableApi);
8
+ isModuleAvailable(): boolean;
8
9
  addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
9
10
  private getAddRemoveNoteMenuItems;
10
11
  }