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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/agGrid.d.ts +4 -21
  2. package/agGrid.js +9 -26
  3. package/base.css +22 -8
  4. package/base.css.map +1 -1
  5. package/index.css +101 -75
  6. package/index.css.map +1 -1
  7. package/package.json +4 -5
  8. package/src/AdaptableInterfaces/IAdaptable.d.ts +59 -108
  9. package/src/AdaptableOptions/AdaptableOptions.d.ts +7 -7
  10. package/src/AdaptableOptions/ColumnFilterOptions.d.ts +11 -4
  11. package/src/AdaptableOptions/ColumnOptions.d.ts +9 -4
  12. package/src/AdaptableOptions/CommentOptions.d.ts +33 -0
  13. package/src/AdaptableOptions/GroupingOptions.d.ts +0 -7
  14. package/src/AdaptableOptions/MenuOptions.d.ts +6 -54
  15. package/src/AdaptableOptions/MenuOptions.js +71 -74
  16. package/src/AdaptableOptions/{NotesOptions.d.ts → NoteOptions.d.ts} +7 -4
  17. package/src/AdaptableOptions/StateOptions.d.ts +6 -0
  18. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +17 -0
  19. package/src/Api/AdaptableApi.d.ts +9 -4
  20. package/src/Api/BulkUpdateApi.d.ts +0 -5
  21. package/src/Api/ColumnApi.d.ts +4 -0
  22. package/src/Api/CommentApi.d.ts +13 -14
  23. package/src/Api/ConfigApi.d.ts +4 -5
  24. package/src/Api/EventApi.d.ts +7 -9
  25. package/src/Api/Events/AdaptableReady.d.ts +3 -3
  26. package/src/Api/Events/CommentChanged.d.ts +11 -0
  27. package/src/Api/Events/GridDataChanged.d.ts +4 -4
  28. package/src/Api/GridApi.d.ts +23 -13
  29. package/src/Api/Implementation/ActionColumnApiImpl.d.ts +2 -0
  30. package/src/Api/Implementation/ActionColumnApiImpl.js +30 -0
  31. package/src/Api/Implementation/AdaptableApiImpl.d.ts +3 -2
  32. package/src/Api/Implementation/AdaptableApiImpl.js +5 -2
  33. package/src/Api/Implementation/ApiBase.d.ts +5 -3
  34. package/src/Api/Implementation/ApiBase.js +8 -2
  35. package/src/Api/Implementation/BulkUpdateApiImpl.d.ts +0 -1
  36. package/src/Api/Implementation/BulkUpdateApiImpl.js +0 -4
  37. package/src/Api/Implementation/CellSummaryApiImpl.d.ts +0 -5
  38. package/src/Api/Implementation/CellSummaryApiImpl.js +2 -23
  39. package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -0
  40. package/src/Api/Implementation/ColumnApiImpl.js +10 -0
  41. package/src/Api/Implementation/CommentsApiImpl.d.ts +5 -2
  42. package/src/Api/Implementation/CommentsApiImpl.js +7 -1
  43. package/src/Api/Implementation/ConfigApiImpl.d.ts +2 -2
  44. package/src/Api/Implementation/ConfigApiImpl.js +24 -13
  45. package/src/Api/Implementation/GridApiImpl.d.ts +6 -3
  46. package/src/Api/Implementation/GridApiImpl.js +51 -14
  47. package/src/Api/Implementation/LayoutApiImpl.d.ts +3 -0
  48. package/src/Api/Implementation/LayoutApiImpl.js +18 -0
  49. package/src/Api/Implementation/NoteApiImpl.d.ts +18 -0
  50. package/src/Api/Implementation/NoteApiImpl.js +40 -0
  51. package/src/Api/Implementation/OptionsApiImpl.d.ts +4 -4
  52. package/src/Api/Implementation/OptionsApiImpl.js +4 -4
  53. package/src/Api/Implementation/ScopeApiImpl.d.ts +2 -0
  54. package/src/Api/Implementation/ScopeApiImpl.js +20 -7
  55. package/src/Api/Implementation/StatusBarApiImpl.d.ts +0 -1
  56. package/src/Api/Implementation/StatusBarApiImpl.js +0 -3
  57. package/src/Api/Implementation/ToolPanelApiImpl.js +6 -6
  58. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +0 -3
  59. package/src/Api/Implementation/UserInterfaceApiImpl.js +0 -8
  60. package/src/Api/Internal/ActionRowInternalApi.d.ts +6 -1
  61. package/src/Api/Internal/ActionRowInternalApi.js +118 -1
  62. package/src/Api/Internal/AdaptableInternalApi.d.ts +6 -7
  63. package/src/Api/Internal/AdaptableInternalApi.js +21 -19
  64. package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +2 -0
  65. package/src/Api/Internal/CalculatedColumnInternalApi.js +71 -0
  66. package/src/Api/Internal/ColumnFilterInternalApi.d.ts +2 -0
  67. package/src/Api/Internal/ColumnFilterInternalApi.js +23 -1
  68. package/src/Api/Internal/ColumnInternalApi.d.ts +4 -1
  69. package/src/Api/Internal/ColumnInternalApi.js +12 -0
  70. package/src/Api/Internal/CommentsInternalApi.d.ts +4 -0
  71. package/src/Api/Internal/CommentsInternalApi.js +14 -0
  72. package/src/Api/Internal/CustomSortInternalApi.d.ts +3 -2
  73. package/src/Api/Internal/CustomSortInternalApi.js +32 -1
  74. package/src/Api/Internal/DataSetInternalApi.js +1 -1
  75. package/src/Api/Internal/ExportInternalApi.d.ts +2 -1
  76. package/src/Api/Internal/ExportInternalApi.js +4 -1
  77. package/src/Api/Internal/Fdc3InternalApi.js +2 -2
  78. package/src/Api/Internal/FormatColumnInternalApi.js +3 -2
  79. package/src/Api/Internal/FreeTextColumnInternalApi.d.ts +2 -0
  80. package/src/Api/Internal/FreeTextColumnInternalApi.js +60 -0
  81. package/src/Api/Internal/GridFilterInternalApi.d.ts +5 -0
  82. package/src/Api/Internal/GridFilterInternalApi.js +7 -1
  83. package/src/Api/Internal/GridInternalApi.d.ts +23 -3
  84. package/src/Api/Internal/GridInternalApi.js +141 -7
  85. package/src/Api/Internal/LayoutInternalApi.d.ts +1 -0
  86. package/src/Api/Internal/LayoutInternalApi.js +16 -0
  87. package/src/Api/Internal/NoteInternalApi.d.ts +4 -0
  88. package/src/Api/Internal/NoteInternalApi.js +14 -0
  89. package/src/Api/Internal/TeamSharingInternalApi.js +1 -1
  90. package/src/Api/InteropioPluginApi.d.ts +2 -2
  91. package/src/Api/LayoutApi.d.ts +15 -0
  92. package/src/Api/NoteApi.d.ts +48 -0
  93. package/src/Api/OptionsApi.d.ts +8 -8
  94. package/src/Api/ScopeApi.d.ts +10 -0
  95. package/src/Api/UserInterfaceApi.d.ts +0 -11
  96. package/src/EnvVars.d.ts +3 -0
  97. package/src/EnvVars.js +4 -0
  98. package/src/PredefinedConfig/AdaptableState.d.ts +2 -2
  99. package/src/PredefinedConfig/CommentState.d.ts +27 -23
  100. package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +4 -0
  101. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  102. package/src/PredefinedConfig/Common/AdaptableScope.d.ts +4 -1
  103. package/src/PredefinedConfig/Common/AggregationColumns.d.ts +1 -0
  104. package/src/PredefinedConfig/Common/AggregationColumns.js +3 -0
  105. package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +4 -0
  106. package/src/PredefinedConfig/Common/Enums.d.ts +2 -1
  107. package/src/PredefinedConfig/Common/Enums.js +1 -0
  108. package/src/PredefinedConfig/Common/Menu.d.ts +15 -1
  109. package/src/PredefinedConfig/Common/Menu.js +97 -1
  110. package/src/PredefinedConfig/Common/RowSummary.d.ts +21 -0
  111. package/src/PredefinedConfig/Common/RowSummary.js +17 -0
  112. package/src/PredefinedConfig/Common/TransposeConfig.d.ts +30 -0
  113. package/src/PredefinedConfig/Common/Types.d.ts +4 -4
  114. package/src/PredefinedConfig/Common/Types.js +4 -1
  115. package/src/PredefinedConfig/LayoutState.d.ts +5 -0
  116. package/src/PredefinedConfig/{NotesState.d.ts → NoteState.d.ts} +12 -22
  117. package/src/PredefinedConfig/PredefinedConfig.d.ts +3 -3
  118. package/src/PredefinedConfig/Selection/GridCell.d.ts +13 -0
  119. package/src/PredefinedConfig/SystemState.d.ts +9 -3
  120. package/src/Redux/ActionsReducers/LayoutRedux.d.ts +9 -0
  121. package/src/Redux/ActionsReducers/LayoutRedux.js +32 -10
  122. package/src/Redux/ActionsReducers/NoteRedux.d.ts +38 -0
  123. package/src/Redux/ActionsReducers/{NotesRedux.js → NoteRedux.js} +29 -28
  124. package/src/Redux/ActionsReducers/SystemRedux.d.ts +6 -1
  125. package/src/Redux/ActionsReducers/SystemRedux.js +16 -4
  126. package/src/Redux/Store/AdaptableStore.d.ts +4 -6
  127. package/src/Redux/Store/AdaptableStore.js +67 -77
  128. package/src/Redux/Store/Interface/IAdaptableStore.d.ts +8 -2
  129. package/src/Strategy/AdaptableModuleBase.d.ts +8 -8
  130. package/src/Strategy/AdaptableModuleBase.js +13 -15
  131. package/src/Strategy/AlertModule.d.ts +1 -2
  132. package/src/Strategy/AlertModule.js +3 -56
  133. package/src/Strategy/BulkUpdateModule.js +1 -1
  134. package/src/Strategy/CalculatedColumnModule.d.ts +2 -3
  135. package/src/Strategy/CalculatedColumnModule.js +6 -26
  136. package/src/Strategy/CellSummaryModule.d.ts +8 -6
  137. package/src/Strategy/CellSummaryModule.js +78 -23
  138. package/src/Strategy/ChartingModule.d.ts +0 -1
  139. package/src/Strategy/ChartingModule.js +2 -22
  140. package/src/Strategy/ColumnFilterModule.d.ts +2 -3
  141. package/src/Strategy/ColumnFilterModule.js +44 -103
  142. package/src/Strategy/ColumnInfoModule.js +2 -0
  143. package/src/Strategy/{CommentsModule.d.ts → CommentModule.d.ts} +2 -5
  144. package/src/Strategy/{CommentsModule.js → CommentModule.js} +17 -23
  145. package/src/Strategy/CustomSortModule.js +3 -2
  146. package/src/Strategy/DashboardModule.d.ts +1 -2
  147. package/src/Strategy/DashboardModule.js +9 -15
  148. package/src/Strategy/DataChangeHistoryModule.d.ts +1 -0
  149. package/src/Strategy/DataChangeHistoryModule.js +3 -1
  150. package/src/Strategy/DataImportModule.d.ts +1 -1
  151. package/src/Strategy/DataImportModule.js +5 -5
  152. package/src/Strategy/DataSetModule.d.ts +1 -1
  153. package/src/Strategy/DataSetModule.js +1 -1
  154. package/src/Strategy/ExportModule.d.ts +1 -0
  155. package/src/Strategy/ExportModule.js +17 -2
  156. package/src/Strategy/Fdc3Module.js +3 -0
  157. package/src/Strategy/FlashingCellModule.d.ts +1 -2
  158. package/src/Strategy/FlashingCellModule.js +6 -19
  159. package/src/Strategy/FormatColumnModule.d.ts +0 -2
  160. package/src/Strategy/FormatColumnModule.js +6 -51
  161. package/src/Strategy/FreeTextColumnModule.d.ts +0 -1
  162. package/src/Strategy/FreeTextColumnModule.js +1 -31
  163. package/src/Strategy/GridFilterModule.d.ts +0 -1
  164. package/src/Strategy/GridFilterModule.js +0 -37
  165. package/src/Strategy/GridInfoModule.js +2 -0
  166. package/src/Strategy/Interface/IModule.d.ts +0 -1
  167. package/src/Strategy/LayoutModule.d.ts +9 -3
  168. package/src/Strategy/LayoutModule.js +148 -62
  169. package/src/Strategy/NamedQueryModule.d.ts +0 -1
  170. package/src/Strategy/NamedQueryModule.js +0 -19
  171. package/src/Strategy/{NotesModule.d.ts → NoteModule.d.ts} +2 -1
  172. package/src/Strategy/NoteModule.js +57 -0
  173. package/src/Strategy/PlusMinusModule.d.ts +1 -1
  174. package/src/Strategy/PlusMinusModule.js +2 -2
  175. package/src/Strategy/ScheduleModule.d.ts +1 -1
  176. package/src/Strategy/ScheduleModule.js +1 -1
  177. package/src/Strategy/SettingsPanelModule.js +3 -3
  178. package/src/Strategy/ShortcutModule.d.ts +1 -1
  179. package/src/Strategy/ShortcutModule.js +1 -1
  180. package/src/Strategy/SmartEditModule.js +1 -1
  181. package/src/Strategy/StyledColumnModule.d.ts +1 -1
  182. package/src/Strategy/StyledColumnModule.js +26 -26
  183. package/src/Strategy/SystemStatusModule.js +2 -2
  184. package/src/Strategy/TeamSharingModule.d.ts +1 -0
  185. package/src/Strategy/TeamSharingModule.js +5 -5
  186. package/src/Strategy/ToolPanelModule.d.ts +0 -1
  187. package/src/Strategy/ToolPanelModule.js +0 -23
  188. package/src/Strategy/Utilities/getScopeViewItems.js +3 -0
  189. package/src/Utilities/Constants/DocumentationLinkConstants.js +1 -1
  190. package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
  191. package/src/Utilities/Constants/GeneralConstants.js +1 -0
  192. package/src/Utilities/Constants/ModuleConstants.d.ts +6 -6
  193. package/src/Utilities/Constants/ModuleConstants.js +6 -6
  194. package/src/Utilities/Defaults/DefaultSettingsPanel.js +7 -6
  195. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +3 -2
  196. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +429 -1
  197. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -3
  198. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +1 -1
  199. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -1
  200. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +15 -0
  201. package/src/Utilities/Extensions/ArrayExtensions.d.ts +2 -0
  202. package/src/Utilities/Extensions/ArrayExtensions.js +4 -0
  203. package/src/Utilities/Helpers/AdaptableHelper.d.ts +3 -4
  204. package/src/Utilities/Helpers/AdaptableHelper.js +18 -58
  205. package/src/Utilities/Helpers/Helper.d.ts +2 -0
  206. package/src/Utilities/Helpers/Helper.js +4 -0
  207. package/src/Utilities/MenuItem.d.ts +7 -4
  208. package/src/Utilities/MenuItem.js +6 -3
  209. package/src/Utilities/ObjectFactory.d.ts +3 -3
  210. package/src/Utilities/ObjectFactory.js +4 -24
  211. package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +4 -2
  212. package/src/Utilities/Services/AggregatedScalarLiveValue.js +26 -19
  213. package/src/Utilities/Services/CellPopupService.js +2 -3
  214. package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +1 -1
  215. package/src/Utilities/Services/Interface/IReportService.d.ts +1 -4
  216. package/src/Utilities/Services/LicenseService/index.d.ts +3 -0
  217. package/src/Utilities/Services/LicenseService/index.js +1 -181
  218. package/src/Utilities/Services/MetamodelService.d.ts +1 -1
  219. package/src/Utilities/Services/MetamodelService.js +6 -3
  220. package/src/Utilities/Services/ModuleService.js +4 -0
  221. package/src/Utilities/Services/QueryLanguageService.d.ts +1 -1
  222. package/src/Utilities/Services/QueryLanguageService.js +4 -3
  223. package/src/Utilities/Services/ReportService.d.ts +7 -5
  224. package/src/Utilities/Services/ReportService.js +238 -22
  225. package/src/Utilities/Services/RowEditService.d.ts +3 -2
  226. package/src/Utilities/Services/RowEditService.js +3 -1
  227. package/src/Utilities/adaptableQlUtils.d.ts +2 -0
  228. package/src/Utilities/adaptableQlUtils.js +14 -0
  229. package/src/Utilities/license/decode.js +1 -65
  230. package/src/Utilities/license/hashing.js +1 -43
  231. package/src/View/AdaptableView.js +1 -3
  232. package/src/View/AdaptableViewFactory.js +2 -2
  233. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +2 -2
  234. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +1 -1
  235. package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
  236. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +3 -3
  237. package/src/View/CalculatedColumn/utils.d.ts +1 -1
  238. package/src/View/CellSummary/CellSummaryPopup.js +1 -1
  239. package/src/View/Comments/CommentsEditor.js +24 -11
  240. package/src/View/Comments/CommentsPopup.js +20 -11
  241. package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
  242. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.d.ts +5 -0
  243. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.js +42 -0
  244. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +5 -2
  245. package/src/View/Components/CellPopup/index.d.ts +1 -0
  246. package/src/View/Components/CellPopup/index.js +5 -2
  247. package/src/View/Components/FilterForm/FilterForm.js +20 -12
  248. package/src/View/Components/FilterForm/QuickFilterForm.js +15 -8
  249. package/src/View/Components/FilterForm/QuickFilterValues.js +39 -23
  250. package/src/View/Components/NewScopeComponent.js +34 -1
  251. package/src/View/Components/Popups/AdaptableLoadingScreen.d.ts +6 -5
  252. package/src/View/Components/Popups/AdaptableLoadingScreen.js +19 -9
  253. package/src/View/Components/Popups/AdaptableToaster.js +1 -1
  254. package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +7 -7
  255. package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +1 -0
  256. package/src/View/Components/Popups/WindowPopups/windowFactory.js +3 -0
  257. package/src/View/Components/Selectors/PermittedValuesSelector.js +2 -2
  258. package/src/View/Components/ValueSelector/index.d.ts +1 -0
  259. package/src/View/Components/ValueSelector/index.js +2 -2
  260. package/src/View/CustomSort/CustomSortSummary.js +1 -1
  261. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +8 -9
  262. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +1 -1
  263. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +3 -1
  264. package/src/View/GridFilter/GridFilterViewPanel.js +9 -5
  265. package/src/View/GridFilter/useGridFilterExpressionEditor.js +1 -1
  266. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -3
  267. package/src/View/Layout/LayoutViewPanel.js +2 -1
  268. package/src/View/Layout/TransposedPopup.d.ts +3 -0
  269. package/src/View/Layout/TransposedPopup.js +195 -0
  270. package/src/View/Layout/Wizard/LayoutWizard.js +36 -3
  271. package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
  272. package/src/View/Layout/Wizard/sections/RowSummarySection.d.ts +9 -0
  273. package/src/View/Layout/Wizard/sections/RowSummarySection.js +174 -0
  274. package/src/View/License/LicenseWatermark.js +1 -61
  275. package/src/View/Note/NotePopup.d.ts +2 -0
  276. package/src/View/{Notes/NotesPopup.js → Note/NotePopup.js} +17 -17
  277. package/src/View/SpecialColumnSettingsWizardStep.js +4 -4
  278. package/src/View/Theme/ThemeSelector.js +3 -3
  279. package/src/agGrid/ActionColumnRenderer.js +7 -6
  280. package/src/agGrid/Adaptable.d.ts +3 -455
  281. package/src/agGrid/Adaptable.js +8 -5292
  282. package/src/agGrid/AdaptableAgGrid.d.ts +354 -0
  283. package/src/agGrid/AdaptableAgGrid.js +3967 -0
  284. package/src/agGrid/AdaptableLogger.js +77 -11
  285. package/src/agGrid/AgGridAdapter.d.ts +64 -0
  286. package/src/agGrid/AgGridAdapter.js +585 -0
  287. package/src/agGrid/AgGridColumnAdapter.d.ts +56 -0
  288. package/src/agGrid/AgGridColumnAdapter.js +831 -0
  289. package/src/agGrid/AgGridMenuAdapter.d.ts +28 -0
  290. package/src/agGrid/AgGridMenuAdapter.js +277 -0
  291. package/src/agGrid/AgGridOptionsService.d.ts +15 -0
  292. package/src/agGrid/AgGridOptionsService.js +76 -0
  293. package/src/agGrid/BadgeRenderer.js +1 -1
  294. package/src/agGrid/CheckboxRenderer.js +1 -1
  295. package/src/agGrid/FilterWrapper.d.ts +2 -2
  296. package/src/agGrid/FilterWrapper.js +1 -1
  297. package/src/agGrid/attachAddaptableColumnTypes.d.ts +12 -12
  298. package/src/agGrid/defaultAdaptableOptions.d.ts +3 -0
  299. package/src/{Utilities/Defaults/DefaultAdaptableOptions.js → agGrid/defaultAdaptableOptions.js} +71 -17
  300. package/src/agGrid/editors/AdaptableDateEditor/index.d.ts +1 -1
  301. package/src/agGrid/editors/AdaptableDateEditor/index.js +3 -3
  302. package/src/agGrid/editors/AdaptableNumberEditor/index.d.ts +2 -2
  303. package/src/agGrid/editors/AdaptableNumberEditor/index.js +2 -2
  304. package/src/agGrid/weightedAverage.d.ts +0 -2
  305. package/src/agGrid/weightedAverage.js +0 -54
  306. package/src/components/ColorPicker/ColorPicker.d.ts +1 -1
  307. package/src/components/Datepicker/index.d.ts +1 -1
  308. package/src/components/Datepicker/index.js +10 -2
  309. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +2 -1
  310. package/src/components/ExpressionEditor/QueryBuilder/utils.d.ts +0 -1
  311. package/src/components/ExpressionEditor/QueryBuilder/utils.js +1 -14
  312. package/src/components/InfiniteTable/index.js +2 -2
  313. package/src/components/Input/index.d.ts +1 -2
  314. package/src/components/List/ListGroupItem/index.d.ts +1 -1
  315. package/src/components/Modal/index.d.ts +1 -0
  316. package/src/components/Modal/index.js +4 -3
  317. package/src/components/Select/Select.d.ts +3 -1
  318. package/src/components/Select/Select.js +4 -2
  319. package/src/components/Textarea/index.d.ts +2 -2
  320. package/src/components/icons/index.js +2 -0
  321. package/src/components/icons/note.js +2 -2
  322. package/src/components/icons/rows.d.ts +3 -0
  323. package/src/components/icons/rows.js +4 -0
  324. package/src/env.js +2 -2
  325. package/src/metamodel/adaptable.metamodel.d.ts +179 -25
  326. package/src/metamodel/adaptable.metamodel.js +1 -9313
  327. package/src/migration/AdaptableUpgradeHelper.d.ts +38 -0
  328. package/src/migration/AdaptableUpgradeHelper.js +48 -0
  329. package/src/migration/VersionUpgrade.d.ts +8 -0
  330. package/src/migration/VersionUpgrade.js +11 -0
  331. package/src/migration/VersionUpgrade17.d.ts +18 -0
  332. package/src/migration/VersionUpgrade17.js +342 -0
  333. package/src/migration/VersionUpgrade18.d.ts +5 -0
  334. package/src/migration/VersionUpgrade18.js +6 -0
  335. package/src/parser/src/parser.js +117 -1257
  336. package/src/parser/src/predicate/mapExpressionToQlPredicate.js +1 -1
  337. package/src/parser/src/predicate/mapQlPredicateToExpression.js +2 -1
  338. package/src/parser/src/types.d.ts +7 -2
  339. package/src/types.d.ts +26 -19
  340. package/tsconfig.esm.tsbuildinfo +1 -1
  341. package/src/AdaptableOptions/CommentsOptions.d.ts +0 -28
  342. package/src/Api/Events/CommentsChangedInfo.d.ts +0 -5
  343. package/src/Api/Implementation/NotesApiImpl.d.ts +0 -16
  344. package/src/Api/Implementation/NotesApiImpl.js +0 -39
  345. package/src/Api/NotesApi.d.ts +0 -48
  346. package/src/PredefinedConfig/CellAddress.d.ts +0 -13
  347. package/src/PredefinedConfig/CellAddress.js +0 -4
  348. package/src/Redux/ActionsReducers/NotesRedux.d.ts +0 -39
  349. package/src/Strategy/NotesModule.js +0 -57
  350. package/src/Utilities/Defaults/DefaultAdaptableOptions.d.ts +0 -2
  351. package/src/Utilities/Services/Interface/IRowEditService.d.ts +0 -3
  352. package/src/View/Components/ScopeComponent.d.ts +0 -24
  353. package/src/View/Components/ScopeComponent.js +0 -133
  354. package/src/View/Export/Wizard/ReportScopeWizard.d.ts +0 -17
  355. package/src/View/Export/Wizard/ReportScopeWizard.js +0 -47
  356. package/src/View/Notes/NotesPopup.d.ts +0 -2
  357. package/src/agGrid/agGridHelper.d.ts +0 -57
  358. package/src/agGrid/agGridHelper.js +0 -686
  359. package/src/agGrid/agGridMenuHelper.d.ts +0 -46
  360. package/src/agGrid/agGridMenuHelper.js +0 -668
  361. /package/src/AdaptableOptions/{CommentsOptions.js → CommentOptions.js} +0 -0
  362. /package/src/AdaptableOptions/{NotesOptions.js → NoteOptions.js} +0 -0
  363. /package/src/Api/Events/{CommentsChangedInfo.js → CommentChanged.js} +0 -0
  364. /package/src/Api/{NotesApi.js → NoteApi.js} +0 -0
  365. /package/src/PredefinedConfig/{NotesState.js → Common/TransposeConfig.js} +0 -0
  366. /package/src/{Utilities/Services/Interface/IRowEditService.js → PredefinedConfig/NoteState.js} +0 -0
  367. /package/src/View/{Notes → Note}/NoteEditor.d.ts +0 -0
  368. /package/src/View/{Notes → Note}/NoteEditor.js +0 -0
