@adaptabletools/adaptable 18.0.0-canary.8 → 18.0.0

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 (439) 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 +10 -4
  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 +15 -14
  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} +36 -26
  30. package/src/Api/CommentApi.d.ts +20 -22
  31. package/src/Api/ConfigApi.d.ts +4 -5
  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 +1 -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 +35 -3
  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 +45 -15
  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 +12 -0
  55. package/src/Api/Implementation/ColumnScopeApiImpl.d.ts +33 -0
  56. package/src/Api/Implementation/{ScopeApiImpl.js → ColumnScopeApiImpl.js} +65 -19
  57. package/src/Api/Implementation/CommentsApiImpl.d.ts +8 -5
  58. package/src/Api/Implementation/CommentsApiImpl.js +10 -5
  59. package/src/Api/Implementation/ConfigApiImpl.d.ts +2 -2
  60. package/src/Api/Implementation/ConfigApiImpl.js +27 -28
  61. package/src/Api/Implementation/ContextMenuApiImpl.d.ts +7 -0
  62. package/src/Api/Implementation/ContextMenuApiImpl.js +9 -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 -1
  72. package/src/Api/Implementation/GridApiImpl.js +63 -9
  73. package/src/Api/Implementation/LayoutApiImpl.d.ts +4 -11
  74. package/src/Api/Implementation/LayoutApiImpl.js +20 -28
  75. package/src/Api/Implementation/NoteApiImpl.d.ts +18 -0
  76. package/src/Api/Implementation/NoteApiImpl.js +40 -0
  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 +11 -17
  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 +7 -1
  97. package/src/Api/Internal/CommentsInternalApi.d.ts +4 -0
  98. package/src/Api/Internal/CommentsInternalApi.js +14 -0
  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 +38 -30
  109. package/src/Api/Internal/FreeTextColumnInternalApi.js +5 -4
  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/NoteInternalApi.js +14 -0
  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 +15 -15
  128. package/src/Api/NoteApi.d.ts +48 -0
  129. package/src/Api/NoteApi.js +1 -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/AdaptableColumn.d.ts +4 -0
  136. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  137. package/src/PredefinedConfig/Common/AdaptableObject.d.ts +4 -4
  138. package/src/PredefinedConfig/Common/AdaptablePredicate.d.ts +2 -2
  139. package/src/PredefinedConfig/Common/CellSummary.d.ts +5 -14
  140. package/src/PredefinedConfig/Common/{AdaptableScope.d.ts → ColumnScope.d.ts} +4 -1
  141. package/src/PredefinedConfig/Common/ColumnScope.js +1 -0
  142. package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +1 -5
  143. package/src/PredefinedConfig/Common/Enums.d.ts +4 -1
  144. package/src/PredefinedConfig/Common/Enums.js +3 -0
  145. package/src/PredefinedConfig/Common/Fdc3Intent.d.ts +2 -2
  146. package/src/PredefinedConfig/Common/Menu.d.ts +39 -4
  147. package/src/PredefinedConfig/Common/Menu.js +125 -1
  148. package/src/PredefinedConfig/Common/RowScope.d.ts +17 -0
  149. package/src/PredefinedConfig/Common/RowScope.js +1 -0
  150. package/src/PredefinedConfig/Common/RowSummary.d.ts +21 -0
  151. package/src/PredefinedConfig/Common/RowSummary.js +17 -0
  152. package/src/PredefinedConfig/Common/TransposeConfig.d.ts +30 -0
  153. package/src/PredefinedConfig/Common/TransposeConfig.js +1 -0
  154. package/src/PredefinedConfig/Common/Types.d.ts +4 -4
  155. package/src/PredefinedConfig/Common/Types.js +4 -1
  156. package/src/PredefinedConfig/ExportState.d.ts +2 -2
  157. package/src/PredefinedConfig/FlashingCellState.d.ts +2 -2
  158. package/src/PredefinedConfig/FormatColumnState.d.ts +9 -5
  159. package/src/PredefinedConfig/LayoutState.d.ts +6 -1
  160. package/src/PredefinedConfig/{NotesState.d.ts → NoteState.d.ts} +4 -4
  161. package/src/PredefinedConfig/NoteState.js +1 -0
  162. package/src/PredefinedConfig/PlusMinusState.d.ts +2 -2
  163. package/src/PredefinedConfig/PopupState.d.ts +1 -2
  164. package/src/PredefinedConfig/PredefinedConfig.d.ts +2 -2
  165. package/src/PredefinedConfig/Selection/GridCell.d.ts +13 -0
  166. package/src/PredefinedConfig/ShortcutState.d.ts +2 -2
  167. package/src/PredefinedConfig/StyledColumnState.d.ts +5 -5
  168. package/src/PredefinedConfig/SystemState.d.ts +12 -4
  169. package/src/Redux/ActionsReducers/CommentsRedux.d.ts +0 -4
  170. package/src/Redux/ActionsReducers/CommentsRedux.js +0 -34
  171. package/src/Redux/ActionsReducers/LayoutRedux.d.ts +9 -0
  172. package/src/Redux/ActionsReducers/LayoutRedux.js +32 -10
  173. package/src/Redux/ActionsReducers/NoteRedux.d.ts +38 -0
  174. package/src/Redux/ActionsReducers/{NotesRedux.js → NoteRedux.js} +24 -24
  175. package/src/Redux/ActionsReducers/PopupRedux.d.ts +5 -13
  176. package/src/Redux/ActionsReducers/PopupRedux.js +0 -19
  177. package/src/Redux/ActionsReducers/SystemRedux.d.ts +15 -4
  178. package/src/Redux/ActionsReducers/SystemRedux.js +24 -9
  179. package/src/Redux/Store/AdaptableStore.js +48 -30
  180. package/src/Redux/Store/Interface/IAdaptableStore.d.ts +2 -2
  181. package/src/Strategy/AdaptableModuleBase.d.ts +10 -10
  182. package/src/Strategy/AdaptableModuleBase.js +13 -16
  183. package/src/Strategy/AlertModule.d.ts +3 -2
  184. package/src/Strategy/AlertModule.js +4 -4
  185. package/src/Strategy/BulkUpdateModule.d.ts +3 -2
  186. package/src/Strategy/BulkUpdateModule.js +2 -1
  187. package/src/Strategy/CalculatedColumnModule.d.ts +3 -4
  188. package/src/Strategy/CalculatedColumnModule.js +18 -14
  189. package/src/Strategy/CellSummaryModule.d.ts +10 -9
  190. package/src/Strategy/CellSummaryModule.js +101 -83
  191. package/src/Strategy/ColumnFilterModule.d.ts +3 -3
  192. package/src/Strategy/ColumnFilterModule.js +36 -57
  193. package/src/Strategy/ColumnInfoModule.d.ts +3 -3
  194. package/src/Strategy/ColumnInfoModule.js +6 -4
  195. package/src/Strategy/CommentModule.d.ts +12 -0
  196. package/src/Strategy/CommentModule.js +70 -0
  197. package/src/Strategy/CustomSortModule.d.ts +1 -2
  198. package/src/Strategy/CustomSortModule.js +3 -2
  199. package/src/Strategy/DashboardModule.d.ts +3 -3
  200. package/src/Strategy/DashboardModule.js +11 -21
  201. package/src/Strategy/DataImportModule.d.ts +4 -4
  202. package/src/Strategy/DataImportModule.js +8 -8
  203. package/src/Strategy/ExportModule.d.ts +1 -2
  204. package/src/Strategy/ExportModule.js +58 -44
  205. package/src/Strategy/Fdc3Module.d.ts +1 -1
  206. package/src/Strategy/Fdc3Module.js +3 -13
  207. package/src/Strategy/FlashingCellModule.d.ts +4 -3
  208. package/src/Strategy/FlashingCellModule.js +10 -10
  209. package/src/Strategy/FormatColumnModule.d.ts +1 -1
  210. package/src/Strategy/FormatColumnModule.js +29 -47
  211. package/src/Strategy/FreeTextColumnModule.d.ts +1 -2
  212. package/src/Strategy/FreeTextColumnModule.js +2 -2
  213. package/src/Strategy/GridInfoModule.d.ts +3 -3
  214. package/src/Strategy/GridInfoModule.js +5 -3
  215. package/src/Strategy/Interface/IModule.d.ts +4 -4
  216. package/src/Strategy/LayoutModule.d.ts +4 -3
  217. package/src/Strategy/LayoutModule.js +71 -72
  218. package/src/Strategy/NoteModule.d.ts +10 -0
  219. package/src/Strategy/NoteModule.js +55 -0
  220. package/src/Strategy/PlusMinusModule.d.ts +1 -2
  221. package/src/Strategy/PlusMinusModule.js +5 -5
  222. package/src/Strategy/SettingsPanelModule.d.ts +3 -3
  223. package/src/Strategy/SettingsPanelModule.js +6 -6
  224. package/src/Strategy/ShortcutModule.js +1 -1
  225. package/src/Strategy/SmartEditModule.d.ts +3 -2
  226. package/src/Strategy/SmartEditModule.js +2 -1
  227. package/src/Strategy/StyledColumnModule.d.ts +2 -1
  228. package/src/Strategy/StyledColumnModule.js +42 -22
  229. package/src/Strategy/SystemStatusModule.d.ts +3 -3
  230. package/src/Strategy/SystemStatusModule.js +6 -3
  231. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +4 -2
  232. package/src/Strategy/Utilities/getScopeViewItems.d.ts +2 -2
  233. package/src/Strategy/Utilities/getScopeViewItems.js +3 -0
  234. package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
  235. package/src/Utilities/Constants/GeneralConstants.js +1 -0
  236. package/src/Utilities/Constants/ModuleConstants.d.ts +6 -6
  237. package/src/Utilities/Constants/ModuleConstants.js +6 -6
  238. package/src/Utilities/Defaults/DefaultSettingsPanel.js +2 -2
  239. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +3 -2
  240. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +433 -3
  241. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -3
  242. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +1 -1
  243. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -1
  244. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +15 -0
  245. package/src/Utilities/Extensions/ArrayExtensions.d.ts +2 -0
  246. package/src/Utilities/Extensions/ArrayExtensions.js +4 -0
  247. package/src/Utilities/Helpers/AdaptableHelper.d.ts +3 -1
  248. package/src/Utilities/Helpers/AdaptableHelper.js +19 -0
  249. package/src/Utilities/Interface/MessagePopups.d.ts +0 -3
  250. package/src/Utilities/MenuItem.d.ts +10 -7
  251. package/src/Utilities/MenuItem.js +6 -3
  252. package/src/Utilities/ObjectFactory.d.ts +3 -3
  253. package/src/Utilities/ObjectFactory.js +7 -25
  254. package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +4 -2
  255. package/src/Utilities/Services/AggregatedScalarLiveValue.js +23 -18
  256. package/src/Utilities/Services/CellPopupService.js +4 -4
  257. package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +1 -1
  258. package/src/Utilities/Services/Interface/IReportService.d.ts +1 -4
  259. package/src/Utilities/Services/LicenseService/index.js +1 -190
  260. package/src/Utilities/Services/ModuleService.js +6 -2
  261. package/src/Utilities/Services/QueryLanguageService.d.ts +1 -1
  262. package/src/Utilities/Services/QueryLanguageService.js +4 -3
  263. package/src/Utilities/Services/ReportService.d.ts +7 -5
  264. package/src/Utilities/Services/ReportService.js +245 -26
  265. package/src/Utilities/Services/RowSummaryService.d.ts +26 -0
  266. package/src/Utilities/Services/RowSummaryService.js +155 -0
  267. package/src/Utilities/Services/ValidationService.js +2 -2
  268. package/src/Utilities/adaptableQlUtils.d.ts +2 -0
  269. package/src/Utilities/adaptableQlUtils.js +14 -0
  270. package/src/Utilities/license/decode.js +1 -65
  271. package/src/Utilities/license/hashing.js +1 -43
  272. package/src/View/AdaptableViewFactory.js +2 -2
  273. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +1 -1
  274. package/src/View/Alert/AlertEntityRow.js +1 -1
  275. package/src/View/Alert/Utilities/getAvailablePredicates.d.ts +2 -2
  276. package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +1 -1
  277. package/src/View/Alert/Wizard/AlertScopeWizardSection.js +2 -2
  278. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +1 -1
  279. package/src/View/BulkUpdate/BulkUpdatePopup.js +2 -2
  280. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.d.ts +1 -1
  281. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +3 -3
  282. package/src/View/ColumnInfo/ColumnInfo.js +1 -1
  283. package/src/View/Comments/CommentsEditor.js +28 -17
  284. package/src/View/Comments/CommentsPopup.js +15 -7
  285. package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
  286. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.d.ts +5 -0
  287. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.js +42 -0
  288. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +5 -2
  289. package/src/View/Components/CellPopup/index.d.ts +1 -0
  290. package/src/View/Components/CellPopup/index.js +6 -3
  291. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.d.ts +3 -3
  292. package/src/View/Components/EntityRulesEditor/index.d.ts +3 -3
  293. package/src/View/Components/FilterForm/FilterForm.js +20 -12
  294. package/src/View/Components/FilterForm/QuickFilterForm.js +15 -8
  295. package/src/View/Components/FilterForm/QuickFilterValues.js +39 -23
  296. package/src/View/Components/NewScopeComponent.d.ts +5 -5
  297. package/src/View/Components/NewScopeComponent.js +36 -3
  298. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +4 -1
  299. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +10 -1
  300. package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +7 -10
  301. package/src/View/Components/RangesComponent.d.ts +2 -2
  302. package/src/View/Components/RangesComponent.js +1 -1
  303. package/src/View/Components/Selectors/PermittedValuesSelector.js +1 -1
  304. package/src/View/Components/SharedProps/WizardScopeState.d.ts +2 -2
  305. package/src/View/Components/ValueSelector/index.d.ts +1 -0
  306. package/src/View/Components/ValueSelector/index.js +2 -2
  307. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +1 -1
  308. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +4 -2
  309. package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -1
  310. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +2 -2
  311. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +20 -7
  312. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +1 -1
  313. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +1 -1
  314. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +27 -12
  315. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +1 -1
  316. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +1 -1
  317. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +3 -1
  318. package/src/View/GridFilter/GridFilterViewPanel.js +3 -3
  319. package/src/View/GridFilter/useGridFilterExpressionEditor.js +1 -1
  320. package/src/View/Layout/LayoutViewPanel.js +2 -1
  321. package/src/View/Layout/TransposedPopup.js +27 -25
  322. package/src/View/Layout/Wizard/LayoutWizard.js +38 -3
  323. package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
  324. package/src/View/Layout/Wizard/sections/FilterSection.js +1 -1
  325. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +18 -2
  326. package/src/View/Layout/Wizard/sections/RowSummarySection.d.ts +9 -0
  327. package/src/View/Layout/Wizard/sections/RowSummarySection.js +174 -0
  328. package/src/View/License/LicenseWatermark.js +1 -61
  329. package/src/View/Note/NotePopup.d.ts +2 -0
  330. package/src/View/{Notes/NotesPopup.js → Note/NotePopup.js} +14 -9
  331. package/src/View/PlusMinus/PlusMinusSummary.js +2 -2
  332. package/src/View/SmartEdit/SmartEditPopup.js +1 -1
  333. package/src/View/SpecialColumnSettingsWizardStep.js +4 -4
  334. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +5 -7
  335. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +1 -1
  336. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
  337. package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.js +38 -14
  338. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +1 -1
  339. package/src/agGrid/ActionColumnRenderer.js +40 -4
  340. package/src/agGrid/AdaptableAgGrid.d.ts +21 -12
  341. package/src/agGrid/AdaptableAgGrid.js +313 -225
  342. package/src/agGrid/AgGridAdapter.d.ts +5 -2
  343. package/src/agGrid/AgGridAdapter.js +20 -0
  344. package/src/agGrid/AgGridColumnAdapter.d.ts +1 -3
  345. package/src/agGrid/AgGridColumnAdapter.js +52 -70
  346. package/src/agGrid/AgGridMenuAdapter.d.ts +25 -8
  347. package/src/agGrid/AgGridMenuAdapter.js +405 -74
  348. package/src/agGrid/AgGridOptionsService.d.ts +4 -1
  349. package/src/agGrid/AgGridOptionsService.js +22 -0
  350. package/src/agGrid/BadgeRenderer.d.ts +2 -2
  351. package/src/agGrid/BadgeRenderer.js +24 -11
  352. package/src/agGrid/PercentBarRenderer.js +2 -1
  353. package/src/agGrid/buildSortedColumnStateForLayout.d.ts +7 -0
  354. package/src/agGrid/buildSortedColumnStateForLayout.js +120 -0
  355. package/src/agGrid/defaultAdaptableOptions.js +7 -12
  356. package/src/agGrid/editors/AdaptableDateEditor/index.d.ts +1 -1
  357. package/src/agGrid/editors/AdaptableDateEditor/index.js +1 -1
  358. package/src/agGrid/editors/AdaptableNumberEditor/index.d.ts +2 -2
  359. package/src/agGrid/sortColumnStateForVisibleColumns.d.ts +12 -0
  360. package/src/agGrid/sortColumnStateForVisibleColumns.js +46 -0
  361. package/src/agGrid/weightedAverage.d.ts +0 -2
  362. package/src/agGrid/weightedAverage.js +0 -54
  363. package/src/components/Accordion.d.ts +7 -0
  364. package/src/components/Accordion.js +36 -0
  365. package/src/components/CheckBox/index.js +1 -1
  366. package/src/components/ColorPicker/ColorPicker.d.ts +1 -1
  367. package/src/components/Datepicker/index.d.ts +1 -1
  368. package/src/components/Datepicker/index.js +10 -2
  369. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +2 -1
  370. package/src/components/ExpressionEditor/QueryBuilder/utils.d.ts +0 -1
  371. package/src/components/ExpressionEditor/QueryBuilder/utils.js +1 -14
  372. package/src/components/Input/index.d.ts +1 -2
  373. package/src/components/List/ListGroupItem/index.d.ts +1 -1
  374. package/src/components/ProgressIndicator/ProgressIndicator.js +15 -6
  375. package/src/components/Select/Select.d.ts +1 -1
  376. package/src/components/Select/Select.js +3 -1
  377. package/src/components/Textarea/index.d.ts +2 -2
  378. package/src/components/icons/collapse-all.d.ts +3 -0
  379. package/src/components/icons/collapse-all.js +4 -0
  380. package/src/components/icons/copy.d.ts +3 -0
  381. package/src/components/icons/copy.js +4 -0
  382. package/src/components/icons/csv.d.ts +3 -0
  383. package/src/components/icons/csv.js +4 -0
  384. package/src/components/icons/data-object.d.ts +3 -0
  385. package/src/components/icons/data-object.js +4 -0
  386. package/src/components/icons/excel.d.ts +3 -0
  387. package/src/components/icons/excel.js +5 -0
  388. package/src/components/icons/expand-all.d.ts +3 -0
  389. package/src/components/icons/expand-all.js +4 -0
  390. package/src/components/icons/filter-off.d.ts +3 -0
  391. package/src/components/icons/filter-off.js +4 -0
  392. package/src/components/icons/grid-info.d.ts +3 -0
  393. package/src/components/icons/grid-info.js +4 -0
  394. package/src/components/icons/index.js +24 -0
  395. package/src/components/icons/note.js +2 -2
  396. package/src/components/icons/rows.d.ts +3 -0
  397. package/src/components/icons/rows.js +4 -0
  398. package/src/components/icons/select-all.d.ts +3 -0
  399. package/src/components/icons/select-all.js +4 -0
  400. package/src/components/icons/select-fwd.d.ts +3 -0
  401. package/src/components/icons/select-fwd.js +4 -0
  402. package/src/components/icons/select-off.d.ts +3 -0
  403. package/src/components/icons/select-off.js +4 -0
  404. package/src/env.js +2 -2
  405. package/src/metamodel/adaptable.metamodel.d.ts +230 -116
  406. package/src/metamodel/adaptable.metamodel.js +1 -9408
  407. package/src/parser/src/parser.js +576 -553
  408. package/src/parser/src/predicate/mapExpressionToQlPredicate.js +1 -1
  409. package/src/parser/src/predicate/mapQlPredicateToExpression.js +3 -4
  410. package/src/parser/src/types.d.ts +7 -2
  411. package/src/parser/src/types.js +1 -2
  412. package/src/types.d.ts +32 -25
  413. package/tsconfig.esm.tsbuildinfo +1 -1
  414. package/src/AdaptableOptions/MenuOptions.d.ts +0 -234
  415. package/src/AdaptableOptions/MenuOptions.js +0 -95
  416. package/src/Api/Events/CommentsChangedInfo.d.ts +0 -5
  417. package/src/Api/Implementation/NotesApiImpl.d.ts +0 -14
  418. package/src/Api/Implementation/NotesApiImpl.js +0 -35
  419. package/src/Api/Implementation/ScopeApiImpl.d.ts +0 -31
  420. package/src/Api/NotesApi.d.ts +0 -48
  421. package/src/PredefinedConfig/CellAddress.d.ts +0 -13
  422. package/src/PredefinedConfig/CellAddress.js +0 -4
  423. package/src/Redux/ActionsReducers/NotesRedux.d.ts +0 -38
  424. package/src/Strategy/CommentsModule.d.ts +0 -17
  425. package/src/Strategy/CommentsModule.js +0 -78
  426. package/src/Strategy/NotesModule.d.ts +0 -10
  427. package/src/Strategy/NotesModule.js +0 -57
  428. package/src/View/Components/ScopeComponent.d.ts +0 -24
  429. package/src/View/Components/ScopeComponent.js +0 -133
  430. package/src/View/Export/Wizard/ReportScopeWizard.d.ts +0 -17
  431. package/src/View/Export/Wizard/ReportScopeWizard.js +0 -47
  432. package/src/View/Notes/NotesPopup.d.ts +0 -2
  433. /package/src/{Api/Events/CommentsChangedInfo.js → AdaptableOptions/ColumnMenuOptions.js} +0 -0
  434. /package/src/{Api/NotesApi.js → AdaptableOptions/ContextMenuOptions.js} +0 -0
  435. /package/src/Api/{ScopeApi.js → ColumnMenuApi.js} +0 -0
  436. /package/src/{PredefinedConfig/Common/AdaptableScope.js → Api/ColumnScopeApi.js} +0 -0
  437. /package/src/{PredefinedConfig/NotesState.js → Api/ContextMenuApi.js} +0 -0
  438. /package/src/View/{Notes → Note}/NoteEditor.d.ts +0 -0
  439. /package/src/View/{Notes → Note}/NoteEditor.js +0 -0
