@adaptabletools/adaptable 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 (368) 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 +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 +71 -74
  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 +40 -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 +118 -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 +71 -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 +14 -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 +60 -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 +14 -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 +4 -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 +3 -0
  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 +97 -1
  110. package/src/PredefinedConfig/Common/RowSummary.d.ts +21 -0
  111. package/src/PredefinedConfig/Common/RowSummary.js +17 -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 +32 -10
  122. package/src/Redux/ActionsReducers/NoteRedux.d.ts +38 -0
  123. package/src/Redux/ActionsReducers/{NotesRedux.js → NoteRedux.js} +29 -28
  124. package/src/Redux/ActionsReducers/SystemRedux.d.ts +6 -1
  125. package/src/Redux/ActionsReducers/SystemRedux.js +16 -4
  126. package/src/Redux/Store/AdaptableStore.d.ts +4 -6
  127. package/src/Redux/Store/AdaptableStore.js +67 -77
  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} +17 -23
  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 +57 -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 +1 -0
  192. package/src/Utilities/Constants/ModuleConstants.d.ts +6 -6
  193. package/src/Utilities/Constants/ModuleConstants.js +6 -6
  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 +429 -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 +4 -0
  203. package/src/Utilities/Helpers/AdaptableHelper.d.ts +3 -4
  204. package/src/Utilities/Helpers/AdaptableHelper.js +18 -58
  205. package/src/Utilities/Helpers/Helper.d.ts +2 -0
  206. package/src/Utilities/Helpers/Helper.js +4 -0
  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 -181
  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 +14 -0
  229. package/src/Utilities/license/decode.js +1 -65
  230. package/src/Utilities/license/hashing.js +1 -43
  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 +42 -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 +3 -0
  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 +195 -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 +174 -0
  274. package/src/View/License/LicenseWatermark.js +1 -61
  275. package/src/View/Note/NotePopup.d.ts +2 -0
  276. package/src/View/{Notes/NotesPopup.js → Note/NotePopup.js} +17 -17
  277. package/src/View/SpecialColumnSettingsWizardStep.js +4 -4
  278. package/src/View/Theme/ThemeSelector.js +3 -3
  279. package/src/agGrid/ActionColumnRenderer.js +7 -6
  280. package/src/agGrid/Adaptable.d.ts +3 -455
  281. package/src/agGrid/Adaptable.js +8 -5292
  282. package/src/agGrid/AdaptableAgGrid.d.ts +354 -0
  283. package/src/agGrid/AdaptableAgGrid.js +3967 -0
  284. package/src/agGrid/AdaptableLogger.js +77 -11
  285. package/src/agGrid/AgGridAdapter.d.ts +64 -0
  286. package/src/agGrid/AgGridAdapter.js +585 -0
  287. package/src/agGrid/AgGridColumnAdapter.d.ts +56 -0
  288. package/src/agGrid/AgGridColumnAdapter.js +831 -0
  289. package/src/agGrid/AgGridMenuAdapter.d.ts +28 -0
  290. package/src/agGrid/AgGridMenuAdapter.js +277 -0
  291. package/src/agGrid/AgGridOptionsService.d.ts +15 -0
  292. package/src/agGrid/AgGridOptionsService.js +76 -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} +71 -17
  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 +0 -54
  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 +1 -14
  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 +4 -3
  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 +4 -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 -9313
  327. package/src/migration/AdaptableUpgradeHelper.d.ts +38 -0
  328. package/src/migration/AdaptableUpgradeHelper.js +48 -0
  329. package/src/migration/VersionUpgrade.d.ts +8 -0
  330. package/src/migration/VersionUpgrade.js +11 -0
  331. package/src/migration/VersionUpgrade17.d.ts +18 -0
  332. package/src/migration/VersionUpgrade17.js +342 -0
  333. package/src/migration/VersionUpgrade18.d.ts +5 -0
  334. package/src/migration/VersionUpgrade18.js +6 -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.esm.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 -39
  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 -4
  348. package/src/Redux/ActionsReducers/NotesRedux.d.ts +0 -39
  349. package/src/Strategy/NotesModule.js +0 -57
  350. package/src/Utilities/Defaults/DefaultAdaptableOptions.d.ts +0 -2
  351. package/src/Utilities/Services/Interface/IRowEditService.d.ts +0 -3
  352. package/src/View/Components/ScopeComponent.d.ts +0 -24
  353. package/src/View/Components/ScopeComponent.js +0 -133
  354. package/src/View/Export/Wizard/ReportScopeWizard.d.ts +0 -17
  355. package/src/View/Export/Wizard/ReportScopeWizard.js +0 -47
  356. package/src/View/Notes/NotesPopup.d.ts +0 -2
  357. package/src/agGrid/agGridHelper.d.ts +0 -57
  358. package/src/agGrid/agGridHelper.js +0 -686
  359. package/src/agGrid/agGridMenuHelper.d.ts +0 -46
  360. package/src/agGrid/agGridMenuHelper.js +0 -668
  361. /package/src/AdaptableOptions/{CommentsOptions.js → CommentOptions.js} +0 -0
  362. /package/src/AdaptableOptions/{NotesOptions.js → NoteOptions.js} +0 -0
  363. /package/src/Api/Events/{CommentsChangedInfo.js → CommentChanged.js} +0 -0
  364. /package/src/Api/{NotesApi.js → NoteApi.js} +0 -0
  365. /package/src/PredefinedConfig/{NotesState.js → Common/TransposeConfig.js} +0 -0
  366. /package/src/{Utilities/Services/Interface/IRowEditService.js → PredefinedConfig/NoteState.js} +0 -0
  367. /package/src/View/{Notes → Note}/NoteEditor.d.ts +0 -0
  368. /package/src/View/{Notes → Note}/NoteEditor.js +0 -0
