@adaptabletools/adaptable 18.0.0-canary.9 → 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 (423) 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 +3 -4
  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 +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 +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} +46 -13
  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 +2 -2
  60. package/src/Api/Implementation/ConfigApiImpl.js +21 -25
  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 -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} +12 -12
  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 +7 -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} +4 -3
  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 +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/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 +1 -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 +125 -1
  147. package/src/PredefinedConfig/Common/RowScope.d.ts +17 -0
  148. package/src/PredefinedConfig/Common/RowScope.js +1 -0
  149. package/src/PredefinedConfig/Common/RowSummary.d.ts +15 -1
  150. package/src/PredefinedConfig/Common/RowSummary.js +16 -0
  151. package/src/PredefinedConfig/Common/TransposeConfig.d.ts +30 -0
  152. package/src/PredefinedConfig/Common/TransposeConfig.js +1 -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 +1 -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 +0 -34
  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} +24 -24
  173. package/src/Redux/ActionsReducers/PopupRedux.d.ts +5 -13
  174. package/src/Redux/ActionsReducers/PopupRedux.js +0 -19
  175. package/src/Redux/ActionsReducers/SystemRedux.d.ts +11 -5
  176. package/src/Redux/ActionsReducers/SystemRedux.js +12 -9
  177. package/src/Redux/Store/AdaptableStore.js +40 -33
  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 +70 -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 +11 -21
  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 +58 -44
  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 +55 -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 +1 -0
  233. package/src/Utilities/Constants/ModuleConstants.d.ts +6 -6
  234. package/src/Utilities/Constants/ModuleConstants.js +6 -6
  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 +143 -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 +19 -0
  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 -193
  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 +155 -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 +14 -0
  262. package/src/Utilities/license/decode.js +1 -65
  263. package/src/Utilities/license/hashing.js +1 -43
  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 +42 -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 +174 -0
  320. package/src/View/License/LicenseWatermark.js +1 -61
  321. package/src/View/Note/NotePopup.d.ts +2 -0
  322. package/src/View/{Notes/NotesPopup.js → Note/NotePopup.js} +14 -9
  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 +120 -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 +46 -0
  353. package/src/agGrid/weightedAverage.d.ts +0 -2
  354. package/src/agGrid/weightedAverage.js +0 -54
  355. package/src/components/Accordion.d.ts +7 -0
  356. package/src/components/Accordion.js +36 -0
  357. package/src/components/CheckBox/index.js +1 -1
  358. package/src/components/Datepicker/index.js +10 -2
  359. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +2 -1
  360. package/src/components/ExpressionEditor/QueryBuilder/utils.d.ts +0 -1
  361. package/src/components/ExpressionEditor/QueryBuilder/utils.js +1 -14
  362. package/src/components/Input/index.d.ts +1 -2
  363. package/src/components/ProgressIndicator/ProgressIndicator.js +15 -6
  364. package/src/components/Select/Select.d.ts +1 -1
  365. package/src/components/Select/Select.js +3 -1
  366. package/src/components/Textarea/index.d.ts +2 -2
  367. package/src/components/icons/collapse-all.d.ts +3 -0
  368. package/src/components/icons/collapse-all.js +4 -0
  369. package/src/components/icons/copy.d.ts +3 -0
  370. package/src/components/icons/copy.js +4 -0
  371. package/src/components/icons/csv.d.ts +3 -0
  372. package/src/components/icons/csv.js +4 -0
  373. package/src/components/icons/data-object.d.ts +3 -0
  374. package/src/components/icons/data-object.js +4 -0
  375. package/src/components/icons/excel.d.ts +3 -0
  376. package/src/components/icons/excel.js +5 -0
  377. package/src/components/icons/expand-all.d.ts +3 -0
  378. package/src/components/icons/expand-all.js +4 -0
  379. package/src/components/icons/filter-off.d.ts +3 -0
  380. package/src/components/icons/filter-off.js +4 -0
  381. package/src/components/icons/grid-info.d.ts +3 -0
  382. package/src/components/icons/grid-info.js +4 -0
  383. package/src/components/icons/index.js +22 -0
  384. package/src/components/icons/note.js +2 -2
  385. package/src/components/icons/select-all.d.ts +3 -0
  386. package/src/components/icons/select-all.js +4 -0
  387. package/src/components/icons/select-fwd.d.ts +3 -0
  388. package/src/components/icons/select-fwd.js +4 -0
  389. package/src/components/icons/select-off.d.ts +3 -0
  390. package/src/components/icons/select-off.js +4 -0
  391. package/src/env.js +2 -2
  392. package/src/metamodel/adaptable.metamodel.d.ts +222 -116
  393. package/src/metamodel/adaptable.metamodel.js +1 -9426
  394. package/src/parser/src/parser.js +576 -553
  395. package/src/parser/src/predicate/mapExpressionToQlPredicate.js +1 -1
  396. package/src/parser/src/predicate/mapQlPredicateToExpression.js +3 -4
  397. package/src/parser/src/types.d.ts +2 -2
  398. package/src/parser/src/types.js +1 -2
  399. package/src/types.d.ts +32 -25
  400. package/tsconfig.esm.tsbuildinfo +1 -1
  401. package/src/AdaptableOptions/MenuOptions.d.ts +0 -234
  402. package/src/AdaptableOptions/MenuOptions.js +0 -95
  403. package/src/Api/Events/CommentsChangedInfo.d.ts +0 -5
  404. package/src/Api/Implementation/ScopeApiImpl.d.ts +0 -33
  405. package/src/Api/Internal/NotesInternalApi.d.ts +0 -4
  406. package/src/Api/NotesApi.d.ts +0 -48
  407. package/src/PredefinedConfig/CellAddress.d.ts +0 -13
  408. package/src/PredefinedConfig/CellAddress.js +0 -4
  409. package/src/Redux/ActionsReducers/NotesRedux.d.ts +0 -38
  410. package/src/Strategy/CommentsModule.d.ts +0 -17
  411. package/src/Strategy/CommentsModule.js +0 -81
  412. package/src/Strategy/NotesModule.d.ts +0 -10
  413. package/src/Strategy/NotesModule.js +0 -56
  414. package/src/Utilities/Services/SummaryService.d.ts +0 -19
  415. package/src/Utilities/Services/SummaryService.js +0 -29
  416. package/src/View/Notes/NotesPopup.d.ts +0 -2
  417. /package/src/{Api/Events/CommentsChangedInfo.js → AdaptableOptions/ColumnMenuOptions.js} +0 -0
  418. /package/src/{Api/NotesApi.js → AdaptableOptions/ContextMenuOptions.js} +0 -0
  419. /package/src/Api/{ScopeApi.js → ColumnMenuApi.js} +0 -0
  420. /package/src/{PredefinedConfig/Common/AdaptableScope.js → Api/ColumnScopeApi.js} +0 -0
  421. /package/src/{PredefinedConfig/NotesState.js → Api/ContextMenuApi.js} +0 -0
  422. /package/src/View/{Notes → Note}/NoteEditor.d.ts +0 -0
  423. /package/src/View/{Notes → Note}/NoteEditor.js +0 -0
