@adaptabletools/adaptable-cjs 22.0.0-canary.0 → 22.0.0-canary.10

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 (396) hide show
  1. package/README.md +4 -6
  2. package/agGrid.d.ts +9 -9
  3. package/agGrid.js +1 -0
  4. package/index.css +1280 -1400
  5. package/index.css.map +1 -1
  6. package/index.d.ts +66 -0
  7. package/index.js +85 -0
  8. package/package.json +3 -3
  9. package/src/AdaptableInterfaces/IAdaptable.d.ts +10 -1
  10. package/src/AdaptableOptions/ActionColumnOptions.d.ts +2 -2
  11. package/src/AdaptableOptions/AdaptablePlugin.js +6 -1
  12. package/src/AdaptableOptions/ColumnOptions.d.ts +2 -2
  13. package/src/AdaptableOptions/ContainerOptions.d.ts +55 -15
  14. package/src/AdaptableOptions/CustomSortOptions.d.ts +4 -0
  15. package/src/AdaptableOptions/DashboardOptions.d.ts +1 -2
  16. package/src/AdaptableOptions/ExportOptions.d.ts +1 -2
  17. package/src/AdaptableOptions/FilterOptions.d.ts +3 -0
  18. package/src/AdaptableOptions/ToolPanelOptions.d.ts +1 -2
  19. package/src/AdaptableState/AdaptableState.d.ts +2 -0
  20. package/src/AdaptableState/AlertState.d.ts +5 -2
  21. package/src/AdaptableState/ChartingState.d.ts +2 -2
  22. package/src/AdaptableState/Common/AdaptableAlert.d.ts +2 -2
  23. package/src/AdaptableState/Common/AdaptableButton.d.ts +2 -2
  24. package/src/AdaptableState/Common/AdaptableColumn.d.ts +16 -10
  25. package/src/AdaptableState/Common/AdaptableColumnContext.d.ts +9 -0
  26. package/src/AdaptableState/Common/AdaptableFlashingCell.d.ts +2 -2
  27. package/src/AdaptableState/Common/AdaptableObject.d.ts +20 -2
  28. package/src/AdaptableState/Common/AdaptableRowContext.d.ts +11 -0
  29. package/src/AdaptableState/Common/AdaptableStyle.d.ts +8 -0
  30. package/src/AdaptableState/Common/BaseContext.d.ts +2 -0
  31. package/src/AdaptableState/Common/ColumnHighlightInfo.d.ts +18 -0
  32. package/src/AdaptableState/Common/ColumnHighlightInfo.js +2 -0
  33. package/src/AdaptableState/Common/DataUpdateConfig.d.ts +17 -0
  34. package/src/AdaptableState/Common/NamedObject.d.ts +10 -0
  35. package/src/AdaptableState/Common/NamedObject.js +2 -0
  36. package/src/AdaptableState/Common/RowDataChangedInfo.d.ts +3 -0
  37. package/src/AdaptableState/Common/RowSummary.d.ts +1 -1
  38. package/src/AdaptableState/Common/Schedule.d.ts +8 -5
  39. package/src/AdaptableState/Common/SystemStatusMessageInfo.d.ts +2 -2
  40. package/src/AdaptableState/Common/TransposeConfig.d.ts +12 -10
  41. package/src/AdaptableState/CustomSortState.d.ts +5 -1
  42. package/src/AdaptableState/DashboardState.d.ts +1 -1
  43. package/src/AdaptableState/ExportState.d.ts +1 -1
  44. package/src/AdaptableState/FlashingCellState.d.ts +6 -2
  45. package/src/AdaptableState/FormatColumnState.d.ts +5 -9
  46. package/src/AdaptableState/InitialState.d.ts +10 -1
  47. package/src/AdaptableState/InternalState.d.ts +2 -0
  48. package/src/AdaptableState/LayoutState.d.ts +7 -3
  49. package/src/AdaptableState/NamedQueryState.d.ts +1 -1
  50. package/src/AdaptableState/PlusMinusState.d.ts +5 -1
  51. package/src/AdaptableState/Selection/GridCell.d.ts +9 -0
  52. package/src/AdaptableState/ShortcutState.d.ts +5 -1
  53. package/src/AdaptableState/StyledColumnState.d.ts +1 -1
  54. package/src/AdaptableState/ThemeState.d.ts +1 -1
  55. package/src/AdaptableState/UserInterfaceState.d.ts +14 -0
  56. package/src/AdaptableState/UserInterfaceState.js +2 -0
  57. package/src/Api/AlertApi.d.ts +6 -0
  58. package/src/Api/CustomSortApi.d.ts +12 -3
  59. package/src/Api/DataSetApi.d.ts +1 -1
  60. package/src/Api/FlashingCellApi.d.ts +6 -0
  61. package/src/Api/FormatColumnApi.d.ts +10 -4
  62. package/src/Api/GridApi.d.ts +29 -4
  63. package/src/Api/Implementation/ActionColumnApiImpl.js +1 -0
  64. package/src/Api/Implementation/AdaptableApiImpl.js +52 -0
  65. package/src/Api/Implementation/AlertApiImpl.d.ts +1 -0
  66. package/src/Api/Implementation/AlertApiImpl.js +6 -6
  67. package/src/Api/Implementation/ApiBase.d.ts +1 -1
  68. package/src/Api/Implementation/ApiBase.js +2 -1
  69. package/src/Api/Implementation/CalculatedColumnApiImpl.js +1 -0
  70. package/src/Api/Implementation/ChartingApiImpl.js +6 -2
  71. package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -1
  72. package/src/Api/Implementation/ColumnApiImpl.js +1 -0
  73. package/src/Api/Implementation/ColumnFilterApiImpl.js +1 -0
  74. package/src/Api/Implementation/CommentsApiImpl.js +1 -0
  75. package/src/Api/Implementation/CustomSortApiImpl.d.ts +6 -1
  76. package/src/Api/Implementation/CustomSortApiImpl.js +6 -2
  77. package/src/Api/Implementation/DashboardApiImpl.js +1 -0
  78. package/src/Api/Implementation/DataChangeHistoryApiImpl.js +12 -15
  79. package/src/Api/Implementation/DataImportApiImpl.js +1 -0
  80. package/src/Api/Implementation/DataSetApiImpl.js +1 -0
  81. package/src/Api/Implementation/EntitlementApiImpl.js +1 -0
  82. package/src/Api/Implementation/EventApiImpl.js +16 -14
  83. package/src/Api/Implementation/ExportApiImpl.js +1 -0
  84. package/src/Api/Implementation/ExpressionApiImpl.js +1 -0
  85. package/src/Api/Implementation/Fdc3ApiImpl.js +1 -0
  86. package/src/Api/Implementation/FilterApiImpl.js +3 -0
  87. package/src/Api/Implementation/FlashingCellApiImpl.d.ts +1 -0
  88. package/src/Api/Implementation/FlashingCellApiImpl.js +4 -0
  89. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +6 -5
  90. package/src/Api/Implementation/FormatColumnApiImpl.js +7 -5
  91. package/src/Api/Implementation/FreeTextColumnApiImpl.js +1 -0
  92. package/src/Api/Implementation/GridApiImpl.d.ts +10 -1
  93. package/src/Api/Implementation/GridApiImpl.js +35 -4
  94. package/src/Api/Implementation/GridFilterApiImpl.js +1 -0
  95. package/src/Api/Implementation/LayoutApiImpl.d.ts +1 -0
  96. package/src/Api/Implementation/LayoutApiImpl.js +5 -1
  97. package/src/Api/Implementation/LayoutHelpers.js +7 -0
  98. package/src/Api/Implementation/NamedQueryApiImpl.js +3 -2
  99. package/src/Api/Implementation/NoteApiImpl.js +1 -0
  100. package/src/Api/Implementation/PlusMinusApiImpl.d.ts +1 -0
  101. package/src/Api/Implementation/PlusMinusApiImpl.js +3 -0
  102. package/src/Api/Implementation/PredicateApiImpl.js +1 -0
  103. package/src/Api/Implementation/RowFormApiImpl.js +1 -0
  104. package/src/Api/Implementation/ScheduleApiImpl.d.ts +1 -0
  105. package/src/Api/Implementation/ScheduleApiImpl.js +4 -0
  106. package/src/Api/Implementation/ShortcutApiImpl.d.ts +1 -0
  107. package/src/Api/Implementation/ShortcutApiImpl.js +3 -0
  108. package/src/Api/Implementation/StyledColumnApiImpl.js +1 -0
  109. package/src/Api/Implementation/SystemStatusApiImpl.js +8 -9
  110. package/src/Api/Implementation/TeamSharingApiImpl.js +1 -0
  111. package/src/Api/Implementation/ThemeApiImpl.js +1 -0
  112. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +5 -0
  113. package/src/Api/Implementation/UserInterfaceApiImpl.js +15 -1
  114. package/src/Api/Internal/CalculatedColumnInternalApi.js +2 -2
  115. package/src/Api/Internal/ColumnInternalApi.js +1 -1
  116. package/src/Api/Internal/FormatColumnInternalApi.d.ts +0 -10
  117. package/src/Api/Internal/FormatColumnInternalApi.js +1 -19
  118. package/src/Api/Internal/FreeTextColumnInternalApi.js +2 -2
  119. package/src/Api/Internal/LayoutInternalApi.js +1 -1
  120. package/src/Api/Internal/NamedQueryInternalApi.js +4 -4
  121. package/src/Api/LayoutApi.d.ts +6 -0
  122. package/src/Api/PlusMinusApi.d.ts +6 -0
  123. package/src/Api/ScheduleApi.d.ts +6 -0
  124. package/src/Api/ShortcutApi.d.ts +6 -0
  125. package/src/Api/UserInterfaceApi.d.ts +17 -0
  126. package/src/Redux/ActionsReducers/FormatColumnRedux.d.ts +8 -0
  127. package/src/Redux/ActionsReducers/FormatColumnRedux.js +17 -1
  128. package/src/Redux/ActionsReducers/InternalRedux.d.ts +15 -0
  129. package/src/Redux/ActionsReducers/InternalRedux.js +42 -3
  130. package/src/Redux/ActionsReducers/LayoutRedux.d.ts +1 -1
  131. package/src/Redux/ActionsReducers/NoteRedux.js +1 -1
  132. package/src/Redux/ActionsReducers/UserInterfaceRedux.d.ts +11 -0
  133. package/src/Redux/ActionsReducers/UserInterfaceRedux.js +26 -0
  134. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +6 -0
  135. package/src/Redux/Store/AdaptableStore.js +121 -64
  136. package/src/Strategy/AdaptableModuleBase.js +4 -0
  137. package/src/Strategy/AlertModule.js +5 -0
  138. package/src/Strategy/BulkUpdateModule.js +8 -8
  139. package/src/Strategy/CalculatedColumnModule.js +1 -0
  140. package/src/Strategy/CellSummaryModule.js +1 -1
  141. package/src/Strategy/CustomSortModule.js +4 -0
  142. package/src/Strategy/DataChangeHistoryModule.js +1 -0
  143. package/src/Strategy/FlashingCellModule.js +6 -0
  144. package/src/Strategy/FormatColumnModule.js +4 -0
  145. package/src/Strategy/FreeTextColumnModule.js +1 -0
  146. package/src/Strategy/LayoutModule.js +6 -5
  147. package/src/Strategy/PlusMinusModule.js +7 -1
  148. package/src/Strategy/QuickSearchModule.js +1 -1
  149. package/src/Strategy/ScheduleModule.js +5 -0
  150. package/src/Strategy/SettingsPanelModule.js +11 -7
  151. package/src/Strategy/ShortcutModule.js +6 -0
  152. package/src/Strategy/SmartEditModule.js +10 -10
  153. package/src/Strategy/TeamSharingModule.js +10 -10
  154. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +0 -3
  155. package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +18 -17
  156. package/src/Utilities/Constants/DocumentationLinkConstants.js +19 -18
  157. package/src/Utilities/ExpressionFunctions/deepMap.js +31 -31
  158. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +3 -3
  159. package/src/Utilities/Extensions/StringExtensions.d.ts +2 -0
  160. package/src/Utilities/Extensions/StringExtensions.js +17 -0
  161. package/src/Utilities/Helpers/FormatHelper.js +9 -2
  162. package/src/Utilities/Helpers/StyleHelper.js +14 -0
  163. package/src/Utilities/MenuItem.js +18 -0
  164. package/src/Utilities/ObjectFactory.js +16 -3
  165. package/src/Utilities/Services/AggregatedScalarLiveValue.js +8 -0
  166. package/src/Utilities/Services/AlertService.js +6 -4
  167. package/src/Utilities/Services/AnnotationsService.js +4 -1
  168. package/src/Utilities/Services/CalculatedColumnExpressionService.js +2 -1
  169. package/src/Utilities/Services/ChartingService.js +1 -0
  170. package/src/Utilities/Services/DataService.js +11 -3
  171. package/src/Utilities/Services/Fdc3Service.js +9 -7
  172. package/src/Utilities/Services/FlashingCellService.js +5 -0
  173. package/src/Utilities/Services/LicenseService/index.js +1 -1
  174. package/src/Utilities/Services/MetamodelService.js +2 -2
  175. package/src/Utilities/Services/ModuleService.js +39 -41
  176. package/src/Utilities/Services/QueryLanguageService.js +6 -5
  177. package/src/Utilities/Services/RowFormService.js +1 -0
  178. package/src/Utilities/Services/RowSummaryService.js +10 -7
  179. package/src/Utilities/Services/TeamSharingService.js +3 -1
  180. package/src/Utilities/Services/ThemeService.js +13 -15
  181. package/src/Utilities/Services/ValidationService.js +2 -1
  182. package/src/Utilities/createAgStatusPanelComponent.js +3 -0
  183. package/src/Utilities/logDeprecation.js +3 -4
  184. package/src/Utilities/resolveContainerElement.d.ts +23 -0
  185. package/src/Utilities/resolveContainerElement.js +47 -0
  186. package/src/View/AdaptablePopover/index.d.ts +1 -0
  187. package/src/View/AdaptablePopover/index.js +1 -1
  188. package/src/View/Alert/ActiveAlertsPanel.js +8 -0
  189. package/src/View/Alert/AlertViewPanel.js +13 -9
  190. package/src/View/Alert/Utilities/getAlertButtonStyle.d.ts +1 -0
  191. package/src/View/Alert/Utilities/getAlertButtonStyle.js +8 -0
  192. package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +1 -0
  193. package/src/View/Alert/Wizard/AlertTypeWizardSection.d.ts +5 -2
  194. package/src/View/Alert/Wizard/AlertTypeWizardSection.js +48 -12
  195. package/src/View/Alert/Wizard/AlertWizard.js +12 -8
  196. package/src/View/Alert/Wizard/isValidAlertRules.js +1 -1
  197. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +24 -11
  198. package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +2 -2
  199. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +2 -2
  200. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
  201. package/src/View/CellSummary/CellSummaryViewPanel.js +16 -17
  202. package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +2 -2
  203. package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +2 -2
  204. package/src/View/Components/AdaptableDateInput/index.js +1 -1
  205. package/src/View/Components/Buttons/ButtonApply.js +1 -1
  206. package/src/View/Components/Buttons/ButtonBase/index.js +9 -9
  207. package/src/View/Components/Buttons/ButtonClear.d.ts +1 -0
  208. package/src/View/Components/Buttons/EntityListActionButtons.d.ts +1 -2
  209. package/src/View/Components/Buttons/EntityListActionButtons.js +18 -18
  210. package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.d.ts +1 -2
  211. package/src/View/Components/CellPopup/index.js +1 -1
  212. package/src/View/Components/ColumnFilter/FloatingFilter.js +41 -3
  213. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +1 -1
  214. package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +54 -2
  215. package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +1 -1
  216. package/src/View/Components/EntityRulesEditor/Utilities.js +5 -5
  217. package/src/View/Components/NewScopeComponent.js +3 -3
  218. package/src/View/Components/Panels/PanelDashboard/index.js +8 -8
  219. package/src/View/Components/Panels/PanelToolPanel/index.js +7 -7
  220. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +2 -1
  221. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupBody.js +1 -1
  222. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.d.ts +1 -1
  223. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +1 -8
  224. package/src/View/Components/Popups/AdaptablePopupConfirmation.js +1 -1
  225. package/src/View/Components/Popups/WindowPopups/WindowPopups.js +35 -0
  226. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +18 -17
  227. package/src/View/Components/StyleComponent.d.ts +1 -0
  228. package/src/View/Components/StyleComponent.js +94 -24
  229. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +2 -0
  230. package/src/View/Components/WizardSummaryPage.js +1 -1
  231. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +2 -1
  232. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +40 -14
  233. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +1 -1
  234. package/src/View/CustomSort/Wizard/CustomSortWizard.js +4 -4
  235. package/src/View/Dashboard/CustomToolbar.js +1 -1
  236. package/src/View/Dashboard/DashboardPopup.js +4 -5
  237. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -0
  238. package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +1 -1
  239. package/src/View/Export/ExportDestinationPicker.js +1 -1
  240. package/src/View/Export/ExportStatusBar.js +4 -2
  241. package/src/View/Export/ExportViewPanel.js +25 -18
  242. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.d.ts +2 -1
  243. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +36 -15
  244. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +13 -9
  245. package/src/View/FlashingCell/Wizard/isValidFlashingCellRules.js +1 -1
  246. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +46 -51
  247. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +2 -2
  248. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +22 -11
  249. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +1 -1
  250. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +3 -3
  251. package/src/View/GridFilter/GridFilterExpressionEditor.js +6 -1
  252. package/src/View/GridFilter/GridFilterViewPanel.js +33 -70
  253. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +57 -65
  254. package/src/View/Layout/LayoutViewPanel.js +1 -1
  255. package/src/View/Layout/TransposedPopup.js +144 -138
  256. package/src/View/Layout/Wizard/sections/AggregationsSection.js +1 -1
  257. package/src/View/Layout/Wizard/sections/FilterSection.js +1 -1
  258. package/src/View/Layout/Wizard/sections/GridFilterSection.js +1 -1
  259. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +3 -3
  260. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +8 -0
  261. package/src/View/Layout/Wizard/sections/RowSummarySection.js +1 -1
  262. package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +2 -2
  263. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +35 -12
  264. package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +20 -15
  265. package/src/View/QuickSearch/QuickSearchPopup.js +4 -1
  266. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsIPushPull.js +12 -1
  267. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsOpenFin.js +12 -1
  268. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +14 -4
  269. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +12 -1
  270. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.d.ts +2 -1
  271. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.js +19 -10
  272. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.d.ts +2 -1
  273. package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +25 -4
  274. package/src/View/Shortcut/Wizard/ShortcutWizard.js +18 -14
  275. package/src/View/SmartEdit/SmartEditViewPanel.js +1 -0
  276. package/src/View/StateManagement/handleExportState.js +1 -1
  277. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
  278. package/src/View/Theme/ThemePopup.js +13 -16
  279. package/src/View/UIHelper.d.ts +4 -1
  280. package/src/View/UIHelper.js +24 -14
  281. package/src/agGrid/Adaptable.js +15 -11
  282. package/src/agGrid/AdaptableAgGrid.d.ts +16 -3
  283. package/src/agGrid/AdaptableAgGrid.js +306 -103
  284. package/src/agGrid/AdaptableFilterHandler.js +4 -0
  285. package/src/agGrid/AdaptableLogger.d.ts +3 -0
  286. package/src/agGrid/AdaptableLogger.js +10 -0
  287. package/src/agGrid/AgGridAdapter.js +19 -9
  288. package/src/agGrid/AgGridColumnAdapter.d.ts +1 -0
  289. package/src/agGrid/AgGridColumnAdapter.js +20 -22
  290. package/src/agGrid/AgGridExportAdapter.js +15 -14
  291. package/src/agGrid/AgGridFilterAdapter.js +4 -0
  292. package/src/agGrid/AgGridFloatingFilterAdapter.js +4 -1
  293. package/src/agGrid/AgGridMenuAdapter.js +10 -1
  294. package/src/agGrid/AgGridModulesAdapter.js +2 -1
  295. package/src/agGrid/AgGridOptionsService.js +3 -0
  296. package/src/agGrid/AgGridThemeAdapter.js +4 -2
  297. package/src/agGrid/cellRenderers/ActionColumnRenderer.js +5 -0
  298. package/src/agGrid/cellRenderers/BadgeRenderer.js +2 -0
  299. package/src/agGrid/cellRenderers/PercentBarRenderer.js +1 -0
  300. package/src/agGrid/editors/AdaptableDateEditor/index.js +6 -3
  301. package/src/agGrid/editors/AdaptableNumberEditor/index.js +16 -12
  302. package/src/agGrid/editors/AdaptablePercentageEditor/index.js +17 -13
  303. package/src/agGrid/index.d.ts +6 -0
  304. package/src/agGrid/index.js +6 -0
  305. package/src/components/CheckBox/index.js +1 -1
  306. package/src/components/ColorPicker/ColorPicker.js +5 -4
  307. package/src/components/Dashboard/DashboardToolbar.js +1 -1
  308. package/src/components/Datepicker/index.js +1 -1
  309. package/src/components/Dropdown/Arrows.js +1 -1
  310. package/src/components/ExpressionEditor/DataTableEditor.js +3 -3
  311. package/src/components/ExpressionEditor/EditorInput.js +19 -3
  312. package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +1 -1
  313. package/src/components/FormLayout/index.js +1 -1
  314. package/src/components/OverlayTrigger/index.js +1 -1
  315. package/src/components/Select/Select.js +78 -15
  316. package/src/components/Tree/TreeDropdown/index.js +2 -2
  317. package/src/components/overlayBaseZIndex.js +1 -1
  318. package/src/components/utils/useContainerScrollObserver/index.js +17 -14
  319. package/src/devTools/index.js +54 -53
  320. package/src/env.js +2 -2
  321. package/src/layout-manager/src/LMEmitter.js +11 -11
  322. package/src/layout-manager/src/LMLogger.js +7 -0
  323. package/src/layout-manager/src/LayoutManagerModel.d.ts +1 -0
  324. package/src/layout-manager/src/index.js +81 -58
  325. package/src/layout-manager/src/normalizeLayoutModel.js +3 -0
  326. package/src/metamodel/adaptable.metamodel.d.ts +177 -8
  327. package/src/metamodel/adaptable.metamodel.js +1 -1
  328. package/src/migration/AdaptableUpgradeHelper.js +8 -3
  329. package/src/migration/VersionUpgrade.js +1 -0
  330. package/src/migration/VersionUpgrade17.js +5 -6
  331. package/src/migration/VersionUpgrade20.js +4 -4
  332. package/src/migration/VersionUpgrade22.d.ts +21 -0
  333. package/src/migration/VersionUpgrade22.js +191 -0
  334. package/src/parser/src/ExpressionEvaluationError.js +1 -0
  335. package/src/types.d.ts +9 -7
  336. package/themes/dark.css +30 -30
  337. package/themes/light.css +4 -2
  338. package/tsconfig.cjs.tsbuildinfo +1 -1
  339. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/FinanceForm.d.ts +0 -1
  340. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/FinanceForm/FinanceForm.js +0 -633
  341. package/src/View/Alert/AlertEntityRow.d.ts +0 -11
  342. package/src/View/Alert/AlertEntityRow.js +0 -33
  343. package/src/View/CalculatedColumn/CalculatedColumnSummary.d.ts +0 -21
  344. package/src/View/CalculatedColumn/CalculatedColumnSummary.js +0 -63
  345. package/src/View/Components/Buttons/ButtonFunction.d.ts +0 -7
  346. package/src/View/Components/Buttons/ButtonFunction.js +0 -13
  347. package/src/View/Components/Buttons/ButtonGeneral.d.ts +0 -5
  348. package/src/View/Components/Buttons/ButtonGeneral.js +0 -12
  349. package/src/View/Components/Buttons/ButtonPreviewDelete.d.ts +0 -4
  350. package/src/View/Components/Buttons/ButtonPreviewDelete.js +0 -8
  351. package/src/View/Components/Buttons/ButtonShow.d.ts +0 -5
  352. package/src/View/Components/Buttons/ButtonShow.js +0 -12
  353. package/src/View/Components/Buttons/ButtonShowChart.d.ts +0 -5
  354. package/src/View/Components/Buttons/ButtonShowChart.js +0 -12
  355. package/src/View/Components/Buttons/ButtonUndo.d.ts +0 -5
  356. package/src/View/Components/Buttons/ButtonUndo.js +0 -12
  357. package/src/View/Components/ExpressionWizard.d.ts +0 -24
  358. package/src/View/Components/ExpressionWizard.js +0 -82
  359. package/src/View/Components/FilterForm/Waiting.d.ts +0 -10
  360. package/src/View/Components/FilterForm/Waiting.js +0 -19
  361. package/src/View/Components/Panels/PanelFooter.d.ts +0 -10
  362. package/src/View/Components/Panels/PanelFooter.js +0 -14
  363. package/src/View/Components/Panels/PanelWithTwoButtons.d.ts +0 -12
  364. package/src/View/Components/Panels/PanelWithTwoButtons.js +0 -20
  365. package/src/View/Components/Panels/ToolPanelSettingsPanel.d.ts +0 -8
  366. package/src/View/Components/Panels/ToolPanelSettingsPanel.js +0 -31
  367. package/src/View/Components/Selectors/ColumnSelectorOld.d.ts +0 -18
  368. package/src/View/Components/Selectors/ColumnSelectorOld.js +0 -50
  369. package/src/View/Components/SharedProps/WizardScopeState.d.ts +0 -4
  370. package/src/View/Components/WizardSummaryRow.d.ts +0 -9
  371. package/src/View/Components/WizardSummaryRow.js +0 -16
  372. package/src/View/CustomSort/CustomSortSummary.d.ts +0 -23
  373. package/src/View/CustomSort/CustomSortSummary.js +0 -110
  374. package/src/View/DataImport/DataImportWizard/sections/ImportSection.d.ts +0 -9
  375. package/src/View/DataImport/DataImportWizard/sections/ImportSection.js +0 -24
  376. package/src/View/Export/Wizard/ReportColumnTypeWizard.d.ts +0 -19
  377. package/src/View/Export/Wizard/ReportColumnTypeWizard.js +0 -73
  378. package/src/View/Export/Wizard/ReportRowTypeWizard.d.ts +0 -19
  379. package/src/View/Export/Wizard/ReportRowTypeWizard.js +0 -73
  380. package/src/View/Export/Wizard/ReportSettingsWizard.d.ts +0 -21
  381. package/src/View/Export/Wizard/ReportSettingsWizard.js +0 -61
  382. package/src/View/Export/Wizard/ReportSummaryWizard.d.ts +0 -15
  383. package/src/View/Export/Wizard/ReportSummaryWizard.js +0 -40
  384. package/src/View/Filter/FilterSummary.d.ts +0 -18
  385. package/src/View/Filter/FilterSummary.js +0 -53
  386. package/src/View/FormatColumn/FormatColumnSummary.d.ts +0 -22
  387. package/src/View/FormatColumn/FormatColumnSummary.js +0 -95
  388. package/src/View/FreeTextColumn/FreeTextColumnSummary.d.ts +0 -22
  389. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +0 -93
  390. package/src/View/GridInfo/GridInfoPopup/AdaptableOptionsComponent.d.ts +0 -7
  391. package/src/View/GridInfo/GridInfoPopup/AdaptableOptionsComponent.js +0 -99
  392. package/src/View/PlusMinus/PlusMinusSummary.d.ts +0 -22
  393. package/src/View/PlusMinus/PlusMinusSummary.js +0 -100
  394. package/src/View/Wizard/WizardLegend.d.ts +0 -12
  395. package/src/View/Wizard/WizardLegend.js +0 -28
  396. /package/src/{View/Components/SharedProps/WizardScopeState.js → AdaptableState/Common/AdaptableRowContext.js} +0 -0
