@adaptabletools/adaptable-cjs 18.0.0-canary.2 → 18.0.0-canary.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. package/agGrid.d.ts +4 -21
  2. package/agGrid.js +5 -21
  3. package/base.css +22 -8
  4. package/base.css.map +1 -1
  5. package/index.css +101 -75
  6. package/index.css.map +1 -1
  7. package/package.json +4 -5
  8. package/src/AdaptableInterfaces/IAdaptable.d.ts +59 -108
  9. package/src/AdaptableOptions/AdaptableOptions.d.ts +7 -7
  10. package/src/AdaptableOptions/ColumnFilterOptions.d.ts +11 -4
  11. package/src/AdaptableOptions/ColumnOptions.d.ts +9 -4
  12. package/src/AdaptableOptions/CommentOptions.d.ts +33 -0
  13. package/src/AdaptableOptions/GroupingOptions.d.ts +0 -7
  14. package/src/AdaptableOptions/MenuOptions.d.ts +6 -54
  15. package/src/AdaptableOptions/MenuOptions.js +72 -75
  16. package/src/AdaptableOptions/{NotesOptions.d.ts → NoteOptions.d.ts} +7 -4
  17. package/src/AdaptableOptions/StateOptions.d.ts +6 -0
  18. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +17 -0
  19. package/src/Api/AdaptableApi.d.ts +9 -4
  20. package/src/Api/BulkUpdateApi.d.ts +0 -5
  21. package/src/Api/ColumnApi.d.ts +4 -0
  22. package/src/Api/CommentApi.d.ts +13 -14
  23. package/src/Api/ConfigApi.d.ts +4 -5
  24. package/src/Api/EventApi.d.ts +7 -9
  25. package/src/Api/Events/AdaptableReady.d.ts +3 -3
  26. package/src/Api/Events/CommentChanged.d.ts +11 -0
  27. package/src/Api/Events/GridDataChanged.d.ts +4 -4
  28. package/src/Api/GridApi.d.ts +23 -13
  29. package/src/Api/Implementation/ActionColumnApiImpl.d.ts +2 -0
  30. package/src/Api/Implementation/ActionColumnApiImpl.js +30 -0
  31. package/src/Api/Implementation/AdaptableApiImpl.d.ts +3 -2
  32. package/src/Api/Implementation/AdaptableApiImpl.js +5 -2
  33. package/src/Api/Implementation/ApiBase.d.ts +5 -3
  34. package/src/Api/Implementation/ApiBase.js +8 -2
  35. package/src/Api/Implementation/BulkUpdateApiImpl.d.ts +0 -1
  36. package/src/Api/Implementation/BulkUpdateApiImpl.js +0 -4
  37. package/src/Api/Implementation/CellSummaryApiImpl.d.ts +0 -5
  38. package/src/Api/Implementation/CellSummaryApiImpl.js +2 -23
  39. package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -0
  40. package/src/Api/Implementation/ColumnApiImpl.js +10 -0
  41. package/src/Api/Implementation/CommentsApiImpl.d.ts +5 -2
  42. package/src/Api/Implementation/CommentsApiImpl.js +7 -1
  43. package/src/Api/Implementation/ConfigApiImpl.d.ts +2 -2
  44. package/src/Api/Implementation/ConfigApiImpl.js +24 -13
  45. package/src/Api/Implementation/GridApiImpl.d.ts +6 -3
  46. package/src/Api/Implementation/GridApiImpl.js +51 -14
  47. package/src/Api/Implementation/LayoutApiImpl.d.ts +3 -0
  48. package/src/Api/Implementation/LayoutApiImpl.js +18 -0
  49. package/src/Api/Implementation/NoteApiImpl.d.ts +18 -0
  50. package/src/Api/Implementation/NoteApiImpl.js +45 -0
  51. package/src/Api/Implementation/OptionsApiImpl.d.ts +4 -4
  52. package/src/Api/Implementation/OptionsApiImpl.js +4 -4
  53. package/src/Api/Implementation/ScopeApiImpl.d.ts +2 -0
  54. package/src/Api/Implementation/ScopeApiImpl.js +20 -7
  55. package/src/Api/Implementation/StatusBarApiImpl.d.ts +0 -1
  56. package/src/Api/Implementation/StatusBarApiImpl.js +0 -3
  57. package/src/Api/Implementation/ToolPanelApiImpl.js +6 -6
  58. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +0 -3
  59. package/src/Api/Implementation/UserInterfaceApiImpl.js +0 -8
  60. package/src/Api/Internal/ActionRowInternalApi.d.ts +6 -1
  61. package/src/Api/Internal/ActionRowInternalApi.js +119 -1
  62. package/src/Api/Internal/AdaptableInternalApi.d.ts +6 -7
  63. package/src/Api/Internal/AdaptableInternalApi.js +21 -19
  64. package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +2 -0
  65. package/src/Api/Internal/CalculatedColumnInternalApi.js +72 -0
  66. package/src/Api/Internal/ColumnFilterInternalApi.d.ts +2 -0
  67. package/src/Api/Internal/ColumnFilterInternalApi.js +23 -1
  68. package/src/Api/Internal/ColumnInternalApi.d.ts +4 -1
  69. package/src/Api/Internal/ColumnInternalApi.js +12 -0
  70. package/src/Api/Internal/CommentsInternalApi.d.ts +4 -0
  71. package/src/Api/Internal/CommentsInternalApi.js +18 -0
  72. package/src/Api/Internal/CustomSortInternalApi.d.ts +3 -2
  73. package/src/Api/Internal/CustomSortInternalApi.js +32 -1
  74. package/src/Api/Internal/DataSetInternalApi.js +1 -1
  75. package/src/Api/Internal/ExportInternalApi.d.ts +2 -1
  76. package/src/Api/Internal/ExportInternalApi.js +4 -1
  77. package/src/Api/Internal/Fdc3InternalApi.js +2 -2
  78. package/src/Api/Internal/FormatColumnInternalApi.js +3 -2
  79. package/src/Api/Internal/FreeTextColumnInternalApi.d.ts +2 -0
  80. package/src/Api/Internal/FreeTextColumnInternalApi.js +61 -0
  81. package/src/Api/Internal/GridFilterInternalApi.d.ts +5 -0
  82. package/src/Api/Internal/GridFilterInternalApi.js +7 -1
  83. package/src/Api/Internal/GridInternalApi.d.ts +23 -3
  84. package/src/Api/Internal/GridInternalApi.js +141 -7
  85. package/src/Api/Internal/LayoutInternalApi.d.ts +1 -0
  86. package/src/Api/Internal/LayoutInternalApi.js +16 -0
  87. package/src/Api/Internal/NoteInternalApi.d.ts +4 -0
  88. package/src/Api/Internal/NoteInternalApi.js +18 -0
  89. package/src/Api/Internal/TeamSharingInternalApi.js +1 -1
  90. package/src/Api/InteropioPluginApi.d.ts +2 -2
  91. package/src/Api/LayoutApi.d.ts +15 -0
  92. package/src/Api/NoteApi.d.ts +48 -0
  93. package/src/Api/OptionsApi.d.ts +8 -8
  94. package/src/Api/ScopeApi.d.ts +10 -0
  95. package/src/Api/UserInterfaceApi.d.ts +0 -11
  96. package/src/EnvVars.d.ts +3 -0
  97. package/src/EnvVars.js +8 -0
  98. package/src/PredefinedConfig/AdaptableState.d.ts +2 -2
  99. package/src/PredefinedConfig/CommentState.d.ts +27 -23
  100. package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +4 -0
  101. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  102. package/src/PredefinedConfig/Common/AdaptableScope.d.ts +4 -1
  103. package/src/PredefinedConfig/Common/AggregationColumns.d.ts +1 -0
  104. package/src/PredefinedConfig/Common/AggregationColumns.js +5 -1
  105. package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +4 -0
  106. package/src/PredefinedConfig/Common/Enums.d.ts +2 -1
  107. package/src/PredefinedConfig/Common/Enums.js +1 -0
  108. package/src/PredefinedConfig/Common/Menu.d.ts +15 -1
  109. package/src/PredefinedConfig/Common/Menu.js +98 -0
  110. package/src/PredefinedConfig/Common/RowSummary.d.ts +21 -0
  111. package/src/PredefinedConfig/Common/RowSummary.js +20 -0
  112. package/src/PredefinedConfig/Common/TransposeConfig.d.ts +30 -0
  113. package/src/PredefinedConfig/Common/Types.d.ts +4 -4
  114. package/src/PredefinedConfig/Common/Types.js +4 -1
  115. package/src/PredefinedConfig/LayoutState.d.ts +5 -0
  116. package/src/PredefinedConfig/{NotesState.d.ts → NoteState.d.ts} +12 -22
  117. package/src/PredefinedConfig/PredefinedConfig.d.ts +3 -3
  118. package/src/PredefinedConfig/Selection/GridCell.d.ts +13 -0
  119. package/src/PredefinedConfig/SystemState.d.ts +9 -3
  120. package/src/Redux/ActionsReducers/LayoutRedux.d.ts +9 -0
  121. package/src/Redux/ActionsReducers/LayoutRedux.js +34 -11
  122. package/src/Redux/ActionsReducers/NoteRedux.d.ts +38 -0
  123. package/src/Redux/ActionsReducers/NoteRedux.js +89 -0
  124. package/src/Redux/ActionsReducers/SystemRedux.d.ts +6 -1
  125. package/src/Redux/ActionsReducers/SystemRedux.js +19 -6
  126. package/src/Redux/Store/AdaptableStore.d.ts +4 -6
  127. package/src/Redux/Store/AdaptableStore.js +66 -76
  128. package/src/Redux/Store/Interface/IAdaptableStore.d.ts +8 -2
  129. package/src/Strategy/AdaptableModuleBase.d.ts +8 -8
  130. package/src/Strategy/AdaptableModuleBase.js +13 -15
  131. package/src/Strategy/AlertModule.d.ts +1 -2
  132. package/src/Strategy/AlertModule.js +3 -56
  133. package/src/Strategy/BulkUpdateModule.js +1 -1
  134. package/src/Strategy/CalculatedColumnModule.d.ts +2 -3
  135. package/src/Strategy/CalculatedColumnModule.js +6 -26
  136. package/src/Strategy/CellSummaryModule.d.ts +8 -6
  137. package/src/Strategy/CellSummaryModule.js +78 -23
  138. package/src/Strategy/ChartingModule.d.ts +0 -1
  139. package/src/Strategy/ChartingModule.js +2 -22
  140. package/src/Strategy/ColumnFilterModule.d.ts +2 -3
  141. package/src/Strategy/ColumnFilterModule.js +44 -103
  142. package/src/Strategy/ColumnInfoModule.js +2 -0
  143. package/src/Strategy/{CommentsModule.d.ts → CommentModule.d.ts} +2 -5
  144. package/src/Strategy/{CommentsModule.js → CommentModule.js} +19 -25
  145. package/src/Strategy/CustomSortModule.js +3 -2
  146. package/src/Strategy/DashboardModule.d.ts +1 -2
  147. package/src/Strategy/DashboardModule.js +9 -15
  148. package/src/Strategy/DataChangeHistoryModule.d.ts +1 -0
  149. package/src/Strategy/DataChangeHistoryModule.js +3 -1
  150. package/src/Strategy/DataImportModule.d.ts +1 -1
  151. package/src/Strategy/DataImportModule.js +5 -5
  152. package/src/Strategy/DataSetModule.d.ts +1 -1
  153. package/src/Strategy/DataSetModule.js +1 -1
  154. package/src/Strategy/ExportModule.d.ts +1 -0
  155. package/src/Strategy/ExportModule.js +17 -2
  156. package/src/Strategy/Fdc3Module.js +3 -0
  157. package/src/Strategy/FlashingCellModule.d.ts +1 -2
  158. package/src/Strategy/FlashingCellModule.js +6 -19
  159. package/src/Strategy/FormatColumnModule.d.ts +0 -2
  160. package/src/Strategy/FormatColumnModule.js +6 -51
  161. package/src/Strategy/FreeTextColumnModule.d.ts +0 -1
  162. package/src/Strategy/FreeTextColumnModule.js +1 -31
  163. package/src/Strategy/GridFilterModule.d.ts +0 -1
  164. package/src/Strategy/GridFilterModule.js +0 -37
  165. package/src/Strategy/GridInfoModule.js +2 -0
  166. package/src/Strategy/Interface/IModule.d.ts +0 -1
  167. package/src/Strategy/LayoutModule.d.ts +9 -3
  168. package/src/Strategy/LayoutModule.js +148 -62
  169. package/src/Strategy/NamedQueryModule.d.ts +0 -1
  170. package/src/Strategy/NamedQueryModule.js +0 -19
  171. package/src/Strategy/{NotesModule.d.ts → NoteModule.d.ts} +2 -1
  172. package/src/Strategy/NoteModule.js +62 -0
  173. package/src/Strategy/PlusMinusModule.d.ts +1 -1
  174. package/src/Strategy/PlusMinusModule.js +2 -2
  175. package/src/Strategy/ScheduleModule.d.ts +1 -1
  176. package/src/Strategy/ScheduleModule.js +1 -1
  177. package/src/Strategy/SettingsPanelModule.js +3 -3
  178. package/src/Strategy/ShortcutModule.d.ts +1 -1
  179. package/src/Strategy/ShortcutModule.js +1 -1
  180. package/src/Strategy/SmartEditModule.js +1 -1
  181. package/src/Strategy/StyledColumnModule.d.ts +1 -1
  182. package/src/Strategy/StyledColumnModule.js +26 -26
  183. package/src/Strategy/SystemStatusModule.js +2 -2
  184. package/src/Strategy/TeamSharingModule.d.ts +1 -0
  185. package/src/Strategy/TeamSharingModule.js +5 -5
  186. package/src/Strategy/ToolPanelModule.d.ts +0 -1
  187. package/src/Strategy/ToolPanelModule.js +0 -23
  188. package/src/Strategy/Utilities/getScopeViewItems.js +3 -0
  189. package/src/Utilities/Constants/DocumentationLinkConstants.js +1 -1
  190. package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
  191. package/src/Utilities/Constants/GeneralConstants.js +3 -2
  192. package/src/Utilities/Constants/ModuleConstants.d.ts +6 -6
  193. package/src/Utilities/Constants/ModuleConstants.js +7 -7
  194. package/src/Utilities/Defaults/DefaultSettingsPanel.js +7 -6
  195. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +3 -2
  196. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +430 -1
  197. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -3
  198. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +1 -1
  199. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -1
  200. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +15 -0
  201. package/src/Utilities/Extensions/ArrayExtensions.d.ts +2 -0
  202. package/src/Utilities/Extensions/ArrayExtensions.js +6 -1
  203. package/src/Utilities/Helpers/AdaptableHelper.d.ts +3 -4
  204. package/src/Utilities/Helpers/AdaptableHelper.js +20 -60
  205. package/src/Utilities/Helpers/Helper.d.ts +2 -0
  206. package/src/Utilities/Helpers/Helper.js +6 -1
  207. package/src/Utilities/MenuItem.d.ts +7 -4
  208. package/src/Utilities/MenuItem.js +6 -3
  209. package/src/Utilities/ObjectFactory.d.ts +3 -3
  210. package/src/Utilities/ObjectFactory.js +4 -24
  211. package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +4 -2
  212. package/src/Utilities/Services/AggregatedScalarLiveValue.js +26 -19
  213. package/src/Utilities/Services/CellPopupService.js +2 -3
  214. package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +1 -1
  215. package/src/Utilities/Services/Interface/IReportService.d.ts +1 -4
  216. package/src/Utilities/Services/LicenseService/index.d.ts +3 -0
  217. package/src/Utilities/Services/LicenseService/index.js +1 -186
  218. package/src/Utilities/Services/MetamodelService.d.ts +1 -1
  219. package/src/Utilities/Services/MetamodelService.js +6 -3
  220. package/src/Utilities/Services/ModuleService.js +4 -0
  221. package/src/Utilities/Services/QueryLanguageService.d.ts +1 -1
  222. package/src/Utilities/Services/QueryLanguageService.js +4 -3
  223. package/src/Utilities/Services/ReportService.d.ts +7 -5
  224. package/src/Utilities/Services/ReportService.js +238 -22
  225. package/src/Utilities/Services/RowEditService.d.ts +3 -2
  226. package/src/Utilities/Services/RowEditService.js +3 -1
  227. package/src/Utilities/adaptableQlUtils.d.ts +2 -0
  228. package/src/Utilities/adaptableQlUtils.js +18 -0
  229. package/src/Utilities/license/decode.js +1 -70
  230. package/src/Utilities/license/hashing.js +1 -47
  231. package/src/View/AdaptableView.js +1 -3
  232. package/src/View/AdaptableViewFactory.js +2 -2
  233. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +2 -2
  234. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +1 -1
  235. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  236. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +3 -3
  237. package/src/View/CalculatedColumn/utils.d.ts +1 -1
  238. package/src/View/CellSummary/CellSummaryPopup.js +1 -1
  239. package/src/View/Comments/CommentsEditor.js +24 -11
  240. package/src/View/Comments/CommentsPopup.js +20 -11
  241. package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
  242. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.d.ts +5 -0
  243. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.js +46 -0
  244. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +5 -2
  245. package/src/View/Components/CellPopup/index.d.ts +1 -0
  246. package/src/View/Components/CellPopup/index.js +5 -2
  247. package/src/View/Components/FilterForm/FilterForm.js +20 -12
  248. package/src/View/Components/FilterForm/QuickFilterForm.js +15 -8
  249. package/src/View/Components/FilterForm/QuickFilterValues.js +39 -23
  250. package/src/View/Components/NewScopeComponent.js +34 -1
  251. package/src/View/Components/Popups/AdaptableLoadingScreen.d.ts +6 -5
  252. package/src/View/Components/Popups/AdaptableLoadingScreen.js +19 -9
  253. package/src/View/Components/Popups/AdaptableToaster.js +1 -1
  254. package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +7 -7
  255. package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +1 -0
  256. package/src/View/Components/Popups/WindowPopups/windowFactory.js +4 -1
  257. package/src/View/Components/Selectors/PermittedValuesSelector.js +2 -2
  258. package/src/View/Components/ValueSelector/index.d.ts +1 -0
  259. package/src/View/Components/ValueSelector/index.js +2 -2
  260. package/src/View/CustomSort/CustomSortSummary.js +1 -1
  261. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +8 -9
  262. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +1 -1
  263. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +3 -1
  264. package/src/View/GridFilter/GridFilterViewPanel.js +9 -5
  265. package/src/View/GridFilter/useGridFilterExpressionEditor.js +1 -1
  266. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -3
  267. package/src/View/Layout/LayoutViewPanel.js +2 -1
  268. package/src/View/Layout/TransposedPopup.d.ts +3 -0
  269. package/src/View/Layout/TransposedPopup.js +200 -0
  270. package/src/View/Layout/Wizard/LayoutWizard.js +36 -3
  271. package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
  272. package/src/View/Layout/Wizard/sections/RowSummarySection.d.ts +9 -0
  273. package/src/View/Layout/Wizard/sections/RowSummarySection.js +181 -0
  274. package/src/View/License/LicenseWatermark.js +1 -66
  275. package/src/View/Note/NotePopup.d.ts +2 -0
  276. package/src/View/{Notes/NotesPopup.js → Note/NotePopup.js} +19 -19
  277. package/src/View/SpecialColumnSettingsWizardStep.js +4 -4
  278. package/src/View/Theme/ThemeSelector.js +2 -2
  279. package/src/agGrid/ActionColumnRenderer.js +7 -6
  280. package/src/agGrid/Adaptable.d.ts +3 -455
  281. package/src/agGrid/Adaptable.js +7 -5291
  282. package/src/agGrid/AdaptableAgGrid.d.ts +354 -0
  283. package/src/agGrid/AdaptableAgGrid.js +3972 -0
  284. package/src/agGrid/AdaptableLogger.js +78 -13
  285. package/src/agGrid/AgGridAdapter.d.ts +64 -0
  286. package/src/agGrid/AgGridAdapter.js +590 -0
  287. package/src/agGrid/AgGridColumnAdapter.d.ts +56 -0
  288. package/src/agGrid/AgGridColumnAdapter.js +836 -0
  289. package/src/agGrid/AgGridMenuAdapter.d.ts +28 -0
  290. package/src/agGrid/AgGridMenuAdapter.js +282 -0
  291. package/src/agGrid/AgGridOptionsService.d.ts +15 -0
  292. package/src/agGrid/AgGridOptionsService.js +80 -0
  293. package/src/agGrid/BadgeRenderer.js +1 -1
  294. package/src/agGrid/CheckboxRenderer.js +1 -1
  295. package/src/agGrid/FilterWrapper.d.ts +2 -2
  296. package/src/agGrid/FilterWrapper.js +1 -1
  297. package/src/agGrid/attachAddaptableColumnTypes.d.ts +12 -12
  298. package/src/agGrid/defaultAdaptableOptions.d.ts +3 -0
  299. package/src/{Utilities/Defaults/DefaultAdaptableOptions.js → agGrid/defaultAdaptableOptions.js} +74 -18
  300. package/src/agGrid/editors/AdaptableDateEditor/index.d.ts +1 -1
  301. package/src/agGrid/editors/AdaptableDateEditor/index.js +3 -3
  302. package/src/agGrid/editors/AdaptableNumberEditor/index.d.ts +2 -2
  303. package/src/agGrid/editors/AdaptableNumberEditor/index.js +2 -2
  304. package/src/agGrid/weightedAverage.d.ts +0 -2
  305. package/src/agGrid/weightedAverage.js +1 -56
  306. package/src/components/ColorPicker/ColorPicker.d.ts +1 -1
  307. package/src/components/Datepicker/index.d.ts +1 -1
  308. package/src/components/Datepicker/index.js +10 -2
  309. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +2 -1
  310. package/src/components/ExpressionEditor/QueryBuilder/utils.d.ts +0 -1
  311. package/src/components/ExpressionEditor/QueryBuilder/utils.js +3 -17
  312. package/src/components/InfiniteTable/index.js +2 -2
  313. package/src/components/Input/index.d.ts +1 -2
  314. package/src/components/List/ListGroupItem/index.d.ts +1 -1
  315. package/src/components/Modal/index.d.ts +1 -0
  316. package/src/components/Modal/index.js +6 -4
  317. package/src/components/Select/Select.d.ts +3 -1
  318. package/src/components/Select/Select.js +4 -2
  319. package/src/components/Textarea/index.d.ts +2 -2
  320. package/src/components/icons/index.js +2 -0
  321. package/src/components/icons/note.js +2 -2
  322. package/src/components/icons/rows.d.ts +3 -0
  323. package/src/components/icons/rows.js +7 -0
  324. package/src/env.js +2 -2
  325. package/src/metamodel/adaptable.metamodel.d.ts +179 -25
  326. package/src/metamodel/adaptable.metamodel.js +1 -9316
  327. package/src/migration/AdaptableUpgradeHelper.d.ts +38 -0
  328. package/src/migration/AdaptableUpgradeHelper.js +52 -0
  329. package/src/migration/VersionUpgrade.d.ts +8 -0
  330. package/src/migration/VersionUpgrade.js +15 -0
  331. package/src/migration/VersionUpgrade17.d.ts +18 -0
  332. package/src/migration/VersionUpgrade17.js +347 -0
  333. package/src/migration/VersionUpgrade18.d.ts +5 -0
  334. package/src/migration/VersionUpgrade18.js +10 -0
  335. package/src/parser/src/parser.js +117 -1257
  336. package/src/parser/src/predicate/mapExpressionToQlPredicate.js +1 -1
  337. package/src/parser/src/predicate/mapQlPredicateToExpression.js +2 -1
  338. package/src/parser/src/types.d.ts +7 -2
  339. package/src/types.d.ts +26 -19
  340. package/tsconfig.cjs.tsbuildinfo +1 -1
  341. package/src/AdaptableOptions/CommentsOptions.d.ts +0 -28
  342. package/src/Api/Events/CommentsChangedInfo.d.ts +0 -5
  343. package/src/Api/Implementation/NotesApiImpl.d.ts +0 -16
  344. package/src/Api/Implementation/NotesApiImpl.js +0 -44
  345. package/src/Api/NotesApi.d.ts +0 -48
  346. package/src/PredefinedConfig/CellAddress.d.ts +0 -13
  347. package/src/PredefinedConfig/CellAddress.js +0 -5
  348. package/src/Redux/ActionsReducers/NotesRedux.d.ts +0 -39
  349. package/src/Redux/ActionsReducers/NotesRedux.js +0 -87
  350. package/src/Strategy/NotesModule.js +0 -62
  351. package/src/Utilities/Defaults/DefaultAdaptableOptions.d.ts +0 -2
  352. package/src/Utilities/Services/Interface/IRowEditService.d.ts +0 -3
  353. package/src/View/Components/ScopeComponent.d.ts +0 -24
  354. package/src/View/Components/ScopeComponent.js +0 -138
  355. package/src/View/Export/Wizard/ReportScopeWizard.d.ts +0 -17
  356. package/src/View/Export/Wizard/ReportScopeWizard.js +0 -52
  357. package/src/View/Notes/NotesPopup.d.ts +0 -2
  358. package/src/agGrid/agGridHelper.d.ts +0 -57
  359. package/src/agGrid/agGridHelper.js +0 -691
  360. package/src/agGrid/agGridMenuHelper.d.ts +0 -46
  361. package/src/agGrid/agGridMenuHelper.js +0 -673
  362. /package/src/AdaptableOptions/{CommentsOptions.js → CommentOptions.js} +0 -0
  363. /package/src/AdaptableOptions/{NotesOptions.js → NoteOptions.js} +0 -0
  364. /package/src/Api/Events/{CommentsChangedInfo.js → CommentChanged.js} +0 -0
  365. /package/src/Api/{NotesApi.js → NoteApi.js} +0 -0
  366. /package/src/PredefinedConfig/{NotesState.js → Common/TransposeConfig.js} +0 -0
  367. /package/src/{Utilities/Services/Interface/IRowEditService.js → PredefinedConfig/NoteState.js} +0 -0
  368. /package/src/View/{Notes → Note}/NoteEditor.d.ts +0 -0
  369. /package/src/View/{Notes → Note}/NoteEditor.js +0 -0