@@ -49,7 +49,7 @@ const QueryViewPanelComponent = (props) => {
49
49
  paddingTop: 6,
50
50
  overflow: 'hidden',
51
51
  zIndex: 100,
52
- }, placehoder: "Grid Filter", onChange: (x) => setExpression(x.target.value), value: expression })),
52
+ }, placeholder: "Grid Filter", onChange: (x) => setExpression(x.target.value), value: expression })),
53
53
  isExpressionValid && (React.createElement(ButtonPlay, { onClick: () => runQuery(), tooltip: '', accessLevel: gridFilterAccessLevel, variant: "text", tone: "neutral", disabled: disabled || expression == '' || expression == (gridFilter === null || gridFilter === void 0 ? void 0 : gridFilter.Expression), marginRight: 1 })),
54
54
  gridFilter && !isExpressionValid && (React.createElement(ButtonInvalid, { variant: "text", tone: "neutral", tooltip: "Invalid Grid Filter", marginRight: 1 })),
55
55
  ' ',
@@ -75,11 +75,11 @@ const QueryViewPanelComponent = (props) => {
75
75
  zIndex: 100,
76
76
  height: '100%',
77
77
  overflow: 'hidden',
78
- }, placehoder: "Grid Filter", onChange: (x) => setExpression(x.target.value), value: expression }))));
78
+ }, placeholder: "Grid Filter", onChange: (x) => setExpression(x.target.value), value: expression }))));
79
79
  };
80
80
  const saveButton = (React.createElement(ButtonSave, { onClick: () => saveQuery(), tooltip: "Save as Named Query", accessLevel: namedQueryModuleAccessLevel, disabled: disabled || !isExpressionValid || isExpressionNamedQuery || expression == '', variant: "text", tone: "neutral", marginRight: 1 }));
81
81
  const suspendButton = (React.createElement(ButtonPause, { onClick: () => suspendGridFilter(), tooltip: "Suspend Grid Filter", accessLevel: gridFilterAccessLevel, disabled: disabled || !isExpressionValid, variant: "text", tone: "neutral", marginRight: 1 }));
82
- const unSuspendButton = (React.createElement(ButtonUnsuspend, { onClick: () => unSuspendGridFilter(), tooltip: "Unsuspend Grid Filter", accessLevel: gridFilterAccessLevel, disabled: disabled || !isExpressionValid, variant: "text", tone: "neutral", marginRight: 1 }));
82
+ const unSuspendButton = (React.createElement(ButtonUnsuspend, { onClick: () => unSuspendGridFilter(), tooltip: "Unsuspend Grid Filter", accessLevel: gridFilterAccessLevel, disabled: !isExpressionValid, variant: "text", tone: "neutral", marginRight: 1 }));
83
83
  const namedQuerySelector = (React.createElement(NamedQuerySelector, { namedQueries: namedQueries, cachedQueries: cachedQueries, currentQuery: gridFilter === null || gridFilter === void 0 ? void 0 : gridFilter.Expression, onSelect: (query) => runQuery(query), setGridFilterExpression: (query) => setGridFilterExpression(query) }));
84
84
  const columnsDropdown = (React.createElement(DropdownButton, { disabled: disabled, accessLevel: gridFilterAccessLevel, variant: "text", items: availableColumns, marginRight: 1, tooltip: "Pick Columns" },
85
85
  React.createElement(Icon, { name: 'list' })));
