@adaptabletools/adaptable-cjs 18.0.0-canary.9 → 18.0.1

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 (422) hide show
  1. package/base.css +18 -20
  2. package/base.css.map +1 -1
  3. package/index.css +22 -20
  4. package/index.css.map +1 -1
  5. package/package.json +1 -1
  6. package/src/AdaptableInterfaces/IAdaptable.d.ts +5 -6
  7. package/src/AdaptableOptions/ActionColumnOptions.d.ts +3 -2
  8. package/src/AdaptableOptions/AdaptableFrameworkComponent.d.ts +3 -0
  9. package/src/AdaptableOptions/AdaptableOptions.d.ts +14 -13
  10. package/src/AdaptableOptions/AdaptablePlugin.d.ts +2 -0
  11. package/src/AdaptableOptions/AdaptablePlugin.js +2 -0
  12. package/src/AdaptableOptions/ColumnFilterOptions.d.ts +7 -0
  13. package/src/AdaptableOptions/ColumnMenuOptions.d.ts +94 -0
  14. package/src/AdaptableOptions/ColumnOptions.d.ts +9 -4
  15. package/src/AdaptableOptions/CommentOptions.d.ts +20 -9
  16. package/src/AdaptableOptions/ContextMenuOptions.d.ts +94 -0
  17. package/src/AdaptableOptions/CustomSortOptions.d.ts +2 -2
  18. package/src/AdaptableOptions/DataImportOptions.d.ts +2 -2
  19. package/src/AdaptableOptions/FormatColumnOptions.d.ts +2 -2
  20. package/src/AdaptableOptions/GroupingOptions.d.ts +0 -26
  21. package/src/AdaptableOptions/NoteOptions.d.ts +12 -3
  22. package/src/AdaptableOptions/PredicateOptions.d.ts +2 -2
  23. package/src/AdaptableOptions/QuickSearchOptions.d.ts +1 -1
  24. package/src/AdaptableOptions/StateOptions.d.ts +6 -0
  25. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +2 -2
  26. package/src/Api/AdaptableApi.d.ts +16 -6
  27. package/src/Api/ColumnApi.d.ts +13 -0
  28. package/src/Api/ColumnMenuApi.d.ts +13 -0
  29. package/src/Api/{ScopeApi.d.ts → ColumnScopeApi.d.ts} +28 -28
  30. package/src/Api/CommentApi.d.ts +20 -22
  31. package/src/Api/ConfigApi.d.ts +12 -7
  32. package/src/Api/ContextMenuApi.d.ts +9 -0
  33. package/src/Api/EventApi.d.ts +7 -9
  34. package/src/Api/Events/CommentChanged.d.ts +11 -0
  35. package/src/Api/Events/CommentChanged.js +2 -0
  36. package/src/Api/Events/GridDataChanged.d.ts +1 -1
  37. package/src/Api/FlashingCellApi.d.ts +2 -2
  38. package/src/Api/GridApi.d.ts +32 -4
  39. package/src/Api/Implementation/ActionColumnApiImpl.js +3 -6
  40. package/src/Api/Implementation/ActionRowApiImpl.js +3 -7
  41. package/src/Api/Implementation/AdaptableApiImpl.d.ts +7 -5
  42. package/src/Api/Implementation/AdaptableApiImpl.js +9 -5
  43. package/src/Api/Implementation/AlertApiImpl.js +8 -13
  44. package/src/Api/Implementation/ApiBase.d.ts +6 -4
  45. package/src/Api/Implementation/ApiBase.js +11 -5
  46. package/src/Api/Implementation/CalendarApiImpl.js +1 -6
  47. package/src/Api/Implementation/CellSummaryApiImpl.d.ts +0 -5
  48. package/src/Api/Implementation/CellSummaryApiImpl.js +2 -23
  49. package/src/Api/Implementation/ChartingApiImpl.js +3 -3
  50. package/src/Api/Implementation/ColumnApiImpl.d.ts +5 -0
  51. package/src/Api/Implementation/ColumnApiImpl.js +48 -16
  52. package/src/Api/Implementation/ColumnFilterApiImpl.js +7 -7
  53. package/src/Api/Implementation/ColumnMenuApiImpl.d.ts +8 -0
  54. package/src/Api/Implementation/ColumnMenuApiImpl.js +16 -0
  55. package/src/Api/Implementation/ColumnScopeApiImpl.d.ts +33 -0
  56. package/src/Api/Implementation/{ScopeApiImpl.js → ColumnScopeApiImpl.js} +48 -15
  57. package/src/Api/Implementation/CommentsApiImpl.d.ts +4 -5
  58. package/src/Api/Implementation/CommentsApiImpl.js +6 -6
  59. package/src/Api/Implementation/ConfigApiImpl.d.ts +4 -3
  60. package/src/Api/Implementation/ConfigApiImpl.js +25 -25
  61. package/src/Api/Implementation/ContextMenuApiImpl.d.ts +7 -0
  62. package/src/Api/Implementation/ContextMenuApiImpl.js +13 -0
  63. package/src/Api/Implementation/DashboardApiImpl.js +1 -6
  64. package/src/Api/Implementation/ExportApiImpl.js +5 -10
  65. package/src/Api/Implementation/ExpressionApiImpl.js +14 -19
  66. package/src/Api/Implementation/Fdc3ApiImpl.js +1 -1
  67. package/src/Api/Implementation/FlashingCellApiImpl.d.ts +2 -2
  68. package/src/Api/Implementation/FlashingCellApiImpl.js +3 -8
  69. package/src/Api/Implementation/FormatColumnApiImpl.js +4 -4
  70. package/src/Api/Implementation/FreeTextColumnApiImpl.js +1 -1
  71. package/src/Api/Implementation/GridApiImpl.d.ts +9 -2
  72. package/src/Api/Implementation/GridApiImpl.js +52 -11
  73. package/src/Api/Implementation/LayoutApiImpl.d.ts +2 -7
  74. package/src/Api/Implementation/LayoutApiImpl.js +6 -15
  75. package/src/Api/Implementation/{NotesApiImpl.d.ts → NoteApiImpl.d.ts} +8 -8
  76. package/src/Api/Implementation/{NotesApiImpl.js → NoteApiImpl.js} +14 -14
  77. package/src/Api/Implementation/OptionsApiImpl.d.ts +6 -5
  78. package/src/Api/Implementation/OptionsApiImpl.js +7 -4
  79. package/src/Api/Implementation/PredicateApiImpl.js +2 -2
  80. package/src/Api/Implementation/ScheduleApiImpl.js +6 -6
  81. package/src/Api/Implementation/TeamSharingApiImpl.js +3 -15
  82. package/src/Api/Implementation/ThemeApiImpl.js +2 -7
  83. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +14 -8
  84. package/src/Api/Implementation/UserInterfaceApiImpl.js +32 -27
  85. package/src/Api/Internal/ActionRowInternalApi.d.ts +1 -0
  86. package/src/Api/Internal/ActionRowInternalApi.js +19 -46
  87. package/src/Api/Internal/AdaptableInternalApi.d.ts +3 -4
  88. package/src/Api/Internal/AdaptableInternalApi.js +16 -30
  89. package/src/Api/Internal/AlertInternalApi.d.ts +2 -2
  90. package/src/Api/Internal/AlertInternalApi.js +7 -20
  91. package/src/Api/Internal/CalculatedColumnInternalApi.js +10 -16
  92. package/src/Api/Internal/ChartingInternalApi.js +13 -13
  93. package/src/Api/Internal/ColumnFilterInternalApi.d.ts +1 -0
  94. package/src/Api/Internal/ColumnFilterInternalApi.js +24 -30
  95. package/src/Api/Internal/ColumnInternalApi.d.ts +2 -0
  96. package/src/Api/Internal/ColumnInternalApi.js +8 -1
  97. package/src/Api/Internal/CommentsInternalApi.d.ts +1 -1
  98. package/src/Api/Internal/CommentsInternalApi.js +3 -2
  99. package/src/Api/Internal/CustomSortInternalApi.js +1 -1
  100. package/src/Api/Internal/DashboardInternalApi.js +5 -11
  101. package/src/Api/Internal/DataImportInternalApi.js +3 -9
  102. package/src/Api/Internal/DataSetInternalApi.js +2 -7
  103. package/src/Api/Internal/ExportInternalApi.d.ts +2 -1
  104. package/src/Api/Internal/ExportInternalApi.js +8 -5
  105. package/src/Api/Internal/ExpressionInternalApi.js +3 -13
  106. package/src/Api/Internal/Fdc3InternalApi.js +3 -12
  107. package/src/Api/Internal/FormatColumnInternalApi.d.ts +3 -6
  108. package/src/Api/Internal/FormatColumnInternalApi.js +37 -30
  109. package/src/Api/Internal/FreeTextColumnInternalApi.js +4 -3
  110. package/src/Api/Internal/GridFilterInternalApi.d.ts +5 -0
  111. package/src/Api/Internal/GridFilterInternalApi.js +8 -8
  112. package/src/Api/Internal/GridInternalApi.d.ts +2 -0
  113. package/src/Api/Internal/GridInternalApi.js +28 -40
  114. package/src/Api/Internal/LayoutInternalApi.d.ts +2 -0
  115. package/src/Api/Internal/LayoutInternalApi.js +26 -19
  116. package/src/Api/Internal/NoteInternalApi.d.ts +4 -0
  117. package/src/Api/Internal/{NotesInternalApi.js → NoteInternalApi.js} +6 -5
  118. package/src/Api/Internal/PredicateInternalApi.d.ts +6 -6
  119. package/src/Api/Internal/PredicateInternalApi.js +5 -40
  120. package/src/Api/Internal/ScheduleInternalApi.js +1 -6
  121. package/src/Api/Internal/StyledColumnInternalApi.d.ts +2 -2
  122. package/src/Api/Internal/StyledColumnInternalApi.js +8 -9
  123. package/src/Api/Internal/SystemStatusInternalApi.js +1 -7
  124. package/src/Api/Internal/TeamSharingInternalApi.js +2 -7
  125. package/src/Api/Internal/ThemeInternalApi.js +1 -1
  126. package/src/Api/Internal/UserInterfaceInternalApi.js +1 -1
  127. package/src/Api/LayoutApi.d.ts +9 -12
  128. package/src/Api/NoteApi.d.ts +48 -0
  129. package/src/Api/NoteApi.js +2 -0
  130. package/src/Api/OptionsApi.d.ts +14 -10
  131. package/src/Api/UserInterfaceApi.d.ts +15 -13
  132. package/src/PredefinedConfig/AdaptableState.d.ts +2 -2
  133. package/src/PredefinedConfig/AlertState.d.ts +2 -2
  134. package/src/PredefinedConfig/CommentState.d.ts +27 -23
  135. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  136. package/src/PredefinedConfig/Common/AdaptableObject.d.ts +4 -4
  137. package/src/PredefinedConfig/Common/AdaptablePredicate.d.ts +2 -2
  138. package/src/PredefinedConfig/Common/CellSummary.d.ts +5 -14
  139. package/src/PredefinedConfig/Common/{AdaptableScope.d.ts → ColumnScope.d.ts} +1 -1
  140. package/src/PredefinedConfig/Common/ColumnScope.js +2 -0
  141. package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +1 -5
  142. package/src/PredefinedConfig/Common/Enums.d.ts +4 -1
  143. package/src/PredefinedConfig/Common/Enums.js +3 -0
  144. package/src/PredefinedConfig/Common/Fdc3Intent.d.ts +2 -2
  145. package/src/PredefinedConfig/Common/Menu.d.ts +39 -4
  146. package/src/PredefinedConfig/Common/Menu.js +126 -0
  147. package/src/PredefinedConfig/Common/RowScope.d.ts +17 -0
  148. package/src/PredefinedConfig/Common/RowScope.js +2 -0
  149. package/src/PredefinedConfig/Common/RowSummary.d.ts +15 -1
  150. package/src/PredefinedConfig/Common/RowSummary.js +17 -1
  151. package/src/PredefinedConfig/Common/TransposeConfig.d.ts +30 -0
  152. package/src/PredefinedConfig/Common/TransposeConfig.js +2 -0
  153. package/src/PredefinedConfig/Common/Types.d.ts +4 -4
  154. package/src/PredefinedConfig/Common/Types.js +4 -1
  155. package/src/PredefinedConfig/ExportState.d.ts +2 -2
  156. package/src/PredefinedConfig/FlashingCellState.d.ts +2 -2
  157. package/src/PredefinedConfig/FormatColumnState.d.ts +9 -5
  158. package/src/PredefinedConfig/LayoutState.d.ts +2 -2
  159. package/src/PredefinedConfig/{NotesState.d.ts → NoteState.d.ts} +4 -4
  160. package/src/PredefinedConfig/NoteState.js +2 -0
  161. package/src/PredefinedConfig/PlusMinusState.d.ts +2 -2
  162. package/src/PredefinedConfig/PopupState.d.ts +1 -2
  163. package/src/PredefinedConfig/PredefinedConfig.d.ts +2 -2
  164. package/src/PredefinedConfig/Selection/GridCell.d.ts +13 -0
  165. package/src/PredefinedConfig/ShortcutState.d.ts +2 -2
  166. package/src/PredefinedConfig/StyledColumnState.d.ts +5 -5
  167. package/src/PredefinedConfig/SystemState.d.ts +5 -4
  168. package/src/Redux/ActionsReducers/CommentsRedux.d.ts +0 -4
  169. package/src/Redux/ActionsReducers/CommentsRedux.js +1 -39
  170. package/src/Redux/ActionsReducers/LayoutRedux.js +12 -10
  171. package/src/Redux/ActionsReducers/NoteRedux.d.ts +38 -0
  172. package/src/Redux/ActionsReducers/{NotesRedux.js → NoteRedux.js} +31 -31
  173. package/src/Redux/ActionsReducers/PopupRedux.d.ts +5 -13
  174. package/src/Redux/ActionsReducers/PopupRedux.js +1 -22
  175. package/src/Redux/ActionsReducers/SystemRedux.d.ts +11 -5
  176. package/src/Redux/ActionsReducers/SystemRedux.js +14 -11
  177. package/src/Redux/Store/AdaptableStore.js +39 -32
  178. package/src/Strategy/AdaptableModuleBase.d.ts +10 -10
  179. package/src/Strategy/AdaptableModuleBase.js +13 -16
  180. package/src/Strategy/AlertModule.d.ts +3 -2
  181. package/src/Strategy/AlertModule.js +4 -4
  182. package/src/Strategy/BulkUpdateModule.d.ts +3 -2
  183. package/src/Strategy/BulkUpdateModule.js +2 -1
  184. package/src/Strategy/CalculatedColumnModule.d.ts +3 -4
  185. package/src/Strategy/CalculatedColumnModule.js +18 -14
  186. package/src/Strategy/CellSummaryModule.d.ts +9 -9
  187. package/src/Strategy/CellSummaryModule.js +96 -107
  188. package/src/Strategy/ColumnFilterModule.d.ts +3 -3
  189. package/src/Strategy/ColumnFilterModule.js +36 -57
  190. package/src/Strategy/ColumnInfoModule.d.ts +3 -3
  191. package/src/Strategy/ColumnInfoModule.js +6 -4
  192. package/src/Strategy/CommentModule.d.ts +12 -0
  193. package/src/Strategy/CommentModule.js +75 -0
  194. package/src/Strategy/CustomSortModule.d.ts +1 -2
  195. package/src/Strategy/CustomSortModule.js +3 -2
  196. package/src/Strategy/DashboardModule.d.ts +3 -3
  197. package/src/Strategy/DashboardModule.js +10 -20
  198. package/src/Strategy/DataImportModule.d.ts +4 -4
  199. package/src/Strategy/DataImportModule.js +8 -8
  200. package/src/Strategy/ExportModule.d.ts +1 -2
  201. package/src/Strategy/ExportModule.js +56 -42
  202. package/src/Strategy/Fdc3Module.d.ts +1 -1
  203. package/src/Strategy/Fdc3Module.js +3 -13
  204. package/src/Strategy/FlashingCellModule.d.ts +4 -3
  205. package/src/Strategy/FlashingCellModule.js +10 -10
  206. package/src/Strategy/FormatColumnModule.d.ts +1 -1
  207. package/src/Strategy/FormatColumnModule.js +29 -47
  208. package/src/Strategy/FreeTextColumnModule.d.ts +1 -2
  209. package/src/Strategy/FreeTextColumnModule.js +2 -2
  210. package/src/Strategy/GridInfoModule.d.ts +3 -3
  211. package/src/Strategy/GridInfoModule.js +5 -3
  212. package/src/Strategy/Interface/IModule.d.ts +4 -4
  213. package/src/Strategy/LayoutModule.d.ts +4 -10
  214. package/src/Strategy/LayoutModule.js +50 -150
  215. package/src/Strategy/NoteModule.d.ts +10 -0
  216. package/src/Strategy/NoteModule.js +60 -0
  217. package/src/Strategy/PlusMinusModule.d.ts +1 -2
  218. package/src/Strategy/PlusMinusModule.js +5 -5
  219. package/src/Strategy/SettingsPanelModule.d.ts +3 -3
  220. package/src/Strategy/SettingsPanelModule.js +6 -6
  221. package/src/Strategy/ShortcutModule.js +1 -1
  222. package/src/Strategy/SmartEditModule.d.ts +3 -2
  223. package/src/Strategy/SmartEditModule.js +2 -1
  224. package/src/Strategy/StyledColumnModule.d.ts +2 -1
  225. package/src/Strategy/StyledColumnModule.js +42 -22
  226. package/src/Strategy/SystemStatusModule.d.ts +3 -3
  227. package/src/Strategy/SystemStatusModule.js +6 -3
  228. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +4 -2
  229. package/src/Strategy/Utilities/getScopeViewItems.d.ts +2 -2
  230. package/src/Strategy/Utilities/getScopeViewItems.js +3 -0
  231. package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
  232. package/src/Utilities/Constants/GeneralConstants.js +3 -2
  233. package/src/Utilities/Constants/ModuleConstants.d.ts +6 -6
  234. package/src/Utilities/Constants/ModuleConstants.js +7 -7
  235. package/src/Utilities/Defaults/DefaultSettingsPanel.js +2 -2
  236. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +2 -2
  237. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +144 -7
  238. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -3
  239. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -1
  240. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +15 -0
  241. package/src/Utilities/Helpers/AdaptableHelper.d.ts +3 -1
  242. package/src/Utilities/Helpers/AdaptableHelper.js +21 -1
  243. package/src/Utilities/Interface/MessagePopups.d.ts +0 -3
  244. package/src/Utilities/MenuItem.d.ts +10 -7
  245. package/src/Utilities/MenuItem.js +6 -3
  246. package/src/Utilities/ObjectFactory.d.ts +3 -3
  247. package/src/Utilities/ObjectFactory.js +7 -25
  248. package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +1 -0
  249. package/src/Utilities/Services/AggregatedScalarLiveValue.js +12 -10
  250. package/src/Utilities/Services/CellPopupService.js +4 -4
  251. package/src/Utilities/Services/Interface/IReportService.d.ts +1 -4
  252. package/src/Utilities/Services/LicenseService/index.js +1 -198
  253. package/src/Utilities/Services/ModuleService.js +6 -2
  254. package/src/Utilities/Services/QueryLanguageService.js +2 -2
  255. package/src/Utilities/Services/ReportService.d.ts +7 -5
  256. package/src/Utilities/Services/ReportService.js +245 -26
  257. package/src/Utilities/Services/RowSummaryService.d.ts +26 -0
  258. package/src/Utilities/Services/RowSummaryService.js +160 -0
  259. package/src/Utilities/Services/ValidationService.js +2 -2
  260. package/src/Utilities/adaptableQlUtils.d.ts +2 -0
  261. package/src/Utilities/adaptableQlUtils.js +18 -0
  262. package/src/Utilities/license/decode.js +1 -70
  263. package/src/Utilities/license/hashing.js +1 -47
  264. package/src/View/AdaptableViewFactory.js +2 -2
  265. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +1 -1
  266. package/src/View/Alert/AlertEntityRow.js +1 -1
  267. package/src/View/Alert/Utilities/getAvailablePredicates.d.ts +2 -2
  268. package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +1 -1
  269. package/src/View/Alert/Wizard/AlertScopeWizardSection.js +2 -2
  270. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +1 -1
  271. package/src/View/BulkUpdate/BulkUpdatePopup.js +2 -2
  272. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.d.ts +1 -1
  273. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +3 -3
  274. package/src/View/ColumnInfo/ColumnInfo.js +1 -1
  275. package/src/View/Comments/CommentsEditor.js +28 -17
  276. package/src/View/Comments/CommentsPopup.js +15 -7
  277. package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
  278. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.d.ts +5 -0
  279. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.js +46 -0
  280. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +5 -2
  281. package/src/View/Components/CellPopup/index.d.ts +1 -0
  282. package/src/View/Components/CellPopup/index.js +6 -3
  283. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.d.ts +3 -3
  284. package/src/View/Components/EntityRulesEditor/index.d.ts +3 -3
  285. package/src/View/Components/FilterForm/FilterForm.js +20 -12
  286. package/src/View/Components/FilterForm/QuickFilterForm.js +15 -8
  287. package/src/View/Components/FilterForm/QuickFilterValues.js +39 -23
  288. package/src/View/Components/NewScopeComponent.d.ts +5 -5
  289. package/src/View/Components/NewScopeComponent.js +6 -4
  290. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +4 -1
  291. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +10 -1
  292. package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +7 -10
  293. package/src/View/Components/RangesComponent.d.ts +2 -2
  294. package/src/View/Components/RangesComponent.js +1 -1
  295. package/src/View/Components/Selectors/PermittedValuesSelector.js +1 -1
  296. package/src/View/Components/SharedProps/WizardScopeState.d.ts +2 -2
  297. package/src/View/Components/ValueSelector/index.d.ts +1 -0
  298. package/src/View/Components/ValueSelector/index.js +2 -2
  299. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +1 -1
  300. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +4 -2
  301. package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -1
  302. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +2 -2
  303. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +20 -7
  304. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +1 -1
  305. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +1 -1
  306. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +27 -12
  307. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +1 -1
  308. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +1 -1
  309. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +3 -1
  310. package/src/View/GridFilter/GridFilterViewPanel.js +3 -3
  311. package/src/View/GridFilter/useGridFilterExpressionEditor.js +1 -1
  312. package/src/View/Layout/LayoutViewPanel.js +2 -1
  313. package/src/View/Layout/TransposedPopup.js +20 -19
  314. package/src/View/Layout/Wizard/LayoutWizard.js +38 -3
  315. package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
  316. package/src/View/Layout/Wizard/sections/FilterSection.js +1 -1
  317. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +18 -2
  318. package/src/View/Layout/Wizard/sections/RowSummarySection.d.ts +9 -0
  319. package/src/View/Layout/Wizard/sections/RowSummarySection.js +181 -0
  320. package/src/View/License/LicenseWatermark.js +1 -66
  321. package/src/View/Note/NotePopup.d.ts +2 -0
  322. package/src/View/{Notes/NotesPopup.js → Note/NotePopup.js} +16 -11
  323. package/src/View/PlusMinus/PlusMinusSummary.js +2 -2
  324. package/src/View/SmartEdit/SmartEditPopup.js +1 -1
  325. package/src/View/SpecialColumnSettingsWizardStep.js +4 -4
  326. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +5 -7
  327. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +1 -1
  328. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
  329. package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.js +38 -14
  330. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +1 -1
  331. package/src/agGrid/ActionColumnRenderer.js +40 -4
  332. package/src/agGrid/AdaptableAgGrid.d.ts +11 -16
  333. package/src/agGrid/AdaptableAgGrid.js +230 -250
  334. package/src/agGrid/AgGridAdapter.d.ts +4 -2
  335. package/src/agGrid/AgGridAdapter.js +12 -0
  336. package/src/agGrid/AgGridColumnAdapter.d.ts +1 -3
  337. package/src/agGrid/AgGridColumnAdapter.js +42 -71
  338. package/src/agGrid/AgGridMenuAdapter.d.ts +25 -8
  339. package/src/agGrid/AgGridMenuAdapter.js +405 -74
  340. package/src/agGrid/AgGridOptionsService.d.ts +4 -1
  341. package/src/agGrid/AgGridOptionsService.js +22 -0
  342. package/src/agGrid/BadgeRenderer.d.ts +2 -2
  343. package/src/agGrid/BadgeRenderer.js +24 -11
  344. package/src/agGrid/PercentBarRenderer.js +2 -1
  345. package/src/agGrid/buildSortedColumnStateForLayout.d.ts +7 -0
  346. package/src/agGrid/buildSortedColumnStateForLayout.js +124 -0
  347. package/src/agGrid/defaultAdaptableOptions.js +7 -12
  348. package/src/agGrid/editors/AdaptableDateEditor/index.d.ts +1 -1
  349. package/src/agGrid/editors/AdaptableDateEditor/index.js +1 -1
  350. package/src/agGrid/editors/AdaptableNumberEditor/index.d.ts +2 -2
  351. package/src/agGrid/sortColumnStateForVisibleColumns.d.ts +12 -0
  352. package/src/agGrid/sortColumnStateForVisibleColumns.js +50 -0
  353. package/src/agGrid/weightedAverage.d.ts +0 -2
  354. package/src/agGrid/weightedAverage.js +1 -56
  355. package/src/components/Accordion.d.ts +7 -0
  356. package/src/components/Accordion.js +41 -0
  357. package/src/components/Datepicker/index.js +10 -2
  358. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +2 -1
  359. package/src/components/ExpressionEditor/QueryBuilder/utils.d.ts +0 -1
  360. package/src/components/ExpressionEditor/QueryBuilder/utils.js +3 -17
  361. package/src/components/Input/index.d.ts +1 -2
  362. package/src/components/ProgressIndicator/ProgressIndicator.js +15 -6
  363. package/src/components/Select/Select.d.ts +1 -1
  364. package/src/components/Select/Select.js +3 -1
  365. package/src/components/Textarea/index.d.ts +2 -2
  366. package/src/components/icons/collapse-all.d.ts +3 -0
  367. package/src/components/icons/collapse-all.js +7 -0
  368. package/src/components/icons/copy.d.ts +3 -0
  369. package/src/components/icons/copy.js +7 -0
  370. package/src/components/icons/csv.d.ts +3 -0
  371. package/src/components/icons/csv.js +7 -0
  372. package/src/components/icons/data-object.d.ts +3 -0
  373. package/src/components/icons/data-object.js +7 -0
  374. package/src/components/icons/excel.d.ts +3 -0
  375. package/src/components/icons/excel.js +8 -0
  376. package/src/components/icons/expand-all.d.ts +3 -0
  377. package/src/components/icons/expand-all.js +7 -0
  378. package/src/components/icons/filter-off.d.ts +3 -0
  379. package/src/components/icons/filter-off.js +7 -0
  380. package/src/components/icons/grid-info.d.ts +3 -0
  381. package/src/components/icons/grid-info.js +7 -0
  382. package/src/components/icons/index.js +22 -0
  383. package/src/components/icons/note.js +2 -2
  384. package/src/components/icons/select-all.d.ts +3 -0
  385. package/src/components/icons/select-all.js +7 -0
  386. package/src/components/icons/select-fwd.d.ts +3 -0
  387. package/src/components/icons/select-fwd.js +7 -0
  388. package/src/components/icons/select-off.d.ts +3 -0
  389. package/src/components/icons/select-off.js +7 -0
  390. package/src/env.js +2 -2
  391. package/src/metamodel/adaptable.metamodel.d.ts +222 -116
  392. package/src/metamodel/adaptable.metamodel.js +1 -9429
  393. package/src/parser/src/parser.js +576 -553
  394. package/src/parser/src/predicate/mapExpressionToQlPredicate.js +1 -1
  395. package/src/parser/src/predicate/mapQlPredicateToExpression.js +3 -4
  396. package/src/parser/src/types.d.ts +2 -2
  397. package/src/parser/src/types.js +1 -2
  398. package/src/types.d.ts +32 -25
  399. package/tsconfig.cjs.tsbuildinfo +1 -1
  400. package/src/AdaptableOptions/MenuOptions.d.ts +0 -234
  401. package/src/AdaptableOptions/MenuOptions.js +0 -99
  402. package/src/Api/Events/CommentsChangedInfo.d.ts +0 -5
  403. package/src/Api/Implementation/ScopeApiImpl.d.ts +0 -33
  404. package/src/Api/Internal/NotesInternalApi.d.ts +0 -4
  405. package/src/Api/NotesApi.d.ts +0 -48
  406. package/src/PredefinedConfig/CellAddress.d.ts +0 -13
  407. package/src/PredefinedConfig/CellAddress.js +0 -5
  408. package/src/Redux/ActionsReducers/NotesRedux.d.ts +0 -38
  409. package/src/Strategy/CommentsModule.d.ts +0 -17
  410. package/src/Strategy/CommentsModule.js +0 -86
  411. package/src/Strategy/NotesModule.d.ts +0 -10
  412. package/src/Strategy/NotesModule.js +0 -61
  413. package/src/Utilities/Services/SummaryService.d.ts +0 -19
  414. package/src/Utilities/Services/SummaryService.js +0 -33
  415. package/src/View/Notes/NotesPopup.d.ts +0 -2
  416. /package/src/{Api/Events/CommentsChangedInfo.js → AdaptableOptions/ColumnMenuOptions.js} +0 -0
  417. /package/src/{Api/NotesApi.js → AdaptableOptions/ContextMenuOptions.js} +0 -0
  418. /package/src/Api/{ScopeApi.js → ColumnMenuApi.js} +0 -0
  419. /package/src/{PredefinedConfig/Common/AdaptableScope.js → Api/ColumnScopeApi.js} +0 -0
  420. /package/src/{PredefinedConfig/NotesState.js → Api/ContextMenuApi.js} +0 -0
  421. /package/src/View/{Notes → Note}/NoteEditor.d.ts +0 -0
  422. /package/src/View/{Notes → Note}/NoteEditor.js +0 -0
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.aggregatedScalarExpressionFunctionNames = exports.aggregatedScalarExpressionFunctions = exports.quantileAggregatedExpressionFunctions = exports.cumulativeAggregatedExpressionFunctions = exports.aggregatedExpressionFunctions = void 0;
4
- const expressionFunctionUtils_1 = require("./expressionFunctionUtils");
4
+ const tslib_1 = require("tslib");
5
5
  const ExpressionEvaluationError_1 = require("../../parser/src/ExpressionEvaluationError");