@@ -14,12 +14,13 @@ import { ObjectFactory } from '../../../Utilities/ObjectFactory';
14
14
  import HelpBlock from '../../../components/HelpBlock';
15
15
  import { Flex } from 'rebass';
16
16
  import Radio from '../../../components/Radio';
17
- import Helper from '../../../Utilities/Helpers/Helper';
17
+ import Helper, { cloneObject } from '../../../Utilities/Helpers/Helper';
18
18
  import AdaptableInput from '../AdaptableInput';
19
19
  import { renderWithAdaptableContext } from '../../renderWithAdaptableContext';
20
20
  import { CheckBox } from '../../../components/CheckBox';
21
21
  import { runIfNotResolvedIn } from '../../../Utilities/runIfNotResolvedIn';
22
22
  import { getDefaultColumnFilterPredicate } from './getDefaultColumnFilterPredicate';
23
+ import { AdaptableDateInlineInput } from '../AdaptableInput/AdaptableDateInlineInput';
23
24
  const panelStyle = {
24
25
  width: '100%',
25
26
  minWidth: 150,
@@ -174,13 +175,20 @@ class FilterFormComponent extends React.Component {
174
175
  this.changeColumnPredicateInput(newCheckedValue, 0);
175
176
  } })));
176
177
  }
177
- return (_a = predicateDef.inputs) === null || _a === void 0 ? void 0 : _a.map((predicateInput, index) => (React.createElement(Flex, { key: index, flexDirection: "row" },
178
- React.createElement(AdaptableInput, { onMouseDown: (event) => {
179
- if (predicateInput.type === 'date') {
180
- // This prevents the ag-grid dropdown closing when a date is selected
181
- event.stopPropagation();
182
- }
183
- }, disabled: this.isFilterDisabled(), type: predicateInput.type, autoFocus: index === 0, value: filter.Predicate.Inputs[index], onChange: (e) => this.changeColumnPredicateInput(e.target.value, index), mb: 1, flex: 1, fontSize: 2 }))));
178
+ return (_a = predicateDef.inputs) === null || _a === void 0 ? void 0 : _a.map((predicateInput, index) => {
179
+ var _a, _b;
180
+ const showDatePicker = (_b = (_a = this.props.api.optionsApi) === null || _a === void 0 ? void 0 : _a.getColumnFilterOptions()) === null || _b === void 0 ? void 0 : _b.showDatePicker;
181
+ if (predicateInput.type === 'date' && !showDatePicker) {
182
+ return (React.createElement(AdaptableDateInlineInput, { value: filter.Predicate.Inputs[index], onChange: (value) => this.changeColumnPredicateInput(value, index) }));
183
+ }
184
+ return (React.createElement(Flex, { key: index, flexDirection: "row" },
185
+ React.createElement(AdaptableInput, { onMouseDown: (event) => {
186
+ if (predicateInput.type === 'date') {
187
+ // This prevents the ag-grid dropdown closing when a date is selected
188
+ event.stopPropagation();
189
+ }
190
+ }, disabled: this.isFilterDisabled(), type: predicateInput.type, autoFocus: index === 0, value: filter.Predicate.Inputs[index], onChange: (e) => this.changeColumnPredicateInput(e.target.value, index), mb: 1, flex: 1, fontSize: 2 })));
191
+ });
184
192
  }