@@ -59,7 +59,7 @@ export const useGridFilterExpressionEditor = () => {
59
59
  const runQuery = (newExpression = expression) => {
60
60
  if (StringExtensions.IsNullOrEmpty(newExpression) &&
61
61
  StringExtensions.IsNotNullOrEmpty(gridFilter === null || gridFilter === void 0 ? void 0 : gridFilter.Expression)) {
62
- // user pressed enter key with an empty input => clear existing current query
62
+ // user pressed enter key with an empty input => clear existing expression
63
63
  adaptable.api.gridFilterApi.setGridFilterExpression('');
64
64
  return;
65
65
  }
@@ -25,8 +25,9 @@ class LayoutViewPanelComponent extends React.Component {
25
25
  return Object.assign(Object.assign({}, layout), { label: layout.Name, value: layout.Name, onClick: () => this.props.onSelectLayout(layout.Name) });
26
26
  });
27
27
  const elementType = this.props.viewType === 'Toolbar' ? 'DashboardToolbar' : 'ToolPanel';
28
+ let layoutSelectStyle = elementType === 'ToolPanel' ? { minWidth: '100%' } : {};
28
29
  return (React.createElement(Flex, { flexDirection: "row", className: `ab-${elementType}__Layout__wrap`, flexWrap: this.props.viewType === 'ToolPanel' ? 'wrap' : 'nowrap' },
29
- React.createElement(Flex, { flex: 1 },
30
+ React.createElement(Flex, { style: layoutSelectStyle, flex: 1 },
30
31
  React.createElement(Select, { style: { width: '100%' }, options: availableLayoutOptions, className: `ab-${elementType}__Layout__select`, value: layoutEntity ? layoutEntity.Name : null, onChange: (layout) => this.props.onSelectLayout(layout) })),
31
32
  React.createElement(Flex, { flexDirection: "row", className: join(this.props.accessLevel == 'ReadOnly' ? GeneralConstants.READ_ONLY_STYLE : '', `ab-${elementType}__Layout__wrap`) },
32
33
  isManualSaveLayout && (React.createElement(ButtonSave, { className: `ab-${elementType}__Layout__save`, onClick: () => this.onSaveLayout(), tooltip: "Save Changes to Current Layout", disabled: !this.props.CanSave, accessLevel: accessLevel })),
@@ -7,21 +7,21 @@ import { ColumnSelector } from '../Components/Selectors/ColumnSelector';
7
7
  import { AdaptableAgGrid } from '../../agGrid/AdaptableAgGrid';
8
8
  export const TransposedPopup = (props) => {
9
9
  const adaptable = useAdaptable();
10
+ const { transposedColumnId, hideTransposedColumn, visibleColumns, visibleRows, autosize } = props.popupProps;
10
11
  const rowNodes = React.useMemo(() => {
11
- return adaptable.api.gridApi.getAllRowNodes();
12
+ return props.popupProps.visibleRows
13
+ ? adaptable.api.gridApi.getVisibleRowNodes()
14
+ : adaptable.api.gridApi.getAllRowNodes();
12
15
  }, [
13
- // can be later triggered by ticking data
16
+ // can be later triggered by tickng data
14
17
  ]);
15
- const { transposedColumnId, hideTransposedColumn = true } = props.popupProps;
16
18
  const primaryKey = adaptable.api.optionsApi.getPrimaryKey();
17
- // Thist must be qunique
18
- const transposeByColumnId = primaryKey;
19
- // Only used to show nice values a the top of the grid, istead on the value
20
- // of the primarykey
21
- const [synteticTransposedByColumnId, setSynteticTransposedByColumnId] = React.useState(transposedColumnId !== null && transposedColumnId !== void 0 ? transposedColumnId : primaryKey);
19
+ const [syntheticTransposedByColumnId, setSyntheticTransposedByColumnId] = React.useState(transposedColumnId);
22
20
  const columns = React.useMemo(() => {
23
21
  // customisable
24
- return adaptable.api.columnApi.getColumns();
22
+ return visibleColumns
23
+ ? adaptable.api.columnApi.getVisibleColumns()
24
+ : adaptable.api.columnApi.getColumns();
25
25
  }, []);
26
26
  const adaptableContainerId = 'transposed-adaptable-container';
27
27
  const agGridContainerId = 'transposed-adaptable-ag-grid-container';
@@ -40,9 +40,10 @@ export const TransposedPopup = (props) => {
40
40
  for (const row of rowNodes) {
41
41
  // we force the col-ids to be strings, easer to work with
42
42
  //row[transposeByColumnId] + '';
43
- const colId = adaptable.api.gridApi.getNormalisedValueFromRowNode(row, transposeByColumnId) + '';
43
+ const colId = adaptable.api.gridApi.getNormalisedValueFromRowNode(row, primaryKey) + '';
44
44
  //row[synteticTransposedByColumnId] + '';
45
- const header = adaptable.api.gridApi.getNormalisedValueFromRowNode(row, synteticTransposedByColumnId) + '';
45
+ const header = adaptable.api.gridApi.getNormalisedValueFromRowNode(row, syntheticTransposedByColumnId) +
46
+ '';
46
47
  transposedColumns.push({
47
48
  colId,
48
49
  header,
@@ -52,7 +53,7 @@ export const TransposedPopup = (props) => {
52
53
  /**
53
54
  * We can hide the transposed column, if we want
54
55
  */
55
- if (hideTransposedColumn && column.columnId === synteticTransposedByColumnId) {
56
+ if (hideTransposedColumn && column.columnId === syntheticTransposedByColumnId) {
56
57
  continue;
57
58
  }
58
59
  const transposedRow = {
@@ -63,7 +64,7 @@ export const TransposedPopup = (props) => {
63
64
  };
64
65
  for (let row of rowNodes) {
65
66
  // [transposed-by-column-value[n]]: [other column value[n]]
66
- const key = adaptable.api.gridApi.getNormalisedValueFromRowNode(row, transposeByColumnId);
67
+ const key = adaptable.api.gridApi.getNormalisedValueFromRowNode(row, primaryKey);
67
68
  // row[column.field]
68
69
  let value = adaptable.api.gridApi.getDisplayValueFromRowNode(row, column.columnId);
69
70
  if (value instanceof Date) {
@@ -77,7 +78,7 @@ export const TransposedPopup = (props) => {
77
78
  transposedColumns,
78
79
  transposedRows,
79
80
  };
80
- }, [rowNodes, primaryKey, synteticTransposedByColumnId]);
81
+ }, [rowNodes, primaryKey, syntheticTransposedByColumnId]);
81
82
  React.useEffect(() => {
82
83
  // Mounting in an effect, so the nodes are rendered/available
83
84
  const hostAdaptableOptions = adaptable.adaptableOptions;
@@ -95,7 +96,7 @@ export const TransposedPopup = (props) => {
95
96
  },
96
97
  layoutOptions: {
97
98
  createDefaultLayout: false,
98
- autoSizeColumnsInLayout: true,
99
+ autoSizeColumnsInLayout: autosize,
99
100
  },
100
101
  predefinedConfig: {
101
102
  Layout: {
@@ -121,7 +122,7 @@ export const TransposedPopup = (props) => {
121
122
  };
122
123
  const firstColumn = {
123
124
  field: transposedFirstColumnHeader,
124
- headerName: adaptable.api.columnApi.getFriendlyNameForColumnId(synteticTransposedByColumnId),
125
+ headerName: adaptable.api.columnApi.getFriendlyNameForColumnId(syntheticTransposedByColumnId),
125
126
  };
126
127
  const agGridOptions = {
127
128
  suppressLoadingOverlay: true,
@@ -173,7 +174,7 @@ export const TransposedPopup = (props) => {
173
174
  transposedAdaptableApi.destroy();
174
175
  }
175
176
  };
176
- }, [synteticTransposedByColumnId]);
177
+ }, [syntheticTransposedByColumnId]);
177
178
  /**
178
179
  * Need to get all data, manualy pivot the grid using the primary key.
179
180
  *
@@ -185,8 +186,8 @@ export const TransposedPopup = (props) => {
185
186
  React.createElement(Panel, null,
186
187
  React.createElement(FormLayout, null,
187
188
  React.createElement(FormRow, { label: "Elevated Column" },
188
- React.createElement(ColumnSelector, { value: synteticTransposedByColumnId, onChange: (colId) => {
189
- setSynteticTransposedByColumnId(colId);
189
+ React.createElement(ColumnSelector, { value: syntheticTransposedByColumnId, onChange: (colId) => {
190
+ setSyntheticTransposedByColumnId(colId);
190
191
  } })))),
191
192
  React.createElement(Flex, { height: "100%" },
192
193
  React.createElement(Box, { id: "transposed-adaptable-container" }),
@@ -14,6 +14,8 @@ import { AggregationsSection, AggregationsSectionSummary, isAggregationsSectionV
14
14
  import { SortSection, SortSectionSummary } from './sections/SortSection';
15
15
  import { FilterSection, FilterSectionSummary, isColumnFiltersValid, } from './sections/FilterSection';
16
16
  import { GridFilterSection, GridFilterSectionSummary, isGridFiltersValid, } from './sections/GridFilterSection';
17
+ import { areSummaryRowsValid, RowSummarySection } from './sections/RowSummarySection';
18
+ import { WEIGHTED_AVERAGE_AGGREATED_FUNCTION } from '../../../PredefinedConfig/Common/RowSummary';
17
19
  export const LayoutWizard = (props) => {
18
20
  var _a, _b;
19
21
  const dispatch = useDispatch();
@@ -27,14 +29,16 @@ export const LayoutWizard = (props) => {
27
29
  preparedLayout = cloneObject(initialLayout);
28
30
  if (((_a = props === null || props === void 0 ? void 0 : props.popupParams) === null || _a === void 0 ? void 0 : _a.action) === 'Clone') {
29
31
  preparedLayout.Name = '';
32
+ delete preparedLayout.Uuid;
30
33
  }
31
34
  }
32
35
  else {
33
36
  preparedLayout = ObjectFactory.CreateEmptyLayout({ Name: '' });
34
37
  }
35
38
  if (preparedLayout.SuppressAggFuncInHeader === undefined) {
36
- preparedLayout.SuppressAggFuncInHeader =
37
- !!adaptable.agGridAdapter.initialGridOptions.suppressAggFuncInHeader;
39
+ preparedLayout.SuppressAggFuncInHeader = !!adaptable.agGridAdapter
40
+ .getAgGridApi()
41
+ .getGridOption('suppressAggFuncInHeader');
38
42
  }
39
43
  return preparedLayout;
40
44
  });
@@ -101,6 +105,7 @@ export const LayoutWizard = (props) => {
101
105
  {
102
106
  title: 'Row Groups',
103
107
  isVisible: () => layoutSupportedFeatures.RowGroupedColumns,
108
+ isValid: areSummaryRowsValid,
104
109
  details: 'Configure Row Grouping',
105
110
  renderSummary: () => React.createElement(RowGroupingSectionSummary, null),
106
111
  render: () => (React.createElement(Box, { p: 2, style: { height: '100%' } },
@@ -113,7 +118,37 @@ export const LayoutWizard = (props) => {
113
118
  renderSummary: () => React.createElement(AggregationsSectionSummary, null),
114
119
  isValid: (data) => isAggregationsSectionValid(data),
115
120
  render: () => (React.createElement(Box, { p: 2, style: { height: '100%' } },
116
- React.createElement(AggregationsSection, { onChange: setLayout }))),
121
+ React.createElement(AggregationsSection, { onChange: (layout) => {
122
+ let newLayout = cloneObject(layout);
123
+ // if we do not have an weighted avg col, we need to clear the row summary if one exists
124
+ if (newLayout.RowSummaries) {
125
+ newLayout.RowSummaries = newLayout.RowSummaries.map((rowSummary) => {
126
+ return Object.assign(Object.assign({}, rowSummary), { ColumnsMap: Object.entries(rowSummary.ColumnsMap).reduce((acc, [columnId, aggFunc]) => {
127
+ if (
128
+ // see if it is weighted avg
129
+ aggFunc === WEIGHTED_AVERAGE_AGGREATED_FUNCTION &&
130
+ // see if we have a weight in the agg columns
131
+ newLayout.AggregationColumns[columnId] &&
132
+ (typeof newLayout.AggregationColumns[columnId] !== 'object' ||
133
+ newLayout.AggregationColumns[columnId].weightColumnId)) {
134
+ // need to remove the row summary
135
+ return acc;
136
+ }
137
+ acc[columnId] = aggFunc;
138
+ return acc;
139
+ }, {}) });
140
+ });
141
+ }
142
+ setLayout(newLayout);
143
+ } }))),
144
+ },
145
+ {
146
+ title: 'Row Summaries',
147
+ details: 'Configure Row Summaries',
148
+ renderSummary: () => React.createElement(RowGroupingSectionSummary, null),
149
+ isVisible: () => layoutSupportedFeatures.RowSummaries,
150
+ render: () => (React.createElement(Box, { p: 2, style: { height: '100%' } },
151
+ React.createElement(RowSummarySection, { onChange: setLayout }))),
117
152
  },
118
153
  {
119
154
  title: 'Sort',
@@ -170,7 +170,7 @@ const ColumnRow = (props) => {
170
170
  React.createElement(FormRow, { label: "ColumnId" },
171
171
  React.createElement(Tag, null, props.column.columnId)),
172
172
  React.createElement(FormRow, { label: "Header" },
173
- React.createElement(Input, { "data-name": "column-header", className: "ab-Layout-Wizard__ColumnRow__Input", placehoder: "Custom name (optional)", onChange: () => {
173
+ React.createElement(Input, { "data-name": "column-header", className: "ab-Layout-Wizard__ColumnRow__Input", placeholder: "Custom name (optional)", onChange: () => {
174
174
  props.onColumnNameChange(props.column.columnId, event.target.value);
175
175
  }, value: customHeader })),
176
176
  React.createElement(FormRow, { label: "Width" },
@@ -52,7 +52,7 @@ export const FilterSection = (props) => {
52
52
  React.createElement(Tabs.Content, null,
53
53
  React.createElement(FormLayout, { mb: 2 },
54
54
  React.createElement(FormRow, { label: "Add Column Filter" },
55
- React.createElement(ColumnSelector, { filterColumn: (column) => column.filterable && !layoutFilters.some((f) => f.ColumnId === column.columnId), placeholder: "Select column to create filter", onChange: (option) => {
55
+ React.createElement(ColumnSelector, { filterColumn: (column) => column.filterable && !layoutFilters.some((f) => f.ColumnId === column.columnId), placeholder: "Select Column to create Filter", onChange: (option) => {
56
56
  props.onChange(Object.assign(Object.assign({}, layout), { ColumnFilters: [
57
57
  ...layoutFilters,
58
58
  {
@@ -12,7 +12,23 @@ export const RowGroupingSectionSummary = () => {
12
12
  var _a;
13
13
  const adaptable = useAdaptable();
14
14
  const { data: layout } = useOnePageAdaptableWizardContext();
15
- return (React.createElement(Box, null, ((_a = layout.RowGroupedColumns) === null || _a === void 0 ? void 0 : _a.length) ? (layout.RowGroupedColumns.map((columnId) => (React.createElement(Tag, { mr: 1, key: columnId }, adaptable.api.columnApi.getFriendlyNameForColumnId(columnId))))) : (React.createElement(Tag, null, "No Row Grouping"))));
15
+ return (React.createElement(Box, null, ((_a = layout.RowSummaries) === null || _a === void 0 ? void 0 : _a.length) ? (layout === null || layout === void 0 ? void 0 : layout.RowSummaries.map((rowSummary, index) => {
16
+ var _a;
17
+ const columns = Object.entries((_a = rowSummary.ColumnsMap) !== null && _a !== void 0 ? _a : {})
18
+ .map(([columnId, expression]) => {
19
+ if (columnId === 'Source' || columnId === 'Uuid') {
20
+ return '';
21
+ }
22
+ return `${expression}(${adaptable.api.columnApi.getFriendlyNameForColumnId(columnId)})`;
23
+ })
24
+ .filter(Boolean)
25
+ .join(', ');
26
+ return (React.createElement(Box, { mb: 2 },
27
+ React.createElement(Tag, { key: index },
28
+ rowSummary.Position,
29
+ " ",
30
+ columns)));
31
+ })) : (React.createElement(Tag, null, "No Row Summaries"))));
16
32
  };
17
33
  export const RowGroupingSection = (props) => {
18
34
  var _a, _b, _c;
@@ -27,7 +43,7 @@ export const RowGroupingSection = (props) => {
27
43
  props.onChange(Object.assign(Object.assign({}, layout), { RowGroupedColumns: columnIds }));
28
44
  };
29
45
  return (React.createElement(Tabs, { style: { height: '100%' } },
30
- React.createElement(Tabs.Tab, null, "Grouped Rows"),
46
+ React.createElement(Tabs.Tab, null, "Group Rows"),
31
47
  ((_a = layout.ExpandedRowGroupValues) === null || _a === void 0 ? void 0 : _a.length) && React.createElement(Tabs.Tab, null, "Expanded Rows"),
32
48
  React.createElement(Tabs.Content, null,
33
49
  React.createElement(ValueSelector, { showFilterInput: true, showSelectedOnlyPosition: "top", filter: columnFilter, toIdentifier: (option) => `${option.columnId}`, toLabel: (option) => { var _a; return (_a = option.friendlyName) !== null && _a !== void 0 ? _a : option.columnId; }, options: sortedGroupableColumns, value: (_b = layout.RowGroupedColumns) !== null && _b !== void 0 ? _b : [], allowReorder: true, xSelectedLabel: () => {
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import { Layout } from '../../../../../types';
3
+ export declare const areSummaryRowsValid: (layout: Layout) => true | string;
4
+ export declare const RowGroupingSectionSummary: React.FunctionComponent;
5
+ interface RowSummarySectionProps {
6
+ onChange: (data: Layout) => void;
7
+ }
8
+ export declare const RowSummarySection: React.FunctionComponent<RowSummarySectionProps>;
9
+ export {};
@@ -0,0 +1,174 @@
1
+ import * as React from 'react';
2
+ import { Box, Flex } from 'rebass';
3
+ import FormLayout, { FormRow } from '../../../../components/FormLayout';
4
+ import Panel from '../../../../components/Panel';
5
+ import { Select } from '../../../../components/Select';
6
+ import SimpleButton from '../../../../components/SimpleButton';
7
+ import { Tabs } from '../../../../components/Tabs';
8
+ import { Tag } from '../../../../components/Tag';
9
+ import { summarySupportedExpressions, WEIGHTED_AVERAGE_AGGREATED_FUNCTION, } from '../../../../PredefinedConfig/Common/RowSummary';
10
+ import { mapColumnDataTypeToExpressionFunctionType } from '../../../../Utilities/adaptableQlUtils';
11
+ import { LayoutModuleId } from '../../../../Utilities/Constants/ModuleConstants';
12
+ import { sortWithOrderArray } from '../../../../Utilities/sortWithOrder';
13
+ import { useAdaptable } from '../../../AdaptableContext';
14
+ import { ValueSelector } from '../../../Components/ValueSelector';
15
+ import { useOnePageAdaptableWizardContext } from '../../../Wizard/OnePageAdaptableWizard';
16
+ import { columnFilter } from './Utilities';
17
+ export const areSummaryRowsValid = (layout) => {
18
+ var _a;
19
+ if (!layout.RowSummaries)
20
+ return true;
21
+ let valid = true;
22
+ (_a = layout.RowSummaries) === null || _a === void 0 ? void 0 : _a.find((rowSummary) => {
23
+ var _a;
24
+ for (const [_, fn] of Object.entries((_a = rowSummary.ColumnsMap) !== null && _a !== void 0 ? _a : {})) {
25
+ if (!fn) {
26
+ valid = 'All row summary columns must have an aggregation function.';
27
+ return true;
28
+ }
29
+ }
30
+ });
31
+ return valid;
32
+ };
33
+ const getAvailableExpressionsForColumnType = (columnType, availableScalarExpressions) => {
34
+ const inputType = mapColumnDataTypeToExpressionFunctionType(columnType);
35
+ // Object.entries(availableScalarExpressions ?? {})
36
+ return summarySupportedExpressions
37
+ .filter((expression) => availableScalarExpressions[expression])
38
+ .map((expression) => {
39
+ var _a, _b;
40
+ const expressionDef = availableScalarExpressions[expression];
41
+ let firstArg = null;
42
+ if (Array.isArray((_a = expressionDef === null || expressionDef === void 0 ? void 0 : expressionDef.inputs) === null || _a === void 0 ? void 0 : _a[0])) {
43
+ // @ts-ignore
44
+ firstArg = (_b = expressionDef.inputs.find((input) => input.includes(inputType))) === null || _b === void 0 ? void 0 : _b[0];
45
+ }
46
+ else {
47
+ firstArg = expressionDef.inputs[0];
48
+ }
49
+ if (inputType === firstArg) {
50
+ return expression;
51
+ }
52
+ else {
53
+ return null;
54
+ }
55
+ })
56
+ .filter(Boolean);
57
+ };
58
+ export const RowGroupingSectionSummary = () => {
59
+ var _a;
60
+ const adaptable = useAdaptable();
61
+ const { data: layout } = useOnePageAdaptableWizardContext();
62
+ return (React.createElement(Box, null, ((_a = layout.RowGroupedColumns) === null || _a === void 0 ? void 0 : _a.length) ? (layout.RowGroupedColumns.map((columnId) => (React.createElement(Tag, { mr: 1, key: columnId }, adaptable.api.columnApi.getFriendlyNameForColumnId(columnId))))) : (React.createElement(Tag, null, "No Row Grouping"))));
63
+ };
64
+ const RowSummaryEditor = ({ rowSummary, onChange, availableScalarExpressions, onDelete, }) => {
65
+ const { data: layout } = useOnePageAdaptableWizardContext();
66
+ const adaptable = useAdaptable();
67
+ const columns = React.useMemo(() => {
68
+ const colIds = adaptable.api.columnApi
69
+ .getColumns()
70
+ .filter((column) => {
71
+ var _a, _b;
72
+ if (!['Number', 'String', 'Date'].includes(column.dataType))
73
+ return false;
74
+ return (_b = (_a = layout.Columns) === null || _a === void 0 ? void 0 : _a.includes) === null || _b === void 0 ? void 0 : _b.call(_a, column.columnId);
75
+ })
76
+ .map((c) => c.columnId);
77
+ return sortWithOrderArray(colIds, Object.keys(rowSummary.ColumnsMap), {
78
+ sortUnorderedItems: false,
79
+ }).map((colId) => adaptable.api.columnApi.getColumnWithColumnId(colId));
80
+ }, [rowSummary.ColumnsMap]);
81
+ return (React.createElement(Panel, { header: React.createElement(Flex, { style: { width: '100%' } },
82
+ React.createElement(Flex, { flex: 1, alignItems: "center" }, "Row Summary"),
83
+ React.createElement(SimpleButton, { icon: "delete", onClick: () => {
84
+ onDelete();
85
+ } })), p: 2 },
86
+ React.createElement(FormLayout, null,
87
+ React.createElement(FormRow, { label: "Position" },
88
+ React.createElement(Select, { options: [
89
+ {
90
+ label: 'Top',
91
+ value: 'Top',
92
+ },
93
+ {
94
+ label: 'Bottom',
95
+ value: 'Bottom',
96
+ },
97
+ ], value: rowSummary.Position, onChange: (position) => {
98
+ onChange(Object.assign(Object.assign({}, rowSummary), { Position: position }));
99
+ } }))),
100
+ React.createElement(Flex, { flexDirection: 'column', mt: 2, mb: 1 },
101
+ React.createElement(Flex, { alignItems: "center", flex: 1, mb: 2 }, "Column Aggregations"),
102
+ React.createElement(Panel, { bodyProps: { maxHeight: '100%' }, style: { height: 360 } },
103
+ React.createElement(ValueSelector, { style: { maxHeight: '100%' }, showFilterInput: true, filter: columnFilter, toIdentifier: (column) => column.columnId, toLabel: (option) => { var _a; return (_a = option.friendlyName) !== null && _a !== void 0 ? _a : option.columnId; }, options: columns, xSelectedLabel: () => {
104
+ return 'Active Aggregations:';
105
+ }, toListLabel: (column) => {
106
+ var _a, _b, _c;
107
+ const label = (_a = column.friendlyName) !== null && _a !== void 0 ? _a : column.columnId;
108
+ if (!(column.columnId in ((_b = rowSummary.ColumnsMap) !== null && _b !== void 0 ? _b : {}))) {
109
+ return label;
110
+ }
111
+ const expressionOptions = getAvailableExpressionsForColumnType(column.dataType, availableScalarExpressions).map((expression) => ({
112
+ label: expression,
113
+ value: expression,
114
+ }));
115
+ // check out if this layout has a aggregation with wighted column
116
+ const aggregation = (_c = layout.AggregationColumns) === null || _c === void 0 ? void 0 : _c[column.columnId];
117
+ if (aggregation && typeof aggregation === 'object' && aggregation.weightedColumnId) {
118
+ expressionOptions.push({
119
+ label: 'WEIGHTERD_AVG',
120
+ value: WEIGHTED_AVERAGE_AGGREATED_FUNCTION,
121
+ });
122
+ }
123
+ const expression = rowSummary.ColumnsMap[column.columnId];
124
+ return (React.createElement(Flex, null,
125
+ React.createElement(Flex, { mr: 2, alignItems: 'center' }, label),
126
+ React.createElement(Select, { value: expression, options: expressionOptions, onChange: (expression) => {
127
+ onChange(Object.assign(Object.assign({}, rowSummary), { ColumnsMap: Object.assign(Object.assign({}, rowSummary.ColumnsMap), { [column.columnId]: expression }) }));
128
+ } })));
129
+ }, value: Object.keys(rowSummary.ColumnsMap), onChange: (colIds) => {
130
+ const newColumnsMap = {};
131
+ colIds.forEach((colId) => {
132
+ var _a;
133
+ newColumnsMap[colId] = (_a = rowSummary.ColumnsMap[colId]) !== null && _a !== void 0 ? _a : null;
134
+ });
135
+ onChange(Object.assign(Object.assign({}, rowSummary), { ColumnsMap: newColumnsMap }));
136
+ } })))));
137
+ };
138
+ export const RowSummarySection = (props) => {
139
+ var _a;
140
+ const adaptable = useAdaptable();
141
+ const { data: layout } = useOnePageAdaptableWizardContext();
142
+ const availableScalarExpressions = React.useMemo(() => {
143
+ return adaptable.api.internalApi
144
+ .getQueryLanguageService()
145
+ .getModuleExpressionFunctionsMap(LayoutModuleId).aggregatedScalarFunctions;
146
+ }, []);
147
+ return (React.createElement(Tabs, { style: { height: '100%' } },
148
+ React.createElement(Tabs.Tab, null, "Row Summaries"),
149
+ React.createElement(Tabs.Content, null,
150
+ React.createElement("div", null,
151
+ React.createElement(Flex, { mb: 1 },
152
+ React.createElement(Flex, { flex: 1 }),
153
+ React.createElement(SimpleButton, { onClick: () => {
154
+ var _a;
155
+ props.onChange(Object.assign(Object.assign({}, layout), { RowSummaries: [
156
+ ...((_a = layout.RowSummaries) !== null && _a !== void 0 ? _a : []),
157
+ {
158
+ Position: 'Top',
159
+ ColumnsMap: {},
160
+ },
161
+ ] }));
162
+ }, icon: "plus" }, "Add Row Summary")),
163
+ ((_a = layout.RowSummaries) !== null && _a !== void 0 ? _a : []).map((rowSummary, index) => {
164
+ return (React.createElement(RowSummaryEditor, { key: index, onDelete: () => {
165
+ const newSummaries = [...layout.RowSummaries];
166
+ newSummaries.splice(index, 1);
167
+ props.onChange(Object.assign(Object.assign({}, layout), { RowSummaries: newSummaries }));
168
+ }, availableScalarExpressions: availableScalarExpressions, rowSummary: rowSummary, onChange: (rowSummary) => {
169
+ const newSummaries = [...layout.RowSummaries];
170
+ newSummaries[index] = rowSummary;
171
+ props.onChange(Object.assign(Object.assign({}, layout), { RowSummaries: newSummaries }));
172
+ } }));
173
+ })))));
174
+ };
@@ -1,61 +1 @@
1
- import * as React from 'react';
2
- import { Logo } from '../../components/Logo';
3
- import { Flex } from 'rebass';
4
- const style = {
5
- border: '1px solid var(--ab-color-error)',
6
- padding: '5px',
7
- fontWeight: 600,
8
- margin: '5px',
9
- fontSize: '14px',
10
- alignItems: 'center',
11
- color: 'var(--ab-color-text-on-defaultbackground)',
12
- background: 'var(--ab-color-defaultbackground)',
13
- };
14
- const isStyleValid = (element) => {
15
- const notAllowedProperties = [
16
- ['display', 'none'],
17
- ['opacity', '0'],
18
- ['position', 'absolute'],
19
- ['position', 'fixed'],
20
- ['position', 'relative'],
21
- ['visibility', 'hidden'],
22
- ];
23
- for (const [prop, value] of notAllowedProperties) {
24
- if (element.style[prop] === value) {
25
- return false;
26
- }
27
- }
28
- return true;
29
- };
30
- export const LicenseWatermark = (props) => {
31
- const ref = React.useRef(null);
32
- React.useEffect(() => {
33
- const checkWatermark = () => {
34
- var _a, _b;
35
- if (!((_a = ref.current) === null || _a === void 0 ? void 0 : _a.isConnected)) {
36
- alert('It is not allowed to remove the Adaptable watermark.');
37
- }
38
- if (!isStyleValid(ref.current)) {
39
- alert('It is not allowed to modify the Adaptable watermark.');
40
- }
41
- if ((_b = ref === null || ref === void 0 ? void 0 : ref.current) === null || _b === void 0 ? void 0 : _b.style) {
42
- ref.current.style.border = style.border;
43
- ref.current.style.padding = style.padding;
44
- ref.current.style.fontWeight = `${style.fontWeight}`;
45
- ref.current.style.margin = style.margin;
46
- ref.current.style.fontSize = style.fontSize;
47
- ref.current.style.color = style.color;
48
- ref.current.style.background = style.background;
49
- ref.current.style.display = 'flex';
50
- ref.current.style.position = 'static';
51
- ref.current.style.opacity = '1';
52
- ref.current.style.visibility = 'visible';
53
- }
54
- };
55
- const timerId = setInterval(checkWatermark, 5000);
56
- return () => clearTimeout(timerId);
57
- }, []);
58
- return (React.createElement(Flex, { style: style, ref: ref },
59
- React.createElement(Logo, { style: { marginRight: 10 } }),
60
- React.createElement("div", null, props.children)));
61
- };
1
+ import*as e from"react";import{Logo as t}from"../../components/Logo";import{Flex as r}from"rebass";const o={border:"1px solid var(--ab-color-error)",padding:"5px",fontWeight:600,margin:"5px",fontSize:"14px",alignItems:"center",color:"var(--ab-color-text-on-defaultbackground)",background:"var(--ab-color-defaultbackground)"},n=e=>{const t=[["display","none"],["opacity","0"],["position","absolute"],["position","fixed"],["position","relative"],["visibility","hidden"]];for(const[r,o]of t)if(e.style[r]===o)return!1;return!0};export const LicenseWatermark=i=>{const l=e.useRef(null);return e.useEffect((()=>{const e=setInterval((()=>{var e,t;(null===(e=l.current)||void 0===e?void 0:e.isConnected)||alert("It is not allowed to remove the Adaptable watermark."),n(l.current)||alert("It is not allowed to modify the Adaptable watermark."),(null===(t=null==l?void 0:l.current)||void 0===t?void 0:t.style)&&(l.current.style.border=o.border,l.current.style.padding=o.padding,l.current.style.fontWeight=`${o.fontWeight}`,l.current.style.margin=o.margin,l.current.style.fontSize=o.fontSize,l.current.style.color=o.color,l.current.style.background=o.background,l.current.style.display="flex",l.current.style.position="static",l.current.style.opacity="1",l.current.style.visibility="visible")}),5e3);return()=>clearTimeout(e)}),[]),e.createElement(r,{style:o,ref:l},e.createElement(t,{style:{marginRight:10}}),e.createElement("div",null,i.children))};
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export declare const NotePopup: React.FunctionComponent;
@@ -1,10 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import { useSelector } from 'react-redux';
3
3
  import { DataSource, InfiniteTable } from '../../components/InfiniteTable';
4
- import { GetAllNotesSelector } from '../../Redux/ActionsReducers/NotesRedux';
4
+ import { GetAllNotesSelector } from '../../Redux/ActionsReducers/NoteRedux';
5
+ import dateFnsFormat from 'date-fns/format';
5
6
  import { useAdaptable } from '../AdaptableContext';
6
7
  import { AdaptableButtonComponent } from '../Components/AdaptableButton';
7
8
  import { PopupPanel } from '../Components/Popups/AdaptablePopup/PopupPanel';
9
+ import { DEFAULT_DATE_FORMAT_PATTERN_WITH_TIME } from '../../Utilities/Constants/GeneralConstants';
8
10
  const tableDOMProps = {
9
11
  style: {
10
12
  height: '100%',
@@ -12,10 +14,13 @@ const tableDOMProps = {
12
14
  // minHeight: 600,
13
15
  },
14
16
  };
15
- export const NotesPopup = (props) => {
17
+ export const NotePopup = (props) => {
18
+ var _a, _b, _c, _d;
16
19
  const adaptable = useAdaptable();
17
20
  const primaryKeyHeader = adaptable.api.columnApi.getFriendlyNameForColumnId(adaptable.api.columnApi.getPrimaryKeyColumn().columnId);
18
- const allNotes = useSelector((state) => GetAllNotesSelector(state.Notes));
21
+ const dateFormat = (_d = (_c = (_b = (_a = adaptable.api.optionsApi) === null || _a === void 0 ? void 0 : _a.getNoteOptions) === null || _b === void 0 ? void 0 : _b.call(_a)) === null || _c === void 0 ? void 0 : _c.dateFormat) !== null && _d !== void 0 ? _d : DEFAULT_DATE_FORMAT_PATTERN_WITH_TIME;
22
+ const allNotes = useSelector((state) => GetAllNotesSelector(state.Note));
23
+ const isReadOnlyModule = adaptable.api.entitlementApi.getEntitlementAccessLevelForModule('Note') === 'ReadOnly';
19
24
  const columnsMap = React.useMemo(() => {
20
25
  const columns = {
21
26
  primaryKey: {
@@ -32,21 +37,21 @@ export const NotesPopup = (props) => {
32
37
  text: {
33
38
  field: 'Text',
34
39
  header: 'Text',
35
- defaultEditable: true,
40
+ defaultEditable: !isReadOnlyModule,
36
41
  defaultFlex: 3,
37
42
  },
38
43
  timestamp: {
39
44
  field: 'Timestamp',
40
45
  valueGetter: (params) => {
41
- return new Date(params.data.Timestamp).toDateString();
46
+ return dateFnsFormat(params.data.Timestamp, dateFormat);
42
47
  },
43
48
  },
44
49
  delete: {
45
50
  defaultWidth: 50,
46
51
  render: (params) => {
47
- return (React.createElement(AdaptableButtonComponent, { variant: "text", icon: "delete", onClick: () => {
48
- const note = adaptable.api.notesApi.getNoteByUuid(params.data.Uuid);
49
- adaptable.api.notesApi.deleteNote(note);
52
+ return (React.createElement(AdaptableButtonComponent, { disabled: isReadOnlyModule, variant: "text", icon: "delete", onClick: () => {
53
+ const note = adaptable.api.noteApi.getNoteByUuid(params.data.Uuid);
54
+ adaptable.api.noteApi.deleteNote(note);
50
55
  } }));
51
56
  },
52
57
  },
@@ -62,7 +67,7 @@ export const NotesPopup = (props) => {
62
67
  const data = change.data;
63
68
  const prevNote = allNotes.find((x) => x.Uuid === uuid);
64
69
  if (prevNote.Text !== data.Text) {
65
- adaptable.api.notesApi.updateNoteText(data.Text, prevNote);
70
+ adaptable.api.noteApi.updateNoteText(data.Text, prevNote);
66
71
  }
67
72
  }
68
73
  }
@@ -19,12 +19,12 @@ export class PlusMinusSummaryComponent extends React.Component {
19
19
  render() {
20
20
  let moduleSummaries = [];
21
21
  // title row
22
- let titleRow = (React.createElement(ModuleHeader, { key: this.props.moduleInfo.FriendlyName, moduleInfo: this.props.moduleInfo, moduleSummary: Helper.returnItemCount(this.props.PlusMinusNudges.filter((item) => this.props.api.scopeApi.isColumnInScopeColumns(this.props.summarisedColumn, item.Scope)), this.props.moduleInfo.FriendlyName), onNew: () => this.onNew(), newButtonTooltip: 'Plus / Minus Rule', accessLevel: this.props.accessLevel }));
22
+ let titleRow = (React.createElement(ModuleHeader, { key: this.props.moduleInfo.FriendlyName, moduleInfo: this.props.moduleInfo, moduleSummary: Helper.returnItemCount(this.props.PlusMinusNudges.filter((item) => this.props.api.columnScopeApi.isColumnInScopeColumns(this.props.summarisedColumn, item.Scope)), this.props.moduleInfo.FriendlyName), onNew: () => this.onNew(), newButtonTooltip: 'Plus / Minus Rule', accessLevel: this.props.accessLevel }));
23
23
  moduleSummaries.push(titleRow);
24
24
  // existing items
25
25
  this.props.PlusMinusNudges.map((item, index) => {
26
26
  var _a;
27
- if (this.props.api.scopeApi.isColumnInScopeColumns(this.props.summarisedColumn, item.Scope)) {
27
+ if (this.props.api.columnScopeApi.isColumnInScopeColumns(this.props.summarisedColumn, item.Scope)) {
28
28
  let detailRow = (React.createElement(ModuleDetail, { key: 'PM' + index, item1: 'Nudge Value: ' + item.NudgeValue, item2: ((_a = item.Rule) === null || _a === void 0 ? void 0 : _a.BooleanExpression) ? item.Rule.BooleanExpression : 'Always', configEnity: item, showShare: this.props.teamSharingActivated, moduleInfo: this.props.moduleInfo, onEdit: () => this.onEdit(item), onShare: (config) => this.props.onShare(item, config), onDelete: PlusMinusRedux.PlusMinusNudgeDelete(item), accessLevel: this.props.accessLevel }));
29
29
  moduleSummaries.push(detailRow);
30
30
  }
@@ -63,7 +63,7 @@ class SmartEditPopupComponent extends React.Component {
63
63
  (this.props.PreviewInfo &&
64
64
  this.props.PreviewInfo.previewValidationSummary.validationResult == 'All'), onClick: () => {
65
65
  this.submit();
66
- }, marginRight: 2 }, "Apply to Grid"),
66
+ }, marginRight: 2 }, "Apply Smart Edit"),
67
67
  ' ',
68
68
  this.props.PreviewInfo &&
69
69
  this.props.PreviewInfo.previewValidationSummary.validationResult != 'None' && (React.createElement(AdaptablePopover, { headerText: 'Validation Error', bodyText: [globalValidationMessage], MessageType: 'Error' }))),