@@ -11,9 +11,10 @@ const FormatColumnStyleWizardSection_1 = require("./FormatColumnStyleWizardSecti
11
11
  const FormatColumnFormatWizardSection_1 = require("./FormatColumnFormatWizardSection");
12
12
  const AdaptableContext_1 = require("../../AdaptableContext");
13
13
  const FormatColumnSettingsWizardSection_1 = require("./FormatColumnSettingsWizardSection");
14
+ const react_redux_1 = require("react-redux");
14
15
  const NewScopeComponent_1 = require("../../Components/NewScopeComponent");
15
16
  const ObjectFactory_1 = tslib_1.__importDefault(require("../../../Utilities/ObjectFactory"));
16
- const react_redux_1 = require("react-redux");
17
+ const react_redux_2 = require("react-redux");
17
18
  const FormatColumnRedux = tslib_1.__importStar(require("../../../Redux/ActionsReducers/FormatColumnRedux"));
18
19
  const ObjectTagsWizardSection_1 = require("../../Wizard/ObjectTagsWizardSection");
19
20
  const Utilities_1 = require("../../Components/EntityRulesEditor/Utilities");
@@ -61,6 +62,7 @@ const adjustFormatColumn = (formatColumn, api) => {
61
62
  };
62
63
  function FormatColumnWizard(props) {
63
64
  const { api } = (0, AdaptableContext_1.useAdaptable)();
65
+ const allFormatColumns = (0, react_redux_1.useSelector)((state) => state.FormatColumn?.FormatColumns ?? []);
64
66
  const data = props.data ?? props.popupParams?.value;
65
67
  const [formatColumn, doSetFormatColumn] = (0, react_1.useState)(() => {
66
68
  let formatColumn = data ? (0, Helper_1.cloneObject)(data) : ObjectFactory_1.default.CreateEmptyFormatColumn();
@@ -78,7 +80,7 @@ function FormatColumnWizard(props) {
78
80
  const setFormatColumn = React.useCallback((formatColumn) => {
79
81
  doSetFormatColumn(adjustFormatColumn(formatColumn, api));
80
82
  }, []);
81
- const dispatch = (0, react_redux_1.useDispatch)();
83
+ const dispatch = (0, react_redux_2.useDispatch)();
82
84
  const handleFinish = () => {
83
85
  if (formatColumn?.DisplayFormat?.Options &&
84
86
  (0, ObjectExtensions_1.isObjectEmpty)(formatColumn?.DisplayFormat?.Options)) {
@@ -96,6 +98,24 @@ function FormatColumnWizard(props) {
96
98
  props.onFinishWizard(formatColumn);
97
99
  };
98
100
  return (React.createElement(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, modal: props.modal, data: formatColumn, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
101
+ {
102
+ title: 'Settings',
103
+ details: 'Enter Name and set Additional Properties',
104
+ isValid: (formatColumnData) => {
105
+ if (!formatColumnData.Name) {
106
+ return 'Format Column Name cannot be blank';
107
+ }
108
+ if (allFormatColumns.some((fc) => fc.Name === formatColumnData.Name && fc.Uuid !== formatColumnData.Uuid)) {
109
+ return 'A Format Column already exists with that name';
110
+ }
111
+ return true;
112
+ },
113
+ renderSummary: FormatColumnSettingsWizardSection_1.renderFormatColumnSettingsSummary,
114
+ render: () => {
115
+ return (React.createElement(Flex_1.Box, { className: "twa:p-2" },
116
+ React.createElement(FormatColumnSettingsWizardSection_1.FormatColumnSettingsWizardSection, { onChange: setFormatColumn })));
117
+ },
118
+ },
99
119
  {
100
120
  title: 'Scope',
101
121
  details: 'Select which Columns will be formatted',
@@ -146,15 +166,6 @@ function FormatColumnWizard(props) {
146
166
  return React.createElement(FormatColumnFormatWizardSection_1.FormatColumnFormatWizardSection, { onChange: setFormatColumn });
147
167
  },
148
168
  },
149
- {
150
- title: 'Settings',
151
- details: 'Set Additional Properties',
152
- renderSummary: FormatColumnSettingsWizardSection_1.renderFormatColumnSettingsSummary,
153
- render: () => {
154
- return (React.createElement(Flex_1.Box, { className: "twa:p-2" },
155
- React.createElement(FormatColumnSettingsWizardSection_1.FormatColumnSettingsWizardSection, { onChange: setFormatColumn })));
156
- },
157
- },
158
169
  {
159
170
  details: 'Select Format Column Tags',
160
171
  title: 'Tags',
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { FreeTextColumn } from '../../../AdaptableState/FreeTextColumnState';
3
3
  import { AdaptableApi } from '../../../Api/AdaptableApi';
4
4
  export declare const renderFreeTextColumnSummary: (data: FreeTextColumn) => React.JSX.Element;
5
- export declare const isValidFreeTextColumn: (data: FreeTextColumn, api: AdaptableApi) => true | "Column Id cannot be empty" | "A Column already exists with that id" | "No data type specified for column";
5
+ export declare const isValidFreeTextColumn: (data: FreeTextColumn, api: AdaptableApi) => true | "A Column ID is required." | "A column with this ID already exists." | "A data type is required for the column.";
6
6
  export type FreeTextColumnSettingsWizardSectionProps = {
7
7
  onChange: (data: FreeTextColumn) => void;
8
8
  isEdit: boolean;
@@ -45,15 +45,15 @@ exports.renderFreeTextColumnSummary = renderFreeTextColumnSummary;
45
45
  const isValidFreeTextColumn = (data, api) => {
46
46
  const columns = api.columnApi.getUIAvailableColumns();
47
47
  if (!data.ColumnId) {
48
- return 'Column Id cannot be empty';
48
+ return 'A Column ID is required.';
49
49
  }
50
50
  const columnsWithSameIdCount = columns.filter((c) => c.columnId === data.ColumnId).length;
51
51
  const hasAlreadyExistingId = data.Uuid ? columnsWithSameIdCount > 1 : columnsWithSameIdCount > 0;
52
52
  if (hasAlreadyExistingId) {
53
- return 'A Column already exists with that id';
53
+ return 'A column with this ID already exists.';
54
54
  }
55
55
  if (!data.FreeTextColumnSettings.DataType) {
56
- return 'No data type specified for column';
56
+ return 'A data type is required for the column.';
57
57
  }
58
58
  return true;
59
59
  };
@@ -32,6 +32,10 @@ const GridFilterExpressionEditor = (props) => {
32
32
  const onRunQuery = (expression) => {
33
33
  api.filterApi.gridFilterApi.setGridFilterExpression(expression);
34
34
  };
35
+ const onClearExpression = () => {
36
+ setExpression('');
37
+ api.filterApi.gridFilterApi.clearGridFilter();
38
+ };
35
39
  const onAddNamedQuery = (namedQuery) => dispatch(NamedQueryRedux.NamedQueryAdd(namedQuery));
36
40
  const handleSaveQuery = () => {
37
41
  dispatch((0, PopupRedux_1.PopupShowForm)({
@@ -84,7 +88,7 @@ const GridFilterExpressionEditor = (props) => {
84
88
  }));
85
89
  };
86
90
  const expressionEditorProps = (0, useGridFilterOptionsForExpressionEditor_1.useGridFilterOptionsForExpressionEditorProps)();
87
- const actionsDisabled = !isExpressionValid || (0, StringExtensions_1.IsNullOrEmpty)(expression) || hasNamedQueryError || isExistingNamedQuery;
91
+ const actionsDisabled = !isExpressionValid || (0, StringExtensions_1.IsNullOrEmpty)(expression) || hasNamedQueryError;
88
92
  return (React.createElement(NamedQueryContext_1.NamedQueryContext.Provider, { value: {
89
93
  namedQuery: namedQuery,
90
94
  setNamedQuery: (newQuery) => {
@@ -99,6 +103,7 @@ const GridFilterExpressionEditor = (props) => {
99
103
  } }, "CLOSE")),
100
104
  React.createElement(Flex_1.Box, { className: "twa:flex-1" }),
101
105
  React.createElement(SimpleButton_1.default, { disabled: actionsDisabled, onClick: handleSaveQuery, icon: "save" }, "Save Query"),
106
+ React.createElement(SimpleButton_1.default, { "data-name": "action-clear", onClick: onClearExpression, icon: "close", disabled: (0, StringExtensions_1.IsNullOrEmpty)(expression), className: "twa:ml-1" }, "Clear Query"),
102
107
  React.createElement(SimpleButton_1.default, { variant: "raised", tone: "accent", "data-name": "action-run", className: "twa:m-1", icon: "play", onClick: () => {
103
108
  if (namedQuery) {
104
109
  onAddNamedQuery({
@@ -3,100 +3,63 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GridFilterPanelControl = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
+ const clsx_1 = tslib_1.__importDefault(require("clsx"));
6
7
  const StringExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Extensions/StringExtensions"));
7
- const DropdownButton_1 = tslib_1.__importDefault(require("../../components/DropdownButton"));
8
8
  const FieldWrap_1 = tslib_1.__importDefault(require("../../components/FieldWrap"));
9
- const Textarea_1 = tslib_1.__importDefault(require("../../components/Textarea"));
10
- const icons_1 = require("../../components/icons");
11
9
  const ButtonClear_1 = require("../Components/Buttons/ButtonClear");
12
10
  const ButtonExpand_1 = require("../Components/Buttons/ButtonExpand");
13
11
  const ButtonInvalid_1 = require("../Components/Buttons/ButtonInvalid");
14
12
  const ButtonPause_1 = require("../Components/Buttons/ButtonPause");
15
- const ButtonPlay_1 = require("../Components/Buttons/ButtonPlay");
16
13
  const ButtonSave_1 = require("../Components/Buttons/ButtonSave");
17
14
  const ButtonUnsuspend_1 = require("../Components/Buttons/ButtonUnsuspend");
18
15
  const NamedQuerySelector_1 = require("./NamedQuerySelector");
19
16
  const useGridFilterExpressionEditor_1 = require("./useGridFilterExpressionEditor");
20
17
  const Flex_1 = require("../../components/Flex");
18
+ const Tooltip_1 = tslib_1.__importDefault(require("../../components/Tooltip"));
21
19
  const QueryViewPanelComponent = (props) => {
22
- const { cachedQueries, expression, setExpression, isExpressionNamedQuery, isExpressionValid, isSuspended, gridFilter, isAdaptableReady, namedQueries, availableColumns, runQuery, onExpand, clearQuery, namedQueryModuleAccessLevel, saveQuery, suspendGridFilter, unSuspendGridFilter, setGridFilterExpression, gridFilterAccessLevel, isReadOnly, } = (0, useGridFilterExpressionEditor_1.useGridFilterExpressionEditor)();
20
+ const { cachedQueries, expression, isExpressionNamedQuery, isExpressionValid, isSuspended, gridFilter, isAdaptableReady, namedQueries, runQuery, onExpand, clearQuery, namedQueryModuleAccessLevel, saveQuery, suspendGridFilter, unSuspendGridFilter, setGridFilterExpression, gridFilterAccessLevel, isReadOnly, } = (0, useGridFilterExpressionEditor_1.useGridFilterExpressionEditor)();
23
21
  if (!isAdaptableReady) {
24
22
  return null;
25
23
  }
26
24
  const elementType = props.viewType === 'Toolbar' ? 'DashboardToolbar' : 'ToolPanel';
27
25
  const disabled = isReadOnly || isSuspended || gridFilterAccessLevel === 'ReadOnly';
28
- const handleEnter = (e) => {
29
- if (e.key === 'Enter') {
30
- e.preventDefault();
31
- runQuery();
32
- }
33
- };
34
26
  const buttonExpand = (React.createElement(ButtonExpand_1.ButtonExpand, { disabled: disabled, accessLevel: gridFilterAccessLevel, variant: "text", tone: "neutral", onClick: onExpand, tooltip: "Edit the Expression in UI", className: "twa:ml-1" }));
35
- const renderTextInput = () => {
36
- return props.viewType === 'Toolbar' ? (React.createElement(FieldWrap_1.default, { className: "twa:mr-1 twa:w-[500px] twa:overflow-visible" },
37
- buttonExpand,
38
- React.createElement(Flex_1.Box, { className: "twa:flex-1 twa:relative twa:h-full" },
39
- React.createElement(Textarea_1.default, { "data-name": "grid-filter-input", autoResizeOnFocus: true, style: {
40
- left: 0,
41
- top: 0,
42
- right: 0,
43
- border: 0,
44
- position: 'absolute',
45
- resize: 'none',
46
- fontFamily: 'monospace',
47
- fontSize: 12,
48
- maxHeight: 52,
49
- height: '100%',
50
- paddingTop: 6,
51
- overflow: 'hidden',
52
- zIndex: 100,
53
- }, placeholder: "Grid Filter", onChange: (x) => setExpression(x.target.value), value: expression })),
54
- isExpressionValid && (React.createElement(ButtonPlay_1.ButtonPlay, { onClick: () => runQuery(), tooltip: '', accessLevel: gridFilterAccessLevel, variant: "text", tone: "neutral", disabled: disabled || expression == '' || expression == gridFilter?.Expression, className: "twa:mr-1" })),
55
- gridFilter && !isExpressionValid && (React.createElement(ButtonInvalid_1.ButtonInvalid, { variant: "text", tone: "neutral", tooltip: "Invalid Grid Filter", className: "twa:mr-1" })),
56
- ' ',
57
- StringExtensions_1.default.IsNotNullOrEmpty(expression) && (React.createElement(ButtonClear_1.ButtonClear, { onClick: () => clearQuery(), tooltip: "Clear Grid Filter", accessLevel: gridFilterAccessLevel })))) : (React.createElement(FieldWrap_1.default, { className: "twa:w-full twa:overflow-visible" },
58
- ' ',
27
+ const renderExpressionLabel = () => {
28
+ const baseClasses = 'twa:font-mono twa:text-xs twa:py-1.5 twa:px-2 twa:overflow-hidden twa:text-ellipsis twa:whitespace-nowrap twa:bg-white twa:rounded twa:cursor-pointer twa:h-7 twa:leading-4';
29
+ const placeholderClasses = 'twa:text-gray-400 twa:italic';
30
+ const labelClassName = (0, clsx_1.default)(baseClasses, {
31
+ [placeholderClasses]: !expression,
32
+ });
33
+ const expressionLabel = (React.createElement(Tooltip_1.default, { label: expression || 'Click to edit Grid Filter' },
34
+ React.createElement(Flex_1.Box, { className: (0, clsx_1.default)('twa:flex-1 twa:h-full twa:min-w-0', labelClassName), "data-name": "grid-filter-input", onClick: onExpand }, expression || 'Grid Filter')));
35
+ return (React.createElement(FieldWrap_1.default, { className: "twa:flex-1 twa:min-w-0 twa:overflow-visible" },
59
36
  buttonExpand,
60
- React.createElement(Flex_1.Box, { className: "twa:flex-1 twa:relative twa:w-full twa:min-h-[40px]" },
61
- React.createElement(Textarea_1.default, { "data-name": "grid-filter-input", autoResizeOnFocus: true, style: {
62
- left: 0,
63
- top: 0,
64
- right: 0,
65
- border: 0,
66
- position: 'absolute',
67
- resize: 'none',
68
- fontFamily: 'monospace',
69
- fontSize: 12,
70
- maxHeight: 60,
71
- paddingTop: 7,
72
- zIndex: 100,
73
- height: '100%',
74
- overflow: 'hidden',
75
- }, placeholder: "Grid Filter", onChange: (x) => setExpression(x.target.value), value: expression }))));
37
+ expressionLabel,
38
+ gridFilter && !isExpressionValid && (React.createElement(ButtonInvalid_1.ButtonInvalid, { variant: "text", tone: "neutral", tooltip: "Invalid Grid Filter" }))));
76
39
  };
77
- const saveButton = (React.createElement(ButtonSave_1.ButtonSave, { onClick: () => saveQuery(), tooltip: "Save as Named Query", accessLevel: namedQueryModuleAccessLevel, disabled: disabled || !isExpressionValid || isExpressionNamedQuery || expression == '', variant: "text", tone: "neutral", className: "twa:mr-1" }));
78
- const suspendButton = (React.createElement(ButtonPause_1.ButtonPause, { onClick: () => suspendGridFilter(), tooltip: "Suspend Grid Filter", accessLevel: gridFilterAccessLevel, disabled: disabled || !isExpressionValid, variant: "text", tone: "neutral", className: "twa:mr-1" }));
79
- const unSuspendButton = (React.createElement(ButtonUnsuspend_1.ButtonUnsuspend, { onClick: () => unSuspendGridFilter(), tooltip: "Unsuspend Grid Filter", accessLevel: gridFilterAccessLevel, disabled: !isExpressionValid, variant: "text", tone: "neutral", className: "twa:mr-1" }));
80
- const namedQuerySelector = (React.createElement(NamedQuerySelector_1.NamedQuerySelector, { namedQueries: namedQueries, cachedQueries: cachedQueries, currentQuery: gridFilter?.Expression, onSelect: (query) => runQuery(query), setGridFilterExpression: (query) => setGridFilterExpression(query) }));
81
- const columnsDropdown = (React.createElement(DropdownButton_1.default, { disabled: disabled, accessLevel: gridFilterAccessLevel, variant: "text", items: availableColumns, className: "twa:mr-1", tooltip: "Pick Columns" },
82
- React.createElement(icons_1.Icon, { name: 'list' })));
40
+ const hasExpression = StringExtensions_1.default.IsNotNullOrEmpty(expression);
41
+ const hasActiveGridFilter = gridFilter != null && hasExpression;
42
+ const hasNamedQueries = namedQueries && namedQueries.length > 0;
43
+ const clearButton = hasExpression ? (React.createElement(ButtonClear_1.ButtonClear, { onClick: () => clearQuery(), tooltip: "Clear Grid Filter", accessLevel: gridFilterAccessLevel, variant: "text", tone: "neutral" })) : null;
44
+ const saveButton = hasExpression ? (React.createElement(ButtonSave_1.ButtonSave, { onClick: () => saveQuery(), tooltip: "Save as Named Query", accessLevel: namedQueryModuleAccessLevel, disabled: isReadOnly || gridFilterAccessLevel === 'ReadOnly' || !isExpressionValid || isExpressionNamedQuery, variant: "text", tone: "neutral" })) : null;
45
+ const suspendButton = hasActiveGridFilter ? (React.createElement(ButtonPause_1.ButtonPause, { onClick: () => suspendGridFilter(), tooltip: "Suspend Grid Filter", accessLevel: gridFilterAccessLevel, disabled: disabled || !isExpressionValid, variant: "text", tone: "neutral" })) : null;
46
+ const unSuspendButton = hasActiveGridFilter ? (React.createElement(ButtonUnsuspend_1.ButtonUnsuspend, { onClick: () => unSuspendGridFilter(), tooltip: "Unsuspend Grid Filter", accessLevel: gridFilterAccessLevel, disabled: !isExpressionValid, variant: "text", tone: "neutral" })) : null;
47
+ const namedQuerySelector = hasNamedQueries ? (React.createElement(NamedQuerySelector_1.NamedQuerySelector, { namedQueries: namedQueries, cachedQueries: cachedQueries, currentQuery: gridFilter?.Expression, onSelect: (query) => runQuery(query), setGridFilterExpression: (query) => setGridFilterExpression(query) })) : null;
83
48
  const renderButtons = () => {
84
- return props.viewType === 'Toolbar' ? (React.createElement(React.Fragment, null,
85
- saveButton,
49
+ return (React.createElement(React.Fragment, null,
50
+ clearButton,
86
51
  isSuspended ? unSuspendButton : suspendButton,
87
- columnsDropdown,
88
- namedQuerySelector,
89
- ' ')) : (React.createElement(React.Fragment, null,
90
- React.createElement(ButtonPlay_1.ButtonPlay, { "aria-label": 'Run Grid Filter', onClick: () => runQuery(), tooltip: "Run Grid Filter", accessLevel: gridFilterAccessLevel, variant: "text", tone: "neutral", disabled: disabled || !isExpressionValid || expression == '' || expression == gridFilter, className: "twa:mr-1" }),
91
- ' ',
92
- React.createElement(ButtonClear_1.ButtonClear, { onClick: () => clearQuery(), tooltip: "Clear Grid Filter", accessLevel: gridFilterAccessLevel, disabled: expression == '' }),
93
- ' ',
94
52
  saveButton,
95
- isSuspended ? unSuspendButton : suspendButton,
96
53
  namedQuerySelector));
97
54
  };
98
- return (React.createElement(Flex_1.Flex, { onKeyDown: handleEnter, flexDirection: "row", className: `ab-${elementType}__Query__wrap`, flexWrap: props.viewType === 'ToolPanel' ? 'wrap' : 'nowrap' },
99
- React.createElement(Flex_1.Flex, { className: props.viewType === 'ToolPanel' ? 'twa:w-full' : 'twa:w-auto' }, renderTextInput()),
100
- React.createElement(Flex_1.Flex, null, renderButtons())));
55
+ const isToolbar = props.viewType === 'Toolbar';
56
+ return (React.createElement(Flex_1.Flex, { flexDirection: isToolbar ? 'row' : 'column', className: (0, clsx_1.default)(`ab-${elementType}__Query__wrap`, {
57
+ 'twa:w-[500px]': isToolbar,
58
+ }) },
59
+ React.createElement(Flex_1.Flex, { className: (0, clsx_1.default)({ 'twa:flex-1 twa:min-w-0': isToolbar }) }, renderExpressionLabel()),
60
+ React.createElement(Flex_1.Flex, { className: (0, clsx_1.default)('twa:flex-shrink-0', {
61
+ 'twa:pl-1': isToolbar,
62
+ 'twa:pt-1': !isToolbar,
63
+ }) }, renderButtons())));
101
64
  };
102
65
  exports.GridFilterPanelControl = QueryViewPanelComponent;
@@ -3,84 +3,75 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GridInfoPopup = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
+ const ArrayExtensions_1 = tslib_1.__importDefault(require("../../../Utilities/Extensions/ArrayExtensions"));
7
+ const EnvVars_1 = require("../../../EnvVars");
8
+ const AgGridModulesAdapter_1 = require("../../../agGrid/AgGridModulesAdapter");
9
+ const InfiniteTable_1 = require("../../../components/InfiniteTable");
6
10
  const Panel_1 = tslib_1.__importDefault(require("../../../components/Panel"));
7
11
  const Tabs_1 = require("../../../components/Tabs");
8
- const ArrayExtensions_1 = tslib_1.__importDefault(require("../../../Utilities/Extensions/ArrayExtensions"));
9
- const Helper_1 = tslib_1.__importDefault(require("../../../Utilities/Helpers/Helper"));
10
- const AdaptablePopover_1 = require("../../AdaptablePopover");
11
- const AdaptableObjectCollection_1 = require("../../Components/AdaptableObjectCollection");
12
- const AdaptableObjectRow_1 = require("../../Components/AdaptableObjectRow");
13
12
  const PopupPanel_1 = require("../../Components/Popups/AdaptablePopup/PopupPanel");
14
13
  const AdaptableObjectsSummary_1 = require("./AdaptableObjectsSummary");
15
- const EnvVars_1 = require("../../../EnvVars");
16
- const AgGridModulesAdapter_1 = require("../../../agGrid/AgGridModulesAdapter");
17
14
  const clsx_1 = tslib_1.__importDefault(require("clsx"));
18
15
  const adaptableVersion = EnvVars_1.ADAPTABLE_VERSION;
19
16
  const agGridVersion = AgGridModulesAdapter_1.AG_GRID_VERSION;
20
17
  const GridInfoPopup = (props) => {
21
18
  const api = props.api;
22
- const CreateGridSummaries = (colItems) => {
23
- const returnRows = [];
24
- const calcColumns = api.calculatedColumnApi
25
- .getCalculatedColumns()
26
- .map((c) => c.ColumnId);
27
- const actionColumns = api.actionColumnApi
28
- .getActionColumns()
29
- .map((ac) => ac.columnId);
30
- const freeTextColumns = api.freeTextColumnApi
31
- .getFreeTextColumns()
32
- .map((c) => c.ColumnId);
33
- const columnFilterDescription = api.filterApi.columnFilterApi.columnFiltersToString(api.filterApi.columnFilterApi.getColumnFilters());
34
- const gridFilterExpression = api.filterApi.gridFilterApi.getCurrentGridFilterExpression();
35
- const sorts = ArrayExtensions_1.default.IsNotNullOrEmpty(props.api.gridApi.getColumnSorts())
36
- ? api.gridApi.getColumnSorts().map((gs) => {
37
- return api.columnApi.getFriendlyNameForColumnId(gs.ColumnId) + ': ' + gs.SortOrder;
38
- })
39
- : null;
40
- const selectedRowInfo = api.gridApi.getSelectedRowInfo();
41
- if (api.optionsApi.getUserInterfaceOptions()?.showAdapTableVersion) {
42
- returnRows.push(createReadOnlyColItem(colItems, 'AdapTable Version', adaptableVersion));
43
- }
44
- if (api.optionsApi.getUserInterfaceOptions()?.showAgGridVersion) {
45
- returnRows.push(createReadOnlyColItem(colItems, 'AG Grid Version', agGridVersion));
46
- }
47
- returnRows.push(createReadOnlyColItem(colItems, 'Sorted Columns', ArrayExtensions_1.default.IsNotNullOrEmpty(sorts) ? sorts.join('; ') : 'None'));
48
- returnRows.push(createReadOnlyColItem(colItems, 'Column Filters', columnFilterDescription));
49
- returnRows.push(createReadOnlyColItem(colItems, 'Grid Filter', gridFilterExpression));
50
- returnRows.push(createReadOnlyColItem(colItems, 'All Rows', props.api.gridApi.getRowCount()));
51
- returnRows.push(createReadOnlyColItem(colItems, 'Visible Rows', props.api.gridApi.getVisibleRowCount()));
52
- returnRows.push(createReadOnlyColItem(colItems, 'Selected Rows', selectedRowInfo?.gridRows.length));
53
- returnRows.push(createReadOnlyColItem(colItems, 'Visible Selected Rows', selectedRowInfo?.gridRows.filter((gr) => gr.rowNode?.displayed == true).length));
54
- returnRows.push(createReadOnlyColItem(colItems, 'All Columns', props.api.gridApi.getColumnCount()));
55
- returnRows.push(createReadOnlyColItem(colItems, 'Visible Columns', props.api.gridApi.getVisibleColumnCount()));
56
- returnRows.push(createReadOnlyColItem(colItems, 'Calculated Columns', ArrayExtensions_1.default.IsNotNullOrEmpty(calcColumns)
19
+ const keyValuePairs = [];
20
+ const calcColumns = api.calculatedColumnApi
21
+ .getCalculatedColumns()
22
+ .map((c) => c.ColumnId);
23
+ const actionColumns = api.actionColumnApi
24
+ .getActionColumns()
25
+ .map((ac) => ac.columnId);
26
+ const freeTextColumns = api.freeTextColumnApi
27
+ .getFreeTextColumns()
28
+ .map((c) => c.ColumnId);
29
+ const columnFilterDescription = api.filterApi.columnFilterApi.columnFiltersToString(api.filterApi.columnFilterApi.getColumnFilters());
30
+ const gridFilterExpression = api.filterApi.gridFilterApi.getCurrentGridFilterExpression();
31
+ const sorts = ArrayExtensions_1.default.IsNotNullOrEmpty(props.api.gridApi.getColumnSorts())
32
+ ? api.gridApi.getColumnSorts().map((gs) => {
33
+ return api.columnApi.getFriendlyNameForColumnId(gs.ColumnId) + ': ' + gs.SortOrder;
34
+ })
35
+ : null;
36
+ const selectedRowInfo = api.gridApi.getSelectedRowInfo();
37
+ if (api.optionsApi.getUserInterfaceOptions()?.showAdapTableVersion) {
38
+ keyValuePairs.push({ Key: 'AdapTable Version', Value: adaptableVersion });
39
+ }
40
+ if (api.optionsApi.getUserInterfaceOptions()?.showAgGridVersion) {
41
+ keyValuePairs.push({ Key: 'AG Grid Version', Value: agGridVersion });
42
+ }
43
+ keyValuePairs.push({ Key: 'Sorted Columns', Value: ArrayExtensions_1.default.IsNotNullOrEmpty(sorts) ? sorts.join('; ') : 'None' });
44
+ keyValuePairs.push({ Key: 'Column Filters', Value: columnFilterDescription });
45
+ keyValuePairs.push({ Key: 'Grid Filter', Value: gridFilterExpression });
46
+ keyValuePairs.push({ Key: 'All Rows', Value: props.api.gridApi.getRowCount() });
47
+ keyValuePairs.push({ Key: 'Visible Rows', Value: props.api.gridApi.getVisibleRowCount() });
48
+ keyValuePairs.push({ Key: 'Selected Rows', Value: selectedRowInfo?.gridRows.length });
49
+ keyValuePairs.push({ Key: 'Visible Selected Rows', Value: selectedRowInfo?.gridRows.filter((gr) => gr.rowNode?.displayed == true).length });
50
+ keyValuePairs.push({ Key: 'All Columns', Value: props.api.gridApi.getColumnCount() });
51
+ keyValuePairs.push({ Key: 'Visible Columns', Value: props.api.gridApi.getVisibleColumnCount() });
52
+ keyValuePairs.push({ Key: 'Calculated Columns', Value: ArrayExtensions_1.default.IsNotNullOrEmpty(calcColumns)
57
53
  ? ArrayExtensions_1.default.createCommaSeparatedString(calcColumns)
58
- : 'None'));
59
- returnRows.push(createReadOnlyColItem(colItems, 'Free Text Columns', ArrayExtensions_1.default.IsNotNullOrEmpty(freeTextColumns)
54
+ : 'None' });
55
+ keyValuePairs.push({ Key: 'Free Text Columns', Value: ArrayExtensions_1.default.IsNotNullOrEmpty(freeTextColumns)
60
56
  ? ArrayExtensions_1.default.createCommaSeparatedString(freeTextColumns)
61
- : 'None'));
62
- returnRows.push(createReadOnlyColItem(colItems, 'Action Columns', ArrayExtensions_1.default.IsNotNullOrEmpty(actionColumns)
57
+ : 'None' });
58
+ keyValuePairs.push({ Key: 'CalcuActionlated Columns', Value: ArrayExtensions_1.default.IsNotNullOrEmpty(actionColumns)
63
59
  ? ArrayExtensions_1.default.createCommaSeparatedString(actionColumns)
64
- : 'None'));
65
- return returnRows;
60
+ : 'None' });
61
+ const domProps = {
62
+ className: 'twa:flex-1 twa:min-h-0 twa:w-full',
66
63
  };
67
- const createReadOnlyColItem = (colItems, item1, item2, item3) => {
68
- let rowColItems = Helper_1.default.cloneObject(colItems);
69
- rowColItems[0].Content = item1;
70
- rowColItems[1].Content = item2;
71
- if (item3) {
72
- let infoButton = React.createElement(AdaptablePopover_1.AdaptablePopover, { headerText: null, bodyText: [item3] });
73
- rowColItems[2].Content = infoButton;
74
- }
75
- return rowColItems;
64
+ keyValuePairs.map((keyValuePair) => {
65
+ return {
66
+ Key: keyValuePair.Key,
67
+ Value: keyValuePair.Value === 'Ignore' ? null : keyValuePair.Value,
68
+ };
69
+ })
70
+ .filter((x) => x.Value);
71
+ const columnsMap = {
72
+ Key: { field: 'Key', header: 'Property', defaultFlex: 1 },
73
+ Value: { field: 'Value', header: 'Value', defaultFlex: 3 },
76
74
  };
77
- let propValueColItems = [
78
- { Content: 'Property', Size: 5 },
79
- { Content: 'Value', Size: 7 },
80
- ];
81
- let gridSummaries = CreateGridSummaries(propValueColItems).map((x, index) => {
82
- return React.createElement(AdaptableObjectRow_1.AdaptableObjectRow, { key: index, colItems: x });
83
- });
84
75
  const baseClassName = 'ab-GridInfo';
85
76
  return (React.createElement(PopupPanel_1.PopupPanel, { className: (0, clsx_1.default)(baseClassName), headerText: 'Grid Info', glyphicon: 'info', scrollable: false },
86
77
  React.createElement(Panel_1.default, { className: "twa:flex-1 twa:border-none twa:shadow-md twa:overflow-hidden" },
@@ -89,7 +80,8 @@ const GridInfoPopup = (props) => {
89
80
  React.createElement(Tabs_1.Tabs.Tab, null, "Grid Summary"),
90
81
  React.createElement(Tabs_1.Tabs.Tab, null, "Grid State"),
91
82
  React.createElement(Tabs_1.Tabs.Content, null,
92
- React.createElement(AdaptableObjectCollection_1.AdaptableObjectCollection, { className: "twa:flex-1 twa:min-h-0" /* so the collection scrolls nicely, the header remains fixed*/, colItems: propValueColItems, items: gridSummaries })),
83
+ React.createElement(InfiniteTable_1.DataSource, { data: keyValuePairs, primaryKey: "Key" },
84
+ React.createElement(InfiniteTable_1.InfiniteTableGrid, { domProps: domProps, columns: columnsMap }))),
93
85
  React.createElement(Tabs_1.Tabs.Content, null,
94
86
  React.createElement(AdaptableObjectsSummary_1.AdaptableObjectsSummary, { className: "twa:min-h-0 twa:overflow-auto twa:p-2" })))))));
95
87
  };
@@ -83,7 +83,7 @@ function mapDispatchToProps(dispatch) {
83
83
  showMissingLayoutsError: () => {
84
84
  dispatch(PopupRedux.PopupShowConfirmation({
85
85
  Header: 'Missing Layouts',
86
- Msg: 'You have not defined any Layout! See the console for more details.',
86
+ Msg: 'No Layouts have been defined. Please check the console for details.',
87
87
  ConfirmAction: null,
88
88
  ConfirmButtonText: 'OK',
89
89
  CancelButtonText: null,