@adaptabletools/adaptable-cjs 20.3.0-canary.2 → 21.0.0-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) hide show
  1. package/agGrid.d.ts +2 -1
  2. package/agGrid.js +3 -1
  3. package/base.css +36 -15
  4. package/base.css.map +1 -1
  5. package/icons/add-circle.svg +1 -0
  6. package/icons/add.svg +1 -0
  7. package/icons/alert.svg +1 -0
  8. package/icons/align-center.svg +1 -0
  9. package/icons/align-justify.svg +1 -0
  10. package/icons/align-left.svg +1 -0
  11. package/icons/align-right.svg +1 -0
  12. package/icons/arrow-down-long.svg +1 -0
  13. package/icons/arrow-down.svg +1 -0
  14. package/icons/arrow-expand.svg +1 -0
  15. package/icons/arrow-left.svg +1 -0
  16. package/icons/arrow-right.svg +1 -0
  17. package/icons/arrow-up-long.svg +1 -0
  18. package/icons/arrow-up.svg +1 -0
  19. package/icons/assignment.svg +1 -0
  20. package/icons/badge.svg +1 -0
  21. package/icons/bold.svg +1 -0
  22. package/icons/boolean-list.svg +1 -0
  23. package/icons/brain.svg +1 -0
  24. package/icons/broadcast.svg +1 -0
  25. package/icons/brush.svg +1 -0
  26. package/icons/building.svg +1 -0
  27. package/icons/calculated-column.svg +1 -0
  28. package/icons/calendar.svg +1 -0
  29. package/icons/call.svg +1 -0
  30. package/icons/case-lower.svg +1 -0
  31. package/icons/case-sentence.svg +1 -0
  32. package/icons/case-upper.svg +1 -0
  33. package/icons/cells.svg +1 -0
  34. package/icons/chart.svg +1 -0
  35. package/icons/chat.svg +1 -0
  36. package/icons/check-circle.svg +1 -0
  37. package/icons/check.svg +1 -0
  38. package/icons/checked.svg +1 -0
  39. package/icons/clipboard.svg +1 -0
  40. package/icons/clone.svg +1 -0
  41. package/icons/close.svg +1 -0
  42. package/icons/cloud-upload.svg +1 -0
  43. package/icons/collapse-all.svg +1 -0
  44. package/icons/collapse.svg +1 -0
  45. package/icons/color-palette.svg +1 -0
  46. package/icons/column-add.svg +1 -0
  47. package/icons/column-outline.svg +1 -0
  48. package/icons/columns.svg +1 -0
  49. package/icons/comment.svg +1 -0
  50. package/icons/comments.svg +1 -0
  51. package/icons/contact.svg +1 -0
  52. package/icons/contains.svg +1 -0
  53. package/icons/copy.svg +1 -0
  54. package/icons/csv.svg +1 -0
  55. package/icons/dashboard.svg +1 -0
  56. package/icons/data-set.svg +1 -0
  57. package/icons/date-range.svg +1 -0
  58. package/icons/delete.svg +1 -0
  59. package/icons/division.svg +1 -0
  60. package/icons/dock.svg +1 -0
  61. package/icons/dollar.svg +1 -0
  62. package/icons/download.svg +1 -0
  63. package/icons/downloaded.svg +1 -0
  64. package/icons/drag.svg +1 -0
  65. package/icons/edit-table.svg +1 -0
  66. package/icons/edit.svg +1 -0
  67. package/icons/ends-with.svg +1 -0
  68. package/icons/equals.svg +1 -0
  69. package/icons/equation.svg +1 -0
  70. package/icons/error.svg +1 -0
  71. package/icons/excel.svg +1 -0
  72. package/icons/expand-all.svg +1 -0
  73. package/icons/expand.svg +1 -0
  74. package/icons/exponent.svg +1 -0
  75. package/icons/export-data.svg +1 -0
  76. package/icons/export.svg +1 -0
  77. package/icons/fast-backward.svg +1 -0
  78. package/icons/fast-forward.svg +1 -0
  79. package/icons/fdc3.svg +1 -0
  80. package/icons/filled-circle.svg +1 -0
  81. package/icons/filter-list.svg +1 -0
  82. package/icons/filter-off.svg +1 -0
  83. package/icons/filter.svg +1 -0
  84. package/icons/flag.svg +1 -0
  85. package/icons/folder-open.svg +1 -0
  86. package/icons/folder-shared.svg +1 -0
  87. package/icons/folder.svg +1 -0
  88. package/icons/function.svg +1 -0
  89. package/icons/gradient.svg +1 -0
  90. package/icons/greater-than-or-equal.svg +1 -0
  91. package/icons/greater-than.svg +1 -0
  92. package/icons/grid-filter.svg +1 -0
  93. package/icons/grid-info.svg +1 -0
  94. package/icons/grid.svg +1 -0
  95. package/icons/history.svg +1 -0
  96. package/icons/home.svg +1 -0
  97. package/icons/horizontal-lines.svg +1 -0
  98. package/icons/import-export.svg +1 -0
  99. package/icons/import.svg +1 -0
  100. package/icons/info.svg +1 -0
  101. package/icons/interactions.svg +1 -0
  102. package/icons/italic.svg +1 -0
  103. package/icons/json.svg +1 -0
  104. package/icons/laptop.svg +1 -0
  105. package/icons/less-than-or-equal.svg +1 -0
  106. package/icons/less-than.svg +1 -0
  107. package/icons/lightning.svg +1 -0
  108. package/icons/link.svg +1 -0
  109. package/icons/list.svg +1 -0
  110. package/icons/logout.svg +1 -0
  111. package/icons/mail.svg +1 -0
  112. package/icons/menu.svg +1 -0
  113. package/icons/minus.svg +1 -0
  114. package/icons/money.svg +1 -0
  115. package/icons/multiplication.svg +1 -0
  116. package/icons/newpage.svg +1 -0
  117. package/icons/news.svg +1 -0
  118. package/icons/not-contains.svg +1 -0
  119. package/icons/not-equal.svg +1 -0
  120. package/icons/note.svg +1 -0
  121. package/icons/open-in-new.svg +1 -0
  122. package/icons/order.svg +1 -0
  123. package/icons/organisation.svg +1 -0
  124. package/icons/overline.svg +1 -0
  125. package/icons/paperclip.svg +1 -0
  126. package/icons/pause.svg +1 -0
  127. package/icons/percent-tag.svg +1 -0
  128. package/icons/percent.svg +1 -0
  129. package/icons/person.svg +1 -0
  130. package/icons/pie-chart.svg +1 -0
  131. package/icons/play.svg +1 -0
  132. package/icons/plus.svg +1 -0
  133. package/icons/quote.svg +1 -0
  134. package/icons/refresh.svg +1 -0
  135. package/icons/regex.svg +1 -0
  136. package/icons/reminder.svg +1 -0
  137. package/icons/resume.svg +1 -0
  138. package/icons/rows.svg +1 -0
  139. package/icons/save.svg +1 -0
  140. package/icons/schedule.svg +1 -0
  141. package/icons/science.svg +1 -0
  142. package/icons/search-table.svg +1 -0
  143. package/icons/search.svg +1 -0
  144. package/icons/select-all.svg +1 -0
  145. package/icons/select-fwd.svg +1 -0
  146. package/icons/select-off.svg +1 -0
  147. package/icons/settings.svg +1 -0
  148. package/icons/sort-asc.svg +1 -0
  149. package/icons/sort-desc.svg +1 -0
  150. package/icons/spanner.svg +1 -0
  151. package/icons/spark-line.svg +1 -0
  152. package/icons/starts-with.svg +1 -0
  153. package/icons/statusbar.svg +1 -0
  154. package/icons/stop.svg +1 -0
  155. package/icons/strikethrough.svg +1 -0
  156. package/icons/styled-grid.svg +1 -0
  157. package/icons/sync.svg +1 -0
  158. package/icons/tab-unselected.svg +1 -0
  159. package/icons/target.svg +1 -0
  160. package/icons/theme.svg +1 -0
  161. package/icons/traffic-lights.svg +1 -0
  162. package/icons/triangle-down.svg +1 -0
  163. package/icons/triangle-up.svg +1 -0
  164. package/icons/unchecked.svg +1 -0
  165. package/icons/underline.svg +1 -0
  166. package/icons/undo.svg +1 -0
  167. package/icons/unfilled-circle.svg +1 -0
  168. package/icons/upload.svg +1 -0
  169. package/icons/visibility-off-bold.svg +1 -0
  170. package/icons/visibility-off.svg +1 -0
  171. package/icons/visibility-on-bold.svg +1 -0
  172. package/icons/visibility-on.svg +1 -0
  173. package/icons/warning.svg +1 -0
  174. package/index.css +32 -15
  175. package/index.css.map +1 -1
  176. package/package.json +2 -2
  177. package/src/AdaptableInterfaces/IAdaptable.d.ts +10 -5
  178. package/src/AdaptableOptions/ColumnOptions.d.ts +71 -187
  179. package/src/AdaptableOptions/DefaultAdaptableOptions.js +3 -2
  180. package/src/AdaptableOptions/EditOptions.d.ts +4 -7
  181. package/src/AdaptableOptions/FilterOptions.d.ts +50 -15
  182. package/src/AdaptableOptions/LayoutOptions.d.ts +8 -21
  183. package/src/AdaptableOptions/PredicateOptions.d.ts +1 -1
  184. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +1 -1
  185. package/src/AdaptableState/Common/AdaptableColumn.d.ts +7 -0
  186. package/src/AdaptableState/Common/AdaptablePredicate.js +2 -2
  187. package/src/AdaptableState/Common/CustomWindowConfig.d.ts +11 -11
  188. package/src/AdaptableState/Common/ExtendedLayout.d.ts +50 -0
  189. package/src/AdaptableState/Common/ProgressIndicatorConfig.d.ts +1 -4
  190. package/src/AdaptableState/Common/RowScope.d.ts +1 -1
  191. package/src/AdaptableState/FormatColumnState.d.ts +16 -9
  192. package/src/AdaptableState/InternalState.d.ts +1 -1
  193. package/src/AdaptableState/LayoutState.d.ts +26 -6
  194. package/src/AdaptableState/Selection/GridCell.d.ts +32 -0
  195. package/src/AdaptableState/StyledColumnState.d.ts +2 -2
  196. package/src/Api/AlertApi.d.ts +5 -11
  197. package/src/Api/ColumnApi.d.ts +17 -1
  198. package/src/Api/ColumnFilterApi.d.ts +32 -2
  199. package/src/Api/CustomSortApi.d.ts +5 -10
  200. package/src/Api/FlashingCellApi.d.ts +10 -6
  201. package/src/Api/FormatColumnApi.d.ts +8 -18
  202. package/src/Api/Implementation/AlertApiImpl.d.ts +6 -9
  203. package/src/Api/Implementation/AlertApiImpl.js +7 -6
  204. package/src/Api/Implementation/ApiBase.d.ts +2 -12
  205. package/src/Api/Implementation/ApiBase.js +5 -5
  206. package/src/Api/Implementation/ColumnApiImpl.d.ts +5 -2
  207. package/src/Api/Implementation/ColumnApiImpl.js +59 -23
  208. package/src/Api/Implementation/ColumnFilterApiImpl.d.ts +7 -1
  209. package/src/Api/Implementation/ColumnFilterApiImpl.js +76 -3
  210. package/src/Api/Implementation/ColumnScopeApiImpl.js +10 -2
  211. package/src/Api/Implementation/CustomSortApiImpl.d.ts +5 -10
  212. package/src/Api/Implementation/CustomSortApiImpl.js +6 -4
  213. package/src/Api/Implementation/FlashingCellApiImpl.d.ts +7 -6
  214. package/src/Api/Implementation/FlashingCellApiImpl.js +11 -8
  215. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +8 -18
  216. package/src/Api/Implementation/FormatColumnApiImpl.js +10 -9
  217. package/src/Api/Implementation/LayoutApiImpl.d.ts +3 -2
  218. package/src/Api/Implementation/LayoutApiImpl.js +101 -7
  219. package/src/Api/Implementation/LayoutHelpers.d.ts +1 -0
  220. package/src/Api/Implementation/LayoutHelpers.js +25 -5
  221. package/src/Api/Implementation/PlusMinusApiImpl.d.ts +7 -5
  222. package/src/Api/Implementation/PlusMinusApiImpl.js +10 -7
  223. package/src/Api/Implementation/ScheduleApiImpl.d.ts +9 -16
  224. package/src/Api/Implementation/ScheduleApiImpl.js +15 -17
  225. package/src/Api/Implementation/ShortcutApiImpl.d.ts +5 -6
  226. package/src/Api/Implementation/ShortcutApiImpl.js +7 -8
  227. package/src/Api/Implementation/StyledColumnApiImpl.d.ts +7 -8
  228. package/src/Api/Implementation/StyledColumnApiImpl.js +12 -9
  229. package/src/Api/Implementation/TeamSharingApiImpl.js +1 -4
  230. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +2 -1
  231. package/src/Api/Implementation/UserInterfaceApiImpl.js +10 -9
  232. package/src/Api/Internal/AdaptableInternalApi.d.ts +2 -0
  233. package/src/Api/Internal/AdaptableInternalApi.js +3 -0
  234. package/src/Api/Internal/AlertInternalApi.d.ts +6 -6
  235. package/src/Api/Internal/AlertInternalApi.js +10 -10
  236. package/src/Api/Internal/ColumnFilterInternalApi.d.ts +13 -0
  237. package/src/Api/Internal/ColumnFilterInternalApi.js +93 -1
  238. package/src/Api/Internal/ColumnInternalApi.d.ts +2 -1
  239. package/src/Api/Internal/ColumnInternalApi.js +6 -2
  240. package/src/Api/Internal/DashboardInternalApi.js +1 -1
  241. package/src/Api/Internal/EntitlementInternalApi.d.ts +1 -0
  242. package/src/Api/Internal/EntitlementInternalApi.js +8 -0
  243. package/src/Api/Internal/ExportInternalApi.js +1 -1
  244. package/src/Api/Internal/FlashingCellInternalApi.js +1 -1
  245. package/src/Api/Internal/FormatColumnInternalApi.d.ts +12 -13
  246. package/src/Api/Internal/FormatColumnInternalApi.js +45 -16
  247. package/src/Api/Internal/GridInternalApi.d.ts +7 -10
  248. package/src/Api/Internal/GridInternalApi.js +76 -27
  249. package/src/Api/Internal/LayoutInternalApi.d.ts +5 -5
  250. package/src/Api/Internal/LayoutInternalApi.js +42 -5
  251. package/src/Api/Internal/PredicateInternalApi.d.ts +2 -6
  252. package/src/Api/Internal/PredicateInternalApi.js +4 -6
  253. package/src/Api/Internal/UserInterfaceInternalApi.d.ts +1 -0
  254. package/src/Api/Internal/UserInterfaceInternalApi.js +10 -3
  255. package/src/Api/LayoutApi.d.ts +7 -2
  256. package/src/Api/PlusMinusApi.d.ts +11 -7
  257. package/src/Api/ScheduleApi.d.ts +9 -16
  258. package/src/Api/ShortcutApi.d.ts +5 -6
  259. package/src/Api/StyledColumnApi.d.ts +10 -7
  260. package/src/Api/UserInterfaceApi.d.ts +5 -6
  261. package/src/Redux/ActionsReducers/InternalRedux.d.ts +4 -4
  262. package/src/Redux/ActionsReducers/InternalRedux.js +10 -10
  263. package/src/Redux/ActionsReducers/StyledColumnRedux.d.ts +7 -0
  264. package/src/Redux/ActionsReducers/StyledColumnRedux.js +15 -1
  265. package/src/Redux/Store/AdaptableStore.js +10 -10
  266. package/src/Strategy/AdaptableModuleBase.d.ts +14 -4
  267. package/src/Strategy/AdaptableModuleBase.js +46 -9
  268. package/src/Strategy/AlertModule.d.ts +3 -4
  269. package/src/Strategy/AlertModule.js +7 -4
  270. package/src/Strategy/CalculatedColumnModule.js +2 -2
  271. package/src/Strategy/CellSummaryModule.js +2 -2
  272. package/src/Strategy/ChartingModule.d.ts +3 -1
  273. package/src/Strategy/ChartingModule.js +9 -3
  274. package/src/Strategy/ColumnFilterModule.d.ts +1 -1
  275. package/src/Strategy/ColumnFilterModule.js +31 -15
  276. package/src/Strategy/ColumnInfoModule.js +2 -2
  277. package/src/Strategy/CommentModule.d.ts +1 -1
  278. package/src/Strategy/CommentModule.js +3 -3
  279. package/src/Strategy/CustomSortModule.d.ts +3 -4
  280. package/src/Strategy/CustomSortModule.js +2 -2
  281. package/src/Strategy/DashboardModule.js +1 -1
  282. package/src/Strategy/DataChangeHistoryModule.d.ts +2 -1
  283. package/src/Strategy/DataChangeHistoryModule.js +3 -10
  284. package/src/Strategy/DataImportModule.js +3 -3
  285. package/src/Strategy/ExportModule.js +1 -1
  286. package/src/Strategy/Fdc3Module.js +1 -1
  287. package/src/Strategy/FlashingCellModule.d.ts +3 -5
  288. package/src/Strategy/FlashingCellModule.js +3 -3
  289. package/src/Strategy/FormatColumnModule.d.ts +3 -4
  290. package/src/Strategy/FormatColumnModule.js +4 -2
  291. package/src/Strategy/FreeTextColumnModule.d.ts +1 -1
  292. package/src/Strategy/FreeTextColumnModule.js +2 -2
  293. package/src/Strategy/GridInfoModule.js +2 -2
  294. package/src/Strategy/Interface/IModule.d.ts +7 -3
  295. package/src/Strategy/LayoutModule.js +11 -11
  296. package/src/Strategy/NoteModule.d.ts +1 -1
  297. package/src/Strategy/NoteModule.js +3 -3
  298. package/src/Strategy/PlusMinusModule.d.ts +3 -4
  299. package/src/Strategy/PlusMinusModule.js +2 -2
  300. package/src/Strategy/QuickSearchModule.d.ts +2 -0
  301. package/src/Strategy/QuickSearchModule.js +9 -0
  302. package/src/Strategy/ScheduleModule.d.ts +3 -4
  303. package/src/Strategy/ScheduleModule.js +2 -2
  304. package/src/Strategy/SettingsPanelModule.js +1 -1
  305. package/src/Strategy/ShortcutModule.d.ts +3 -4
  306. package/src/Strategy/ShortcutModule.js +2 -2
  307. package/src/Strategy/StatusBarModule.d.ts +3 -2
  308. package/src/Strategy/StatusBarModule.js +6 -3
  309. package/src/Strategy/StyledColumnModule.d.ts +3 -4
  310. package/src/Strategy/StyledColumnModule.js +2 -2
  311. package/src/Strategy/SystemStatusModule.js +2 -2
  312. package/src/Strategy/TeamSharingModule.d.ts +1 -1
  313. package/src/Strategy/TeamSharingModule.js +5 -2
  314. package/src/Strategy/ToolPanelModule.d.ts +1 -1
  315. package/src/Strategy/ToolPanelModule.js +1 -4
  316. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsTargetItems.d.ts +5 -0
  317. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsTargetItems.js +16 -0
  318. package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.js +1 -1
  319. package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +1 -0
  320. package/src/Utilities/Constants/DocumentationLinkConstants.js +2 -1
  321. package/src/Utilities/Extensions/ArrayExtensions.d.ts +15 -2
  322. package/src/Utilities/Extensions/ArrayExtensions.js +68 -15
  323. package/src/Utilities/ObjectFactory.js +3 -2
  324. package/src/Utilities/Services/AnnotationsService.js +1 -1
  325. package/src/Utilities/Services/Interface/IModuleService.d.ts +2 -1
  326. package/src/Utilities/Services/ModuleService.d.ts +3 -3
  327. package/src/Utilities/Services/ModuleService.js +18 -6
  328. package/src/Utilities/getScopeViewItems.js +6 -2
  329. package/src/View/AdaptableView.js +3 -1
  330. package/src/View/ColumnInfo/ColumnInfo.js +9 -3
  331. package/src/View/Components/AdaptableIconSelector/index.js +2 -3
  332. package/src/View/Components/ColumnFilter/AdaptableColumnFilter.d.ts +0 -1
  333. package/src/View/Components/ColumnFilter/AdaptableColumnFilter.js +2 -3
  334. package/src/View/Components/ColumnFilter/AdaptableFloatingFilter.d.ts +0 -2
  335. package/src/View/Components/ColumnFilter/AdaptableFloatingFilter.js +4 -7
  336. package/src/View/Components/ColumnFilter/ColumnFilter.js +11 -4
  337. package/src/View/Components/ColumnFilter/ColumnFilterWindow.js +1 -1
  338. package/src/View/Components/ColumnFilter/FloatingFilter.js +1 -2
  339. package/src/View/Components/ColumnFilter/LayoutColumnFilter.js +1 -1
  340. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +2 -2
  341. package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +2 -2
  342. package/src/View/Components/ColumnFilter/useAdaptableFilterWrapper.d.ts +1 -1
  343. package/src/View/Components/ColumnFilter/useAdaptableFilterWrapper.js +2 -2
  344. package/src/View/Components/ColumnFilter/utils.d.ts +2 -2
  345. package/src/View/Components/ColumnFilter/utils.js +6 -1
  346. package/src/View/Components/EntityRulesEditor/index.js +1 -2
  347. package/src/View/Components/FilterForm/ListBoxFilterForm.js +1 -1
  348. package/src/View/Components/NewScopeComponent.js +5 -1
  349. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +5 -5
  350. package/src/View/Components/PredicateEditor/PredicateEditor.js +1 -2
  351. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +1 -1
  352. package/src/View/Components/Selectors/ColumnSelector.js +1 -1
  353. package/src/View/Components/Selectors/FieldSelector.js +1 -1
  354. package/src/View/Components/Selectors/PermittedValuesSelector.d.ts +1 -0
  355. package/src/View/Components/Selectors/PermittedValuesSelector.js +2 -2
  356. package/src/View/Dashboard/Dashboard.js +2 -2
  357. package/src/View/Dashboard/DashboardPopup.js +3 -1
  358. package/src/View/Dashboard/PinnedDashboard.js +1 -1
  359. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +9 -21
  360. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +59 -22
  361. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +4 -0
  362. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +0 -39
  363. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +13 -12
  364. package/src/View/FormatColumn/Wizard/FormatColumnTargetWizardSection.d.ts +8 -0
  365. package/src/View/FormatColumn/Wizard/FormatColumnTargetWizardSection.js +37 -0
  366. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +18 -4
  367. package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.js +1 -1
  368. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -2
  369. package/src/View/Layout/TransposedPopup.js +2 -2
  370. package/src/View/Layout/Wizard/sections/ColumnsSection.js +64 -9
  371. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +5 -5
  372. package/src/View/StatusBar/AdaptableStatusBar.js +1 -4
  373. package/src/View/StatusBar/StatusBarPopup.js +1 -1
  374. package/src/View/Theme/ThemeSelector.js +1 -1
  375. package/src/agGrid/AdaptableAgGrid.d.ts +11 -7
  376. package/src/agGrid/AdaptableAgGrid.js +256 -218
  377. package/src/agGrid/AdaptableFilterHandler.d.ts +18 -0
  378. package/src/agGrid/AdaptableFilterHandler.js +65 -0
  379. package/src/agGrid/AgGridAdapter.d.ts +3 -7
  380. package/src/agGrid/AgGridAdapter.js +13 -46
  381. package/src/agGrid/AgGridColumnAdapter.d.ts +3 -3
  382. package/src/agGrid/AgGridColumnAdapter.js +86 -40
  383. package/src/agGrid/AgGridExportAdapter.js +1 -1
  384. package/src/agGrid/AgGridFilterAdapter.d.ts +2 -0
  385. package/src/agGrid/AgGridFilterAdapter.js +53 -0
  386. package/src/agGrid/AgGridFloatingFilterAdapter.d.ts +2 -0
  387. package/src/agGrid/{FloatingFilterWrapper.js → AgGridFloatingFilterAdapter.js} +26 -37
  388. package/src/agGrid/AgGridModulesAdapter.d.ts +15 -0
  389. package/src/agGrid/AgGridModulesAdapter.js +70 -0
  390. package/src/agGrid/editors/AdaptableNumberEditor/InternalAdaptableNumberEditor.js +1 -1
  391. package/src/agGrid/editors/AdaptablePercentageEditor/InternalAdaptablePercentageEditor.js +1 -1
  392. package/src/components/Dialog/index.js +1 -1
  393. package/src/components/Dropdown/Arrows.js +2 -2
  394. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.d.ts +1 -1
  395. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +4 -4
  396. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +1 -1
  397. package/src/components/FileDroppable/index.js +1 -1
  398. package/src/components/IconSelector/IconSelector.d.ts +2 -2
  399. package/src/components/OverlayTrigger/index.js +1 -1
  400. package/src/components/Select/Select.d.ts +1 -1
  401. package/src/components/Select/Select.js +114 -22
  402. package/src/components/icons/DefaultIcon.d.ts +0 -1
  403. package/src/components/icons/DefaultIcon.js +0 -8
  404. package/src/env.js +2 -2
  405. package/src/layout-manager/src/LayoutManagerModel.d.ts +6 -10
  406. package/src/layout-manager/src/index.d.ts +11 -3
  407. package/src/layout-manager/src/index.js +302 -87
  408. package/src/layout-manager/src/normalizeLayoutModel.js +7 -4
  409. package/src/layout-manager/src/simplifyLayoutModel.js +4 -4
  410. package/src/metamodel/adaptable.metamodel.d.ts +172 -20
  411. package/src/metamodel/adaptable.metamodel.js +1 -1
  412. package/src/migration/AdaptableUpgradeHelper.js +2 -0
  413. package/src/migration/VersionUpgrade17.js +1 -1
  414. package/src/migration/VersionUpgrade20.js +1 -0
  415. package/src/migration/VersionUpgrade21.d.ts +6 -0
  416. package/src/migration/VersionUpgrade21.js +28 -0
  417. package/src/types.d.ts +8 -9
  418. package/tsconfig.cjs.tsbuildinfo +1 -1
  419. package/src/AdaptableState/Common/ExtendedLayoutInfo.d.ts +0 -27
  420. package/src/agGrid/FilterWrapper.d.ts +0 -2
  421. package/src/agGrid/FilterWrapper.js +0 -136
  422. package/src/agGrid/FloatingFilterWrapper.d.ts +0 -2
  423. package/src/agGrid/agGridModules.d.ts +0 -3
  424. package/src/agGrid/agGridModules.js +0 -18
  425. package/src/agGrid/getAgGridFilterNotifyModelFn.d.ts +0 -2
  426. package/src/agGrid/getAgGridFilterNotifyModelFn.js +0 -21
  427. /package/src/AdaptableState/Common/{ExtendedLayoutInfo.js → ExtendedLayout.js} +0 -0