6
- const TypeExtensions_1 = require("../Extensions/TypeExtensions");
7
6
  const ArrayExtensions_1 = require("../Extensions/ArrayExtensions");
7
+ const TypeExtensions_1 = require("../Extensions/TypeExtensions");
8
+ const expressionFunctionUtils_1 = require("./expressionFunctionUtils");
9
+ const isAfter_1 = tslib_1.__importDefault(require("date-fns/isAfter"));
10
+ const DateHelper_1 = require("../Helpers/DateHelper");
8
11
  exports.aggregatedExpressionFunctions = [
9
12
  'SUM',
10
13
  'PERCENTAGE',
@@ -116,6 +119,7 @@ exports.aggregatedScalarExpressionFunctions = {
116
119
  ],
117
120
  examples: ['SUM([colA])', 'SUM([colA], GROUP_BY([colB]))'],
118
121
  category: 'aggregation',
122
+ inputs: ['number'],
119
123
  },
120
124
  PERCENTAGE: {
121
125
  handler(args, context) {
@@ -259,6 +263,7 @@ exports.aggregatedScalarExpressionFunctions = {
259
263
  ],
260
264
  examples: ['AVG([colA])', 'AVG([colA], GROUP_BY([colB]))', 'AVG([colA], WEIGHT([colB]))'],
261
265
  category: 'aggregation',
266
+ inputs: ['number'],
262
267
  },
263
268
  MEDIAN: {
264
269
  handler(args, context) {
@@ -323,12 +328,13 @@ exports.aggregatedScalarExpressionFunctions = {
323
328
  ],
324
329
  examples: ['MEDIAN([colA])', 'MEDIAN([colA], GROUP_BY([colB]))'],
325
330
  category: 'aggregation',
331
+ inputs: ['number'],
326
332
  },
327
333
  MODE: {
328
334
  handler(args, context) {
329
335
  const modeColumnParameter = (0, expressionFunctionUtils_1.extractColumnParameter)('mode', args);
330
336
  const modeColumnName = modeColumnParameter.value;
331
- (0, expressionFunctionUtils_1.validateColumnType)(modeColumnName, ['Number'], 'mode', context.adaptableApi);
337
+ (0, expressionFunctionUtils_1.validateColumnType)(modeColumnName, ['Number', 'String', 'Date'], 'mode', context.adaptableApi);
332
338
  const groupByParameter = (0, expressionFunctionUtils_1.extractParameter)('MODE', 'operand', ['GROUP_BY'], args, {
333
339
  isOptional: true,
334
340
  });
@@ -342,12 +348,16 @@ exports.aggregatedScalarExpressionFunctions = {
342
348
  reducer: (aggregatedValue, rowValue, rowNode) => {
343
349
  var _a;
344
350
  if (typeof rowValue !== 'number' && typeof rowValue !== 'string') {
345
- return;
351
+ return aggregatedValue;
352
+ }
353
+ if (!aggregatedValue) {
354
+ return new Map();
346
355
  }
347
356
  aggregatedValue.set(rowValue, ((_a = aggregatedValue.get(rowValue)) !== null && _a !== void 0 ? _a : 0) + 1);
348
357
  return aggregatedValue;
349
358
  },
350
359
  done: (aggregatedValue) => {
360
+ var _a;
351
361
  const sorted = [...aggregatedValue.entries()].sort(([aVal, aFreq], [bVal, bFreq]) => {
352
362
  if (aFreq < bFreq) {
353
363
  return 1;
@@ -359,7 +369,7 @@ exports.aggregatedScalarExpressionFunctions = {
359
369
  return aVal === bVal ? 0 : 1;
360
370
  }
361
371
  });
362
- return sorted[0][0];
372
+ return (_a = sorted === null || sorted === void 0 ? void 0 : sorted[0]) === null || _a === void 0 ? void 0 : _a[0];
363
373
  },
364
374
  },
365
375
  },
@@ -384,6 +394,7 @@ exports.aggregatedScalarExpressionFunctions = {
384
394
  ],
385
395
  examples: ['MODE([colA])', 'MODE([colA], GROUP_BY([colB]))'],
386
396
  category: 'aggregation',
397
+ inputs: [['number'], ['text'], ['date']],
387
398
  },
388
399
  DISTINCT: {
389
400
  handler(args, context) {
@@ -431,6 +442,7 @@ exports.aggregatedScalarExpressionFunctions = {
431
442
  ],
432
443
  examples: ['DISTINCT([colA])', 'DISTINCT([colA], GROUP_BY([colB]))'],
433
444
  category: 'aggregation',
445
+ inputs: [['number'], ['text'], ['date']],
434
446
  },
435
447
  ONLY: {
436
448
  handler(args, context) {
@@ -480,6 +492,7 @@ exports.aggregatedScalarExpressionFunctions = {
480
492
  ],
481
493
  examples: ['ONLY([colA])', 'ONLY([colA], GROUP_BY([colB]))'],
482
494
  category: 'aggregation',
495
+ inputs: [['number'], ['text'], ['date']],
483
496
  },
484
497
  STD_DEVIATION: {
485
498
  handler(args, context) {
@@ -537,6 +550,7 @@ exports.aggregatedScalarExpressionFunctions = {
537
550
  ],
538
551
  examples: ['ONLY([colA])', 'ONLY([colA], GROUP_BY([colB]))'],
539
552
  category: 'aggregation',
553
+ inputs: ['number'],
540
554
  },
541
555
  MIN: {
542
556
  handler(args, context) {
@@ -588,6 +602,7 @@ exports.aggregatedScalarExpressionFunctions = {
588
602
  ],
589
603
  examples: ['MIN([colA])', 'MIN([colA], GROUP_BY([colB]))'],
590
604
  category: 'aggregation',
605
+ inputs: ['number'],
591
606
  },
592
607
  MAX: {
593
608
  handler(args, context) {
@@ -639,6 +654,7 @@ exports.aggregatedScalarExpressionFunctions = {
639
654
  ],
640
655
  examples: ['MIN([colA])', 'MIN([colA], GROUP_BY([colB]))'],
641
656
  category: 'aggregation',
657
+ inputs: ['number'],
642
658
  },
643
659
  QUANT: {
644
660
  handler(args, context) {
@@ -837,6 +853,7 @@ exports.aggregatedScalarExpressionFunctions = {
837
853
  ],
838
854
  examples: ['COUNT([colA])', 'COUNT([colA], GROUP_BY([colB]))'],
839
855
  category: 'aggregation',
856
+ inputs: [['number'], ['text'], ['date']],
840
857
  },
841
858
  OVER: {
842
859
  handler(args, context) {
@@ -898,6 +915,124 @@ exports.aggregatedScalarExpressionFunctions = {
898
915
  examples: ['[col1]', 'COL("col1")'],
899
916
  category: 'special',
900
917
  },
918
+ OLDEST: {
919
+ handler(args, context) {
920
+ const minColumnParameter = (0, expressionFunctionUtils_1.extractColumnParameter)('OLDEST', args);
921
+ const minColumnName = minColumnParameter.value;
922
+ (0, expressionFunctionUtils_1.validateColumnType)(minColumnName, ['Date'], 'OLDEST', context.adaptableApi);
923
+ const groupByParameter = (0, expressionFunctionUtils_1.extractParameter)('OLDEST', 'operand', ['GROUP_BY'], args, {
924
+ isOptional: true,
925
+ });
926
+ const aggregationExpressionEvaluation = {
927
+ aggregationParams: {
928
+ reducers: {
929
+ OLDEST: {
930
+ name: 'OLDEST',
931
+ field: minColumnName,
932
+ initialValue: null,
933
+ reducer: (minValue, rowValue) => {
934
+ if (!minValue) {
935
+ return rowValue;
936
+ }
937
+ if (!rowValue) {
938
+ return minValue;
939
+ }
940
+ if ((0, isAfter_1.default)((0, DateHelper_1.parseDateValue)(minValue), (0, DateHelper_1.parseDateValue)(rowValue))) {
941
+ return rowValue;
942
+ }
943
+ else {
944
+ return minValue;
945
+ }
946
+ },
947
+ done: (minValue, arr) => {
948
+ if (minValue !== null) {
949
+ return minValue;
950
+ }
951
+ },
952
+ },
953
+ },
954
+ },
955
+ rowFilterFn: context.filterFn,
956
+ getRowNodes: context.getRowNodes,
957
+ };
958
+ addGroupByParams(groupByParameter === null || groupByParameter === void 0 ? void 0 : groupByParameter.value, aggregationExpressionEvaluation);
959
+ const result = {
960
+ name: 'OLDEST',
961
+ type: 'aggregationScalar',
962
+ value: aggregationExpressionEvaluation,
963
+ };
964
+ return result;
965
+ },
966
+ description: 'Aggregates a Date column over multiple rows by computing the oldest of the column values\nOptionally the aggregation may be computed within provided individual groups',
967
+ signatures: [
968
+ 'OLDEST( [colName] )',
969
+ 'OLDEST( COL(name: string))',
970
+ 'OLDEST( [colNameA], GROUP_BY( [colNameB] ))',
971
+ 'OLDEST( COL(nameA: string), GROUP_BY( COL(nameB: string)))',
972
+ ],
973
+ examples: ['OLDEST([colA])', 'OLDEST([colA], GROUP_BY([colB]))'],
974
+ category: 'aggregation',
975
+ inputs: ['date'],
976
+ },
977
+ NEWEST: {
978
+ handler(args, context) {
979
+ const minColumnParameter = (0, expressionFunctionUtils_1.extractColumnParameter)('NEWEST', args);
980
+ const minColumnName = minColumnParameter.value;
981
+ (0, expressionFunctionUtils_1.validateColumnType)(minColumnName, ['Date'], 'NEWEST', context.adaptableApi);
982
+ const groupByParameter = (0, expressionFunctionUtils_1.extractParameter)('NEWEST', 'operand', ['GROUP_BY'], args, {
983
+ isOptional: true,
984
+ });
985
+ const aggregationExpressionEvaluation = {
986
+ aggregationParams: {
987
+ reducers: {
988
+ NEWEST: {
989
+ name: 'NEWEST',
990
+ field: minColumnName,
991
+ initialValue: null,
992
+ reducer: (minValue, rowValue) => {
993
+ if (!minValue) {
994
+ return rowValue;
995
+ }
996
+ if (!rowValue) {
997
+ return minValue;
998
+ }
999
+ if ((0, isAfter_1.default)((0, DateHelper_1.parseDateValue)(minValue), (0, DateHelper_1.parseDateValue)(rowValue))) {
1000
+ return minValue;
1001
+ }
1002
+ else {
1003
+ return rowValue;
1004
+ }
1005
+ },
1006
+ done: (minValue, arr) => {
1007
+ if (minValue !== null) {
1008
+ return minValue;
1009
+ }
1010
+ },
1011
+ },
1012
+ },
1013
+ },
1014
+ rowFilterFn: context.filterFn,
1015
+ getRowNodes: context.getRowNodes,
1016
+ };
1017
+ addGroupByParams(groupByParameter === null || groupByParameter === void 0 ? void 0 : groupByParameter.value, aggregationExpressionEvaluation);
1018
+ const result = {
1019
+ name: 'NEWEST',
1020
+ type: 'aggregationScalar',
1021
+ value: aggregationExpressionEvaluation,
1022
+ };
1023
+ return result;
1024
+ },
1025
+ description: 'Aggregates a Date column over multiple rows by computing the most recent of the column values\nOptionally the aggregation may be computed within provided individual groups',
1026
+ signatures: [
1027
+ 'NEWEST( [colName] )',
1028
+ 'NEWEST( COL(name: string))',
1029
+ 'NEWEST( [colNameA], GROUP_BY( [colNameB] ))',
1030
+ 'NEWEST( COL(nameA: string), GROUP_BY( COL(nameB: string)))',
1031
+ ],
1032
+ examples: ['NEWEST([colA])', 'NEWEST([colA], GROUP_BY([colB]))'],
1033
+ category: 'aggregation',
1034
+ inputs: ['date'],
1035
+ },
901
1036
  };
902
1037
  const mapAggregationToCumulation = (aggregationParameter, overColumnParameter, context) => {
903
1038
  const aggregationEvaluation = aggregationParameter.value;
@@ -969,13 +1104,15 @@ const mapAggregationToCumulation = (aggregationParameter, overColumnParameter, c
969
1104
  if ((_a = aggregationEvaluation.context) === null || _a === void 0 ? void 0 : _a.weightParam) {
970
1105
  // weighted average
971
1106
  const weightValue = (_b = context.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, aggregationEvaluation.context.weightParam.value)) !== null && _b !== void 0 ? _b : 0;
972
- cumulationBag.currentValue = cumulationBag.currentValue + rowValue * weightValue;
1107
+ cumulationBag.currentValue =
1108
+ cumulationBag.currentValue + rowValue * weightValue;
973
1109
  cumulationBag.numberOfCumulatedValues =
974
1110
  cumulationBag.numberOfCumulatedValues + weightValue;
975
1111
  }
976
1112
  else {
977
1113
  cumulationBag.currentValue = cumulationBag.currentValue + rowValue;
978
- cumulationBag.numberOfCumulatedValues = cumulationBag.numberOfCumulatedValues + 1;
1114
+ cumulationBag.numberOfCumulatedValues =
1115
+ cumulationBag.numberOfCumulatedValues + 1;
979
1116
  }
980
1117
  }
981
1118
  if (cumulationBag.numberOfCumulatedValues !== 0) {
@@ -279,10 +279,10 @@ const isLastElementMinValue = (values) => {
279
279
  };
280
280
  // useful for functions which do NOT have an initial change (ex. GRID_CHANGE NONE)
281
281
  const getDataChangedInfoStub = (context) => {
282
- var _a;
282
+ var _a, _b;
283
283
  let rowNodeStub;
284
284
  if (!context.filterFn) {
285
- rowNodeStub = context.adaptableApi.gridApi.getFirstRowNode();
285
+ rowNodeStub = (_a = context.node) !== null && _a !== void 0 ? _a : context.adaptableApi.gridApi.getFirstRowNode();
286
286
  }
287
287
  else {
288
288
  // if there is a WHERE clause defined, find the first rowNode which satisfies the condition
@@ -297,7 +297,7 @@ const getDataChangedInfoStub = (context) => {
297
297
  const rowNode = rowNodeStub;
298
298
  if (rowNode) {
299
299
  const primaryKeyValue = context.adaptableApi.gridApi.getPrimaryKeyValueForRowNode(rowNode);
300
- const columnId = (_a = context.adaptableApi.columnApi.getQueryableColumns()[0]) === null || _a === void 0 ? void 0 : _a.columnId;
300
+ const columnId = (_b = context.adaptableApi.columnApi.getQueryableColumns()[0]) === null || _b === void 0 ? void 0 : _b.columnId;
301
301
  const oldValue = context.adaptableApi.gridApi.getCellRawValue(primaryKeyValue, columnId);
302
302
  const column = context.adaptableApi.columnApi.getColumnWithColumnId(columnId);
303
303
  const newValue = oldValue;
@@ -2,6 +2,6 @@ import { ExpressionFunction } from '../../parser/src/types';
2
2
  /**
3
3
  * List of all the Scalar Functions available in AdaptableQL
4
4
  */
5
- export type ScalarFunctionName = 'ADD' | 'SUB' | 'MUL' | 'DIV' | 'MOD' | 'POW' | 'ABS' | 'CEILING' | 'FLOOR' | 'ROUND' | 'MIN' | 'MAX' | 'AVG' | 'DATE' | 'NOW' | 'CURRENT_DAY' | 'DAY' | 'WEEK' | 'MONTH' | 'YEAR' | 'ADD_DAYS' | 'ADD_WEEKS' | 'ADD_MONTHS' | 'ADD_YEARS' | 'DIFF_DAYS' | 'DIFF_WEEKS' | 'DIFF_MONTHS' | 'DIFF_YEARS' | 'SUB_STRING' | 'REPLACE' | 'COALESCE' | 'NULL' | 'LEN' | 'UPPER' | 'LOWER' | 'CONCAT' | 'IF' | 'CASE' | 'COL' | 'VAR' | 'TO_ARRAY' | 'QUERY' | 'IS_BLANK' | 'IS_NOT_BLANK';
5
+ export type ScalarFunctionName = 'ADD' | 'SUB' | 'MUL' | 'DIV' | 'MOD' | 'POW' | 'ABS' | 'CEILING' | 'FLOOR' | 'ROUND' | 'MIN' | 'MAX' | 'AVG' | 'DATE' | 'NOW' | 'CURRENT_DAY' | 'DAY' | 'WEEK' | 'MONTH' | 'YEAR' | 'ADD_DAYS' | 'ADD_WEEKS' | 'ADD_MONTHS' | 'ADD_YEARS' | 'DIFF_DAYS' | 'DIFF_WEEKS' | 'DIFF_MONTHS' | 'DIFF_YEARS' | 'SUB_STRING' | 'REPLACE' | 'COALESCE' | 'NULL' | 'LEN' | 'UPPER' | 'LOWER' | 'CONCAT' | 'IF' | 'CASE' | 'COL' | 'FIELD' | 'VAR' | 'TO_ARRAY' | 'QUERY' | 'IS_BLANK' | 'IS_NOT_BLANK';
6
6
  export declare const scalarExpressionFunctions: Record<ScalarFunctionName, ExpressionFunction>;
7
7
  export declare const scalarExpressionFunctionNames: ScalarFunctionName[];
@@ -72,6 +72,21 @@ exports.scalarExpressionFunctions = {
72
72
  category: 'special',
73
73
  returnType: 'any',
74
74
  },
75
+ FIELD: {
76
+ handler(args, context) {
77
+ var _a, _b;
78
+ const fieldName = args[0];
79
+ if (StringExtensions_1.default.IsNullOrEmpty(fieldName)) {
80
+ throw new ExpressionEvaluationError_1.ExpressionEvaluationError('FIELD', 'requires a field name');
81
+ }
82
+ return (_a = context.adaptableApi) === null || _a === void 0 ? void 0 : _a.internalApi.getValueUsingField((_b = context.node) === null || _b === void 0 ? void 0 : _b.data, fieldName);
83
+ },
84
+ description: 'Returns the value of a row field (not necessarily mapped to a column). If the field is nested, use dot notation (e.g. "nested.fieldName")',
85
+ signatures: ['FIELD(fieldName:string)'],
86
+ examples: ['FIELD("fieldName")', 'FIELD("nested.fieldName")'],
87
+ category: 'special',
88
+ returnType: 'any',
89
+ },
75
90
  QUERY: {
76
91
  handler(args, context) {
77
92
  var _a, _b;
@@ -8,7 +8,8 @@ export declare function checkValidPrimaryKey(adaptable: IAdaptable): boolean;
8
8
  export declare function AdaptableObjectExistsInState(array: AdaptableObject[], itemToCheck: AdaptableObject): boolean;
9
9
  export declare function getAppropriateAccessLevel(adaptableObject: AdaptableObject, moduleAccessLevel: AccessLevel): AccessLevel;
10
10
  export declare function runAdaptableComparerFunction(columnId: string, columnValues: any[], adaptable: IAdaptable): AdaptableComparerFunction;
11
- export declare function addUuidAndSource(adaptableObject: AdaptableObject): AdaptableObject;
11
+ export declare function addUuidAndSource<T extends AdaptableObject>(adaptableObject: T): T;
12
+ export declare function removeUuidAndSource<T extends AdaptableObject>(adaptableObject: T): T;
12
13
  export declare const AdaptableHelper: {
13
14
  initPredefinedConfigWithUuids: typeof initPredefinedConfigWithUuids;
14
15
  checkValidPrimaryKey: typeof checkValidPrimaryKey;
@@ -16,5 +17,6 @@ export declare const AdaptableHelper: {
16
17
  runAdaptableComparerFunction: typeof runAdaptableComparerFunction;
17
18
  getAppropriateAccessLevel: typeof getAppropriateAccessLevel;
18
19
  addUuidAndSource: typeof addUuidAndSource;
20
+ removeUuidAndSource: typeof removeUuidAndSource;
19
21
  };
20
22
  export default AdaptableHelper;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AdaptableHelper = exports.addUuidAndSource = exports.runAdaptableComparerFunction = exports.getAppropriateAccessLevel = exports.AdaptableObjectExistsInState = exports.checkValidPrimaryKey = exports.initPredefinedConfigWithUuids = void 0;
3
+ exports.AdaptableHelper = exports.removeUuidAndSource = exports.addUuidAndSource = exports.runAdaptableComparerFunction = exports.getAppropriateAccessLevel = exports.AdaptableObjectExistsInState = exports.checkValidPrimaryKey = exports.initPredefinedConfigWithUuids = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const cloneDeepWith_1 = tslib_1.__importDefault(require("lodash/cloneDeepWith"));
6
6
  const isPlainObject_1 = tslib_1.__importDefault(require("lodash/isPlainObject"));
@@ -96,6 +96,25 @@ function addUuidAndSource(adaptableObject) {
96
96
  return adaptableObject;
97
97
  }
98
98
  exports.addUuidAndSource = addUuidAndSource;
99
+ function removeUuidAndSource(adaptableObject) {
100
+ const clonedObject = structuredClone(adaptableObject);
101
+ const sanitiseObject = (object) => {
102
+ for (const key in object) {
103
+ if (key === 'Source' || key === 'Uuid') {
104
+ delete object[key];
105
+ }
106
+ else if (Array.isArray(object[key])) {
107
+ object[key].forEach((item) => sanitiseObject(item));
108
+ }
109
+ else if (typeof object[key] === 'object') {
110
+ sanitiseObject(object[key]);
111
+ }
112
+ }
113
+ };
114
+ sanitiseObject(clonedObject);
115
+ return clonedObject;
116
+ }
117
+ exports.removeUuidAndSource = removeUuidAndSource;
99
118
  exports.AdaptableHelper = {
100
119
  initPredefinedConfigWithUuids,
101
120
  checkValidPrimaryKey,
@@ -103,5 +122,6 @@ exports.AdaptableHelper = {
103
122
  runAdaptableComparerFunction,
104
123
  getAppropriateAccessLevel,
105
124
  addUuidAndSource,
125
+ removeUuidAndSource,
106
126
  };
107
127
  exports.default = exports.AdaptableHelper;
@@ -32,9 +32,6 @@ export interface ScreenPopup {
32
32
  [key: string]: any;
33
33
  };
34
34
  }
35
- export interface LoadingPopup {
36
- ShowLoadingPopup: boolean;
37
- }
38
35
  export interface ConfirmationPopup {
39
36
  ShowConfirmationPopup: boolean;
40
37
  Header: string;
@@ -1,26 +1,29 @@
1
1
  import * as Redux from 'redux';
2
2
  import { ModuleParams } from '../View/Components/SharedProps/ModuleViewPopupProps';
3
- import { AdaptableMenuItem } from '../PredefinedConfig/Common/Menu';
3
+ import { AdaptableMenuItem, AdaptableContextMenuItemName, AdaptableColumnMenuItemName } from '../PredefinedConfig/Common/Menu';
4
4
  import { AdaptableModule } from '../PredefinedConfig/Common/Types';
5
5
  import { AdaptableIcon, AdaptableSystemIconName } from '../PredefinedConfig/Common/AdaptableIcon';
6
- export declare class MenuItemDoReduxAction implements AdaptableMenuItem {
7
- constructor(label: string, module: AdaptableModule, reduxAction: Redux.Action, icon: AdaptableSystemIconName, isVisible: boolean);
6
+ export declare class MenuItemDoReduxAction<MENU_TYPE_NAME extends AdaptableColumnMenuItemName | AdaptableContextMenuItemName = AdaptableColumnMenuItemName | AdaptableContextMenuItemName> implements AdaptableMenuItem<MENU_TYPE_NAME> {
7
+ constructor(name: MENU_TYPE_NAME, label: string, module: AdaptableModule, reduxAction: Redux.Action, icon: AdaptableSystemIconName, isVisible: boolean);
8
+ name: MENU_TYPE_NAME;
8
9
  reduxAction: Redux.Action;
9
10
  label: string;
10
11
  module: AdaptableModule;
11
12
  isVisible: boolean;
12
13
  icon: AdaptableIcon;
13
14
  }
14
- export declare class MenuItemDoClickFunction implements AdaptableMenuItem {
15
- constructor(label: string, module: AdaptableModule, clickFunction: () => void, icon: AdaptableSystemIconName, isVisible: boolean);
15
+ export declare class MenuItemDoClickFunction<MENU_TYPE_NAME extends AdaptableColumnMenuItemName | AdaptableContextMenuItemName = AdaptableColumnMenuItemName | AdaptableContextMenuItemName> implements AdaptableMenuItem<MENU_TYPE_NAME> {
16
+ constructor(name: MENU_TYPE_NAME, label: string, module: AdaptableModule, clickFunction: () => void, icon: AdaptableSystemIconName, isVisible: boolean);
17
+ name: MENU_TYPE_NAME;
16
18
  onClick: () => void;
17
19
  label: string;
18
20
  module: AdaptableModule;
19
21
  isVisible: boolean;
20
22
  icon: AdaptableIcon;
21
23
  }
22
- export declare class MenuItemShowPopup implements AdaptableMenuItem {
23
- constructor(label: string, module: AdaptableModule, componentName: string, icon: AdaptableSystemIconName, isVisible: boolean, popupParams?: ModuleParams);
24
+ export declare class MenuItemShowPopup<MENU_TYPE_NAME extends AdaptableColumnMenuItemName | AdaptableContextMenuItemName = AdaptableColumnMenuItemName | AdaptableContextMenuItemName> implements AdaptableMenuItem<MENU_TYPE_NAME> {
25
+ constructor(name: MENU_TYPE_NAME, label: string, module: AdaptableModule, componentName: string, icon: AdaptableSystemIconName, isVisible: boolean, popupParams?: ModuleParams);
26
+ name: MENU_TYPE_NAME;
24
27
  reduxAction: Redux.Action;
25
28
  label: string;
26
29
  module: AdaptableModule;
@@ -5,7 +5,8 @@ const tslib_1 = require("tslib");
5
5
  const PopupRedux = tslib_1.__importStar(require("../Redux/ActionsReducers/PopupRedux"));
6
6
  // A menu item which performs a Redux Action when it is clicke
7
7
  class MenuItemDoReduxAction {
8
- constructor(label, module, reduxAction, icon, isVisible) {
8
+ constructor(name, label, module, reduxAction, icon, isVisible) {
9
+ this.name = name;
9
10
  this.label = label;
10
11
  this.module = module;
11
12
  this.isVisible = isVisible;
@@ -17,7 +18,8 @@ class MenuItemDoReduxAction {
17
18
  }
18
19
  exports.MenuItemDoReduxAction = MenuItemDoReduxAction;
19
20
  class MenuItemDoClickFunction {
20
- constructor(label, module, clickFunction, icon, isVisible) {
21
+ constructor(name, label, module, clickFunction, icon, isVisible) {
22
+ this.name = name;
21
23
  this.label = label;
22
24
  this.module = module;
23
25
  this.isVisible = isVisible;
@@ -30,7 +32,8 @@ class MenuItemDoClickFunction {
30
32
  exports.MenuItemDoClickFunction = MenuItemDoClickFunction;
31
33
  // A menu item which shows a popup screen when it is clieked
32
34
  class MenuItemShowPopup {
33
- constructor(label, module, componentName, icon, isVisible, popupParams) {
35
+ constructor(name, label, module, componentName, icon, isVisible, popupParams) {
36
+ this.name = name;
34
37
  this.label = label;
35
38
  this.module = module;
36
39
  this.isVisible = isVisible;
@@ -21,14 +21,14 @@ import { Shortcut } from '../PredefinedConfig/ShortcutState';
21
21
  import { IPushPullReport } from '../PredefinedConfig/SystemState';
22
22
  import { NotificationsOptions } from '../AdaptableOptions/NotificationsOptions';
23
23
  import { CellSummmary } from '../PredefinedConfig/Common/CellSummary';
24
- import { AdaptableTheme, BaseContext, ChartDefinition, ColumnFilter, CommentThread, CustomDisplayFormatterContext, FlashingCellDefinition, GridDataChangedInfo, SystemFilterPredicateId } from '../types';
24
+ import { AdaptableTheme, BaseContext, ChartDefinition, ColumnFilter, CommentThread, CustomDisplayFormatterContext, FlashingCellDefinition, GridDataChangedInfo, SpecialColumnSettings, SystemFilterPredicateId } from '../types';
25
25
  import { IRowNode } from '@ag-grid-community/core';
26
26
  import { AdaptableApi, AdaptableComment, BadgeStyleDefinition, CellAddress, NamedQuery } from '../../types';
27
27
  import { ToastOptions } from '../components/Toastify';
28
28
  import { StyledColumn } from '../PredefinedConfig/StyledColumnState';
29
29
  export declare function CreateEmptyCustomSort(): CustomSort;
30
30
  export declare function CreateAdaptableComment(text: string, api: AdaptableApi): AdaptableComment;
31
- export declare function CreateEmptyCalculatedColumn(): CalculatedColumn;
31
+ export declare function CreateEmptyCalculatedColumn(defaultSpecialColumnSettings: Partial<SpecialColumnSettings>): CalculatedColumn;
32
32
  export declare function CreateEmptyNamedQuery(expression?: string): NamedQuery;
33
33
  export declare function CreateEmptyPlusMinusNudge(): PlusMinusNudge;
34
34
  export declare function CreateGenericAlert(alertHeader: string, alertMessage: string, alertDefinition: AlertDefinition): AdaptableGenericAlert;
@@ -51,7 +51,7 @@ export declare function CreateReportSchedule(reportName: string): ReportSchedule
51
51
  export declare function CreateEmptySchedule(): Schedule;
52
52
  export declare function CreateEmptyShortcut(): Shortcut;
53
53
  export declare function CreateEmptyFormatColumn(): FormatColumn;
54
- export declare function CreateEmptyFreeTextColumn(): FreeTextColumn;
54
+ export declare function CreateEmptyFreeTextColumn(defaultSpecialColumnSettings: Partial<SpecialColumnSettings>): FreeTextColumn;
55
55
  export declare function CreateEmptyLayout(layout?: Partial<Layout> & {
56
56
  Name: string;
57
57
  }, adaptableColumns?: AdaptableColumn[]): Layout;
@@ -23,7 +23,7 @@ function CreateAdaptableComment(text, api) {
23
23
  return comment;
24
24
  }
25
25
  exports.CreateAdaptableComment = CreateAdaptableComment;
26
- function CreateEmptyCalculatedColumn() {
26
+ function CreateEmptyCalculatedColumn(defaultSpecialColumnSettings) {
27
27
  return {
28
28
  Uuid: (0, Uuid_1.createUuid)(),
29
29
  ColumnId: GeneralConstants_1.EMPTY_STRING,
@@ -31,17 +31,7 @@ function CreateEmptyCalculatedColumn() {
31
31
  ScalarExpression: GeneralConstants_1.EMPTY_STRING,
32
32
  },
33
33
  // need to create some defaults - which we will change later
34
- CalculatedColumnSettings: {
35
- DataType: undefined,
36
- Filterable: true,
37
- Resizable: true,
38
- Groupable: false,
39
- Sortable: true,
40
- Pivotable: false,
41
- Aggregatable: false,
42
- SuppressMenu: false,
43
- SuppressMovable: false,
44
- },
34
+ CalculatedColumnSettings: Object.assign(Object.assign({}, defaultSpecialColumnSettings), { DataType: undefined }),
45
35
  };
46
36
  }
47
37
  exports.CreateEmptyCalculatedColumn = CreateEmptyCalculatedColumn;
@@ -270,27 +260,18 @@ function CreateEmptyFormatColumn() {
270
260
  Style: CreateEmptyStyle(),
271
261
  DisplayFormat: undefined,
272
262
  CellAlignment: undefined,
263
+ RowScope: undefined,
273
264
  };
274
265
  }
275
266
  exports.CreateEmptyFormatColumn = CreateEmptyFormatColumn;
276
- function CreateEmptyFreeTextColumn() {
267
+ function CreateEmptyFreeTextColumn(defaultSpecialColumnSettings) {
277
268
  return {
278
269
  Uuid: (0, Uuid_1.createUuid)(),
279
270
  ColumnId: GeneralConstants_1.EMPTY_STRING,
280
271
  DefaultValue: GeneralConstants_1.EMPTY_STRING,
281
272
  FreeTextStoredValues: [],
282
273
  TextEditor: 'Inline',
283
- FreeTextColumnSettings: {
284
- DataType: 'String',
285
- Filterable: true,
286
- Resizable: true,
287
- Groupable: false,
288
- Sortable: true,
289
- Pivotable: false,
290
- Aggregatable: false,
291
- SuppressMenu: false,
292
- SuppressMovable: false,
293
- },
274
+ FreeTextColumnSettings: Object.assign(Object.assign({}, defaultSpecialColumnSettings), { DataType: 'String' }),
294
275
  };
295
276
  }
296
277
  exports.CreateEmptyFreeTextColumn = CreateEmptyFreeTextColumn;
@@ -333,6 +314,8 @@ function CreateEmptyCellSummmary() {
333
314
  Max: undefined,
334
315
  Min: undefined,
335
316
  Count: undefined,
317
+ Newest: undefined,
318
+ Oldest: undefined,
336
319
  Std_Deviation: undefined,
337
320
  Only: undefined,
338
321
  };
@@ -352,7 +335,6 @@ function CreateEmptyStyledColumn() {
352
335
  return {
353
336
  Uuid: (0, Uuid_1.createUuid)(),
354
337
  ColumnId: GeneralConstants_1.EMPTY_STRING,
355
- IncludeGroupedRows: false,
356
338
  };
357
339
  }
358
340
  exports.CreateEmptyStyledColumn = CreateEmptyStyledColumn;
@@ -22,5 +22,6 @@ export declare class AggregatedScalarLiveValue {
22
22
  getAllAggregationValues(): number[];
23
23
  private getAggregationValue;
24
24
  getGlobalAggregatedValue(): any;
25
+ private getRowNodeValueForColumnId;
25
26
  private computeAggregatedValue;
26
27
  }
@@ -63,7 +63,7 @@ class AggregatedScalarLiveValue {
63
63
  var _a, _b;
64
64
  if ((_a = this.expressionEvaluation.aggregationParams.groupBy) === null || _a === void 0 ? void 0 : _a.length) {
65
65
  const groupColumns = this.expressionEvaluation.aggregationParams.groupBy.map((groupByParam) => groupByParam.field);
66
- const groupKeys = groupColumns.map((groupColumnName) => this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, groupColumnName));
66
+ const groupKeys = groupColumns.map((groupColumnName) => this.getRowNodeValueForColumnId(rowNode, groupColumnName));
67
67
  return (_b = this.aggregationResult.deepMap.get(groupKeys)) === null || _b === void 0 ? void 0 : _b.reducerResults[this.aggregationReducerName];
68
68
  }
69
69
  return this.getGlobalAggregatedValue();
@@ -71,6 +71,11 @@ class AggregatedScalarLiveValue {
71
71
  getGlobalAggregatedValue() {
72
72
  return this.aggregationResult.reducerResults[this.aggregationReducerName];
73
73
  }
74
+ getRowNodeValueForColumnId(rowNode, columnId) {
75
+ const rawValue = this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, columnId);
76
+ // we need to convert the Date object to a number, otherwise the grouping will not work (each Date instance is unique)
77
+ return rawValue instanceof Date ? rawValue.getTime() : rawValue;
78
+ }
74
79
  computeAggregatedValue(expressionEvaluation) {
75
80
  var _a;
76
81
  const gridRowNodes = expressionEvaluation.getRowNodes
@@ -80,18 +85,16 @@ class AggregatedScalarLiveValue {
80
85
  });
81
86
  // we iterate over the RowNode list (we need this to handle complex column values (nested values, valueGetters etc)
82
87
  // so we will map the fieldNames to RowNode.data
83
- const mapReducerValueGetter = (fieldName) => {
84
- return (rowNode) => {
85
- return this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, fieldName);
86
- };
88
+ const mapReducerValueGetter = (columnId) => {
89
+ return (rowNode) => this.getRowNodeValueForColumnId(rowNode, columnId);
87
90
  };
88
91
  Object.values(expressionEvaluation.aggregationParams.reducers).forEach((aggregationReducer) => {
89
92
  aggregationReducer.getter = mapReducerValueGetter(aggregationReducer.field);
90
93
  // nullify the field to force the fallback on the getter fn
91
94
  aggregationReducer.field = null;
92
95
  });
93
- const mapGroupByToKey = (fieldName) => {
94
- return (_unusableProperty, rowNode) => this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, fieldName);
96
+ const mapGroupByToKey = (columnId) => {
97
+ return (_unusableProperty, rowNode) => this.getRowNodeValueForColumnId(rowNode, columnId);
95
98
  };
96
99
  (_a = expressionEvaluation.aggregationParams.groupBy) === null || _a === void 0 ? void 0 : _a.forEach((groupByDef) => {
97
100
  groupByDef.toKey = mapGroupByToKey(groupByDef.field);
@@ -99,11 +102,10 @@ class AggregatedScalarLiveValue {
99
102
  let aggregatedRowNodes = gridRowNodes;
100
103
  if (expressionEvaluation.sortByColumn) {
101
104
  const sortByColumn = expressionEvaluation.sortByColumn;
102
- const getRowNodeValue = (rowNode, columnId) => this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, columnId);
103
105
  // currently, we support only ascending sorting
104
106
  aggregatedRowNodes.sort((first, second) => {
105
- const firstValue = getRowNodeValue(first, sortByColumn);
106
- const secondValue = getRowNodeValue(second, sortByColumn);
107
+ const firstValue = this.getRowNodeValueForColumnId(first, sortByColumn);
108
+ const secondValue = this.getRowNodeValueForColumnId(second, sortByColumn);
107
109
  if (firstValue < secondValue) {
108
110
  return -1;
109
111
  }