185
193
  isFilterDisabled() {
186
194
  var _a;
@@ -255,12 +263,12 @@ class FilterFormComponent extends React.Component {
255
263
  }
256
264
  changeColumnPredicateInput(value, index) {
257
265
  const { editedColumnFilter } = this.state;
258
- editedColumnFilter.Predicate.Inputs[index] = value;
259
- this.setState({ editedColumnFilter });
266
+ const newEditedColumnFilter = cloneObject(editedColumnFilter);
267
+ newEditedColumnFilter.Predicate.Inputs[index] = value;
268
+ this.setState({ editedColumnFilter: newEditedColumnFilter });
260
269
  if (this.props.api.optionsApi.getColumnFilterOptions().autoApplyFilter) {
261
- this.props.onSetColumnFilter(editedColumnFilter);
270
+ this.props.onSetColumnFilter(newEditedColumnFilter);
262
271
  }
263
- // this.props.onSetColumnFilter(editedColumnFilter);
264
272
  }
265
273
  }
266
274
  function mapStateToProps(state, ownProps) {
@@ -15,6 +15,7 @@ import { getDefaultColumnFilterPredicate } from './getDefaultColumnFilterPredica
15
15
  import { isAdaptableIcon } from '../../../components/Icon';
16
16
  import { QuickFilterValues } from './QuickFilterValues';
17
17
  import { AdaptableIconComponent } from '../AdaptableIconComponent';
18
+ import { AdaptableDateInlineInput } from '../AdaptableInput/AdaptableDateInlineInput';
18
19
  class QuickFilterFormComponent extends React.Component {
19
20
  constructor(props) {
20
21
  super(props);
@@ -136,17 +137,23 @@ class QuickFilterFormComponent extends React.Component {
136
137
  } })));