@@ -29,8 +29,9 @@ class LayoutViewPanelComponent extends React.Component {
29
29
  return Object.assign(Object.assign({}, layout), { label: layout.Name, value: layout.Name, onClick: () => this.props.onSelectLayout(layout.Name) });
30
30
  });
31
31
  const elementType = this.props.viewType === 'Toolbar' ? 'DashboardToolbar' : 'ToolPanel';
32
+ let layoutSelectStyle = elementType === 'ToolPanel' ? { minWidth: '100%' } : {};
32
33
  return (React.createElement(rebass_1.Flex, { flexDirection: "row", className: `ab-${elementType}__Layout__wrap`, flexWrap: this.props.viewType === 'ToolPanel' ? 'wrap' : 'nowrap' },
33
- React.createElement(rebass_1.Flex, { flex: 1 },
34
+ React.createElement(rebass_1.Flex, { style: layoutSelectStyle, flex: 1 },
34
35
  React.createElement(Select_1.Select, { style: { width: '100%' }, options: availableLayoutOptions, className: `ab-${elementType}__Layout__select`, value: layoutEntity ? layoutEntity.Name : null, onChange: (layout) => this.props.onSelectLayout(layout) })),
35
36
  React.createElement(rebass_1.Flex, { flexDirection: "row", className: (0, join_1.default)(this.props.accessLevel == 'ReadOnly' ? GeneralConstants.READ_ONLY_STYLE : '', `ab-${elementType}__Layout__wrap`) },
36
37
  isManualSaveLayout && (React.createElement(ButtonSave_1.ButtonSave, { className: `ab-${elementType}__Layout__save`, onClick: () => this.onSaveLayout(), tooltip: "Save Changes to Current Layout", disabled: !this.props.CanSave, accessLevel: accessLevel })),
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { WindowPopupChildProps } from '../Components/Popups/WindowPopups/WindowPopups';
3
+ export declare const TransposedPopup: (props: WindowPopupChildProps) => JSX.Element;
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransposedPopup = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const React = tslib_1.__importStar(require("react"));
6
+ const rebass_1 = require("rebass");
7
+ const FormLayout_1 = tslib_1.__importStar(require("../../components/FormLayout"));
8
+ const Panel_1 = tslib_1.__importDefault(require("../../components/Panel"));
9
+ const AdaptableContext_1 = require("../AdaptableContext");
10
+ const ColumnSelector_1 = require("../Components/Selectors/ColumnSelector");
11
+ const AdaptableAgGrid_1 = require("../../agGrid/AdaptableAgGrid");
12
+ const TransposedPopup = (props) => {
13
+ const adaptable = (0, AdaptableContext_1.useAdaptable)();
14
+ const { transposedColumnId, hideTransposedColumn, visibleColumns, visibleRows, autosize } = props.popupProps;
15
+ const rowNodes = React.useMemo(() => {
16
+ return props.popupProps.visibleRows
17
+ ? adaptable.api.gridApi.getVisibleRowNodes()
18
+ : adaptable.api.gridApi.getAllRowNodes();
19
+ }, [
20
+ // can be later triggered by tickng data
21
+ ]);
22
+ const primaryKey = adaptable.api.optionsApi.getPrimaryKey();
23
+ const [syntheticTransposedByColumnId, setSyntheticTransposedByColumnId] = React.useState(transposedColumnId);
24
+ const columns = React.useMemo(() => {
25
+ // customisable
26
+ return visibleColumns
27
+ ? adaptable.api.columnApi.getVisibleColumns()
28
+ : adaptable.api.columnApi.getColumns();
29
+ }, []);
30
+ const adaptableContainerId = 'transposed-adaptable-container';
31
+ const agGridContainerId = 'transposed-adaptable-ag-grid-container';
32
+ /**
33
+ * This is used as first field
34
+ */
35
+ const transposedFirstColumnField = '_transposed_column_value';
36
+ const transposedFirstColumnHeader = '_transposed_column_header';
37
+ const transposedRowsAndColumns = React.useMemo(() => {
38
+ /**
39
+ * transposed column values become primaryKey of the new tarnsposed rows
40
+ * we build row by row, might be easer
41
+ */
42
+ const transposedColumns = [];
43
+ const transposedRows = [];
44
+ for (const row of rowNodes) {
45
+ // we force the col-ids to be strings, easer to work with
46
+ //row[transposeByColumnId] + '';
47
+ const colId = adaptable.api.gridApi.getNormalisedValueFromRowNode(row, primaryKey) + '';
48
+ //row[synteticTransposedByColumnId] + '';
49
+ const header = adaptable.api.gridApi.getNormalisedValueFromRowNode(row, syntheticTransposedByColumnId) +
50
+ '';
51
+ transposedColumns.push({
52
+ colId,
53
+ header,
54
+ });
55
+ }
56
+ for (const column of columns) {
57
+ /**
58
+ * We can hide the transposed column, if we want
59
+ */
60
+ if (hideTransposedColumn && column.columnId === syntheticTransposedByColumnId) {
61
+ continue;
62
+ }
63
+ const transposedRow = {
64
+ // [transposed-by-column-id]: [other column id],
65
+ // the value can be set to friendlyname
66
+ [transposedFirstColumnField]: column.columnId,
67
+ [transposedFirstColumnHeader]: column.friendlyName,
68
+ };
69
+ for (let row of rowNodes) {
70
+ // [transposed-by-column-value[n]]: [other column value[n]]
71
+ const key = adaptable.api.gridApi.getNormalisedValueFromRowNode(row, primaryKey);
72
+ // row[column.field]
73
+ let value = adaptable.api.gridApi.getDisplayValueFromRowNode(row, column.columnId);
74
+ if (value instanceof Date) {
75
+ value = value.toLocaleString();
76
+ }
77
+ transposedRow[key] = value;
78
+ }
79
+ transposedRows.push(transposedRow);
80
+ }
81
+ return {
82
+ transposedColumns,
83
+ transposedRows,
84
+ };
85
+ }, [rowNodes, primaryKey, syntheticTransposedByColumnId]);
86
+ React.useEffect(() => {
87
+ // Mounting in an effect, so the nodes are rendered/available
88
+ const hostAdaptableOptions = adaptable.adaptableOptions;
89
+ const adaptableOptions = {
90
+ primaryKey: transposedFirstColumnField,
91
+ licenseKey: hostAdaptableOptions.licenseKey,
92
+ userName: `${hostAdaptableOptions.userName}`,
93
+ adaptableId: `${hostAdaptableOptions.adaptableId}::TransposedView`,
94
+ containerOptions: {
95
+ adaptableContainer: adaptableContainerId,
96
+ agGridContainer: agGridContainerId,
97
+ },
98
+ entitlementOptions: {
99
+ defaultAccessLevel: 'Hidden',
100
+ },
101
+ layoutOptions: {
102
+ createDefaultLayout: false,
103
+ autoSizeColumnsInLayout: autosize,
104
+ },
105
+ predefinedConfig: {
106
+ Layout: {
107
+ Revision: Date.now(),
108
+ CurrentLayout: 'TransposedView',
109
+ Layouts: [
110
+ {
111
+ Name: 'TransposedView',
112
+ Columns: [
113
+ transposedFirstColumnHeader,
114
+ ...transposedRowsAndColumns.transposedColumns.map((c) => c.colId),
115
+ ],
116
+ PinnedColumnsMap: {
117
+ [transposedFirstColumnHeader]: 'left',
118
+ },
119
+ },
120
+ ],
121
+ },
122
+ Theme: {
123
+ CurrentTheme: adaptable.api.themeApi.getCurrentTheme(),
124
+ },
125
+ },
126
+ };
127
+ const firstColumn = {
128
+ field: transposedFirstColumnHeader,
129
+ headerName: adaptable.api.columnApi.getFriendlyNameForColumnId(syntheticTransposedByColumnId),
130
+ };
131
+ const agGridOptions = {
132
+ suppressLoadingOverlay: true,
133
+ defaultColDef: {
134
+ floatingFilter: false,
135
+ filter: false,
136
+ sortable: true,
137
+ resizable: true,
138
+ enableRowGroup: false,
139
+ editable: false,
140
+ enablePivot: false,
141
+ enableValue: false,
142
+ lockPinned: true,
143
+ menuTabs: [],
144
+ width: 120,
145
+ },
146
+ columnDefs: [
147
+ {
148
+ field: transposedFirstColumnField,
149
+ hide: true,
150
+ },
151
+ firstColumn,
152
+ ...transposedRowsAndColumns.transposedColumns.map((col) => {
153
+ return {
154
+ field: col.colId,
155
+ type: null,
156
+ headerName: col.header,
157
+ };
158
+ }),
159
+ ],
160
+ rowData: transposedRowsAndColumns.transposedRows,
161
+ sideBar: false,
162
+ };
163
+ const modules = adaptable.getAgGridRegisteredModules();
164
+ let transposedAdaptableApi;
165
+ (async () => {
166
+ transposedAdaptableApi = await AdaptableAgGrid_1.AdaptableAgGrid._initInternal({
167
+ variant: 'vanilla',
168
+ adaptableOptions,
169
+ gridOptions: agGridOptions,
170
+ modules,
171
+ });
172
+ adaptable.api.eventApi.on('ThemeChanged', (event) => {
173
+ transposedAdaptableApi.themeApi.loadTheme(typeof event.theme === 'object' ? event.theme.Name : event.theme);
174
+ });
175
+ })();
176
+ return () => {
177
+ if (transposedAdaptableApi) {
178
+ transposedAdaptableApi.destroy();
179
+ }
180
+ };
181
+ }, [syntheticTransposedByColumnId]);
182
+ /**
183
+ * Need to get all data, manualy pivot the grid using the primary key.
184
+ *
185
+ * 1. get the data, and pivot using the primary key
186
+ * 2. create the col definitios, a col definition for each row
187
+ * 3. create the grid
188
+ */
189
+ return (React.createElement(rebass_1.Flex, { flexDirection: "column", width: "100%", height: "100%" },
190
+ React.createElement(Panel_1.default, null,
191
+ React.createElement(FormLayout_1.default, null,
192
+ React.createElement(FormLayout_1.FormRow, { label: "Elevated Column" },
193
+ React.createElement(ColumnSelector_1.ColumnSelector, { value: syntheticTransposedByColumnId, onChange: (colId) => {
194
+ setSyntheticTransposedByColumnId(colId);
195
+ } })))),
196
+ React.createElement(rebass_1.Flex, { height: "100%" },
197
+ React.createElement(rebass_1.Box, { id: "transposed-adaptable-container" }),
198
+ React.createElement(rebass_1.Box, { height: "100%", width: "100%", id: "transposed-adaptable-ag-grid-container" }))));
199
+ };
200
+ exports.TransposedPopup = TransposedPopup;
@@ -18,6 +18,8 @@ const AggregationsSection_1 = require("./sections/AggregationsSection");
18
18
  const SortSection_1 = require("./sections/SortSection");
19
19
  const FilterSection_1 = require("./sections/FilterSection");
20
20
  const GridFilterSection_1 = require("./sections/GridFilterSection");
21
+ const RowSummarySection_1 = require("./sections/RowSummarySection");
22
+ const RowSummary_1 = require("../../../PredefinedConfig/Common/RowSummary");
21
23
  const LayoutWizard = (props) => {
22
24
  var _a, _b;
23
25
  const dispatch = (0, react_redux_1.useDispatch)();
@@ -37,8 +39,9 @@ const LayoutWizard = (props) => {
37
39
  preparedLayout = ObjectFactory_1.default.CreateEmptyLayout({ Name: '' });
38
40
  }
39
41
  if (preparedLayout.SuppressAggFuncInHeader === undefined) {
40
- preparedLayout.SuppressAggFuncInHeader =
41
- !!adaptable.api.gridApi.getAgGridInstance().suppressAggFuncInHeader;
42
+ preparedLayout.SuppressAggFuncInHeader = !!adaptable.agGridAdapter
43
+ .getAgGridApi()
44
+ .getGridOption('suppressAggFuncInHeader');
42
45
  }
43
46
  return preparedLayout;
44
47
  });
@@ -105,6 +108,7 @@ const LayoutWizard = (props) => {
105
108
  {
106
109
  title: 'Row Groups',
107
110
  isVisible: () => layoutSupportedFeatures.RowGroupedColumns,
111
+ isValid: RowSummarySection_1.areSummaryRowsValid,
108
112
  details: 'Configure Row Grouping',
109
113
  renderSummary: () => React.createElement(RowGroupingSection_1.RowGroupingSectionSummary, null),
110
114
  render: () => (React.createElement(rebass_1.Box, { p: 2, style: { height: '100%' } },
@@ -117,7 +121,36 @@ const LayoutWizard = (props) => {
117
121
  renderSummary: () => React.createElement(AggregationsSection_1.AggregationsSectionSummary, null),
118
122
  isValid: (data) => (0, AggregationsSection_1.isAggregationsSectionValid)(data),
119
123
  render: () => (React.createElement(rebass_1.Box, { p: 2, style: { height: '100%' } },
120
- React.createElement(AggregationsSection_1.AggregationsSection, { onChange: setLayout }))),
124
+ React.createElement(AggregationsSection_1.AggregationsSection, { onChange: (layout) => {
125
+ let newLayout = (0, Helper_1.cloneObject)(layout);
126
+ // if we do not have an weighted avg col, we need to clear the row summary if one exists
127
+ if (newLayout.RowSummaries) {
128
+ newLayout.RowSummaries = newLayout.RowSummaries.map((rowSummary) => {
129
+ return Object.assign(Object.assign({}, rowSummary), { ColumnsMap: Object.entries(rowSummary.ColumnsMap).reduce((acc, [columnId, aggFunc]) => {
130
+ if (
131
+ // see if it is weighted avg
132
+ aggFunc === RowSummary_1.WEIGHTED_AVERAGE_AGGREATED_FUNCTION &&
133
+ // see if we have a weight in the agg columns
134
+ newLayout.AggregationColumns[columnId] &&
135
+ (typeof newLayout.AggregationColumns[columnId] !== 'object' ||
136
+ newLayout.AggregationColumns[columnId].weightColumnId)) {
137
+ // need to remove the row summary
138
+ return acc;
139
+ }
140
+ acc[columnId] = aggFunc;
141
+ return acc;
142
+ }, {}) });
143
+ });
144
+ }
145
+ setLayout(newLayout);
146
+ } }))),
147
+ },
148
+ {
149
+ title: 'Row Summaries',
150
+ details: 'Configure Row Summaries',
151
+ renderSummary: () => React.createElement(RowGroupingSection_1.RowGroupingSectionSummary, null),
152
+ render: () => (React.createElement(rebass_1.Box, { p: 2, style: { height: '100%' } },
153
+ React.createElement(RowSummarySection_1.RowSummarySection, { onChange: setLayout }))),
121
154
  },
122
155
  {
123
156
  title: 'Sort',
@@ -175,7 +175,7 @@ const ColumnRow = (props) => {
175
175
  React.createElement(FormLayout_1.FormRow, { label: "ColumnId" },
176
176
  React.createElement(Tag_1.Tag, null, props.column.columnId)),
177
177
  React.createElement(FormLayout_1.FormRow, { label: "Header" },
178
- React.createElement(Input_1.default, { "data-name": "column-header", className: "ab-Layout-Wizard__ColumnRow__Input", placehoder: "Custom name (optional)", onChange: () => {
178
+ React.createElement(Input_1.default, { "data-name": "column-header", className: "ab-Layout-Wizard__ColumnRow__Input", placeholder: "Custom name (optional)", onChange: () => {
179
179
  props.onColumnNameChange(props.column.columnId, event.target.value);
180
180
  }, value: customHeader })),
181
181
  React.createElement(FormLayout_1.FormRow, { label: "Width" },
@@ -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,181 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RowSummarySection = exports.RowGroupingSectionSummary = exports.areSummaryRowsValid = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const React = tslib_1.__importStar(require("react"));
6
+ const rebass_1 = require("rebass");
7
+ const FormLayout_1 = tslib_1.__importStar(require("../../../../components/FormLayout"));
8
+ const Panel_1 = tslib_1.__importDefault(require("../../../../components/Panel"));
9
+ const Select_1 = require("../../../../components/Select");
10
+ const SimpleButton_1 = tslib_1.__importDefault(require("../../../../components/SimpleButton"));
11
+ const Tabs_1 = require("../../../../components/Tabs");
12
+ const Tag_1 = require("../../../../components/Tag");
13
+ const RowSummary_1 = require("../../../../PredefinedConfig/Common/RowSummary");
14
+ const adaptableQlUtils_1 = require("../../../../Utilities/adaptableQlUtils");
15
+ const ModuleConstants_1 = require("../../../../Utilities/Constants/ModuleConstants");
16
+ const sortWithOrder_1 = require("../../../../Utilities/sortWithOrder");
17
+ const AdaptableContext_1 = require("../../../AdaptableContext");
18
+ const ValueSelector_1 = require("../../../Components/ValueSelector");
19
+ const OnePageAdaptableWizard_1 = require("../../../Wizard/OnePageAdaptableWizard");
20
+ const Utilities_1 = require("./Utilities");
21
+ const areSummaryRowsValid = (layout) => {
22
+ var _a;
23
+ if (!layout.RowSummaries)
24
+ return true;
25
+ let valid = true;
26
+ (_a = layout.RowSummaries) === null || _a === void 0 ? void 0 : _a.find((rowSummary) => {
27
+ var _a;
28
+ for (const [_, fn] of Object.entries((_a = rowSummary.ColumnsMap) !== null && _a !== void 0 ? _a : {})) {
29
+ if (!fn) {
30
+ valid = 'All row summary columns must have an aggregation function.';
31
+ return true;
32
+ }
33
+ }
34
+ });
35
+ return valid;
36
+ };
37
+ exports.areSummaryRowsValid = areSummaryRowsValid;
38
+ const getAvailableExpressionsForColumnType = (columnType, availableScalarExpressions) => {
39
+ const inputType = (0, adaptableQlUtils_1.mapColumnDataTypeToExpressionFunctionType)(columnType);
40
+ return Object.entries(availableScalarExpressions !== null && availableScalarExpressions !== void 0 ? availableScalarExpressions : {})
41
+ .map(([expression, expressionDef]) => {
42
+ var _a, _b;
43
+ let firstArg = null;
44
+ if (!RowSummary_1.summarySupportedExpressions.includes(expression)) {
45
+ return null;
46
+ }
47
+ if (Array.isArray((_a = expressionDef === null || expressionDef === void 0 ? void 0 : expressionDef.inputs) === null || _a === void 0 ? void 0 : _a[0])) {
48
+ // @ts-ignore
49
+ firstArg = (_b = expressionDef.inputs.find((input) => input.includes(inputType))) === null || _b === void 0 ? void 0 : _b[0];
50
+ }
51
+ else {
52
+ firstArg = expressionDef.inputs[0];
53
+ }
54
+ if (inputType === firstArg) {
55
+ return expression;
56
+ }
57
+ else {
58
+ return null;
59
+ }
60
+ })
61
+ .filter(Boolean);
62
+ };
63
+ const RowGroupingSectionSummary = () => {
64
+ var _a;
65
+ const adaptable = (0, AdaptableContext_1.useAdaptable)();
66
+ const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
67
+ return (React.createElement(rebass_1.Box, null, ((_a = layout.RowGroupedColumns) === null || _a === void 0 ? void 0 : _a.length) ? (layout.RowGroupedColumns.map((columnId) => (React.createElement(Tag_1.Tag, { mr: 1, key: columnId }, adaptable.api.columnApi.getFriendlyNameForColumnId(columnId))))) : (React.createElement(Tag_1.Tag, null, "No Row Grouping"))));
68
+ };
69
+ exports.RowGroupingSectionSummary = RowGroupingSectionSummary;
70
+ const RowSummaryEditor = ({ rowSummary, onChange, availableScalarExpressions, onDelete, }) => {
71
+ const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
72
+ const adaptable = (0, AdaptableContext_1.useAdaptable)();
73
+ const columns = React.useMemo(() => {
74
+ const colIds = adaptable.api.columnApi
75
+ .getColumns()
76
+ .filter((column) => {
77
+ var _a, _b;
78
+ if (!['Number', 'String', 'Date'].includes(column.dataType))
79
+ return false;
80
+ return (_b = (_a = layout.Columns) === null || _a === void 0 ? void 0 : _a.includes) === null || _b === void 0 ? void 0 : _b.call(_a, column.columnId);
81
+ })
82
+ .map((c) => c.columnId);
83
+ return (0, sortWithOrder_1.sortWithOrderArray)(colIds, Object.keys(rowSummary.ColumnsMap), {
84
+ sortUnorderedItems: false,
85
+ }).map((colId) => adaptable.api.columnApi.getColumnWithColumnId(colId));
86
+ }, [rowSummary.ColumnsMap]);
87
+ return (React.createElement(Panel_1.default, { header: React.createElement(rebass_1.Flex, { style: { width: '100%' } },
88
+ React.createElement(rebass_1.Flex, { flex: 1, alignItems: "center" }, "Row Summary"),
89
+ React.createElement(SimpleButton_1.default, { icon: "delete", onClick: () => {
90
+ onDelete();
91
+ } })), p: 2 },
92
+ React.createElement(FormLayout_1.default, null,
93
+ React.createElement(FormLayout_1.FormRow, { label: "Position" },
94
+ React.createElement(Select_1.Select, { options: [
95
+ {
96
+ label: 'Top',
97
+ value: 'Top',
98
+ },
99
+ {
100
+ label: 'Bottom',
101
+ value: 'Bottom',
102
+ },
103
+ ], value: rowSummary.Position, onChange: (position) => {
104
+ onChange(Object.assign(Object.assign({}, rowSummary), { Position: position }));
105
+ } }))),
106
+ React.createElement(rebass_1.Flex, { flexDirection: 'column', mt: 2, mb: 1 },
107
+ React.createElement(rebass_1.Flex, { alignItems: "center", flex: 1, mb: 2 }, "Column Aggregations"),
108
+ React.createElement(Panel_1.default, { bodyProps: { maxHeight: '100%' }, style: { height: 360 } },
109
+ React.createElement(ValueSelector_1.ValueSelector, { style: { maxHeight: '100%' }, showFilterInput: true, filter: Utilities_1.columnFilter, toIdentifier: (column) => column.columnId, toLabel: (option) => { var _a; return (_a = option.friendlyName) !== null && _a !== void 0 ? _a : option.columnId; }, options: columns, xSelectedLabel: () => {
110
+ return 'Active Aggregations:';
111
+ }, toListLabel: (column) => {
112
+ var _a, _b, _c;
113
+ const label = (_a = column.friendlyName) !== null && _a !== void 0 ? _a : column.columnId;
114
+ if (!(column.columnId in ((_b = rowSummary.ColumnsMap) !== null && _b !== void 0 ? _b : {}))) {
115
+ return label;
116
+ }
117
+ const expressionOptions = getAvailableExpressionsForColumnType(column.dataType, availableScalarExpressions).map((expression) => ({
118
+ label: expression,
119
+ value: expression,
120
+ }));
121
+ // check out if this layout has a aggregation with wighted column
122
+ const aggregation = (_c = layout.AggregationColumns) === null || _c === void 0 ? void 0 : _c[column.columnId];
123
+ if (aggregation && typeof aggregation === 'object' && aggregation.weightedColumnId) {
124
+ expressionOptions.push({
125
+ label: 'WEIGHTERD_AVG',
126
+ value: RowSummary_1.WEIGHTED_AVERAGE_AGGREATED_FUNCTION,
127
+ });
128
+ }
129
+ const expression = rowSummary.ColumnsMap[column.columnId];
130
+ return (React.createElement(rebass_1.Flex, null,
131
+ React.createElement(rebass_1.Flex, { mr: 2, alignItems: 'center' }, label),
132
+ React.createElement(Select_1.Select, { value: expression, options: expressionOptions, onChange: (expression) => {
133
+ onChange(Object.assign(Object.assign({}, rowSummary), { ColumnsMap: Object.assign(Object.assign({}, rowSummary.ColumnsMap), { [column.columnId]: expression }) }));
134
+ } })));
135
+ }, value: Object.keys(rowSummary.ColumnsMap), onChange: (colIds) => {
136
+ const newColumnsMap = {};
137
+ colIds.forEach((colId) => {
138
+ var _a;
139
+ newColumnsMap[colId] = (_a = rowSummary.ColumnsMap[colId]) !== null && _a !== void 0 ? _a : null;
140
+ });
141
+ onChange(Object.assign(Object.assign({}, rowSummary), { ColumnsMap: newColumnsMap }));
142
+ } })))));
143
+ };
144
+ const RowSummarySection = (props) => {
145
+ var _a;
146
+ const adaptable = (0, AdaptableContext_1.useAdaptable)();
147
+ const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
148
+ const availableScalarExpressions = React.useMemo(() => {
149
+ return adaptable.api.internalApi
150
+ .getQueryLanguageService()
151
+ .getModuleExpressionFunctionsMap(ModuleConstants_1.LayoutModuleId).aggregatedScalarFunctions;
152
+ }, []);
153
+ return (React.createElement(Tabs_1.Tabs, { style: { height: '100%' } },
154
+ React.createElement(Tabs_1.Tabs.Tab, null, "Row Summaries"),
155
+ React.createElement(Tabs_1.Tabs.Content, null,
156
+ React.createElement("div", null,
157
+ React.createElement(rebass_1.Flex, { mb: 1 },
158
+ React.createElement(rebass_1.Flex, { flex: 1 }),
159
+ React.createElement(SimpleButton_1.default, { onClick: () => {
160
+ var _a;
161
+ props.onChange(Object.assign(Object.assign({}, layout), { RowSummaries: [
162
+ ...((_a = layout.RowSummaries) !== null && _a !== void 0 ? _a : []),
163
+ {
164
+ Position: 'Top',
165
+ ColumnsMap: {},
166
+ },
167
+ ] }));
168
+ }, icon: "plus" }, "Add Row Summary")),
169
+ ((_a = layout.RowSummaries) !== null && _a !== void 0 ? _a : []).map((rowSummary, index) => {
170
+ return (React.createElement(RowSummaryEditor, { key: index, onDelete: () => {
171
+ const newSummaries = [...layout.RowSummaries];
172
+ newSummaries.splice(index, 1);
173
+ props.onChange(Object.assign(Object.assign({}, layout), { RowSummaries: newSummaries }));
174
+ }, availableScalarExpressions: availableScalarExpressions, rowSummary: rowSummary, onChange: (rowSummary) => {
175
+ const newSummaries = [...layout.RowSummaries];
176
+ newSummaries[index] = rowSummary;
177
+ props.onChange(Object.assign(Object.assign({}, layout), { RowSummaries: newSummaries }));
178
+ } }));
179
+ })))));
180
+ };
181
+ exports.RowSummarySection = RowSummarySection;
@@ -1,66 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LicenseWatermark = void 0;
4
- const tslib_1 = require("tslib");
5
- const React = tslib_1.__importStar(require("react"));
6
- const Logo_1 = require("../../components/Logo");
7
- const rebass_1 = require("rebass");
8
- const style = {
9
- border: '1px solid var(--ab-color-error)',
10
- padding: '5px',
11
- fontWeight: 600,
12
- margin: '5px',
13
- fontSize: '14px',
14
- alignItems: 'center',
15
- color: 'var(--ab-color-text-on-defaultbackground)',
16
- background: 'var(--ab-color-defaultbackground)',
17
- };
18
- const isStyleValid = (element) => {
19
- const notAllowedProperties = [
20
- ['display', 'none'],
21
- ['opacity', '0'],
22
- ['position', 'absolute'],
23
- ['position', 'fixed'],
24
- ['position', 'relative'],
25
- ['visibility', 'hidden'],
26
- ];
27
- for (const [prop, value] of notAllowedProperties) {
28
- if (element.style[prop] === value) {
29
- return false;
30
- }
31
- }
32
- return true;
33
- };
34
- const LicenseWatermark = (props) => {
35
- const ref = React.useRef(null);
36
- React.useEffect(() => {
37
- const checkWatermark = () => {
38
- var _a, _b;
39
- if (!((_a = ref.current) === null || _a === void 0 ? void 0 : _a.isConnected)) {
40
- alert('It is not allowed to remove the Adaptable watermark.');
41
- }
42
- if (!isStyleValid(ref.current)) {
43
- alert('It is not allowed to modify the Adaptable watermark.');
44
- }
45
- if ((_b = ref === null || ref === void 0 ? void 0 : ref.current) === null || _b === void 0 ? void 0 : _b.style) {
46
- ref.current.style.border = style.border;
47
- ref.current.style.padding = style.padding;
48
- ref.current.style.fontWeight = `${style.fontWeight}`;
49
- ref.current.style.margin = style.margin;
50
- ref.current.style.fontSize = style.fontSize;
51
- ref.current.style.color = style.color;
52
- ref.current.style.background = style.background;
53
- ref.current.style.display = 'flex';
54
- ref.current.style.position = 'static';
55
- ref.current.style.opacity = '1';
56
- ref.current.style.visibility = 'visible';
57
- }
58
- };
59
- const timerId = setInterval(checkWatermark, 5000);
60
- return () => clearTimeout(timerId);
61
- }, []);
62
- return (React.createElement(rebass_1.Flex, { style: style, ref: ref },
63
- React.createElement(Logo_1.Logo, { style: { marginRight: 10 } }),
64
- React.createElement("div", null, props.children)));
65
- };
66
- exports.LicenseWatermark = LicenseWatermark;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LicenseWatermark=void 0;const e=require("tslib"),t=e.__importStar(require("react")),r=require("../../components/Logo"),o=require("rebass"),n={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)"},i=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},l=e=>{const l=t.useRef(null);return t.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."),i(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=n.border,l.current.style.padding=n.padding,l.current.style.fontWeight=`${n.fontWeight}`,l.current.style.margin=n.margin,l.current.style.fontSize=n.fontSize,l.current.style.color=n.color,l.current.style.background=n.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)}),[]),t.createElement(o.Flex,{style:n,ref:l},t.createElement(r.Logo,{style:{marginRight:10}}),t.createElement("div",null,e.children))};exports.LicenseWatermark=l;
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export declare const NotePopup: React.FunctionComponent;
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NotesPopup = void 0;
3
+ exports.NotePopup = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
6
  const react_redux_1 = require("react-redux");
7
7
  const InfiniteTable_1 = require("../../components/InfiniteTable");
8
- const NotesRedux_1 = require("../../Redux/ActionsReducers/NotesRedux");
8
+ const NoteRedux_1 = require("../../Redux/ActionsReducers/NoteRedux");
9
9
  const AdaptableContext_1 = require("../AdaptableContext");
10
10
  const AdaptableButton_1 = require("../Components/AdaptableButton");
11
11
  const PopupPanel_1 = require("../Components/Popups/AdaptablePopup/PopupPanel");
@@ -16,10 +16,11 @@ const tableDOMProps = {
16
16
  // minHeight: 600,
17
17
  },
18
18
  };
19
- const NotesPopup = (props) => {
19
+ const NotePopup = (props) => {
20
20
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
21
21
  const primaryKeyHeader = adaptable.api.columnApi.getFriendlyNameForColumnId(adaptable.api.columnApi.getPrimaryKeyColumn().columnId);
22
- const allNotes = (0, react_redux_1.useSelector)((state) => (0, NotesRedux_1.GetNotesSelector)(state.Notes));
22
+ const allNotes = (0, react_redux_1.useSelector)((state) => (0, NoteRedux_1.GetAllNotesSelector)(state.Note));
23
+ const isReadOnlyModule = adaptable.api.entitlementApi.getEntitlementAccessLevelForModule('Note') === 'ReadOnly';
23
24
  const columnsMap = React.useMemo(() => {
24
25
  const columns = {
25
26
  primaryKey: {
@@ -28,32 +29,30 @@ const NotesPopup = (props) => {
28
29
  },
29
30
  column: {
30
31
  field: 'ColumnId',
32
+ header: 'Column',
31
33
  valueGetter: (params) => {
32
34
  return adaptable.api.columnApi.getFriendlyNameForColumnId(params.data.ColumnId);
33
35
  },
34
36
  },
35
- note: {
36
- field: 'Value',
37
- header: 'Note',
38
- defaultEditable: true,
37
+ text: {
38
+ field: 'Text',
39
+ header: 'Text',
40
+ defaultEditable: !isReadOnlyModule,
39
41
  defaultFlex: 3,
40
42
  },
41
43
  timestamp: {
42
44
  field: 'Timestamp',
43
45
  valueGetter: (params) => {
44
- return new Date(params.data.Timestamp).toDateString();
46
+ var _a;
47
+ return (_a = new Date(params.data.Timestamp)) === null || _a === void 0 ? void 0 : _a.toDateString();
45
48
  },
46
49
  },
47
- author: {
48
- header: 'Author',
49
- valueGetter: (params) => params.data.Author.UserName,
50
- },
51
50
  delete: {
52
51
  defaultWidth: 50,
53
52
  render: (params) => {
54
- return (React.createElement(AdaptableButton_1.AdaptableButtonComponent, { variant: "text", icon: "delete", onClick: () => {
55
- const note = adaptable.api.notesApi.getNoteByUuid(params.data.Uuid);
56
- adaptable.api.notesApi.deleteNote(note);
53
+ return (React.createElement(AdaptableButton_1.AdaptableButtonComponent, { disabled: isReadOnlyModule, variant: "text", icon: "delete", onClick: () => {
54
+ const note = adaptable.api.noteApi.getNoteByUuid(params.data.Uuid);
55
+ adaptable.api.noteApi.deleteNote(note);
57
56
  } }));
58
57
  },
59
58
  },
@@ -68,8 +67,8 @@ const NotesPopup = (props) => {
68
67
  if (change.type === 'update') {
69
68
  const data = change.data;
70
69
  const prevNote = allNotes.find((x) => x.Uuid === uuid);
71
- if (prevNote.Value !== data.Value) {
72
- adaptable.api.notesApi.updateNoteText(data.Value, prevNote);
70
+ if (prevNote.Text !== data.Text) {
71
+ adaptable.api.noteApi.updateNoteText(data.Text, prevNote);
73
72
  }
74
73
  }
75
74
  }
@@ -80,9 +79,10 @@ const NotesPopup = (props) => {
80
79
  align: 'start',
81
80
  defaultFlex: 1,
82
81
  defaultSortable: false,
82
+ style: { fontSize: 'var(--ab-font-size-3)' },
83
83
  },
84
84
  }, headerOptions: {
85
85
  alwaysReserveSpaceForSortIcon: false,
86
86
  }, rowHeight: 40, columnHeaderHeight: 65, domProps: tableDOMProps, columns: columnsMap }))));
87
87
  };
88
- exports.NotesPopup = NotesPopup;
88
+ exports.NotePopup = NotePopup;