@@ -11,35 +11,15 @@ export class CalculatedColumnModule extends AdaptableModuleBase {
11
11
  constructor(api) {
12
12
  super(ModuleConstants.CalculatedColumnModuleId, ModuleConstants.CalculatedColumnFriendlyName, 'chart-and-grid', 'CalculatedColumnPopup', 'Create bespoke columns whose cell value is derived dynamically from an Expression', api);
13
13
  }
14
- handleConfigReloaded(adaptableStateReloadedInfo) {
15
- // re-dispatch the CalculatedColumnReady action to recreate all the aggregated scalar columns
16
- this.api.internalApi.dispatchReduxAction(CalculatedColumnRedux.CalculatedColumnReady(this.api.calculatedColumnApi.getCalculatedColumnState()));
14
+ onAdaptableReady() {
15
+ this.api.calculatedColumnApi.refreshAggregatedCalculatedColumns();
16
+ }
17
+ onAdaptableStateReloaded() {
18
+ this.api.calculatedColumnApi.refreshAggregatedCalculatedColumns();
17
19
  }
18
20
  getModuleAdaptableObjects() {
19
21
  return this.api.calculatedColumnApi.getCalculatedColumns();
20
22
  }
21
- updateOldConfig() {
22
- const calcColumns = this.api.calculatedColumnApi.getCalculatedColumns();
23
- let oldCalculatedColumns = [];
24
- calcColumns.forEach((cc) => {
25
- if (cc.ColumnExpression && !cc.Query) {
26
- cc.Query = {
27
- ScalarExpression: cc.ColumnExpression,
28
- };
29
- cc.ColumnExpression = undefined;
30
- oldCalculatedColumns.push(cc);
31
- this.api.logWarn(`Updating incorrect Predefined Config for Calculated Column: ${cc.ColumnId}`);
32
- }
33
- if (!cc.CalculatedColumnSettings) {
34
- cc.CalculatedColumnSettings = {
35
- DataType: 'Number',
36
- };
37
- oldCalculatedColumns.push(cc);
38
- this.api.logWarn(`Updating incorrect Predefined Config for Calculated Column: ${cc.ColumnId}`);
39
- }
40
- });
41
- oldCalculatedColumns.forEach((oldCalcCol) => this.api.calculatedColumnApi.editCalculatedColumn(oldCalcCol));
42
- }
43
23
  getExplicitlyReferencedColumnIds(calculatedColumn) {
44
24
  var _a;
45
25
  return ((_a = this.api.expressionApi.getColumnsFromExpression(this.api.expressionApi.getAdaptableQueryExpression(calculatedColumn.Query))) !== null && _a !== void 0 ? _a : []);
@@ -77,7 +57,7 @@ export class CalculatedColumnModule extends AdaptableModuleBase {
77
57
  source: 'ColumnMenu',
78
58
  };
79
59
  return [
80
- this.createColumnMenuItemShowPopup('Edit Calculated Column', this.moduleInfo.Popup, this.moduleInfo.Glyph, popupParam),
60
+ this.createMenuItemShowPopup('calculated-column-edit', 'Edit Calculated Column', this.moduleInfo.Popup, this.moduleInfo.Glyph, popupParam),
81
61
  ];
82
62
  }
83
63
  getTeamSharingAction() {
@@ -1,19 +1,21 @@
1
1
  /// <reference types="react" />
2
- import { AdaptableModuleBase } from './AdaptableModuleBase';
3
- import { ICellSummaryModule } from './Interface/ICellSummaryModule';
4
- import { SelectedCellInfo } from '../PredefinedConfig/Selection/SelectedCellInfo';
5
- import { AdaptableMenuItem, ContextMenuContext } from '../PredefinedConfig/Common/Menu';
6
2
  import { AdaptableApi } from '../Api/AdaptableApi';
7
- import { AccessLevel } from '../PredefinedConfig/Common/Entitlement';
8
- import { CellSummmary } from '../PredefinedConfig/Common/CellSummary';
9
3
  import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
4
+ import { CellSummmary } from '../PredefinedConfig/Common/CellSummary';
5
+ import { AccessLevel } from '../PredefinedConfig/Common/Entitlement';
6
+ import { AdaptableMenuItem, ContextMenuContext } from '../PredefinedConfig/Common/Menu';
7
+ import { SelectedCellInfo } from '../PredefinedConfig/Selection/SelectedCellInfo';
8
+ import { AdaptableModuleBase } from './AdaptableModuleBase';
9
+ import { ICellSummaryModule } from './Interface/ICellSummaryModule';
10
10
  export declare class CellSummaryModule extends AdaptableModuleBase implements ICellSummaryModule {
11
+ cachedCellSummary: WeakMap<SelectedCellInfo<any>, CellSummmary>;
11
12
  constructor(api: AdaptableApi);
12
13
  getViewAccessLevel(): AccessLevel;
13
14
  addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
14
15
  addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
15
16
  private createCellSummaryMenuItem;
16
17
  createCellSummary(selectedCellInfo: SelectedCellInfo): CellSummmary;
18
+ private getWeightedAverageCellSummary;
17
19
  getViewProperties(): {
18
20
  getStatusBarPanelProps(): {
19
21
  view: () => JSX.Element;
@@ -1,11 +1,13 @@
1
- import { AdaptableModuleBase } from './AdaptableModuleBase';
2
1
  import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
3
2
  import { ArrayExtensions } from '../Utilities/Extensions/ArrayExtensions';
4
3
  import { Helper } from '../Utilities/Helpers/Helper';
4
+ import { AggregatedScalarLiveValue } from '../Utilities/Services/AggregatedScalarLiveValue';
5
5
  import { CellSummaryStatusPanel } from '../View/CellSummary/CellSummaryStatusPanel';
6
+ import { AdaptableModuleBase } from './AdaptableModuleBase';
6
7
  export class CellSummaryModule extends AdaptableModuleBase {
7
8
  constructor(api) {
8
9
  super(ModuleConstants.CellSummaryModuleId, ModuleConstants.CellSummaryFriendlyName, 'cells', 'CellSummaryPopup', 'See summary information on a group of cells using multiple summary operations', api);
10
+ this.cachedCellSummary = new WeakMap();
9
11
  }
10
12
  getViewAccessLevel() {
11
13
  return 'Full';
@@ -35,6 +37,7 @@ export class CellSummaryModule extends AdaptableModuleBase {
35
37
  }
36
38
  createCellSummaryMenuItem(popUpParams) {
37
39
  return this.createMainMenuItemShowPopup({
40
+ Name: 'cell-summary-show',
38
41
  Label: 'See Cell Summary',
39
42
  ComponentName: this.moduleInfo.Popup,
40
43
  Icon: this.moduleInfo.Glyph,
@@ -42,6 +45,9 @@ export class CellSummaryModule extends AdaptableModuleBase {
42
45
  });
43
46
  }
44
47
  createCellSummary(selectedCellInfo) {
48
+ if (this.cachedCellSummary.has(selectedCellInfo)) {
49
+ return this.cachedCellSummary.get(selectedCellInfo);
50
+ }
45
51
  let selectedCellSummary;
46
52
  if (selectedCellInfo && ArrayExtensions.IsNotNullOrEmpty(selectedCellInfo.columns)) {
47
53
  let numericValues = [];
@@ -70,37 +76,65 @@ export class CellSummaryModule extends AdaptableModuleBase {
70
76
  // copying so that we keep the order - needed for others
71
77
  const newNumericValues = [...numericValues];
72
78
  let hasNumericColumns = numericValues.length > 0;
73
- let distinctCount = ArrayExtensions.RetrieveDistinct(allValues).length;
79
+ if (selectedCellInfo.columns.length > 1) {
80
+ return {
81
+ Sum: null,
82
+ Average: null,
83
+ Median: null,
84
+ Mode: null,
85
+ Distinct: null,
86
+ Max: null,
87
+ Min: null,
88
+ Count: null,
89
+ Std_Deviation: null,
90
+ Only: '',
91
+ };
92
+ }
93
+ const columnId = selectedCellInfo.columns[0].columnId;
94
+ const rowNodes = selectedCellInfo.gridCells.map((gc) => gc.rowNode);
95
+ const handleExpression = (functionName) => {
96
+ const aggScalarValue = new AggregatedScalarLiveValue({
97
+ aggregatedScalarExpression: `${functionName}([${columnId}])`,
98
+ }, ModuleConstants.CellSummaryModuleId, this.api, () => rowNodes);
99
+ let value = aggScalarValue.getGlobalAggregatedValue();
100
+ if (typeof value === 'number' && !isNaN(value)) {
101
+ value = Helper.roundNumber(value, 2);
102
+ }
103
+ return value;
104
+ };
105
+ const sumValue = hasNumericColumns ? handleExpression('SUM') : null;
106
+ const avgValue = hasNumericColumns ? Helper.roundNumber(handleExpression('AVG'), 2) : null;
107
+ const modeValue = hasNumericColumns ? handleExpression('MODE') : null;
108
+ const medianValue = hasNumericColumns ? handleExpression('MEDIAN') : null;
109
+ const distinctValue = handleExpression('DISTINCT');
110
+ const maxValue = hasNumericColumns ? handleExpression('MAX') : null;
111
+ const minValue = hasNumericColumns ? handleExpression('MIN') : null;
112
+ const stdDeviation = hasNumericColumns
113
+ ? Helper.roundNumberTo4dp(handleExpression('STD_DEVIATION'))
114
+ : null;
74
115
  selectedCellSummary = {
75
- Sum: hasNumericColumns
76
- ? Helper.roundNumberTo4dp(Helper.sumNumberArray(numericValues))
77
- : undefined,
78
- Average: hasNumericColumns
79
- ? Helper.roundNumberTo4dp(Helper.meanNumberArray(numericValues))
80
- : undefined,
81
- Median: hasNumericColumns
82
- ? Helper.roundNumberTo4dp(Helper.medianNumberArray(numericValues))
83
- : undefined,
84
- Mode: hasNumericColumns
85
- ? Helper.roundNumberTo4dp(Helper.modeNumberArray(numericValues))
86
- : undefined,
87
- Distinct: distinctCount,
88
- Max: hasNumericColumns ? Helper.roundNumberTo4dp(Math.max(...numericValues)) : undefined,
89
- Min: hasNumericColumns ? Helper.roundNumberTo4dp(Math.min(...numericValues)) : undefined,
116
+ Sum: sumValue,
117
+ Average: avgValue,
118
+ Median: medianValue,
119
+ Mode: modeValue,
120
+ Distinct: distinctValue,
121
+ Max: maxValue,
122
+ Min: minValue,
90
123
  Count: allValues.length,
91
- Std_Deviation: hasNumericColumns
92
- ? Helper.roundNumberTo4dp(Helper.standardDeviationNumberArray(numericValues))
93
- : undefined,
94
- Only: distinctCount == 1 ? JSON.stringify(allValues[0]) : '',
124
+ Std_Deviation: stdDeviation,
125
+ Only: distinctValue == 1 ? JSON.stringify(allValues[0]) : '',
95
126
  };
96
127
  numericValues = [...newNumericValues];
128
+ const weightedAverage = this.getWeightedAverageCellSummary(columnId, rowNodes);
129
+ if (weightedAverage !== null) {
130
+ selectedCellSummary.Weighted_Average = weightedAverage;
131
+ }
97
132
  const operationDefinitions = this.api.cellSummaryApi.getCellSummaryOperationDefinitions();
98
- const api = this.api;
99
133
  operationDefinitions === null || operationDefinitions === void 0 ? void 0 : operationDefinitions.forEach((operation) => {
100
134
  if (operation.operationFunction) {
101
135
  const cellSummaryOperationContext = {
102
136
  selectedCellInfo,
103
- distinctCount,
137
+ distinctCount: distinctValue,
104
138
  allValues,
105
139
  numericValues,
106
140
  numericColumns,
@@ -111,9 +145,30 @@ export class CellSummaryModule extends AdaptableModuleBase {
111
145
  selectedCellSummary[operation.operationName] = operation.operationFunction(cellSummaryOperationContext);
112
146
  }
113
147
  });
148
+ this.cachedCellSummary.set(selectedCellInfo, selectedCellSummary);
114
149
  }
115
150
  return selectedCellSummary;
116
151
  }
152
+ getWeightedAverageCellSummary(columnId, rowNodes) {
153
+ const currentLayout = this.api.layoutApi.getCurrentLayout();
154
+ if (currentLayout.AggregationColumns == undefined) {
155
+ return false;
156
+ }
157
+ const weightedAverageConfig = Object.entries(currentLayout.AggregationColumns).find(([colId, aggCol]) => typeof aggCol === 'object' && aggCol.type === 'weightedAverage' && colId === columnId);
158
+ if (!weightedAverageConfig) {
159
+ return null;
160
+ }
161
+ const { weightedColumnId } = weightedAverageConfig[1];
162
+ const expression = `AVG([${columnId}], WEIGHT([${weightedColumnId}]))`;
163
+ const aggScalarValue = new AggregatedScalarLiveValue({
164
+ aggregatedScalarExpression: expression,
165
+ }, ModuleConstants.CellSummaryModuleId, this.api, () => rowNodes);
166
+ let value = aggScalarValue.getGlobalAggregatedValue();
167
+ if (typeof value === 'number' && !isNaN(value)) {
168
+ value = Helper.roundNumber(value, 2);
169
+ }
170
+ return value;
171
+ }
117
172
  getViewProperties() {
118
173
  return {
119
174
  getStatusBarPanelProps() {
@@ -5,7 +5,6 @@ import { ChartDefinition } from '../types';
5
5
  import { ExternalChartDefinition } from '../PredefinedConfig/ChartingState';
6
6
  export declare class ChartingModule extends AdaptableModuleBase implements IModule {
7
7
  constructor(api: AdaptableApi);
8
- updateOldConfig(): void;
9
8
  isModuleAvailable(): boolean;
10
9
  getModuleAdaptableObjects(): (ChartDefinition | ExternalChartDefinition)[];
11
10
  toViewAll(): AdaptableObjectView[];
@@ -6,34 +6,14 @@ import * as ChartingRedux from '../Redux/ActionsReducers/ChartingRedux';
6
6
  import { ChartingStatusBarPopover } from '../View/Charting/ChartingStatusBarPopover';
7
7
  import { getObjectTagsViewItems } from './Utilities/getObjectTagsViewItems';
8
8
  import { isAgChartDefinition, isExternalChartDefinition, } from '../PredefinedConfig/ChartingState';
9
+ import Helper from '../Utilities/Helpers/Helper';
9
10
  export class ChartingModule extends AdaptableModuleBase {
10
11
  constructor(api) {
11
12
  super(ModuleConstants.ChartingModuleId, ModuleConstants.ChartingFriendlyName, 'chart', 'ChartPopup', 'Create AG Grid Charts in order to see Adaptable Data visually', api);
12
13
  }
13
- updateOldConfig() {
14
- const allChartDefinitions = this.api.chartingApi.getChartDefinitions();
15
- const chartDefinitionsToUpdate = allChartDefinitions
16
- .filter((chartDefinition) => 'model' in chartDefinition || !('Name' in chartDefinition))
17
- .map((charDefinition) => {
18
- const newChartDefinition = Object.assign({}, charDefinition);
19
- if ('model' in newChartDefinition) {
20
- newChartDefinition.Model = charDefinition.model;
21
- delete newChartDefinition.model;
22
- }
23
- if (!('Name' in newChartDefinition)) {
24
- // default to chartId
25
- // @ts-ignore possible because First iteration had no 'Name' and model was under 'model' key (lowercase)
26
- newChartDefinition.Name = newChartDefinition.Model.chartId;
27
- }
28
- return newChartDefinition;
29
- });
30
- if (chartDefinitionsToUpdate.length > 0) {
31
- chartDefinitionsToUpdate.forEach((chartDefinition) => this.api.chartingApi.editChartDefinition(chartDefinition));
32
- }
33
- }
34
14
  isModuleAvailable() {
35
15
  const agChartsAvailable = this.api.chartingApi.isChartingEnabled() && super.isModuleAvailable();
36
- const externalChartsAvailable = this.api.optionsApi.getChartingOptions().externalChartingOptions;
16
+ const externalChartsAvailable = Helper.objectHasKeys(this.api.optionsApi.getChartingOptions().externalChartingOptions);
37
17
  return Boolean(agChartsAvailable || externalChartsAvailable);
38
18
  }
39
19
  getModuleAdaptableObjects() {
@@ -12,10 +12,9 @@ export declare class ColumnFilterModule extends AdaptableModuleBase implements I
12
12
  getModuleAdaptableObjects(): AdaptableObject[];
13
13
  getExplicitlyReferencedColumnIds(columnFilter: ColumnFilter): string[];
14
14
  hasNamedQueryReferences(): boolean;
15
- updateOldConfig(): void;
16
- handleAdaptableReady(): void;
17
- addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
15
+ onAdaptableReady(): void;
18
16
  addColumnMenuItems(column: AdaptableColumn): AdaptableMenuItem[] | undefined;
17
+ addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
19
18
  private getExistingColumnFilter;
20
19
  getTeamSharingAction(): TeamSharingImportInfo<ColumnFilter>;
21
20
  toViewCompact(filter: ColumnFilter): AdaptableObjectCompactView;
@@ -28,70 +28,7 @@ export class ColumnFilterModule extends AdaptableModuleBase {
28
28
  hasNamedQueryReferences() {
29
29
  return false;
30
30
  }
31
- updateOldConfig() {
32
- // Note: have updated Dashboard and Status bar but NOT Tool Panels
33
- // Update Module Buttons
34
- let updateModuleButtons = false;
35
- let moduleButtons = this.api.dashboardApi.getModuleButtons();
36
- if (!moduleButtons.includes('ColumnFilter')) {
37
- moduleButtons = moduleButtons.map((moduleButton) => {
38
- if (moduleButton == 'Filter') {
39
- updateModuleButtons = true;
40
- return 'ColumnFilter';
41
- }
42
- return moduleButton;
43
- });
44
- }
45
- if (updateModuleButtons) {
46
- this.api.dashboardApi.setModuleButtons(moduleButtons);
47
- }
48
- // Update Toolbars
49
- let updateTabs = false;
50
- const tabs = this.api.dashboardApi.getTabs().map((tab) => {
51
- if (tab.Toolbars.includes('Filter') && !tab.Toolbars.includes('ColumnFilter')) {
52
- updateTabs = true;
53
- return Object.assign(Object.assign({}, tab), {
54
- // replace with 'GridFilter'
55
- Toolbars: tab.Toolbars.map((t) => (t == 'Filter' ? 'ColumnFilter' : t)) });
56
- }
57
- return tab;
58
- });
59
- if (updateTabs) {
60
- this.api.dashboardApi.setTabs(tabs);
61
- }
62
- // - move pinned toolbars
63
- let updatePinnedToolbars = false;
64
- let pinnedToolbars = this.api.dashboardApi.getPinnedToolbars();
65
- if (pinnedToolbars && !(pinnedToolbars === null || pinnedToolbars === void 0 ? void 0 : pinnedToolbars.includes('ColumnFilter'))) {
66
- pinnedToolbars = pinnedToolbars.map((pinnedToolbar) => {
67
- if (pinnedToolbar == 'Filter') {
68
- updatePinnedToolbars = true;
69
- return 'ColumnFilter';
70
- }
71
- return pinnedToolbar;
72
- });
73
- }
74
- if (updatePinnedToolbars) {
75
- this.api.dashboardApi.setPinnedToolbars(pinnedToolbars);
76
- }
77
- // Update Status Bar
78
- let updateStatusBars = false;
79
- const statusBars = this.api.statusBarApi
80
- .getAdaptableStatusBars()
81
- .map((panel) => {
82
- return Object.assign(Object.assign({}, panel), { StatusBarPanels: panel.StatusBarPanels.map((panel) => {
83
- if (panel === 'Filter') {
84
- updateStatusBars = true;
85
- return 'ColumnFilter';
86
- }
87
- return panel;
88
- }) });
89
- });
90
- if (updateStatusBars) {
91
- this.api.statusBarApi.setStatusBarPanels(statusBars);
92
- }
93
- }
94
- handleAdaptableReady() {
31
+ onAdaptableReady() {
95
32
  if (this.api.optionsApi.getColumnFilterOptions().quickFilterOptions.showQuickFilter == false) {
96
33
  this.api.columnFilterApi.hideQuickFilterBar();
97
34
  }
@@ -102,6 +39,43 @@ export class ColumnFilterModule extends AdaptableModuleBase {
102
39
  }
103
40
  });
104
41
  }
42
+ addColumnMenuItems(column) {
43
+ let filterSubMenuItems = [];
44
+ if (column &&
45
+ column.filterable &&
46
+ this.api.optionsApi.getColumnFilterOptions().useAdaptableColumnFiltering) {
47
+ if (this.api.gridApi.isQuickFilterAvailable()) {
48
+ const isFilterVisible = this.api.columnFilterApi.isQuickFilterVisible();
49
+ if (this.isModuleEditable() &&
50
+ this.api.optionsApi.getColumnFilterOptions().useAdaptableColumnFiltering) {
51
+ filterSubMenuItems.push(this.createMenuItemReduxAction(isFilterVisible ? 'column-filter-bar-hide' : 'column-filter-bar-show', isFilterVisible ? 'Hide Filter Bar' : 'Show Filter Bar', isFilterVisible ? 'unchecked' : 'check', isFilterVisible
52
+ ? SystemRedux.SystemQuickFilterBarHide()
53
+ : SystemRedux.SystemQuickFilterBarShow()));
54
+ }
55
+ }
56
+ const existingColumnFilter = this.getExistingColumnFilter(column);
57
+ if (existingColumnFilter) {
58
+ filterSubMenuItems.push(this.createMenuItemReduxAction('column-filter-clear', 'Clear Filter', 'close', LayoutRedux.LayoutColumnFilterClear(existingColumnFilter)));
59
+ filterSubMenuItems.push(this.createMenuItemReduxAction(existingColumnFilter.IsSuspended ? 'column-filter-unsuspend' : 'column-filter-suspend', existingColumnFilter.IsSuspended ? 'Unsuspend Filter' : 'Suspend Filter', existingColumnFilter.IsSuspended ? 'resume' : 'pause', existingColumnFilter.IsSuspended
60
+ ? LayoutRedux.LayoutColumnFilterUnSuspend(existingColumnFilter)
61
+ : LayoutRedux.LayoutColumnFilterSuspend(existingColumnFilter)));
62
+ }
63
+ if (ArrayExtensions.IsNotNullOrEmpty(filterSubMenuItems)) {
64
+ return [
65
+ {
66
+ name: 'parent',
67
+ label: this.moduleInfo.FriendlyName,
68
+ isVisible: true,
69
+ module: this.moduleInfo.ModuleName,
70
+ icon: {
71
+ name: this.moduleInfo.Glyph,
72
+ },
73
+ subItems: filterSubMenuItems,
74
+ },
75
+ ];
76
+ }
77
+ }
78
+ }
105
79
  addContextMenuItems(menuContext) {
106
80
  if (!menuContext.isRowGroupColumn && this.isModuleAvailable()) {
107
81
  if (menuContext.adaptableColumn &&
@@ -120,13 +94,15 @@ export class ColumnFilterModule extends AdaptableModuleBase {
120
94
  this.api.columnFilterApi.internalApi.createEqualityColumnFilterForCell(menuContext.selectedCellInfo.gridCells[0]);
121
95
  };
122
96
  return [
123
- this.createColumnMenuItemClickFunction(isMultiple ? 'Filter on Cell Values' : 'Filter on Cell Value', this.moduleInfo.Glyph, clickFunction),
97
+ this.createMenuItemClickFunction('column-filter-on-cell-value', isMultiple ? 'Filter on Cell Values' : 'Filter on Cell Value', this.moduleInfo.Glyph, clickFunction),
124
98
  ];
125
99
  }
126
100
  else {
127
101
  let filterSubMenuItems = [];
128
- filterSubMenuItems.push(this.createColumnMenuItemReduxAction('Clear Filter', 'close', LayoutRedux.LayoutColumnFilterClear(existingColumnFilter)));
129
- filterSubMenuItems.push(this.createColumnMenuItemClickFunction(existingColumnFilter.IsSuspended ? 'Unsuspend Filter' : 'Suspend Filter', existingColumnFilter.IsSuspended ? 'resume' : 'pause', existingColumnFilter.IsSuspended
102
+ filterSubMenuItems.push(this.createMenuItemReduxAction('column-filter-clear', 'Clear Filter', 'close', LayoutRedux.LayoutColumnFilterClear(existingColumnFilter)));
103
+ filterSubMenuItems.push(this.createMenuItemClickFunction(existingColumnFilter.IsSuspended
104
+ ? 'column-filter-unsuspend'
105
+ : 'column-filter-suspend', existingColumnFilter.IsSuspended ? 'Unsuspend Filter' : 'Suspend Filter', existingColumnFilter.IsSuspended ? 'resume' : 'pause', existingColumnFilter.IsSuspended
130
106
  ? () => {
131
107
  this.api.columnFilterApi.unSuspendColumnFilter(existingColumnFilter);
132
108
  }
@@ -135,6 +111,7 @@ export class ColumnFilterModule extends AdaptableModuleBase {
135
111
  }));
136
112
  return [
137
113
  {
114
+ name: 'parent',
138
115
  label: this.moduleInfo.FriendlyName,
139
116
  isVisible: true,
140
117
  module: this.moduleInfo.ModuleName,
@@ -148,42 +125,6 @@ export class ColumnFilterModule extends AdaptableModuleBase {
148
125
  }
149
126
  }
150
127
  }
151
- addColumnMenuItems(column) {
152
- let filterSubMenuItems = [];
153
- if (column &&
154
- column.filterable &&
155
- this.api.optionsApi.getColumnFilterOptions().useAdaptableColumnFiltering) {
156
- if (this.api.gridApi.isQuickFilterAvailable()) {
157
- const isFilterVisible = this.api.columnFilterApi.isQuickFilterVisible();
158
- if (this.isModuleEditable() &&
159
- this.api.optionsApi.getColumnFilterOptions().useAdaptableColumnFiltering) {
160
- filterSubMenuItems.push(this.createColumnMenuItemReduxAction(isFilterVisible ? 'Hide Filter Bar' : 'Show Filter Bar', isFilterVisible ? 'unchecked' : 'check', isFilterVisible
161
- ? SystemRedux.SystemQuickFilterBarHide()
162
- : SystemRedux.SystemQuickFilterBarShow()));
163
- }
164
- }
165
- const existingColumnFilter = this.getExistingColumnFilter(column);
166
- if (existingColumnFilter) {
167
- filterSubMenuItems.push(this.createColumnMenuItemReduxAction('Clear Filter', 'close', LayoutRedux.LayoutColumnFilterClear(existingColumnFilter)));
168
- filterSubMenuItems.push(this.createColumnMenuItemReduxAction(existingColumnFilter.IsSuspended ? 'Unsuspend Filter' : 'Suspend Filter', existingColumnFilter.IsSuspended ? 'resume' : 'pause', existingColumnFilter.IsSuspended
169
- ? LayoutRedux.LayoutColumnFilterUnSuspend(existingColumnFilter)
170
- : LayoutRedux.LayoutColumnFilterSuspend(existingColumnFilter)));
171
- }
172
- if (ArrayExtensions.IsNotNullOrEmpty(filterSubMenuItems)) {
173
- return [
174
- {
175
- label: this.moduleInfo.FriendlyName,
176
- isVisible: true,
177
- module: this.moduleInfo.ModuleName,
178
- icon: {
179
- name: this.moduleInfo.Glyph,
180
- },
181
- subItems: filterSubMenuItems,
182
- },
183
- ];
184
- }
185
- }
186
- }
187
128
  getExistingColumnFilter(column) {
188
129
  return this.api.columnFilterApi.getColumnFilters().find((x) => x.ColumnId == column.columnId);
189
130
  }
@@ -15,6 +15,7 @@ export class ColumnInfoModule extends AdaptableModuleBase {
15
15
  };
16
16
  return [
17
17
  this.createMainMenuItemShowPopup({
18
+ Name: 'column-info-show',
18
19
  Label: 'Column Info',
19
20
  ComponentName: this.moduleInfo.Popup,
20
21
  Icon: this.moduleInfo.Glyph,
@@ -31,6 +32,7 @@ export class ColumnInfoModule extends AdaptableModuleBase {
31
32
  };
32
33
  return [
33
34
  this.createMainMenuItemShowPopup({
35
+ Name: 'column-info-show',
34
36
  Label: 'Column Info',
35
37
  ComponentName: this.moduleInfo.Popup,
36
38
  Icon: this.moduleInfo.Glyph,
@@ -2,13 +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
- /**
6
- * In the first iteration a cell can have only one note, the
7
- * notes is a list to allow further development.
8
- */
9
- export declare class CommentsModule extends AdaptableModuleBase implements IModule {
5
+ export declare class CommentModule extends AdaptableModuleBase implements IModule {
10
6
  private adaptable;
11
7
  constructor(api: AdaptableApi);
8
+ onAdaptableReady(): void;
12
9
  isModuleAvailable(): boolean;
13
10
  private loadComments;
14
11
  addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
@@ -1,28 +1,27 @@
1
1
  import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
2
2
  import { createBaseContext } from '../Utilities/ObjectFactory';
3
3
  import { AdaptableModuleBase } from './AdaptableModuleBase';
4
- /**
5
- * In the first iteration a cell can have only one note, the
6
- * notes is a list to allow further development.
7
- */
8
- export class CommentsModule extends AdaptableModuleBase {
4
+ export class CommentModule extends AdaptableModuleBase {
9
5
  constructor(api) {
10
- super(ModuleConstants.CommentsModuleId, ModuleConstants.CommentsFriendlyName, 'comments', 'CommentsPopup', 'comments', api);
11
- this.adaptable = api.internalApi.getAdaptableInstance();
12
- this.adaptable.api.eventApi.on('AdaptableReady', () => this.handleAdaptableReady());
6
+ super(ModuleConstants.CommentModuleId, ModuleConstants.CommentFriendlyName, 'comments', 'CommentsPopup', 'comments', api);
7
+ }
8
+ onAdaptableReady() {
13
9
  this.loadComments();
14
10
  }
15
11
  isModuleAvailable() {
16
- const options = this.adaptable.api.optionsApi.getCommentsOptions();
12
+ const options = this.api.optionsApi.getCommentOptions();
17
13
  if (!options || !options.persistCommentThreads || !options.loadCommentThreads) {
18
14
  return false;
19
15
  }
16
+ if (this.api.optionsApi.getAutogeneratePrimaryKey()) {
17
+ return false;
18
+ }
20
19
  return super.isModuleAvailable();
21
20
  }
22
21
  async loadComments() {
23
22
  var _a, _b;
24
23
  const commentThreads = await ((_b = (_a = this.api.optionsApi
25
- .getCommentsOptions()) === null || _a === void 0 ? void 0 : _a.loadCommentThreads) === null || _b === void 0 ? void 0 : _b.call(_a, createBaseContext(this.adaptable.api)));
24
+ .getCommentOptions()) === null || _a === void 0 ? void 0 : _a.loadCommentThreads) === null || _b === void 0 ? void 0 : _b.call(_a, createBaseContext(this.api)));
26
25
  this.api.commentApi.loadCommentThreads(commentThreads);
27
26
  }
28
27
  addContextMenuItems(menuContext) {
@@ -31,17 +30,9 @@ export class CommentsModule extends AdaptableModuleBase {
31
30
  return undefined;
32
31
  }
33
32
  const items = [];
34
- const isCellCommentable = (_b = (_a = this.adaptable.api.optionsApi) === null || _a === void 0 ? void 0 : _a.getCommentsOptions()) === null || _b === void 0 ? void 0 : _b.isCellCommentable;
33
+ const isCellCommentable = (_b = (_a = this.api.optionsApi) === null || _a === void 0 ? void 0 : _a.getCommentOptions()) === null || _b === void 0 ? void 0 : _b.isCellCommentable;
35
34
  if (!isCellCommentable ||
36
- isCellCommentable({
37
- adaptableApi: this.adaptable.api,
38
- address: {
39
- PrimaryKeyValue: menuContext.primaryKeyValue,
40
- ColumnId: menuContext.adaptableColumn.columnId,
41
- },
42
- userName: this.adaptable.api.optionsApi.getUserName(),
43
- adaptableId: this.adaptable.adaptableOptions.adaptableId,
44
- })) {
35
+ isCellCommentable(Object.assign({ gridCell: menuContext.gridCell }, createBaseContext(this.api)))) {
45
36
  items.push(...this.getAddRemoveCommentsMenuItems(menuContext));
46
37
  }
47
38
  return items;
@@ -53,14 +44,17 @@ export class CommentsModule extends AdaptableModuleBase {
53
44
  PrimaryKeyValue: menuContext.primaryKeyValue,
54
45
  ColumnId: menuContext.adaptableColumn.columnId,
55
46
  };
56
- const comments = this.adaptable.api.commentApi.getComments(cellAddress);
47
+ const comments = this.api.commentApi.getComments(cellAddress);
48
+ if (!this.api.commentApi.internalApi.areCommentsAvailable()) {
49
+ return items;
50
+ }
57
51
  if (comments) {
58
- items.push(this.createColumnMenuItemClickFunction('Remove Comments', this.moduleInfo.Glyph, () => {
52
+ items.push(this.createMenuItemClickFunction('comment-remove', 'Remove Comment', this.moduleInfo.Glyph, () => {
59
53
  this.api.commentApi.deleteCommentThread(cellAddress);
60
54
  }));
61
55
  }
62
56
  else {
63
- items.push(this.createColumnMenuItemClickFunction('Add Comment', this.moduleInfo.Glyph, () => {
57
+ items.push(this.createMenuItemClickFunction('comment-add', 'Add Comment', this.moduleInfo.Glyph, () => {
64
58
  // add an empty one
65
59
  this.api.commentApi.addCommentThread(Object.assign(Object.assign({}, cellAddress), { Comments: [] }));
66
60
  requestAnimationFrame(() => {
@@ -25,7 +25,7 @@ export class CustomSortModule extends AdaptableModuleBase {
25
25
  .find((x) => x.ColumnId == column.columnId);
26
26
  let label = customSort ? 'Edit ' : 'Create ';
27
27
  // dont show a menu item if there is a custom sort that uses a comparer function
28
- const columnSortComparer = this.api.customSortApi.internalApi.getCustomSortComparer(column);
28
+ const columnSortComparer = this.api.customSortApi.internalApi.getCustomSortComparer(column.columnId);
29
29
  if (columnSortComparer) {
30
30
  return undefined;
31
31
  }
@@ -34,8 +34,9 @@ export class CustomSortModule extends AdaptableModuleBase {
34
34
  action: customSort ? 'Edit' : 'New',
35
35
  source: 'ColumnMenu',
36
36
  };
37
+ let name = customSort ? 'custom-sort-edit' : 'custom-sort-add';
37
38
  return [
38
- this.createColumnMenuItemShowPopup(label + 'Custom Sort', this.moduleInfo.Popup, this.moduleInfo.Glyph, popupParam),
39
+ this.createMenuItemShowPopup(name, label + 'Custom Sort', this.moduleInfo.Popup, this.moduleInfo.Glyph, popupParam),
39
40
  ];
40
41
  }
41
42
  }
@@ -4,8 +4,7 @@ import { IModule } from './Interface/IModule';
4
4
  import { AdaptableApi } from '../Api/AdaptableApi';
5
5
  export declare class DashboardModule extends AdaptableModuleBase implements IModule {
6
6
  constructor(api: AdaptableApi);
7
- updateOldConfig(): void;
8
- handleAdaptableReady(): void;
7
+ onAdaptableReady(): void;
9
8
  addColumnMenuItems(): AdaptableMenuItem[] | undefined;
10
9
  addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
11
10
  private buildMenuItems;