@@ -125,53 +125,90 @@ const getFormatDisplayTypeForScope = (scope, api) => {
125
125
  if ('All' in scope) {
126
126
  return undefined;
127
127
  }
128
- // need to see if all columns are numeric or date
128
+ // Date-related data types that should all be treated as 'date'
129
+ const dateTypes = api.columnApi.internalApi.getColumnDateTypes();
130
+ // Check for ColumnIds in scope
129
131
  if ('ColumnIds' in scope) {
130
132
  const columns = scope.ColumnIds.map((c) => api.columnApi.getColumnWithColumnId(c)).filter(Boolean);
131
133
  const columnDataTypes = (0, uniq_1.default)(columns.map((c) => c.dataType));
132
- if (columnDataTypes.length == 1 && columnDataTypes[0] == 'number') {
134
+ // If there's only one data type
135
+ if (columnDataTypes.length === 1) {
136
+ const dataType = columnDataTypes[0];
137
+ if (dataType === 'number') {
138
+ return 'number';
139
+ }
140
+ if (dateTypes.includes(dataType)) {
141
+ return 'date';
142
+ }
143
+ if (dataType === 'text') {
144
+ return 'text';
145
+ }
146
+ }
147
+ // If there are multiple data types but they're all date types
148
+ else if (columnDataTypes.length > 0 &&
149
+ columnDataTypes.every((type) => dateTypes.includes(type))) {
150
+ return 'date';
151
+ }
152
+ return undefined;
153
+ }
154
+ // Check for DataTypes in scope
155
+ if ('DataTypes' in scope && scope.DataTypes.length === 1) {
156
+ const dataType = scope.DataTypes[0];
157
+ if (dataType === 'number') {
133
158
  return 'number';
134
159
  }
135
- if (columnDataTypes.length == 1 && columnDataTypes[0] == 'date') {
160
+ if (dateTypes.includes(dataType)) {
136
161
  return 'date';
137
162
  }
138
- if (columnDataTypes.length == 1 && columnDataTypes[0] == 'text') {
163
+ if (dataType === 'text') {
139
164
  return 'text';
140
165
  }
141
- return undefined;
142
- }
143
- if ('DataTypes' in scope && scope.DataTypes.length == 1 && scope.DataTypes[0] == 'number') {
144
- return 'number';
145
166
  }
146
- if ('DataTypes' in scope && scope.DataTypes.length == 1 && scope.DataTypes[0] == 'date') {
167
+ // If there are multiple data types but they're all date types
168
+ else if ('DataTypes' in scope &&
169
+ scope.DataTypes.length > 0 &&
170
+ scope.DataTypes.every((type) => dateTypes.includes(type))) {
147
171
  return 'date';
148
172
  }
149
- if ('DataTypes' in scope && scope.DataTypes.length == 1 && scope.DataTypes[0] == 'text') {
150
- return 'text';
151
- }
173
+ // Check for ColumnTypes in scope
152
174
  if ('ColumnTypes' in scope && scope.ColumnTypes.length) {
153
- // if a Pivot Total Column Type is specified, we can safely assume that the data type is number
175
+ // If a Pivot Total Column Type is specified, we can safely assume that the data type is number
154
176
  const pivotTotalTypes = [
155
177
  AdaptableColumn_1.PIVOT_ANY_TOTAL_COLUMN_TYPE,
156
178
  AdaptableColumn_1.PIVOT_GRAND_TOTAL_COLUMN_TYPE,
157
179
  AdaptableColumn_1.PIVOT_COLUMN_TOTAL_COLUMN_TYPE,
158
180
  AdaptableColumn_1.PIVOT_AGGREGATION_TOTAL_COLUMN_TYPE,
159
181
  ];
160
- // if all column types are pivot total types, we can safely assume that the data type is number
182
+ // If all column types are pivot total types, we can safely assume that the data type is number
161
183
  if (scope.ColumnTypes.length > 0 &&
162
184
  scope.ColumnTypes.every((type) => pivotTotalTypes.includes(type))) {
163
185
  return 'number';
164
186
  }
165
- // need to check if all column with this column type has the same data type and return that particular one
187
+ // Check if all columns with this column type have the same data type
166
188
  const columns = scope.ColumnTypes.flatMap((columnType) => {
167
189
  return api.columnApi.getColumnsByColumnType(columnType);
168
190
  });
169
- // check if all have the same type
170
- if (columns.length &&
171
- columns.every((column) => column.dataType === columns[0].dataType) &&
172
- // supported data types
173
- ['number', 'date', 'text'].includes(columns[0].dataType)) {
174
- return columns[0].dataType;
191
+ if (columns.length) {
192
+ // Check if all columns have the same type
193
+ const allSameType = columns.every((column) => column.dataType === columns[0].dataType);
194
+ // Handle specific data types
195
+ if (allSameType) {
196
+ const dataType = columns[0].dataType;
197
+ if (dataType === 'number') {
198
+ return 'number';
199
+ }
200
+ if (dateTypes.includes(dataType)) {
201
+ return 'date';
202
+ }
203
+ if (dataType === 'text') {
204
+ return 'text';
205
+ }
206
+ }
207
+ // Check if all columns are date types (even if they're different date types)
208
+ const allDateTypes = columns.every((column) => dateTypes.includes(column.dataType));
209
+ if (allDateTypes) {
210
+ return 'date';
211
+ }
175
212
  }
176
213
  }
177
214
  return undefined;
@@ -460,6 +497,6 @@ const FormatColumnFormatWizardSection = (props) => {
460
497
  return (React.createElement(HelpBlock_1.default, { margin: 3 },
461
498
  "Setting a Display Format is only possible if ",
462
499
  React.createElement("b", null, "all"),
463
- " the columns in Scope are Numeric, String or Date."));
500
+ " the columns in Scope are Numeric, String or Date"));
464
501
  };
465
502
  exports.FormatColumnFormatWizardSection = FormatColumnFormatWizardSection;
@@ -5,8 +5,12 @@ const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
6
  const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
7
7
  const EntityRulesEditor_1 = require("../../Components/EntityRulesEditor");
8
+ const HelpBlock_1 = tslib_1.__importDefault(require("../../../components/HelpBlock"));
8
9
  function FormatColumnRuleWizardSection(props) {
9
10
  const { data, api, moduleInfo } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
11
+ if (data.Target && data.Target === 'columnHeader') {
12
+ return (React.createElement(HelpBlock_1.default, { margin: 3 }, "Conditions cannot be applied if the Target of the Format Column is Column Header"));
13
+ }
10
14
  return (React.createElement(EntityRulesEditor_1.EntityRulesEditor, { module: moduleInfo.ModuleName, defaultPredicateId: props.defaultPredicateId,
11
15
  // TODO see what is this
12
16
  predicateDefs: api.formatColumnApi.internalApi.getFormatColumnDefsForScope(data.Scope), getPredicateDefsForColId: (colId) => api.formatColumnApi.internalApi.getFormatColumnDefsForScope({ ColumnIds: [colId] }), showNoRule: true, showBoolean: true, showAggregation: false, showObservable: false, showQueryBuilder: true, showPredicate: !api.columnScopeApi.scopeIsAll(data.Scope), data: data, onChange: (formatColumn) => props.onChange(formatColumn), descriptions: {
@@ -6,11 +6,7 @@ const React = tslib_1.__importStar(require("react"));
6
6
  const NewScopeComponent_1 = require("../../Components/NewScopeComponent");
7
7
  const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
8
8
  const constants_1 = require("./constants");
9
- const Tabs_1 = require("../../../components/Tabs");
10
9
  const rebass_1 = require("rebass");
11
- const FormLayout_1 = tslib_1.__importStar(require("../../../components/FormLayout"));
12
- const CheckBox_1 = require("../../../components/CheckBox");
13
- const HelpBlock_1 = tslib_1.__importDefault(require("../../../components/HelpBlock"));
14
10
  const renderFormatColumnScopeSummary = (data) => {
15
11
  return (0, NewScopeComponent_1.renderScopeSummary)(data.Scope, {
16
12
  scopeWholeRow: 'Matching rows will be formatted',
@@ -21,42 +17,7 @@ const renderFormatColumnScopeSummary = (data) => {
21
17
  exports.renderFormatColumnScopeSummary = renderFormatColumnScopeSummary;
22
18
  const FormatColumnScopeWizardSection = (props) => {
23
19
  const { data, api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
24
- const currentTargets = data.Target?.length ? data.Target : ['cell'];
25
- const handleTargetChange = (target, checked) => {
26
- let newTargets;
27
- if (checked) {
28
- // Add the target if it's not already included
29
- newTargets = [...new Set([...currentTargets, target])];
30
- }
31
- else {
32
- // Remove the target
33
- newTargets = currentTargets.filter((t) => t !== target);
34
- }
35
- // If all checkboxes are unchecked, default to ['cell']
36
- if (newTargets.length === 0) {
37
- newTargets = ['cell'];
38
- }
39
- // Update the formatColumn object
40
- props.onChange({
41
- ...data,
42
- Target: newTargets,
43
- });
44
- };
45
20
  return (React.createElement(React.Fragment, null,
46
- React.createElement(Tabs_1.Tabs, { mb: 3 },
47
- React.createElement(Tabs_1.Tabs.Tab, null, "Target"),
48
- React.createElement(Tabs_1.Tabs.Content, null,
49
- React.createElement(rebass_1.Flex, { flexDirection: "column" },
50
- React.createElement(FormLayout_1.default, { width: "100%" },
51
- React.createElement(FormLayout_1.FormRow, { label: "Target Column Elements: ", tooltip: "The visual elements where formatting will be applied" },
52
- React.createElement(CheckBox_1.CheckBox, { "data-name": "target-cell", checked: currentTargets.includes('cell'), onChange: (target) => {
53
- handleTargetChange('cell', target);
54
- }, ml: 2 }, "Data Cells"),
55
- React.createElement(CheckBox_1.CheckBox, { "data-name": "target-column-header", checked: currentTargets.includes('columnHeader'), onChange: (target) => {
56
- handleTargetChange('columnHeader', target);
57
- }, ml: 4 }, "Column Headers"))),
58
- React.createElement(HelpBlock_1.default, { fontSize: 2 }, 'At least one target element must be selected (defaults to Data Cells).' +
59
- ' Conditional formatting rules only apply to Data Cells, not to Headers.')))),
60
21
  React.createElement(rebass_1.Box, { "data-name": 'scope-heading', style: {
61
22
  borderRadius: `var(--ab__border-radius)`,
62
23
  }, padding: 2, backgroundColor: `var(--ab-color-primarylight)` }, "Scope"),
@@ -99,18 +99,19 @@ const FormatColumnSettingsWizardSection = (props) => {
99
99
  React.createElement(Toggle_1.Toggle, { icon: "align-right", pressed: data.CellAlignment === 'Right', onPressedChange: (pressed) => pressed
100
100
  ? onCellAlignmentSelectChanged('Right')
101
101
  : onCellAlignmentSelectChanged(null) }))),
102
- React.createElement(FormLayout_1.FormRow, { label: "Exclude Data Rows:" },
103
- React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
104
- React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-data-rows-checkbox", checked: data.RowScope?.ExcludeDataRows, onChange: onExcludeDataRowsChanged, mr: 2 }))),
105
- React.createElement(FormLayout_1.FormRow, { label: "Exclude Group Rows:" },
106
- React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
107
- React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-grouped-rows-checkbox", checked: data.RowScope?.ExcludeGroupRows, onChange: onExcludeGroupedRowsChanged, mr: 2 }))),
108
- React.createElement(FormLayout_1.FormRow, { label: "Exclude Row Summaries:" },
109
- React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
110
- React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-summary-rows-checkbox", checked: data.RowScope?.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged, mr: 2 }))),
111
- React.createElement(FormLayout_1.FormRow, { label: "Exclude Total Rows:" },
112
- React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
113
- React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-total-rows-checkbox", checked: data.RowScope?.ExcludeTotalRows, onChange: onExcludeTotalRowsChanged, mr: 2 }))),
102
+ data.Target === 'cell' && (React.createElement(React.Fragment, null,
103
+ React.createElement(FormLayout_1.FormRow, { label: "Exclude Data Rows:" },
104
+ React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
105
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-data-rows-checkbox", checked: data.RowScope?.ExcludeDataRows, onChange: onExcludeDataRowsChanged, mr: 2 }))),
106
+ React.createElement(FormLayout_1.FormRow, { label: "Exclude Group Rows:" },
107
+ React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
108
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-grouped-rows-checkbox", checked: data.RowScope?.ExcludeGroupRows, onChange: onExcludeGroupedRowsChanged, mr: 2 }))),
109
+ React.createElement(FormLayout_1.FormRow, { label: "Exclude Row Summaries:" },
110
+ React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
111
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-summary-rows-checkbox", checked: data.RowScope?.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged, mr: 2 }))),
112
+ React.createElement(FormLayout_1.FormRow, { label: "Exclude Total Rows:" },
113
+ React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
114
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-total-rows-checkbox", checked: data.RowScope?.ExcludeTotalRows, onChange: onExcludeTotalRowsChanged, mr: 2 }))))),
114
115
  React.createElement(FormLayout_1.FormRow, { label: "Apply on Column Group:" },
115
116
  React.createElement(Radio_1.RadioGroup, { value: data.ColumnGroupScope || 'Both', name: "columnGroupScope", orientation: "horizontal", onRadioChange: (columnGroupScope) => {
116
117
  props.onChange({
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { FormatColumn } from '../../../AdaptableState/FormatColumnState';
3
+ type FormatColumnScopeWizardSectionProps = {
4
+ onChange: (data: FormatColumn) => void;
5
+ };
6
+ export declare const renderFormatColumnTargetSummary: (data: FormatColumn) => "Column Header" | "Column Cells";
7
+ export declare const FormatColumnTargetWizardSection: (props: FormatColumnScopeWizardSectionProps) => React.JSX.Element;
8
+ export {};
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormatColumnTargetWizardSection = exports.renderFormatColumnTargetSummary = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const React = tslib_1.__importStar(require("react"));
6
+ const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
7
+ const Tabs_1 = require("../../../components/Tabs");
8
+ const rebass_1 = require("rebass");
9
+ const TypeRadio_1 = require("../../Wizard/TypeRadio");
10
+ const renderFormatColumnTargetSummary = (data) => {
11
+ if (!data.Target || data.Target === 'cell') {
12
+ return 'Column Cells';
13
+ }
14
+ if (data.Target === 'columnHeader') {
15
+ return 'Column Header';
16
+ }
17
+ };
18
+ exports.renderFormatColumnTargetSummary = renderFormatColumnTargetSummary;
19
+ const FormatColumnTargetWizardSection = (props) => {
20
+ const { data, api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
21
+ const currentTarget = data.Target ? data.Target : 'cell';
22
+ const handleTargetChange = (target) => {
23
+ // Update the formatColumn object
24
+ props.onChange({
25
+ ...data,
26
+ Target: target,
27
+ });
28
+ };
29
+ return (React.createElement(React.Fragment, null,
30
+ React.createElement(Tabs_1.Tabs, { mb: 3 },
31
+ React.createElement(Tabs_1.Tabs.Tab, null, "Target"),
32
+ React.createElement(Tabs_1.Tabs.Content, null,
33
+ React.createElement(rebass_1.Flex, { flexDirection: "column" },
34
+ React.createElement(TypeRadio_1.TypeRadio, { "data-name": "target-column-cell", text: 'Column Cells', description: "Column Cells are styled and formatted", checked: currentTarget === 'cell', onClick: () => handleTargetChange('cell') }),
35
+ React.createElement(TypeRadio_1.TypeRadio, { "data-name": "target-column-header", text: 'Column Header', description: "The Column Header is styled (Note: Conditions are not available for Column Headers)", checked: currentTarget === 'columnHeader', onClick: () => handleTargetChange('columnHeader') }))))));
36
+ };
37
+ exports.FormatColumnTargetWizardSection = FormatColumnTargetWizardSection;
@@ -21,9 +21,14 @@ const Utilities_1 = require("../../Components/EntityRulesEditor/Utilities");
21
21
  const FormatColumnRuleWizardSection_1 = require("./FormatColumnRuleWizardSection");
22
22
  const constants_1 = require("./constants");
23
23
  const ObjectExtensions_1 = require("../../../Utilities/Extensions/ObjectExtensions");
24
- const adjustDisplayFormat = (formatColumn, api) => {
25
- formatColumn = { ...formatColumn };
26
- const formatDataType = (0, FormatColumnFormatWizardSection_1.getFormatDisplayTypeForScope)(formatColumn.Scope, api);
24
+ const FormatColumnTargetWizardSection_1 = require("./FormatColumnTargetWizardSection");
25
+ const adjustDisplayFormat = (fc, api) => {
26
+ const formatColumn = { ...fc };
27
+ let formatDataType = (0, FormatColumnFormatWizardSection_1.getFormatDisplayTypeForScope)(formatColumn.Scope, api);
28
+ if (formatColumn.Target === 'columnHeader') {
29
+ // Column Headers are always text
30
+ formatDataType = 'text';
31
+ }
27
32
  if (!formatDataType && formatColumn.DisplayFormat) {
28
33
  formatColumn.DisplayFormat = undefined;
29
34
  }
@@ -92,7 +97,7 @@ function FormatColumnWizard(props) {
92
97
  };
93
98
  return (React.createElement(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: formatColumn, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
94
99
  {
95
- title: 'Scope & Target',
100
+ title: 'Scope',
96
101
  details: 'Select which Columns will be formatted',
97
102
  isValid: NewScopeComponent_1.isScopeValid,
98
103
  renderSummary: FormatColumnScopeWizardSection_1.renderFormatColumnScopeSummary,
@@ -101,6 +106,15 @@ function FormatColumnWizard(props) {
101
106
  React.createElement(FormatColumnScopeWizardSection_1.FormatColumnScopeWizardSection, { onChange: setFormatColumn })));
102
107
  },
103
108
  },
109
+ {
110
+ title: 'Target',
111
+ details: 'Select which Columns Elements will be formatted',
112
+ renderSummary: FormatColumnTargetWizardSection_1.renderFormatColumnTargetSummary,
113
+ render: () => {
114
+ return (React.createElement(rebass_1.Flex, { flexDirection: "column", style: { height: '100%' }, padding: 2 },
115
+ React.createElement(FormatColumnTargetWizardSection_1.FormatColumnTargetWizardSection, { onChange: setFormatColumn })));
116
+ },
117
+ },
104
118
  {
105
119
  isValid: (abObject, api, context) => {
106
120
  if (!abObject.Rule) {
@@ -17,7 +17,7 @@ const AdaptableObjectsSummary = () => {
17
17
  const modules = adaptable.ModuleService.getModuleCollection();
18
18
  const baseClassName = 'ab-AdaptableObjectsSummary';
19
19
  return (React.createElement(rebass_1.Box, { className: baseClassName }, [...modules].map(([moduleName, module]) => {
20
- if (!module.isModuleAvailable()) {
20
+ if (!module.isModuleVisible()) {
21
21
  return null;
22
22
  }
23
23
  const items = module?.toViewAll?.();
@@ -14,9 +14,9 @@ const AdaptableObjectRow_1 = require("../../Components/AdaptableObjectRow");
14
14
  const PopupPanel_1 = require("../../Components/Popups/AdaptablePopup/PopupPanel");
15
15
  const AdaptableObjectsSummary_1 = require("./AdaptableObjectsSummary");
16
16
  const EnvVars_1 = require("../../../EnvVars");
17
- const agGridModules_1 = require("../../../agGrid/agGridModules");
17
+ const AgGridModulesAdapter_1 = require("../../../agGrid/AgGridModulesAdapter");
18
18
  const adaptableVersion = EnvVars_1.ADAPTABLE_VERSION;
19
- const agGridVersion = agGridModules_1.AG_GRID_VERSION;
19
+ const agGridVersion = AgGridModulesAdapter_1.AG_GRID_VERSION;
20
20
  const GridInfoPopup = (props) => {
21
21
  const api = props.api;
22
22
  const CreateGridSummaries = (colItems) => {
@@ -32,7 +32,7 @@ const TransposedPopup = (props) => {
32
32
  // customisable
33
33
  return visibleColumns
34
34
  ? adaptable.api.columnApi.getVisibleColumns()
35
- : adaptable.api.columnApi.getColumns();
35
+ : adaptable.api.columnApi.getUIAvailableColumns();
36
36
  }, []);
37
37
  /**
38
38
  * This is used as first field
@@ -162,7 +162,7 @@ const TransposedPopup = (props) => {
162
162
  rowData: transposedRowsAndColumns.transposedRows,
163
163
  sideBar: false,
164
164
  };
165
- const modules = adaptable.getAgGridRegisteredModules();
165
+ const modules = adaptable.agGridModulesAdapter.getAgGridRegisteredModules();
166
166
  AdaptableAgGrid_1.AdaptableAgGrid._initInternal({
167
167
  variant: 'vanilla',
168
168
  adaptableOptions,
@@ -49,7 +49,7 @@ const ColumnsSectionSummary = () => {
49
49
  }
50
50
  const friendlyName = adaptable.api.columnApi.getFriendlyNameForColumnId(columnId, layout);
51
51
  const header = layout.ColumnHeaders?.[columnId] ?? '';
52
- const columnWidth = layout.ColumnWidths?.[columnId];
52
+ const columnWidth = layout.ColumnSizing?.[columnId]?.Width;
53
53
  const columnPinning = layout.ColumnPinning?.[columnId];
54
54
  let agg = (layout.TableAggregationColumns || []).find((agg) => agg.ColumnId === columnId)?.AggFunc;
55
55
  agg = typeof agg === 'object' ? agg.type : agg;
@@ -161,7 +161,11 @@ const ColumnRow = (props) => {
161
161
  ];
162
162
  const { column } = props;
163
163
  // width
164
- const columnWidth = props.layout.ColumnWidths?.[column.columnId];
164
+ const columnWidth = props.layout.ColumnSizing?.[column.columnId]?.Width;
165
+ const columnFlex = props.layout.ColumnSizing?.[column.columnId]?.Flex;
166
+ const minWidth = props.layout.ColumnSizing?.[column.columnId]?.MinWidth;
167
+ const maxWidth = props.layout.ColumnSizing?.[column.columnId]?.MaxWidth;
168
+ const resizable = column.resizable !== false;
165
169
  const visible = (!(0, isPivotLayout_1.isPivotLayout)(props.layout) &&
166
170
  props.layout.TableColumns.includes(column.columnId) &&
167
171
  props.layout.ColumnVisibility?.[column.columnId] !== false) ||
@@ -191,11 +195,29 @@ const ColumnRow = (props) => {
191
195
  props.onColumnNameChange(props.column.columnId, event.target.value);
192
196
  }, value: customHeader })),
193
197
  React.createElement(FormLayout_1.FormRow, { label: "Width" },
194
- React.createElement(Input_1.default, { "data-name": "column-width", className: "ab-Layout-Wizard__ColumnRow__Input", type: "number", placeholder: "Column width", disabled: !props.column.resizable, onChange: (event) => {
198
+ React.createElement(Input_1.default, { "data-name": "column-width", className: "ab-Layout-Wizard__ColumnRow__Input", type: "number", placeholder: "Column width", disabled: resizable === false, onChange: (event) => {
195
199
  let value = parseFloat(event.target.value);
196
200
  value = typeof value === 'number' && !isNaN(value) ? value : void 0;
197
201
  props.onColumnWidthChange(props.column.columnId, value);
198
- }, value: columnWidth })),
202
+ }, value: columnWidth ?? '' })),
203
+ React.createElement(FormLayout_1.FormRow, { label: "Flex" },
204
+ React.createElement(Input_1.default, { "data-name": "column-flex", className: "ab-Layout-Wizard__ColumnRow__Input", type: "number", placeholder: "Column flex", disabled: resizable === false, onChange: (event) => {
205
+ let value = parseFloat(event.target.value);
206
+ value = typeof value === 'number' && !isNaN(value) ? value : void 0;
207
+ props.onColumnFlexChange(props.column.columnId, value);
208
+ }, value: columnFlex ?? '' })),
209
+ React.createElement(FormLayout_1.FormRow, { label: "Min Width" },
210
+ React.createElement(Input_1.default, { "data-name": "column-min-width", className: "ab-Layout-Wizard__ColumnRow__Input", type: "number", placeholder: "Column min width", disabled: resizable === false, onChange: (event) => {
211
+ let value = parseFloat(event.target.value);
212
+ value = typeof value === 'number' && !isNaN(value) ? value : void 0;
213
+ props.onColumnMinWidthChange(props.column.columnId, value);
214
+ }, value: minWidth ?? '' })),
215
+ React.createElement(FormLayout_1.FormRow, { label: "Max Width" },
216
+ React.createElement(Input_1.default, { "data-name": "column-max-width", className: "ab-Layout-Wizard__ColumnRow__Input", type: "number", placeholder: "Column max width", disabled: resizable === false, onChange: (event) => {
217
+ let value = parseFloat(event.target.value);
218
+ value = typeof value === 'number' && !isNaN(value) ? value : void 0;
219
+ props.onColumnMaxWidthChange(props.column.columnId, value);
220
+ }, value: maxWidth ?? '' })),
199
221
  React.createElement(FormLayout_1.FormRow, { label: "Pinning" },
200
222
  React.createElement(DropdownButton_1.default, { "data-name": "column-pinning", columns: ['label'], items: pinningOptions }, pinningOptions.find((option) => option.value === columnPinning).label))))))));
201
223
  };
@@ -350,12 +372,45 @@ const ColumnsSection = (props) => {
350
372
  });
351
373
  };
352
374
  const handleColumnWidthChange = (columnId, width) => {
375
+ const ColumnSizing = { ...layout.ColumnSizing };
376
+ const colSizingForCol = { ...ColumnSizing[columnId] };
377
+ delete colSizingForCol.Flex;
378
+ colSizingForCol.Width = width;
379
+ ColumnSizing[columnId] = colSizingForCol;
353
380
  onChange({
354
381
  ...layout,
355
- ColumnWidths: {
356
- ...layout.ColumnWidths,
357
- [columnId]: width,
358
- },
382
+ ColumnSizing,
383
+ });
384
+ };
385
+ const handleColumnFlexChange = (columnId, flex) => {
386
+ const ColumnSizing = { ...layout.ColumnSizing };
387
+ const colSizingForCol = { ...ColumnSizing[columnId] };
388
+ delete colSizingForCol.Width;
389
+ colSizingForCol.Flex = flex;
390
+ ColumnSizing[columnId] = colSizingForCol;
391
+ onChange({
392
+ ...layout,
393
+ ColumnSizing,
394
+ });
395
+ };
396
+ const handleColumnMinWidthChange = (columnId, minWidth) => {
397
+ const ColumnSizing = { ...layout.ColumnSizing };
398
+ const colSizingForCol = { ...ColumnSizing[columnId] };
399
+ colSizingForCol.MinWidth = minWidth;
400
+ ColumnSizing[columnId] = colSizingForCol;
401
+ onChange({
402
+ ...layout,
403
+ ColumnSizing,
404
+ });
405
+ };
406
+ const handleColumnMaxWidthChange = (columnId, maxWidth) => {
407
+ const ColumnSizing = { ...layout.ColumnSizing };
408
+ const colSizingForCol = { ...ColumnSizing[columnId] };
409
+ colSizingForCol.MaxWidth = maxWidth;
410
+ ColumnSizing[columnId] = colSizingForCol;
411
+ onChange({
412
+ ...layout,
413
+ ColumnSizing,
359
414
  });
360
415
  };
361
416
  const visibleIds = layout.TableColumns.filter((colId) => {
@@ -387,7 +442,7 @@ const ColumnsSection = (props) => {
387
442
  React.createElement(ReorderDraggable_1.ReorderDraggable, { toIdentifier: (option) => `${option.columnId}`, isOptionDraggable: (option) => {
388
443
  return option.moveable;
389
444
  }, order: currentOrder, renderOption: (option) => {
390
- return (React.createElement(ColumnRow, { onColumnNameChange: handleColumnNameChange, onColumnWidthChange: handleColumnWidthChange, onColumnVisibilityChange: handleColumnVisibilityChange, onPinChange: handlePinChange, layout: layout, column: option }));
445
+ return (React.createElement(ColumnRow, { onColumnNameChange: handleColumnNameChange, onColumnWidthChange: handleColumnWidthChange, onColumnFlexChange: handleColumnFlexChange, onColumnMinWidthChange: handleColumnMinWidthChange, onColumnMaxWidthChange: handleColumnMaxWidthChange, onColumnVisibilityChange: handleColumnVisibilityChange, onPinChange: handlePinChange, layout: layout, column: option }));
391
446
  }, onChange: handleColumnsChange }),
392
447
  (0, ValueSelector_1.renderSelectionSection)({
393
448
  options: visibleIds,
@@ -333,30 +333,30 @@ const PivotAggregationsSection = (props) => {
333
333
  label: StringExtensions_1.default.CamelCaseToHumanText(position),
334
334
  value: position,
335
335
  };
336
- }), placeholder: "Off", value: layout.GrandTotalRow, onChange: (value) => {
336
+ }), placeholder: "[none]", value: layout.GrandTotalRow, onChange: (value) => {
337
337
  props.onChange({
338
338
  ...layout,
339
339
  GrandTotalRow: value,
340
340
  });
341
341
  }, isClearable: true })),
342
342
  React.createElement(FormLayout_1.FormRow, { label: 'Pivot Grand Total' },
343
- React.createElement(Select_1.Select, { style: { width: 120 }, options: ['before', 'after'].map((position) => {
343
+ React.createElement(Select_1.Select, { style: { width: 160 }, options: ['before', 'after'].map((position) => {
344
344
  return {
345
345
  label: StringExtensions_1.default.CapitaliseFirstLetter(position),
346
346
  value: position,
347
347
  };
348
- }), placeholder: "Off", value: layout.PivotGrandTotal, onChange: (value) => {
348
+ }), placeholder: "[none]", value: layout.PivotGrandTotal, onChange: (value) => {
349
349
  props.onChange({
350
350
  ...layout,
351
351
  PivotGrandTotal: value,
352
352
  });
353
353
  }, isClearable: true })),
354
- React.createElement(FormLayout_1.FormRow, { label: 'Pivot Column Total' }, isPivotColumnTotalEnabled === true ? (React.createElement(Select_1.Select, { style: { width: 120 }, options: ['before', 'after'].map((position) => {
354
+ React.createElement(FormLayout_1.FormRow, { label: 'Pivot Column Total' }, isPivotColumnTotalEnabled === true ? (React.createElement(Select_1.Select, { style: { width: 160 }, options: ['before', 'after'].map((position) => {
355
355
  return {
356
356
  label: StringExtensions_1.default.CapitaliseFirstLetter(position),
357
357
  value: position,
358
358
  };
359
- }), placeholder: "Off", value: layout.PivotColumnTotal, onChange: (value) => {
359
+ }), placeholder: "[none]", value: layout.PivotColumnTotal, onChange: (value) => {
360
360
  props.onChange({
361
361
  ...layout,
362
362
  PivotColumnTotal: value,
@@ -22,10 +22,7 @@ const AdaptableStatusBar = (props) => {
22
22
  const allMenuItems = (0, react_redux_1.useSelector)((state) => state?.Internal?.SettingsPanelModuleEntries);
23
23
  return (React.createElement(rebass_1.Flex, { className: "ab-StatusBar-Panel", "data-id": props.context.Key }, statusSubPanels?.StatusBarPanels?.map((subPanel) => {
24
24
  const module = adaptable.ModuleService.getModuleById(subPanel);
25
- if (!module) {
26
- return React.createElement(React.Fragment, { key: subPanel });
27
- }
28
- if (!module.isModuleAvailable()) {
25
+ if (!module?.isModuleVisible()) {
29
26
  return React.createElement(React.Fragment, { key: subPanel });
30
27
  }
31
28
  /**
@@ -31,7 +31,7 @@ const StatusBarPopup = (props) => {
31
31
  }, [statusPanels]);
32
32
  const availableItems = Types_1.ALL_STATUS_SUB_PANELS.filter((panel) => {
33
33
  const module = adaptable.ModuleService.getModuleById(panel);
34
- return module && module.isModuleAvailable();
34
+ return module?.isModuleVisible();
35
35
  }).map((panel) => {
36
36
  const module = adaptable.ModuleService.getModuleById(panel);
37
37
  return { Id: panel, Title: module.moduleInfo.FriendlyName };
@@ -27,7 +27,7 @@ const ThemeSelector = (props) => {
27
27
  label: theme.Description,
28
28
  };
29
29
  });
30
- return (React.createElement(Select_1.Select, { "aria-label": "Select Theme", "data-name": "select-theme-dropdown", searchable: false, options: optionThemes, value: currentTheme, disabled: disabled, size: props.size, onChange: (themeName) => {
30
+ return (React.createElement(Select_1.Select, { "aria-label": "Select Theme", "data-name": "select-theme-dropdown", options: optionThemes, value: currentTheme, disabled: disabled, size: props.size, onChange: (themeName) => {
31
31
  dispatch(ThemeRedux.ThemeSelect(themeName));
32
32
  } }));
33
33
  };
@@ -21,7 +21,7 @@ import { Fdc3Service } from '../Utilities/Services/Fdc3Service';
21
21
  import { AnnotationsService } from '../Utilities/Services/AnnotationsService';
22
22
  import { IModuleCollection } from '../Strategy/Interface/IModule';
23
23
  import { AgGridMenuAdapter } from './AgGridMenuAdapter';
24
- import { AdaptableColumn, AdaptableTheme, ChartDefinition, ColumnSort, DataUpdateConfig, GridCell, Layout, SelectedCellInfo, SelectedRowInfo } from '../types';
24
+ import { AdaptableColumn, AdaptableTheme, ChartDefinition, ColumnSort, DataUpdateConfig, GridCell, InFilterValue, Layout, SelectedCellInfo, SelectedRowInfo } from '../types';
25
25
  import { RenderReactRootFn } from '../renderReactRoot';
26
26
  import { AgGridOptionsService } from './AgGridOptionsService';
27
27
  import { AgGridColumnAdapter } from './AgGridColumnAdapter';
@@ -31,6 +31,8 @@ import { FlashingCellService } from '../Utilities/Services/FlashingCellService';
31
31
  import { AgGridExportAdapter } from './AgGridExportAdapter';
32
32
  import { PivotLayoutModel, TableLayoutModel } from '../layout-manager/src/LayoutManagerModel';
33
33
  import { AgGridThemeAdapter } from './AgGridThemeAdapter';
34
+ import { AgGridModulesAdapter } from './AgGridModulesAdapter';
35
+ import { EditColumnValueInfo } from '../AdaptableOptions/EditOptions';
34
36
  export type AdaptableLifecycleState = 'initial' | 'preprocessOptions' | 'initAdaptableState' | 'setupAgGrid' | 'initAgGrid' | 'agGridReady' | 'available' | 'ready' | 'preDestroyed';
35
37
  type RenderAgGridFrameworkComponentResult = false | GridApi;
36
38
  interface AdaptableInitInternalConfig<TData = any> {
@@ -73,6 +75,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
73
75
  agGridMenuAdapter: AgGridMenuAdapter;
74
76
  agGridExportAdapter: AgGridExportAdapter;
75
77
  agGridThemeAdapter: AgGridThemeAdapter;
78
+ agGridModulesAdapter: AgGridModulesAdapter;
76
79
  private DANGER_USE_GETTER_adaptableContainerElement;
77
80
  private DANGER_USE_GETTER_agGridContainerElement;
78
81
  api: AdaptableApi;
@@ -146,7 +149,9 @@ export declare class AdaptableAgGrid implements IAdaptable {
146
149
  private normaliseToolPanelState;
147
150
  private getCurrentLayoutModel;
148
151
  silentUpdateCurrentLayoutModel(layoutModel?: TableLayoutModel | PivotLayoutModel): void;
149
- applyFiltering(): void;
152
+ applyFiltering(config?: {
153
+ updateColumnFilterModel?: boolean;
154
+ }): void;
150
155
  showQuickFilter(): void;
151
156
  hideQuickFilter(): void;
152
157
  private normalizeAdaptableOptions;
@@ -156,7 +161,6 @@ export declare class AdaptableAgGrid implements IAdaptable {
156
161
  */
157
162
  private initializeAgGrid;
158
163
  useRowNodeLookUp(): boolean;
159
- getAgGridRegisteredModules(): Module[];
160
164
  getAgGridContainerElement(): HTMLElement | null;
161
165
  getAdaptableContainerElement(): HTMLElement;
162
166
  refreshSelectedCellsState(): SelectedCellInfo | undefined;
@@ -181,6 +185,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
181
185
  */
182
186
  private temporaryAdaptableStateUpdates;
183
187
  private validatePrimaryKey;
188
+ isInPivotMode(): boolean;
184
189
  private deriveAdaptableColumnStateFromAgGrid;
185
190
  private checkShouldClearExistingFiltersOrSearches;
186
191
  getGridCellFromRowNode(rowNode: IRowNode, columnId: string): GridCell | undefined;
@@ -252,14 +257,13 @@ export declare class AdaptableAgGrid implements IAdaptable {
252
257
  getDistinctFilterValuesForColumn(options: {
253
258
  column: AdaptableColumn;
254
259
  currentSearchValue: string;
255
- }): Promise<GridCell[]>;
260
+ }): Promise<InFilterValue[]>;
256
261
  getDistinctEditValuesForColumn(options: {
257
262
  column: AdaptableColumn;
258
263
  currentSearchValue: string;
259
264
  gridCell?: GridCell;
260
- }): Promise<GridCell[]>;
261
- getDistinctGridCellsForColumn(column: AdaptableColumn): GridCellWithCount[];
262
- private getGridCellsForCustomColumnValues;
265
+ }): Promise<EditColumnValueInfo[]>;
266
+ getDistinctGridCellsForColumn(column: AdaptableColumn, rowNodes?: IRowNode[]): GridCellWithCount[];
263
267
  private addDistinctColumnValue;
264
268
  private getUniqueGridCells;
265
269
  getGridCellsForColumn(columnId: string, onlyVisibleRows?: boolean): GridCell[] | undefined;