137
138
  }
138
139
  return (_a = predicateDef === null || predicateDef === void 0 ? void 0 : predicateDef.inputs) === null || _a === void 0 ? void 0 : _a.map((predicateInput, index) => {
139
- var _a, _b;
140
+ var _a, _b, _c, _d, _e, _f;
141
+ const showDatePicker = (_b = (_a = this.props.api.optionsApi) === null || _a === void 0 ? void 0 : _a.getColumnFilterOptions()) === null || _b === void 0 ? void 0 : _b.showDatePicker;
142
+ const value = (_d = (_c = filter.Predicate.Inputs) === null || _c === void 0 ? void 0 : _c[index]) !== null && _d !== void 0 ? _d : '';
143
+ const onKeyDownCapture = (e) => {
144
+ if (e.nativeEvent.key === 'Escape') {
145
+ e.nativeEvent.preventDefault();
146
+ e.nativeEvent.stopPropagation();
147
+ this.clearFilter();
148
+ }
149
+ };
150
+ if (predicateInput.type === 'date' && !showDatePicker) {
151
+ return (React.createElement(AdaptableDateInlineInput, { value: value, key: index, onKeyDownCapture: onKeyDownCapture, onChange: (value) => this.changeColumnPredicateInput(value, index) }));
152
+ }
140
153
  return (React.createElement(AdaptableInput, { disabled: this.isFilterDisabled(), key: index, type: predicateInput.type === 'number' ? 'text' : predicateInput.type,
141
154
  // autoFocus has to be FALSE because if the input receives focus in the init phase,
142
155
  // it may scroll the AG Grid header viewport into view and de-synchronize it (relative to the content viewport)
143
- autoFocus: false, value: (_b = (_a = filter.Predicate.Inputs) === null || _a === void 0 ? void 0 : _a[index]) !== null && _b !== void 0 ? _b : '', onChange: (e) => this.changeColumnPredicateInput(e.target.value, index), onKeyDownCapture: (e) => {
144
- if (e.nativeEvent.key === 'Escape') {
145
- e.nativeEvent.preventDefault();
146
- e.nativeEvent.stopPropagation();
147
- this.clearFilter();
148
- }
149
- }, style: {
156
+ autoFocus: false, value: (_f = (_e = filter.Predicate.Inputs) === null || _e === void 0 ? void 0 : _e[index]) !== null && _f !== void 0 ? _f : '', onChange: (e) => this.changeColumnPredicateInput(e.target.value, index), onKeyDownCapture: onKeyDownCapture, style: {
150
157
  width: '100%',
151
158
  padding: 'var(--ab-space-1)',
152
159
  borderRadius: 0,
@@ -6,6 +6,7 @@ import { isSameDay } from 'date-fns';
6
6
  import OverlayTrigger from '../../../components/OverlayTrigger';
7
7
  import { Flex } from 'rebass';
8
8
  import { ListBoxFilterForm } from './ListBoxFilterForm';
9
+ import { Resizable } from 're-resizable';
9
10
  export const QuickFilterValues = (props) => {
10
11
  const { api } = props;
11
12
  const currentOverlayVisible = useRef(false);
@@ -135,33 +136,48 @@ export const QuickFilterValues = (props) => {
135
136
  }
136
137
  }, render: ({ targetWidth }) => {
137
138
  var _a;
138
- return (React.createElement(Flex, { onMouseEnter: () => {
139
- if (showEvent === 'click') {
140
- // For showEvent=mousenter this is not needed.
141
- // When mouseenter is triggered on the overlay, onShowFn is called, the overlay is no longer hidden.
142
- // But in this case because the trigger is click, another show is not triggered.
143
- // The hide event is added direcly on the element so it does not use the React event system.
144
- // But this event does, maybe beause it uses event delegation it is triggered to soon.
145
- requestAnimationFrame(() => {
146
- var _a;
147
- (_a = valuesDropdownRef.current) === null || _a === void 0 ? void 0 : _a.show();
148
- });
149
- }
150
- }, "data-name": "quick-filter-form", flexDirection: "column", style: {
139
+ return (React.createElement(Resizable, { style: {
151
140
  fontSize: 'var(--ab-font-size-2)',
152
141
  border: '1px solid var(--ab-color-primarydark)',
153
142
  background: 'var(--ab-color-defaultbackground)',
154
143
  zIndex: 1000,
155
- width: getPopoverWidth(targetWidth),
156
- } },
157
- React.createElement(Flex, { m: 2 },
158
- React.createElement(SimpleButton, { onClick: () => clearColumnFilter() }, "Clear Filter"),
159
- ((_a = api.optionsApi.getColumnFilterOptions()) === null || _a === void 0 ? void 0 : _a.autoApplyFilter) == false && (React.createElement(SimpleButton, { ml: 2, onClick: () => {
160
- if (transientColumnFilter) {
161
- props.updateColumnFilter(transientColumnFilter);
162
- }
163
- } }, "Apply Filter"))),
164
- React.createElement(ListBoxFilterForm, { disabled: props.isFilterDisabled, suppressClientSideFilter: quickFilterValues.suppressClientSideFilter, isLoading: isDistinctColumnValuesLoading, onFilterChange: handleFilterChange, currentColumn: props.currentColumn, columns: [], columnDistinctValues: quickFilterValues.values, dataType: props.currentColumn.dataType, uiSelectedColumnValues: props.columnFilter.Predicate.Inputs.filter((input) => input !== ''), useAgGridStyle: true, onColumnValueSelectedChange: (list) => onColumnValueSelectedChange(list) })));
144
+ }, enable: {
145
+ top: false,
146
+ right: true,
147
+ bottom: false,
148
+ left: false,
149
+ topRight: false,
150
+ bottomRight: false,
151
+ bottomLeft: false,
152
+ topLeft: false,
153
+ }, minWidth: getPopoverWidth(targetWidth) },
154
+ React.createElement(Flex, { onMouseEnter: () => {
155
+ if (showEvent === 'click') {
156
+ // For showEvent=mousenter this is not needed.
157
+ // When mouseenter is triggered on the overlay, onShowFn is called, the overlay is no longer hidden.
158
+ // But in this case because the trigger is click, another show is not triggered.
159
+ // The hide event is added direcly on the element so it does not use the React event system.
160
+ // But this event does, maybe beause it uses event delegation it is triggered to soon.
161
+ requestAnimationFrame(() => {
162
+ var _a;
163
+ (_a = valuesDropdownRef.current) === null || _a === void 0 ? void 0 : _a.show();
164
+ });
165
+ }
166
+ }, "data-name": "quick-filter-form", flexDirection: "column", style: {
167
+ // fontSize: 'var(--ab-font-size-2)',
168
+ // border: '1px solid var(--ab-color-primarydark)',
169
+ // background: 'var(--ab-color-defaultbackground)',
170
+ // zIndex: 1000,
171
+ // width: getPopoverWidth(targetWidth),
172
+ } },
173
+ React.createElement(Flex, { m: 2 },
174
+ React.createElement(SimpleButton, { onClick: () => clearColumnFilter() }, "Clear Filter"),
175
+ ((_a = api.optionsApi.getColumnFilterOptions()) === null || _a === void 0 ? void 0 : _a.autoApplyFilter) == false && (React.createElement(SimpleButton, { ml: 2, onClick: () => {
176
+ if (transientColumnFilter) {
177
+ props.updateColumnFilter(transientColumnFilter);
178
+ }
179
+ } }, "Apply Filter"))),
180
+ React.createElement(ListBoxFilterForm, { disabled: props.isFilterDisabled, suppressClientSideFilter: quickFilterValues.suppressClientSideFilter, isLoading: isDistinctColumnValuesLoading, onFilterChange: handleFilterChange, currentColumn: props.currentColumn, columns: [], columnDistinctValues: quickFilterValues.values, dataType: props.currentColumn.dataType, uiSelectedColumnValues: props.columnFilter.Predicate.Inputs.filter((input) => input !== ''), useAgGridStyle: true, onColumnValueSelectedChange: (list) => onColumnValueSelectedChange(list) }))));
165
181
  } },
166
182
  React.createElement(SimpleButton, { "data-name": 'Select Values', style: {
167
183
  flex: 1,
@@ -56,6 +56,7 @@ export const renderScopeSummary = (scope, labels) => {
56
56
  };
57
57
  const DATA_TYPES_OPTIONS = Object.values(DATA_TYPES_MAP);
58
58
  export const NewScopeComponent = (props) => {
59
+ var _a, _b;
59
60
  const { api } = useAdaptable();
60
61
  const { scopeApi, columnApi } = api;
61
62
  const [columnsSearchText, setColumnsSearchText] = useState('');
@@ -79,6 +80,9 @@ export const NewScopeComponent = (props) => {
79
80
  if (scopeApi.scopeHasDataType(props.scope)) {
80
81
  return 'DataType';
81
82
  }
83
+ if (scopeApi.scopeHasColumnType(props.scope)) {
84
+ return 'ColumnType';
85
+ }
82
86
  return undefined;
83
87
  };
84
88
  const onScopeSelectChanged = (value) => {
@@ -93,6 +97,11 @@ export const NewScopeComponent = (props) => {
93
97
  DataTypes: [],
94
98
  };
95
99
  }
100
+ else if (value == 'ColumnType') {
101
+ newScope = {
102
+ ColumnTypes: [],
103
+ };
104
+ }
96
105
  else {
97
106
  newScope = {
98
107
  All: true,
@@ -128,6 +137,10 @@ export const NewScopeComponent = (props) => {
128
137
  if (Array.isArray(props.availableDataTypes)) {
129
138
  dataTypeOptions = props.availableDataTypes.map((dataType) => DATA_TYPES_MAP[dataType]);
130
139
  }
140
+ const hasColumnTypes = React.useMemo(() => {
141
+ var _a;
142
+ return ((_a = api.columnApi.getColumnTypes()) === null || _a === void 0 ? void 0 : _a.length) > 0;
143
+ }, []);
131
144
  return (React.createElement(Tabs, { "data-name": 'scope-component', className: "ab-ScopeComponent", value: scopeChoice, style: Object.assign({ height: '100%' }, props.style), onValueChange: onScopeSelectChanged },
132
145
  props.hideWholeRow ? null : (React.createElement(Tabs.Tab, { value: "Row" },
133
146
  React.createElement(Radio, { margin: 0, checked: scopeChoice == 'All', tabIndex: -1 }, "All Columns"))),
@@ -135,6 +148,8 @@ export const NewScopeComponent = (props) => {
135
148
  React.createElement(Radio, { margin: 0, value: "Column", checked: scopeChoice == 'Column', tabIndex: -1 }, "Selected Columns"))),
136
149
  !props.disableDataTypes && (React.createElement(Tabs.Tab, { value: "DataType" },
137
150
  React.createElement(Radio, { margin: 0, value: "DataType", checked: scopeChoice == 'DataType', tabIndex: -1 }, "Data Types"))),
151
+ hasColumnTypes && (React.createElement(Tabs.Tab, { value: "ColumnType" },
152
+ React.createElement(Radio, { margin: 0, value: "ColumnType", checked: scopeChoice == 'ColumnType', tabIndex: -1 }, "Column Types"))),
138
153
  props.hideWholeRow ? null : (React.createElement(Tabs.Content, { value: "Row", style: { flex: 'none' }, "data-name": "row-scope" },
139
154
  React.createElement(Text, { padding: 2, pl: 0, fontSize: 2 }, props.descriptions.rowScope))),
140
155
  !props.disableColumns && (React.createElement(Tabs.Content, { value: "Column", style: { flex: 1, overflow: 'auto' }, "data-name": "column-scope", padding: 0 },
@@ -147,5 +162,23 @@ export const NewScopeComponent = (props) => {
147
162
  !props.disableDataTypes && (React.createElement(Tabs.Content, { value: "DataType", style: { flex: 'none' }, "data-name": "datatype-scope" },
148
163
  React.createElement(Box, null,
149
164
  props.descriptions.dataTypeScope && (React.createElement(Text, { p: 2, pl: 0, mb: 2, fontSize: 2 }, props.descriptions.dataTypeScope)),
150
- React.createElement(Flex, { flexDirection: "column" }, dataTypeOptions.map((dataTypeOption) => (React.createElement(CheckBox, { "data-name": "scope", "data-value": dataTypeOption.value, key: dataTypeOption.value, checked: dataTypesInScope && dataTypesInScope.includes(dataTypeOption.value), onChange: (checked) => onCheckBoxDataTypeChecked(checked, dataTypeOption.value) }, dataTypeOption.label)))))))));
165
+ React.createElement(Flex, { flexDirection: "column" }, dataTypeOptions.map((dataTypeOption) => (React.createElement(CheckBox, { "data-name": "scope", "data-value": dataTypeOption.value, key: dataTypeOption.value, checked: dataTypesInScope && dataTypesInScope.includes(dataTypeOption.value), onChange: (checked) => onCheckBoxDataTypeChecked(checked, dataTypeOption.value) }, dataTypeOption.label))))))),
166
+ hasColumnTypes && (React.createElement(Tabs.Content, { value: "ColumnType", style: { flex: 'none' }, "data-name": "column-type-scope" },
167
+ React.createElement(Box, null,
168
+ React.createElement(Flex, { flexDirection: "column" }, (_b = (_a = api.columnApi.getColumnTypes()) === null || _a === void 0 ? void 0 : _a.map) === null || _b === void 0 ? void 0 : _b.call(_a, (columnType) => {
169
+ var _a;
170
+ return (React.createElement(CheckBox, { "data-name": "scope", "data-value": columnType, key: columnType, checked: 'ColumnTypes' in props.scope && ((_a = props.scope.ColumnTypes) === null || _a === void 0 ? void 0 : _a.includes(columnType)), onChange: (checked) => {
171
+ let columnTypes = [].concat(props.scope.ColumnTypes);
172
+ if (checked) {
173
+ columnTypes.push(columnType);
174
+ }
175
+ else {
176
+ columnTypes = columnTypes.filter((ct) => ct !== columnType);
177
+ }
178
+ let newScope = {
179
+ ColumnTypes: columnTypes,
180
+ };
181
+ props.updateScope(newScope);
182
+ } }, columnType));
183
+ })))))));
151
184
  };
@@ -1,8 +1,9 @@
1
- import * as React from 'react';
2
- export interface IAdaptableLoadingScreenProps extends React.ClassAttributes<AdaptableLoadingScreen> {
1
+ /// <reference types="react" />
2
+ export interface IAdaptableLoadingScreenProps {
3
3
  showLoadingScreen: boolean;
4
+ loadingScreenDelay?: number;
5
+ loadingScreenTitle?: string;
6
+ loadingScreenText?: string;
4
7
  onClose?: () => {};
5
8
  }
6
- export declare class AdaptableLoadingScreen extends React.Component<IAdaptableLoadingScreenProps, {}> {
7
- render(): JSX.Element;
8
- }
9
+ export declare function AdaptableLoadingScreen(props: IAdaptableLoadingScreenProps): JSX.Element;
@@ -1,13 +1,23 @@
1
1
  import * as React from 'react';
2
2
  import Dialog from '../../../components/Dialog';
3
3
  import { Box } from 'rebass';
4
- export class AdaptableLoadingScreen extends React.Component {
5
- render() {
6
- return (React.createElement(Dialog, { modal: true, isOpen: this.props.showLoadingScreen, onDismiss: this.props.onClose, showCloseButton: false, style: {
7
- minHeight: 'auto',
8
- } },
9
- React.createElement(Box, { padding: 3 },
10
- React.createElement("h4", null, "Initialising Grid"),
11
- React.createElement("p", null, "Retrieving your settings and setting up the grid..."))));
12
- }
4
+ export function AdaptableLoadingScreen(props) {
5
+ const { showLoadingScreen, loadingScreenDelay, loadingScreenTitle, loadingScreenText } = props;
6
+ const [delayElapsed, setDelayElapsed] = React.useState(typeof loadingScreenDelay === 'number' ? false : showLoadingScreen);
7
+ React.useEffect(() => {
8
+ if (typeof loadingScreenDelay === 'number') {
9
+ const timeoutId = setTimeout(() => {
10
+ setDelayElapsed(true);
11
+ }, loadingScreenDelay);
12
+ return () => {
13
+ clearTimeout(timeoutId);
14
+ };
15
+ }
16
+ }, [loadingScreenDelay]);
17
+ return (React.createElement(Dialog, { modal: true, isOpen: delayElapsed ? showLoadingScreen : false, onDismiss: props.onClose, showCloseButton: false, className: "ab-LoadingScreen", style: {
18
+ minHeight: 'auto',
19
+ } },
20
+ React.createElement(Box, { padding: 3 },
21
+ React.createElement("h4", null, loadingScreenTitle !== null && loadingScreenTitle !== void 0 ? loadingScreenTitle : 'Initialising Grid'),
22
+ React.createElement("p", null, loadingScreenText !== null && loadingScreenText !== void 0 ? loadingScreenText : 'Retrieving your settings and setting up the grid...'))));
13
23
  }
@@ -12,7 +12,7 @@ export const showToast = (props) => {
12
12
  });
13
13
  const adaptableOptions = props.api.optionsApi.getAdaptableOptions();
14
14
  const toastProps = ObjectFactory.CreateToastOptions(adaptableOptions.notificationsOptions, {
15
- containerId: adaptableOptions.adaptableId,
15
+ containerId: `Toastify-${adaptableOptions.adaptableId}`,
16
16
  onClose: () => {
17
17
  off();
18
18
  },
@@ -1,15 +1,15 @@
1
1
  import * as React from 'react';
2
2
  import { useSelector } from 'react-redux';
3
3
  import { Flex } from 'rebass';
4
- import { GetNotesSelector } from '../../../../Redux/ActionsReducers/NotesRedux';
4
+ import { GetNotesSelector } from '../../../../Redux/ActionsReducers/NoteRedux';
5
5
  import { SystemCommentsAndNotesEditModeSelector, SystemCommentsAndNotesFocusedEntitySelector, SystemCommentsAndNotesSelector, } from '../../../../Redux/ActionsReducers/SystemRedux';
6
6
  import { useAdaptable } from '../../../AdaptableContext';
7
7
  import { CommentsEditor } from '../../../Comments/CommentsEditor';
8
- import { NoteEditor } from '../../../Notes/NoteEditor';
8
+ import { NoteEditor } from '../../../Note/NoteEditor';
9
9
  import { CellPopup } from '../../CellPopup';
10
10
  const ConnectedNoteEditor = ({ enableEditMode }) => {
11
11
  const { api } = useAdaptable();
12
- const isReadonly = api.entitlementApi.isModuleReadOnlyEntitlement('Notes');
12
+ const isReadonly = api.entitlementApi.isModuleReadOnlyEntitlement('Note');
13
13
  const editMode = useSelector((state) => SystemCommentsAndNotesEditModeSelector(state.System));
14
14
  const cellPopupService = api.internalApi.getCellPopupService();
15
15
  const cellAddress = useSelector((state) => SystemCommentsAndNotesSelector(state.System));
@@ -17,13 +17,13 @@ const ConnectedNoteEditor = ({ enableEditMode }) => {
17
17
  // Only handle first note for now
18
18
  // Later we can handle multiple notes
19
19
  note,] = useSelector((state) => {
20
- return cellAddress ? GetNotesSelector(state.Notes, cellAddress) : [];
20
+ return cellAddress ? GetNotesSelector(state.Note, cellAddress) : [];
21
21
  });
22
22
  const handleNoteChange = React.useCallback((value) => {
23
- api.notesApi.updateNoteText(value, note);
23
+ api.noteApi.updateNoteText(value, note);
24
24
  }, [note]);
25
- return (React.createElement(Flex, { onClick: () => enableEditMode(), flexDirection: "column", className: "ab-NotesPopup" },
26
- React.createElement(NoteEditor, { isReadonly: isReadonly, editMode: editMode, key: note === null || note === void 0 ? void 0 : note.Uuid, onClose: () => cellPopupService.hidePopup(), note: note === null || note === void 0 ? void 0 : note.Value, onNoteChange: (value) => handleNoteChange(value) })));
25
+ return (React.createElement(Flex, { onClick: () => enableEditMode(), flexDirection: "column", className: "ab-NotePopup" },
26
+ React.createElement(NoteEditor, { isReadonly: isReadonly, editMode: editMode, key: note === null || note === void 0 ? void 0 : note.Uuid, onClose: () => cellPopupService.hidePopup(), note: note === null || note === void 0 ? void 0 : note.Text, onNoteChange: (value) => handleNoteChange(value) })));
27
27
  };
28
28
  export const GridCellPopup = (props) => {
29
29
  const { api } = useAdaptable();
@@ -4,4 +4,5 @@ export declare const WINDOW_GRID_FILTER_EDITOR = "WINDOW_GRID_FILTER_EDITOR";
4
4
  export declare const SHOW_PIVOT_COLUMN_DETAILS = "SHOW_PIVOT_COLUMN_DETAILS";
5
5
  export declare const SHOW_EXPORT_TABLE = "SHOW_EXPORT_TABLE";
6
6
  export declare const SHOW_THEME_EDITOR = "SHOW_THEME_EDITOR";
7
+ export declare const WINDOW_SHOW_TRANSPOSED_VIEW = "WINDOW_SHOW_TRANSPOSED_VIEW";
7
8
  export declare const windowFactory: Record<string, React.FunctionComponent<WindowPopupChildProps>>;
@@ -2,13 +2,16 @@ import { GridFilterWindowPopup } from '../../../GridFilter/GridFilterWindowPopup
2
2
  import { PivotDetailsPopoup } from '../../../Layout/PivotDetailsPopoup';
3
3
  import { ExportTablePopup } from '../../../Export/ExportTablePopup';
4
4
  import { ThemeEditorWindow } from '../../../Theme/ThemeEditorWindow';
5
+ import { TransposedPopup } from '../../../Layout/TransposedPopup';
5
6
  export const WINDOW_GRID_FILTER_EDITOR = 'WINDOW_GRID_FILTER_EDITOR';
6
7
  export const SHOW_PIVOT_COLUMN_DETAILS = 'SHOW_PIVOT_COLUMN_DETAILS';
7
8
  export const SHOW_EXPORT_TABLE = 'SHOW_EXPORT_TABLE';
8
9
  export const SHOW_THEME_EDITOR = 'SHOW_THEME_EDITOR';
10
+ export const WINDOW_SHOW_TRANSPOSED_VIEW = 'WINDOW_SHOW_TRANSPOSED_VIEW';
9
11
  export const windowFactory = {
10
12
  [WINDOW_GRID_FILTER_EDITOR]: GridFilterWindowPopup,
11
13
  [SHOW_PIVOT_COLUMN_DETAILS]: PivotDetailsPopoup,
12
14
  [SHOW_EXPORT_TABLE]: ExportTablePopup,
13
15
  [SHOW_THEME_EDITOR]: ThemeEditorWindow,
16
+ [WINDOW_SHOW_TRANSPOSED_VIEW]: TransposedPopup,
14
17
  };
@@ -9,7 +9,7 @@ export const PermittedValuesSelector = function (props) {
9
9
  const [filter, setFilter] = React.useState('');
10
10
  const columnType = React.useMemo(() => {
11
11
  return adaptable.api.columnApi.getColumnDataTypeForColumnId(props.columnId);
12
- }, []);
12
+ }, [props.columnId]);
13
13
  React.useEffect(() => {
14
14
  if (!props.columnId) {
15
15
  setIsLoading(false);
@@ -64,5 +64,5 @@ export const PermittedValuesSelector = function (props) {
64
64
  handleSingleValueChange(value);
65
65
  }
66
66
  };
67
- return (React.createElement(Select, { isMulti: props.isMulti, className: props.className, disabled: props.disabled, "data-name": "permitted-values-selector", placeholder: props.placeholder || (props.allowNewValues ? 'Select or type new value' : 'Select value'), isCreatable: isCreatable, isClearable: true, options: options, isLoding: isLoading, onInputChange: setFilter, onChange: handleOnChange, value: props.value }));
67
+ return (React.createElement(Select, { isMulti: props.isMulti, className: props.className, disabled: props.disabled, "data-name": "permitted-values-selector", placeholder: props.placeholder || (props.allowNewValues ? 'Select or type new value' : 'Select value'), isCreatable: isCreatable, isClearable: true, options: options, isLoading: isLoading, onInputChange: setFilter, onChange: handleOnChange, value: props.value }));
68
68
  };
@@ -26,6 +26,7 @@ export type ValueSelectorProps<OPTION_TYPE, ID_TYPE extends number | string> = {
26
26
  onShowSelectedOnlyChange?: (selectedOnly: boolean) => void;
27
27
  isOptionDisabled?: (option: OPTION_TYPE) => boolean;
28
28
  disabled?: boolean;
29
+ style?: React.CSSProperties;
29
30
  };
30
31
  export declare function ValueSelector<OPTION_TYPE, ID_TYPE extends number | string>(props: ValueSelectorProps<OPTION_TYPE, ID_TYPE>): JSX.Element;
31
32
  export declare namespace ValueSelector {
@@ -62,7 +62,7 @@ export function ValueSelector(props) {
62
62
  const label = !allowReorder ? preparedToLabel(option) : null;
63
63
  const reorderable = typeof allowReorder === 'function' ? allowReorder(option) : allowReorder;
64
64
  const renderNode = (props, dragHandleProps) => {
65
- return (React.createElement(Flex, Object.assign({ className: `${baseClassName}__option`, alignItems: "center", mt: index ? 1 : 0, key: identifier, backgroundColor: 'primary', padding: 2, "data-index": index, "data-id": identifier, "data-name": "option" }, props),
65
+ return (React.createElement(Flex, Object.assign({ className: `${baseClassName}__option`, alignItems: "center", mt: index ? 1 : 0, key: identifier !== null && identifier !== void 0 ? identifier : index, backgroundColor: 'primary', padding: 2, "data-index": index, "data-id": identifier, "data-name": "option" }, props),
66
66
  React.createElement(Flex, { flex: 1, flexDirection: "row", alignItems: "center" },
67
67
  reorderable ? (React.createElement(Box, Object.assign({ mr: 3 }, dragHandleProps),
68
68
  React.createElement(Icon, { name: "drag", style: { cursor: 'grab' } }))) : null,
@@ -111,7 +111,7 @@ export function ValueSelector(props) {
111
111
  };
112
112
  const showOnlySelectedCheckbox = (React.createElement(CheckBox, { disabled: !value.length, checked: selectedOnly, onChange: setSelectedOnly }, showSelectedOnlyLabel !== null && showSelectedOnlyLabel !== void 0 ? showSelectedOnlyLabel : 'Show Selected Only'));
113
113
  const showSelectedOnlyPosition = (_a = props.showSelectedOnlyPosition) !== null && _a !== void 0 ? _a : 'floating';
114
- return (React.createElement(Flex, { className: baseClassName, flexDirection: "column", flex: 1 },
114
+ return (React.createElement(Flex, { style: props.style, className: baseClassName, flexDirection: "column", flex: 1 },
115
115
  React.createElement(Flex, { mb: 1 },
116
116
  showFilterInput && filter ? (React.createElement(AdaptableFormControlTextClear, { value: searchInputValue, OnTextChange: setSearchInputValue, placeholder: "Type to search", style: { flex: 1, border: 0, margin: 3 } })) : (React.createElement(Box, { flex: 1 })),
117
117
  showSelectedOnlyPosition === 'top' && React.createElement(Box, { ml: 20 }, showOnlySelectedCheckbox)),
@@ -33,7 +33,7 @@ export class CustomSortSummaryComponent extends React.Component {
33
33
  }
34
34
  render() {
35
35
  const customSort = this.props.CustomSorts.find((c) => c.ColumnId == this.props.summarisedColumn.columnId);
36
- const columnSortComparer = this.props.api.customSortApi.internalApi.getCustomSortComparer(this.props.summarisedColumn);
36
+ const columnSortComparer = this.props.api.customSortApi.internalApi.getCustomSortComparer(this.props.summarisedColumn.columnId);
37
37
  let noCustomSort = customSort == null && columnSortComparer == null;
38
38
  let customSortRow;
39
39
  if (!this.props.summarisedColumn.sortable) {
@@ -1,9 +1,10 @@
1
1
  import * as React from 'react';
2
- import { useAdaptable } from '../AdaptableContext';
3
2
  import { useEffect, useRef, useState } from 'react';
3
+ import { useAdaptable } from '../AdaptableContext';
4
4
  import usePrevious from '../../components/utils/usePrevious';
5
5
  import { DataChangeHistoryModuleId } from '../../Utilities/Constants/ModuleConstants';
6
6
  import { buildActionColumnButton } from './buildActionColumnButton';
7
+ import { AdaptableAgGrid } from '../../agGrid/AdaptableAgGrid';
7
8
  export const DataChangeHistoryGrid = (props) => {
8
9
  const { changeHistoryLog, adaptableContainerId, agGridContainerId, onUndoChange, onClearRow } = props;
9
10
  const mainAdaptableInstance = useAdaptable();
@@ -20,13 +21,12 @@ export const DataChangeHistoryGrid = (props) => {
20
21
  const gridOptions = buildGridOptions(mainAdaptableInstance, changeHistoryLog);
21
22
  const adaptableOptions = buildAdaptableOptions(mainAdaptableInstance, gridOptions, adaptableContainerId, agGridContainerId, undoChangeEnabled, onUndoChange, onClearRow);
22
23
  const modules = mainAdaptableInstance.getAgGridRegisteredModules();
23
- const agGridConfig = {
24
+ const dataChangeHistoryAdaptableApi = await AdaptableAgGrid._initInternal({
25
+ variant: 'vanilla',
26
+ adaptableOptions,
24
27
  gridOptions,
25
- modules: modules,
26
- };
27
- // to avoid direct dependency to Adaptable.ts and thus creating a circular dependency;
28
- const adaptableInitFn = Object.getPrototypeOf(mainAdaptableInstance).constructor.init;
29
- const dataChangeHistoryAdaptableApi = await adaptableInitFn(adaptableOptions, agGridConfig);
28
+ modules,
29
+ });
30
30
  setAdaptableApi(dataChangeHistoryAdaptableApi);
31
31
  };
32
32
  initializeAdaptableGrid();
@@ -65,7 +65,7 @@ export const DataChangeHistoryGrid = (props) => {
65
65
  // 2. this UI will be reimplemented with Infinite Table anyway
66
66
  const addedRows = mapChangeHistoryRowData(addedChangeHistoryLogs, mainAdaptableInstance);
67
67
  const removedRows = mapChangeHistoryRowData(removedChangeHistoryLogs, mainAdaptableInstance);
68
- adaptableApi.gridApi.getAgGridInstance().api.applyTransactionAsync({
68
+ adaptableApi.agGridApi.applyTransactionAsync({
69
69
  add: addedRows,
70
70
  remove: removedRows,
71
71
  });
@@ -208,7 +208,6 @@ const buildGridOptions = (mainAdaptableInstance, changeHistoryLog) => {
208
208
  },
209
209
  autoGroupColumnDef: {
210
210
  sortable: true,
211
- // suppressMenu: true,
212
211
  },
213
212
  columnDefs: [
214
213
  {
@@ -45,7 +45,7 @@ export class FreeTextColumnSummaryComponent extends React.Component {
45
45
  this.state.editedAdaptableObject && (React.createElement(FreeTextColumnWizard, { moduleInfo: this.props.moduleInfo, data: this.state.editedAdaptableObject, configEntities: this.props.FreeTextColumns, onCloseWizard: () => this.onCloseWizard(), onFinishWizard: this.onFinishWizard }))));
46
46
  }
47
47
  onNew() {
48
- let configEntity = ObjectFactory.CreateEmptyFreeTextColumn();
48
+ let configEntity = ObjectFactory.CreateEmptyFreeTextColumn(this.props.api.gridApi.internalApi.deriveSpecialColumnSettingsFromAgGridDefaultColDef());
49
49
  configEntity.ColumnId = this.props.summarisedColumn.columnId;
50
50
  this.setState({
51
51
  editedAdaptableObject: configEntity,
@@ -8,8 +8,10 @@ import ObjectFactory from '../../../Utilities/ObjectFactory';
8
8
  import * as FreeTextColumnRedux from '../../../Redux/ActionsReducers/FreeTextColumnRedux';
9
9
  import { useDispatch, useSelector } from 'react-redux';
10
10
  import { ObjectTagsWizardSection, renderObjectTagsSummary, } from '../../Wizard/ObjectTagsWizardSection';
11
+ import { useAdaptable } from '../../AdaptableContext';
11
12
  export const FreeTextColumnWizard = (props) => {
12
13
  var _a;
14
+ const adaptable = useAdaptable();
13
15
  const allFreeTextColumns = useSelector((state) => state.FreeTextColumn.FreeTextColumns);
14
16
  const [freeTextColumn, setFreeTextColumn] = useState(() => {
15
17
  var _a, _b;
@@ -19,7 +21,7 @@ export const FreeTextColumnWizard = (props) => {
19
21
  if (((_a = props.popupParams) === null || _a === void 0 ? void 0 : _a.action) === 'Edit' && ((_b = props.popupParams) === null || _b === void 0 ? void 0 : _b.column)) {
20
22
  return allFreeTextColumns.find((column) => column.ColumnId === props.popupParams.column.columnId);
21
23
  }
22
- return ObjectFactory.CreateEmptyFreeTextColumn();
24
+ return ObjectFactory.CreateEmptyFreeTextColumn(adaptable.api.gridApi.internalApi.deriveSpecialColumnSettingsFromAgGridDefaultColDef());
23
25
  });
24
26
  const dispatch = useDispatch();
25
27
  const isEdit = props.data || ((_a = props.popupParams) === null || _a === void 0 ? void 0 : _a.action) === 'Edit';
@@ -23,6 +23,7 @@ const QueryViewPanelComponent = (props) => {
23
23
  const disabled = isReadOnly || isSuspended || gridFilterAccessLevel === 'ReadOnly';
24
24
  const handleEnter = (e) => {
25
25
  if (e.key === 'Enter') {
26
+ e.preventDefault();
26
27
  runQuery();
27
28
  }
28
29
  };
@@ -44,10 +45,11 @@ const QueryViewPanelComponent = (props) => {
44
45
  fontFamily: 'monospace',
45
46
  fontSize: 12,
46
47
  maxHeight: 52,
47
- height: 21,
48
- paddingTop: 7,
48
+ height: '100%',
49
+ paddingTop: 6,
50
+ overflow: 'hidden',
49
51
  zIndex: 100,
50
- }, placehoder: "Grid Filter", onChange: (x) => setExpression(x.target.value), value: expression })),
52
+ }, placeholder: "Grid Filter", onChange: (x) => setExpression(x.target.value), value: expression })),
51
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 })),
52
54
  gridFilter && !isExpressionValid && (React.createElement(ButtonInvalid, { variant: "text", tone: "neutral", tooltip: "Invalid Grid Filter", marginRight: 1 })),
53
55
  ' ',
@@ -71,11 +73,13 @@ const QueryViewPanelComponent = (props) => {
71
73
  maxHeight: 60,
72
74
  paddingTop: 7,
73
75
  zIndex: 100,
74
- }, placehoder: "Grid Filter", onChange: (x) => setExpression(x.target.value), value: expression }))));
76
+ height: '100%',
77
+ overflow: 'hidden',
78
+ }, placeholder: "Grid Filter", onChange: (x) => setExpression(x.target.value), value: expression }))));
75
79
  };
76
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 }));
77
81
  const suspendButton = (React.createElement(ButtonPause, { onClick: () => suspendGridFilter(), tooltip: "Suspend Grid Filter", accessLevel: gridFilterAccessLevel, disabled: disabled || !isExpressionValid, variant: "text", tone: "neutral", marginRight: 1 }));
78
- 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 }));
79
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) }));
80
84
  const columnsDropdown = (React.createElement(DropdownButton, { disabled: disabled, accessLevel: gridFilterAccessLevel, variant: "text", items: availableColumns, marginRight: 1, tooltip: "Pick Columns" },
81
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
  }
@@ -9,8 +9,8 @@ import { AdaptableObjectCollection } from '../../Components/AdaptableObjectColle
9
9
  import { AdaptableObjectRow } from '../../Components/AdaptableObjectRow';
10
10
  import { PopupPanel } from '../../Components/Popups/AdaptablePopup/PopupPanel';
11
11
  import { AdaptableObjectsSummary } from './AdaptableObjectsSummary';
12
- import env from '../../../env';
13
- const version = env.VERSION;
12
+ import { ADAPTABLE_VERSION } from '../../../EnvVars';
13
+ const version = ADAPTABLE_VERSION;
14
14
  export const GridInfoPopup = (props) => {
15
15
  const CreateGridSummaries = (colItems) => {
16
16
  var _a;
@@ -39,7 +39,6 @@ export const GridInfoPopup = (props) => {
39
39
  returnRows.push(createReadOnlyColItem(colItems, 'Column Filters', columnFilterDescription));
40
40
  returnRows.push(createReadOnlyColItem(colItems, 'Grid Filter', gridFilterExpression));
41
41
  returnRows.push(createReadOnlyColItem(colItems, 'All Rows', props.api.gridApi.getRowCount()));
42
- returnRows.push(createReadOnlyColItem(colItems, 'Visible Rows', props.api.gridApi.getVisibleRowCount()));
43
42
  returnRows.push(createReadOnlyColItem(colItems, 'Selected Rows', selectedRowInfo === null || selectedRowInfo === void 0 ? void 0 : selectedRowInfo.gridRows.length));
44
43
  returnRows.push(createReadOnlyColItem(colItems, 'Visible Selected Rows', selectedRowInfo === null || selectedRowInfo === void 0 ? void 0 : selectedRowInfo.gridRows.filter((gr) => { var _a; return ((_a = gr.rowNode) === null || _a === void 0 ? void 0 : _a.displayed) == true; }).length));
45
44
  returnRows.push(createReadOnlyColItem(colItems, 'All Columns', props.api.gridApi.getColumnCount()));
@@ -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 })),
@@ -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;