@@ -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;
@@ -86,6 +86,24 @@ export function addUuidAndSource(adaptableObject) {
86
86
  adaptableObject.Source = 'User';
87
87
  return adaptableObject;
88
88
  }
89
+ export function removeUuidAndSource(adaptableObject) {
90
+ const clonedObject = structuredClone(adaptableObject);
91
+ const sanitiseObject = (object) => {
92
+ for (const key in object) {
93
+ if (key === 'Source' || key === 'Uuid') {
94
+ delete object[key];
95
+ }
96
+ else if (Array.isArray(object[key])) {
97
+ object[key].forEach((item) => sanitiseObject(item));
98
+ }
99
+ else if (typeof object[key] === 'object') {
100
+ sanitiseObject(object[key]);
101
+ }
102
+ }
103
+ };
104
+ sanitiseObject(clonedObject);
105
+ return clonedObject;
106
+ }
89
107
  export const AdaptableHelper = {
90
108
  initPredefinedConfigWithUuids,
91
109
  checkValidPrimaryKey,
@@ -93,5 +111,6 @@ export const AdaptableHelper = {
93
111
  runAdaptableComparerFunction,
94
112
  getAppropriateAccessLevel,
95
113
  addUuidAndSource,
114
+ removeUuidAndSource,
96
115
  };
97
116
  export default 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;
@@ -1,7 +1,8 @@
1
1
  import * as PopupRedux from '../Redux/ActionsReducers/PopupRedux';
2
2
  // A menu item which performs a Redux Action when it is clicke
3
3
  export class MenuItemDoReduxAction {
4
- constructor(label, module, reduxAction, icon, isVisible) {
4
+ constructor(name, label, module, reduxAction, icon, isVisible) {
5
+ this.name = name;
5
6
  this.label = label;
6
7
  this.module = module;
7
8
  this.isVisible = isVisible;
@@ -12,7 +13,8 @@ export class MenuItemDoReduxAction {
12
13
  }
13
14
  }
14
15
  export class MenuItemDoClickFunction {
15
- constructor(label, module, clickFunction, icon, isVisible) {
16
+ constructor(name, label, module, clickFunction, icon, isVisible) {
17
+ this.name = name;
16
18
  this.label = label;
17
19
  this.module = module;
18
20
  this.isVisible = isVisible;
@@ -24,7 +26,8 @@ export class MenuItemDoClickFunction {
24
26
  }
25
27
  // A menu item which shows a popup screen when it is clieked
26
28
  export class MenuItemShowPopup {
27
- constructor(label, module, componentName, icon, isVisible, popupParams) {
29
+ constructor(name, label, module, componentName, icon, isVisible, popupParams) {
30
+ this.name = name;
28
31
  this.label = label;
29
32
  this.module = module;
30
33
  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;
@@ -18,7 +18,7 @@ export function CreateAdaptableComment(text, api) {
18
18
  };
19
19
  return comment;
20
20
  }
21
- export function CreateEmptyCalculatedColumn() {
21
+ export function CreateEmptyCalculatedColumn(defaultSpecialColumnSettings) {
22
22
  return {
23
23
  Uuid: createUuid(),
24
24
  ColumnId: EMPTY_STRING,
@@ -26,17 +26,7 @@ export function CreateEmptyCalculatedColumn() {
26
26
  ScalarExpression: EMPTY_STRING,
27
27
  },
28
28
  // need to create some defaults - which we will change later
29
- CalculatedColumnSettings: {
30
- DataType: undefined,
31
- Filterable: false,
32
- Resizable: false,
33
- Groupable: false,
34
- Sortable: false,
35
- Pivotable: false,
36
- Aggregatable: false,
37
- SuppressMenu: false,
38
- SuppressMovable: false,
39
- },
29
+ CalculatedColumnSettings: Object.assign(Object.assign({}, defaultSpecialColumnSettings), { DataType: undefined }),
40
30
  };
41
31
  }
42
32
  export function CreateEmptyNamedQuery(expression) {
@@ -243,26 +233,17 @@ export function CreateEmptyFormatColumn() {
243
233
  Style: CreateEmptyStyle(),
244
234
  DisplayFormat: undefined,
245
235
  CellAlignment: undefined,
236
+ RowScope: undefined,
246
237
  };
247
238
  }
248
- export function CreateEmptyFreeTextColumn() {
239
+ export function CreateEmptyFreeTextColumn(defaultSpecialColumnSettings) {
249
240
  return {
250
241
  Uuid: createUuid(),
251
242
  ColumnId: EMPTY_STRING,
252
243
  DefaultValue: EMPTY_STRING,
253
244
  FreeTextStoredValues: [],
254
245
  TextEditor: 'Inline',
255
- FreeTextColumnSettings: {
256
- DataType: 'String',
257
- Filterable: false,
258
- Resizable: false,
259
- Groupable: false,
260
- Sortable: false,
261
- Pivotable: false,
262
- Aggregatable: false,
263
- SuppressMenu: false,
264
- SuppressMovable: false,
265
- },
246
+ FreeTextColumnSettings: Object.assign(Object.assign({}, defaultSpecialColumnSettings), { DataType: 'String' }),
266
247
  };
267
248
  }
268
249
  export function CreateEmptyLayout(layout, adaptableColumns) {
@@ -301,6 +282,8 @@ export function CreateEmptyCellSummmary() {
301
282
  Max: undefined,
302
283
  Min: undefined,
303
284
  Count: undefined,
285
+ Newest: undefined,
286
+ Oldest: undefined,
304
287
  Std_Deviation: undefined,
305
288
  Only: undefined,
306
289
  };
@@ -318,7 +301,6 @@ export function CreateEmptyStyledColumn() {
318
301
  return {
319
302
  Uuid: createUuid(),
320
303
  ColumnId: EMPTY_STRING,
321
- IncludeGroupedRows: false,
322
304
  };
323
305
  }
324
306
  export function CreateDefaultStyledColumnBadge() {
@@ -7,6 +7,7 @@ export declare class AggregatedScalarLiveValue {
7
7
  private source;
8
8
  private requestingModule;
9
9
  private adaptableApi;
10
+ private getRowNodes?;
10
11
  private aggregationReducerName;
11
12
  private aggregatedScalarExpression;
12
13
  private expressionEvaluation;
@@ -15,11 +16,12 @@ export declare class AggregatedScalarLiveValue {
15
16
  aggregatedScalarExpression: string;
16
17
  }, {
17
18
  aggregatedScalarExpressionEvaluation: AggregatedScalarExpressionEvaluation;
18
- }>, requestingModule: ModuleConstants, adaptableApi: AdaptableApi);
19
+ }>, requestingModule: ModuleConstants, adaptableApi: AdaptableApi, getRowNodes?: () => IRowNode[]);
19
20
  refresh(): void;
20
21
  getAggregatedValueForRow(rowNode: IRowNode): any;
21
22
  getAllAggregationValues(): number[];
22
23
  private getAggregationValue;
23
- private getGlobalAggregatedValue;
24
+ getGlobalAggregatedValue(): any;
25
+ private getRowNodeValueForColumnId;
24
26
  private computeAggregatedValue;
25
27
  }
@@ -8,18 +8,18 @@ const logOnce = (message, loggingFn) => {
8
8
  doOnceFlags[message] = true;
9
9
  };
10
10
  export class AggregatedScalarLiveValue {
11
- constructor(source, requestingModule, adaptableApi) {
11
+ constructor(source, requestingModule, adaptableApi, getRowNodes) {
12
12
  this.source = source;
13
13
  this.requestingModule = requestingModule;
14
14
  this.adaptableApi = adaptableApi;
15
+ this.getRowNodes = getRowNodes;
15
16
  if (source.aggregatedScalarExpression) {
16
17
  this.aggregatedScalarExpression = source.aggregatedScalarExpression;
17
18
  }
18
19
  this.expressionEvaluation = source.aggregatedScalarExpression
19
20
  ? this.adaptableApi.internalApi
20
21
  .getQueryLanguageService()
21
- .evaluateAggregatedScalarExpression(source.aggregatedScalarExpression, requestingModule)
22
- .value
22
+ .evaluateAggregatedScalarExpression(source.aggregatedScalarExpression, requestingModule, getRowNodes).value
23
23
  : source.aggregatedScalarExpressionEvaluation;
24
24
  // currently we support only one reducer
25
25
  this.aggregationReducerName = Object.keys(this.expressionEvaluation.aggregationParams.reducers)[0];
@@ -29,7 +29,7 @@ export class AggregatedScalarLiveValue {
29
29
  if (this.aggregatedScalarExpression) {
30
30
  this.expressionEvaluation = this.adaptableApi.internalApi
31
31
  .getQueryLanguageService()
32
- .evaluateAggregatedScalarExpression(this.aggregatedScalarExpression, this.requestingModule).value;
32
+ .evaluateAggregatedScalarExpression(this.aggregatedScalarExpression, this.requestingModule, this.getRowNodes).value;
33
33
  }
34
34
  // currently we support only one reducer
35
35
  this.aggregationReducerName = Object.keys(this.expressionEvaluation.aggregationParams.reducers)[0];
@@ -60,7 +60,7 @@ export class AggregatedScalarLiveValue {
60
60
  var _a, _b;
61
61
  if ((_a = this.expressionEvaluation.aggregationParams.groupBy) === null || _a === void 0 ? void 0 : _a.length) {
62
62
  const groupColumns = this.expressionEvaluation.aggregationParams.groupBy.map((groupByParam) => groupByParam.field);
63
- const groupKeys = groupColumns.map((groupColumnName) => this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, groupColumnName));
63
+ const groupKeys = groupColumns.map((groupColumnName) => this.getRowNodeValueForColumnId(rowNode, groupColumnName));
64
64
  return (_b = this.aggregationResult.deepMap.get(groupKeys)) === null || _b === void 0 ? void 0 : _b.reducerResults[this.aggregationReducerName];
65
65
  }
66
66
  return this.getGlobalAggregatedValue();
@@ -68,25 +68,30 @@ export class AggregatedScalarLiveValue {
68
68
  getGlobalAggregatedValue() {
69
69
  return this.aggregationResult.reducerResults[this.aggregationReducerName];
70
70
  }
71
+ getRowNodeValueForColumnId(rowNode, columnId) {
72
+ const rawValue = this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, columnId);
73
+ // we need to convert the Date object to a number, otherwise the grouping will not work (each Date instance is unique)
74
+ return rawValue instanceof Date ? rawValue.getTime() : rawValue;
75
+ }
71
76
  computeAggregatedValue(expressionEvaluation) {
72
77
  var _a;
73
- const gridRowNodes = this.adaptableApi.gridApi.getAllRowNodes({
74
- filterFn: expressionEvaluation.rowFilterFn,
75
- });
78
+ const gridRowNodes = expressionEvaluation.getRowNodes
79
+ ? expressionEvaluation.getRowNodes()
80
+ : this.adaptableApi.gridApi.getAllRowNodes({
81
+ filterFn: expressionEvaluation.rowFilterFn,
82
+ });
76
83
  // we iterate over the RowNode list (we need this to handle complex column values (nested values, valueGetters etc)
77
84
  // so we will map the fieldNames to RowNode.data
78
- const mapReducerValueGetter = (fieldName) => {
79
- return (rowNode) => {
80
- return this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, fieldName);
81
- };
85
+ const mapReducerValueGetter = (columnId) => {
86
+ return (rowNode) => this.getRowNodeValueForColumnId(rowNode, columnId);
82
87
  };
83
88
  Object.values(expressionEvaluation.aggregationParams.reducers).forEach((aggregationReducer) => {
84
89
  aggregationReducer.getter = mapReducerValueGetter(aggregationReducer.field);
85
90
  // nullify the field to force the fallback on the getter fn
86
91
  aggregationReducer.field = null;
87
92
  });
88
- const mapGroupByToKey = (fieldName) => {
89
- return (_unusableProperty, rowNode) => this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, fieldName);
93
+ const mapGroupByToKey = (columnId) => {
94
+ return (_unusableProperty, rowNode) => this.getRowNodeValueForColumnId(rowNode, columnId);
90
95
  };
91
96
  (_a = expressionEvaluation.aggregationParams.groupBy) === null || _a === void 0 ? void 0 : _a.forEach((groupByDef) => {
92
97
  groupByDef.toKey = mapGroupByToKey(groupByDef.field);
@@ -94,11 +99,10 @@ export class AggregatedScalarLiveValue {
94
99
  let aggregatedRowNodes = gridRowNodes;
95
100
  if (expressionEvaluation.sortByColumn) {
96
101
  const sortByColumn = expressionEvaluation.sortByColumn;
97
- const getRowNodeValue = (rowNode, columnId) => this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, columnId);
98
102
  // currently, we support only ascending sorting
99
103
  aggregatedRowNodes.sort((first, second) => {
100
- const firstValue = getRowNodeValue(first, sortByColumn);
101
- const secondValue = getRowNodeValue(second, sortByColumn);
104
+ const firstValue = this.getRowNodeValueForColumnId(first, sortByColumn);
105
+ const secondValue = this.getRowNodeValueForColumnId(second, sortByColumn);
102
106
  if (firstValue < secondValue) {
103
107
  return -1;
104
108
  }
@@ -108,6 +112,7 @@ export class AggregatedScalarLiveValue {
108
112
  return 0;
109
113
  });
110
114
  }
111
- return aggregate(expressionEvaluation.aggregationParams, aggregatedRowNodes);
115
+ const result = aggregate(expressionEvaluation.aggregationParams, aggregatedRowNodes);
116
+ return result;
112
117
  }
113
118
  }
@@ -74,9 +74,9 @@ export class CellPopupService {
74
74
  this.hidePopup();
75
75
  return;
76
76
  }
77
- const cellNotes = this.adaptable.api.notesApi.getCellNotes(cellPosition);
77
+ const cellNote = this.adaptable.api.noteApi.getNoteForCell(cellPosition);
78
78
  const cellComments = this.adaptable.api.commentApi.getCommentThread(cellPosition);
79
- const hasNotesOrComments = (cellNotes === null || cellNotes === void 0 ? void 0 : cellNotes.length) || cellComments;
79
+ const hasNotesOrComments = cellNote || cellComments;
80
80
  // call only if it is different
81
81
  if (CellPopupService.isSameAddress(openCellAddress, cellPosition)) {
82
82
  return;
@@ -92,9 +92,9 @@ export class CellPopupService {
92
92
  return;
93
93
  }
94
94
  // if open but this has no note, close
95
- const cellNotes = this.adaptable.api.notesApi.getCellNotes(cellAddress);
95
+ const cellNote = this.adaptable.api.noteApi.getNoteForCell(cellAddress);
96
96
  const cellComments = this.adaptable.api.commentApi.getCommentThread(cellAddress);
97
- const hasNotesOrComments = (cellNotes === null || cellNotes === void 0 ? void 0 : cellNotes.length) || cellComments;
97
+ const hasNotesOrComments = cellNote || cellComments;
98
98
  if (openCellAddress && !hasNotesOrComments) {
99
99
  // hide only if in edit mode
100
100
  // because if you select a cell and move the mouse fast over another cell
@@ -15,7 +15,7 @@ export interface IQueryLanguageService extends IAdaptableService {
15
15
  evaluateScalarExpression(expression: string, module: AdaptableModule, rowNode: IRowNode): any;
16
16
  evaluateObservableExpression(expression: string, module: AdaptableModule): Observable<CellDataChangedInfo | GridDataChangedInfo>;
17
17
  evaluateAggregatedBooleanExpression(expression: string, module: AdaptableModule): BooleanAggregationParameter;
18
- evaluateAggregatedScalarExpression(expression: string, module: AdaptableModule): ScalarAggregationParameter;
18
+ evaluateAggregatedScalarExpression(expression: string, module: AdaptableModule, getRowNodes?: () => IRowNode[]): ScalarAggregationParameter;
19
19
  validateBoolean(expression: string, module: AdaptableModule, config?: {
20
20
  force?: boolean;
21
21
  }): {
@@ -4,11 +4,8 @@ import { IAdaptableService } from './IAdaptableService';
4
4
  import { ExcelStyle, IRowNode } from '@ag-grid-community/core';
5
5
  import { CustomDestination, SystemExportDestination } from '../../../types';
6
6
  export interface IReportService extends IAdaptableService {
7
- resetExcelStyleMemoization(): void;
8
- registerExcelStyle(excelStyle: Partial<ExcelStyle>, cellClassKey: string): void;
9
- getRegisteredExcelStyles(): ExcelStyle[];
7
+ buildExcelStylesForVisualReports(): ExcelStyle[];
10
8
  getExcelStyleIdForCellClassKey(cellClassKey: string): string;
11
- registerExcelStyleWithFormattedDate(cellClassId: string, isoFormattedValue: string): void;
12
9
  getExcelStyleWithFormattedDate(cellClassId: string): string;
13
10
  CreateSystemReport(systemReportName: SystemReportName): Report;
14
11
  IsSystemReport(reportName: string): boolean;
@@ -1,190 +1 @@
1
- import { SystemLicenseDisablePersistence, SystemLicenseShowWatermark, } from '../../../Redux/ActionsReducers/SystemRedux';
2
- import { PopupShowAlert } from '../../../Redux/ActionsReducers/PopupRedux';
3
- import ObjectFactory from '../../ObjectFactory';
4
- import clamp from 'lodash/clamp';
5
- import { LicenseDocsLink } from '../../Constants/DocumentationLinkConstants';
6
- import { decode as decodeLicense, GENERIC_APP_NAME } from '../../license/decode';
7
- import { shouldLogThankYouMessage } from './shouldLogThankYouMessage';
8
- const EMAIL = 'sales@adaptabletools.com';
9
- const COMMERCIAL_LICENSE_SHOW_INFO_DAYS_BEFORE_EXPIRE = 10;
10
- const DAY_IN_MS = 1000 * 60 * 60 * 24;
11
- export var LicenseValidityType;
12
- (function (LicenseValidityType) {
13
- LicenseValidityType["INVALID_LICENSE"] = "INVALID_LICENSE";
14
- LicenseValidityType["NO_LICENSE"] = "NO_LICENSE";
15
- LicenseValidityType["NON_PRODUCTION_VALID"] = "NON_PRODUCTION_VALID";
16
- LicenseValidityType["NON_PRODUCTION_EXPIRED_IN_SCOPE"] = "NON_PRODUCTION_EXPIRED_IN_SCOPE";
17
- LicenseValidityType["NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE"] = "NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE";
18
- LicenseValidityType["COMMERCIAL_VALID"] = "COMMERCIAL_VALID";
19
- LicenseValidityType["COMMERCIAL_EXPIRED_IN_SCOPE"] = "COMMERCIAL_EXPIRED_IN_SCOPE";
20
- LicenseValidityType["COMMERCIAL_EXPIRED_OUT_OF_SCOPE"] = "COMMERCIAL_EXPIRED_OUT_OF_SCOPE";
21
- })(LicenseValidityType || (LicenseValidityType = {}));
22
- const SANDPACK_REGEX = /(https):\/\/\d+\-\d+\-\d+\-(sandpack\.codesandbox\.io)/g;
23
- const SANDBOX_REGEX = /(https):\/\/\S+(\.csb\.app)/g;
24
- const DEMO_REGEX = /(https):\/\/\S+(\.adaptabletools\.com)/g;
25
- const getOrigin = () => {
26
- return typeof window !== 'undefined' ? window.location.origin : '';
27
- };
28
- const isInsideSandpack = () => {
29
- const [_fullUrl, protocol, sandpackUrl] = Array.from(SANDPACK_REGEX.exec(getOrigin()) || []);
30
- return protocol === 'https' && sandpackUrl === 'sandpack.codesandbox.io';
31
- };
32
- const isInsideSandbox = () => {
33
- const [_fullUrl, protocol, sandboxUrl] = Array.from(SANDBOX_REGEX.exec(getOrigin()) || []);
34
- return protocol === 'https' && sandboxUrl === '.csb.app';
35
- };
36
- const isDemoApp = () => {
37
- const [_fullUrl, protocol, demoAppUrl] = Array.from(DEMO_REGEX.exec(getOrigin()) || []);
38
- return protocol === 'https' && demoAppUrl === '.adaptabletools.com';
39
- };
40
- export class LicenseService {
41
- constructor(adaptable, licenseKey, packageDetails) {
42
- this.adaptable = adaptable;
43
- this.licenseKey = licenseKey;
44
- this.packageDetails = packageDetails;
45
- this.adaptable = adaptable;
46
- this.adaptable.api.eventApi.on('AdaptableReady', () => {
47
- this.init();
48
- });
49
- }
50
- init() {
51
- let details = null;
52
- if (this.licenseKey) {
53
- try {
54
- details = decodeLicense(this.licenseKey);
55
- }
56
- catch (error) {
57
- details = error;
58
- }
59
- }
60
- if (!isInsideSandpack() && !isInsideSandbox() && !isDemoApp()) {
61
- this.handleLicenseValidation(details, this.getValidityType(details, this.packageDetails));
62
- }
63
- }
64
- getValidityType(details, packageDetails) {
65
- if (!details) {
66
- return LicenseValidityType.NO_LICENSE;
67
- }
68
- if (details instanceof Error) {
69
- return LicenseValidityType.INVALID_LICENSE;
70
- }
71
- const currentVersionReleaseDate = new Date(packageDetails.publishedAt);
72
- const licenseEndDate = new Date(details.end);
73
- const currentDate = new Date();
74
- const isExpired = licenseEndDate < currentDate;
75
- const isTrial = details.trial;
76
- const isScope = licenseEndDate > currentVersionReleaseDate;
77
- let validityType = null;
78
- if (isExpired) {
79
- if (isScope) {
80
- if (isTrial) {
81
- validityType = LicenseValidityType.NON_PRODUCTION_EXPIRED_IN_SCOPE;
82
- }
83
- else {
84
- validityType = LicenseValidityType.COMMERCIAL_EXPIRED_IN_SCOPE;
85
- }
86
- }
87
- else {
88
- if (isTrial) {
89
- validityType = LicenseValidityType.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE;
90
- }
91
- else {
92
- validityType = LicenseValidityType.COMMERCIAL_EXPIRED_OUT_OF_SCOPE;
93
- }
94
- }
95
- }
96
- else {
97
- if (isTrial) {
98
- validityType = LicenseValidityType.NON_PRODUCTION_VALID;
99
- }
100
- else {
101
- validityType = LicenseValidityType.COMMERCIAL_VALID;
102
- }
103
- }
104
- return validityType;
105
- }
106
- handleLicenseValidation(details, validityType) {
107
- var _a;
108
- const nowAtMidnight = new Date();
109
- nowAtMidnight.setHours(0, 0, 0, 0);
110
- let daysLeft = 0;
111
- if (!(details instanceof Error) && (details === null || details === void 0 ? void 0 : details.end)) {
112
- daysLeft = Math.floor((((_a = details === null || details === void 0 ? void 0 : details.end) === null || _a === void 0 ? void 0 : _a.getTime()) - nowAtMidnight.getTime()) / DAY_IN_MS);
113
- daysLeft = clamp(daysLeft, 0, Infinity);
114
- }
115
- let APP_NAME = '';
116
- let forApp = '';
117
- if (details &&
118
- !(details instanceof Error) &&
119
- details.appName &&
120
- details.appName != GENERIC_APP_NAME) {
121
- APP_NAME = details.appName;
122
- forApp = ` for application [APP_NAME]`;
123
- }
124
- const annotateMessage = (message, link = LicenseDocsLink, email = EMAIL, days = daysLeft, appName = APP_NAME) => {
125
- return message
126
- .replace('[LINK]', link)
127
- .replace('[EMAIL]', email)
128
- .replace('[APP_NAME]', appName)
129
- .replace('[DAYS]', `${days}`);
130
- };
131
- switch (validityType) {
132
- case 'NO_LICENSE':
133
- case 'NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE':
134
- this.adaptable.logger.consoleLogByMessageType(annotateMessage('This instance of AdapTable does not have a license, and some functionality has therefore been removed. In order to use a fully-featured version of AdapTable, please contact [EMAIL]. You can learn more about the different AdapTable license options at [LINK].'), 'Error');
135
- this.showNotification('No AdapTable License found.');
136
- this.showWatermark('This instance of AdapTable does not have a license, and some functionality has therefore been removed.');
137
- this.disableStatePersistence();
138
- break;
139
- case 'INVALID_LICENSE':
140
- this.adaptable.logger.consoleLogByMessageType(annotateMessage('This instance of AdapTable seems to use a corrupted License, and some functionality has therefore been removed. In order to use a fully-featured version of AdapTable, please contact [EMAIL]. You can learn more about the different AdapTable license options at [LINK].'), 'Error');
141
- this.showNotification('Corrupted AdapTable License found.');
142
- this.showWatermark(`This instance of AdapTable has a corrupted License, and some functionality has therefore been removed.`);
143
- this.disableStatePersistence();
144
- break;
145
- case 'NON_PRODUCTION_VALID':
146
- this.adaptable.logger.consoleLogByMessageType(annotateMessage('This AdapTable trial license expires in [DAYS] days. Please contact [EMAIL] to upgrade to a commercial version of AdapTable. You can learn more about the different AdapTable license options at [LINK].'), 'Info');
147
- break;
148
- case 'NON_PRODUCTION_EXPIRED_IN_SCOPE':
149
- this.adaptable.logger.consoleLogByMessageType(annotateMessage('This AdapTable trial license has now expired. Please contact [EMAIL] to upgrade to a commercial version of AdapTable. You can learn more about the different AdapTable license options at [LINK].'), 'Warning');
150
- this.showWatermark('AdapTable License has expired');
151
- break;
152
- case 'COMMERCIAL_VALID':
153
- if (daysLeft <= COMMERCIAL_LICENSE_SHOW_INFO_DAYS_BEFORE_EXPIRE) {
154
- this.adaptable.logger.consoleLogByMessageType(annotateMessage(`This AdapTable license${forApp} expires in [DAYS] days. Please contact [EMAIL] to renew (giving you access to Support and Updates)`), 'Info');
155
- }
156
- else {
157
- try {
158
- if (shouldLogThankYouMessage()) {
159
- this.adaptable.logger.consoleLogByMessageType(annotateMessage(`Thank you for using a valid AdapTable license${forApp}. Your license will expire in [DAYS] days.`), 'Info');
160
- }
161
- }
162
- catch (ex) { }
163
- }
164
- break;
165
- case 'COMMERCIAL_EXPIRED_IN_SCOPE':
166
- this.adaptable.logger.consoleLogByMessageType(annotateMessage(`This AdapTable license${forApp} has expired. Please contact [EMAIL] if you wish to renew (giving you access to Support and Updates)`), 'Warning');
167
- break;
168
- case 'COMMERCIAL_EXPIRED_OUT_OF_SCOPE':
169
- this.adaptable.logger.consoleLogByMessageType(annotateMessage(`This AdapTable license${forApp} has expired. Adaptable version was published after the license expired. Please contact [EMAIL] if you wish to renew your license.`), 'Error');
170
- this.showNotification('Adaptable License has expired');
171
- this.showWatermark('Adaptable License has expired');
172
- break;
173
- }
174
- }
175
- showNotification(text) {
176
- this.adaptable.api.internalApi.dispatchReduxAction(PopupShowAlert({
177
- alertType: 'generic',
178
- header: 'License Error',
179
- message: text,
180
- alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
181
- }));
182
- }
183
- showWatermark(text) {
184
- this.adaptable.api.internalApi.dispatchReduxAction(SystemLicenseShowWatermark(text));
185
- }
186
- disableStatePersistence() {
187
- this.adaptable.api.internalApi.dispatchReduxAction(SystemLicenseDisablePersistence());
188
- }
189
- destroy() { }
190
- }
1
+ import{SystemLicenseDisablePersistence as e,SystemLicenseShowWatermark as a}from"../../../Redux/ActionsReducers/SystemRedux";import{PopupShowAlert as t}from"../../../Redux/ActionsReducers/PopupRedux";import i from"../../ObjectFactory";import s from"lodash/clamp";import{LicenseDocsLink as o}from"../../Constants/DocumentationLinkConstants";import{decode as n,GENERIC_APP_NAME as r}from"../../license/decode";import{shouldLogThankYouMessage as l}from"./shouldLogThankYouMessage";const c="sales@adaptabletools.com",d=10,p=864e5;export var LicenseValidityType;!function(e){e.INVALID_LICENSE="INVALID_LICENSE",e.NO_LICENSE="NO_LICENSE",e.NON_PRODUCTION_VALID="NON_PRODUCTION_VALID",e.NON_PRODUCTION_EXPIRED_IN_SCOPE="NON_PRODUCTION_EXPIRED_IN_SCOPE",e.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE="NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE",e.COMMERCIAL_VALID="COMMERCIAL_VALID",e.COMMERCIAL_EXPIRED_IN_SCOPE="COMMERCIAL_EXPIRED_IN_SCOPE",e.COMMERCIAL_EXPIRED_OUT_OF_SCOPE="COMMERCIAL_EXPIRED_OUT_OF_SCOPE"}(LicenseValidityType||(LicenseValidityType={}));const h=()=>"undefined"!=typeof window?window.location.origin:"",E=()=>{const e=h(),[a,t,i]=Array.from(/(https):\/\/\d+\-\d+\-\d+\-(sandpack\.codesandbox\.io)/g.exec(e)||[]);return"https"===t&&"sandpack.codesandbox.io"===i},I=()=>{const e=h(),[a,t,i]=Array.from(/(https):\/\/\S+(\.csb\.app)/g.exec(e)||[]);return"https"===t&&".csb.app"===i},_=()=>{const e=h(),[a,t,i]=Array.from(/(https):\/\/\S+(\.adaptabletools\.com)/g.exec(e)||[]);return"https"===t&&".adaptabletools.com"===i};export class LicenseService{constructor(e,a,t){this.adaptable=e,this.licenseKey=a,this.packageDetails=t,this.adaptable=e,this.adaptable.api.eventApi.on("AdaptableReady",(()=>{requestAnimationFrame((()=>{this.init()}))}))}init(){let e=null;if(this.licenseKey)try{e=n(this.licenseKey)}catch(a){e=a}E()||I()||_()||this.handleLicenseValidation(e,this.getValidityType(e,this.packageDetails))}getValidityType(e,a){if(!e)return LicenseValidityType.NO_LICENSE;if(e instanceof Error)return LicenseValidityType.INVALID_LICENSE;const t=new Date(a.publishedAt),i=new Date(e.end),s=i<new Date,o=e.trial;let n=null;return n=s?i>t?o?LicenseValidityType.NON_PRODUCTION_EXPIRED_IN_SCOPE:LicenseValidityType.COMMERCIAL_EXPIRED_IN_SCOPE:o?LicenseValidityType.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE:LicenseValidityType.COMMERCIAL_EXPIRED_OUT_OF_SCOPE:o?LicenseValidityType.NON_PRODUCTION_VALID:LicenseValidityType.COMMERCIAL_VALID,n}handleLicenseValidation(e,a){var t;const i=new Date;i.setHours(0,0,0,0);let n=0;e instanceof Error||!(null==e?void 0:e.end)||(n=Math.floor(((null===(t=null==e?void 0:e.end)||void 0===t?void 0:t.getTime())-i.getTime())/p),n=s(n,0,1/0));let h="",E="";!e||e instanceof Error||!e.appName||e.appName==r||(h=e.appName,E=" for application [APP_NAME]");const I=(e,a=o,t=c,i=n,s=h)=>e.replace("[LINK]",a).replace("[EMAIL]",t).replace("[APP_NAME]",s).replace("[DAYS]",`${i}`);switch(a){case"NO_LICENSE":case"NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE":this.adaptable.logger.consoleLogByMessageType(I("This instance of AdapTable does not have a license, and some functionality has therefore been removed. In order to use a fully-featured version of AdapTable, please contact [EMAIL]. You can learn more about the different AdapTable license options at [LINK]."),"Error"),this.showNotification("No AdapTable License found."),this.showWatermark("This instance of AdapTable does not have a license, and some functionality has therefore been removed."),this.disableStatePersistence();break;case"INVALID_LICENSE":this.adaptable.logger.consoleLogByMessageType(I("This instance of AdapTable seems to use a corrupted License, and some functionality has therefore been removed. In order to use a fully-featured version of AdapTable, please contact [EMAIL]. You can learn more about the different AdapTable license options at [LINK]."),"Error"),this.showNotification("Corrupted AdapTable License found."),this.showWatermark("This instance of AdapTable has a corrupted License, and some functionality has therefore been removed."),this.disableStatePersistence();break;case"NON_PRODUCTION_VALID":this.adaptable.logger.consoleLogByMessageType(I("This AdapTable trial license expires in [DAYS] days. Please contact [EMAIL] to upgrade to a commercial version of AdapTable. You can learn more about the different AdapTable license options at [LINK]."),"Info");break;case"NON_PRODUCTION_EXPIRED_IN_SCOPE":this.adaptable.logger.consoleLogByMessageType(I("This AdapTable trial license has now expired. Please contact [EMAIL] to upgrade to a commercial version of AdapTable. You can learn more about the different AdapTable license options at [LINK]."),"Warning"),this.showWatermark("AdapTable License has expired");break;case"COMMERCIAL_VALID":if(n<=d)this.adaptable.logger.consoleLogByMessageType(I(`This AdapTable license${E} expires in [DAYS] days. Please contact [EMAIL] to renew (giving you access to Support and Updates)`),"Info");else try{l()&&this.adaptable.logger.consoleLogByMessageType(I(`Thank you for using a valid AdapTable license${E}. Your license will expire in [DAYS] days.`),"Info")}catch(e){}break;case"COMMERCIAL_EXPIRED_IN_SCOPE":this.adaptable.logger.consoleLogByMessageType(I(`This AdapTable license${E} has expired. Please contact [EMAIL] if you wish to renew (giving you access to Support and Updates)`),"Warning");break;case"COMMERCIAL_EXPIRED_OUT_OF_SCOPE":this.adaptable.logger.consoleLogByMessageType(I(`This AdapTable license${E} has expired. Adaptable version was published after the license expired. Please contact [EMAIL] if you wish to renew your license.`),"Error"),this.showNotification("Adaptable License has expired"),this.showWatermark("Adaptable License has expired")}}showNotification(e){this.adaptable.api.internalApi.dispatchReduxAction(t({alertType:"generic",header:"License Error",message:e,alertDefinition:i.CreateInternalAlertDefinitionForMessages("Error")}))}showWatermark(e){this.adaptable.api.internalApi.dispatchReduxAction(a(e))}disableStatePersistence(){this.adaptable.api.internalApi.dispatchReduxAction(e())}destroy(){}}
@@ -10,13 +10,13 @@ export class ModuleService {
10
10
  const settingsPanelMenuItems = [];
11
11
  const buttonMenuItems = [];
12
12
  this.getModuleCollection().forEach((module) => {
13
- const settingsPanelMenuItem = module.addModuleMenuItem('ModuleMenu');
13
+ const settingsPanelMenuItem = module.createModuleMenuItem('ModuleMenu');
14
14
  if (Helper.objectExists(settingsPanelMenuItem)) {
15
15
  if (settingsPanelMenuItems.findIndex((m) => m.module == settingsPanelMenuItem.module) == -1) {
16
16
  settingsPanelMenuItems.push(settingsPanelMenuItem);
17
17
  }
18
18
  }
19
- const buttonMenuItem = module.addModuleMenuItem('ModuleButton');
19
+ const buttonMenuItem = module.createModuleMenuItem('ModuleButton');
20
20
  if (Helper.objectExists(buttonMenuItem)) {
21
21
  if (buttonMenuItems.findIndex((m) => m.module == buttonMenuItem.module) == -1) {
22
22
  buttonMenuItems.push(buttonMenuItem);
@@ -101,6 +101,8 @@ export class ModuleService {
101
101
  return learnUrl + 'handbook-exporting';
102
102
  case 'ColumnFilter':
103
103
  return learnUrl + 'handbook-column-filter';
104
+ case 'Comment':
105
+ return learnUrl + 'handbook-comments';
104
106
  case 'GridFilter':
105
107
  return learnUrl + 'handbook-grid-filter';
106
108
  case 'FlashingCell':
@@ -113,6 +115,8 @@ export class ModuleService {
113
115
  return learnUrl + 'handbook-monitoring-grid-info';
114
116
  case 'Layout':
115
117
  return learnUrl + 'handbook-layouts';
118
+ case 'Note':
119
+ return learnUrl + 'handbook-notes';
116
120
  case 'PlusMinus':
117
121
  return learnUrl + 'handbook-editing-plus-minus';
118
122
  case 'NamedQuery':