@adaptabletools/adaptable 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 +2 -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 +23 -4
  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 +7 -7
  263. package/src/Redux/ActionsReducers/StyledColumnRedux.d.ts +7 -0
  264. package/src/Redux/ActionsReducers/StyledColumnRedux.js +13 -0
  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 +12 -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 +1 -0
  321. package/src/Utilities/Extensions/ArrayExtensions.d.ts +15 -2
  322. package/src/Utilities/Extensions/ArrayExtensions.js +62 -13
  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 +19 -7
  328. package/src/Utilities/getScopeViewItems.js +5 -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 +6 -6
  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 +1 -40
  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 +31 -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 +1 -1
  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 +61 -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 +48 -0
  386. package/src/agGrid/AgGridFloatingFilterAdapter.d.ts +2 -0
  387. package/src/agGrid/{FloatingFilterWrapper.js → AgGridFloatingFilterAdapter.js} +24 -35
  388. package/src/agGrid/AgGridModulesAdapter.d.ts +15 -0
  389. package/src/agGrid/AgGridModulesAdapter.js +66 -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 +2 -2
  396. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +2 -2
  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 +116 -24
  402. package/src/components/icons/DefaultIcon.d.ts +0 -1
  403. package/src/components/icons/DefaultIcon.js +0 -6
  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 +24 -0
  417. package/src/types.d.ts +8 -9
  418. package/tsconfig.esm.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 -131
  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 -15
  425. package/src/agGrid/getAgGridFilterNotifyModelFn.d.ts +0 -2
  426. package/src/agGrid/getAgGridFilterNotifyModelFn.js +0 -16
  427. /package/src/AdaptableState/Common/{ExtendedLayoutInfo.js → ExtendedLayout.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { FormatColumn, FormatColumnState } from '../AdaptableState/FormatColumnState';
2
- import { AdaptableColumn, AdaptableFormat, AdaptableObjectLookupCriteria } from '../types';
2
+ import { AdaptableColumn, AdaptableFormat, AdaptableObjectLookupCriteria, FormatColumnConfig } from '../types';
3
3
  /**
4
4
  * Provides run-time access to the Format Column Module and associated state
5
5
  */
@@ -12,34 +12,28 @@ export interface FormatColumnApi {
12
12
  * Retrieves all Format Columns in Adaptable State
13
13
  * @returns format columns
14
14
  */
15
- getFormatColumns(config?: {
16
- includeLayoutNotAssociatedObjects?: boolean;
17
- }): FormatColumn[];
15
+ getFormatColumns(config?: FormatColumnConfig): FormatColumn[];
18
16
  /**
19
17
  * Retrieves Format Column by the technical ID (from `FormatColumnState`)
20
18
  * @param id Format Column id
21
19
  * @returns format column
22
20
  */
23
- getFormatColumnByUuId(id: FormatColumn['Uuid']): FormatColumn;
21
+ getFormatColumnByUuId(id: FormatColumn['Uuid'], config?: FormatColumnConfig): FormatColumn;
24
22
  /**
25
23
  * Retrieves all active (not-suspended) Format Columns in Adaptable State
26
24
  * @returns format columns
27
25
  */
28
- getActiveFormatColumns(config?: {
29
- includeLayoutNotAssociatedObjects?: boolean;
30
- }): FormatColumn[];
26
+ getActiveFormatColumns(config?: FormatColumnConfig): FormatColumn[];
31
27
  /**
32
28
  * Retrieves the first Format Column's Adaptable Format for a given Column
33
29
  * @param column Column to check
34
30
  */
35
- getDisplayFormatForColumn(column: AdaptableColumn): AdaptableFormat | undefined;
31
+ getDisplayFormatForColumn(column: AdaptableColumn, config?: FormatColumnConfig): AdaptableFormat | undefined;
36
32
  /**
37
33
  * Retrieves all suspended Format Columns in Adaptable State
38
34
  * @returns format columns
39
35
  */
40
- getSuspendedFormatColumns(config?: {
41
- includeLayoutNotAssociatedObjects?: boolean;
42
- }): FormatColumn[];
36
+ getSuspendedFormatColumns(config?: FormatColumnConfig): FormatColumn[];
43
37
  /**
44
38
  * Adds a Format Column to Format Column State
45
39
  * @param formatColumn Format Column to Add
@@ -96,17 +90,13 @@ export interface FormatColumnApi {
96
90
  * @param column The Column for which to retrieve the Format Column
97
91
  * @returns format column
98
92
  */
99
- getFormatColumnsForColumn(column: AdaptableColumn, config?: {
100
- includeSuspended?: boolean;
101
- }): FormatColumn[];
93
+ getFormatColumnsForColumn(column: AdaptableColumn, config?: FormatColumnConfig): FormatColumn[];
102
94
  /**
103
95
  * Gets all FormatColumns which are defined for the column with the given columnId
104
96
  * @param columnId ColumnId for which to retrieve the Format Column
105
97
  * @returns format column
106
98
  */
107
- getFormatColumnsForColumnId(columnId: string, config?: {
108
- includeSuspended?: boolean;
109
- }): FormatColumn[];
99
+ getFormatColumnsForColumnId(columnId: string, config?: FormatColumnConfig): FormatColumn[];
110
100
  /**
111
101
  * Checks if a Format Column contains a Custom Display Formatter
112
102
  * @param formatColumn Format Column
@@ -1,4 +1,4 @@
1
- import { ApiBase, LayoutAssociatedObjectLoadConfig } from './ApiBase';
1
+ import { ApiBase } from './ApiBase';
2
2
  import { AlertApi } from '../AlertApi';
3
3
  import { AlertDefinition, AlertProperties, AlertState } from '../../AdaptableState/AlertState';
4
4
  import { AdaptableAlert } from '../../AdaptableState/Common/AdaptableAlert';
@@ -6,19 +6,16 @@ import { AdaptableMessageType } from '../../AdaptableState/Common/AdaptableMessa
6
6
  import { AdaptableObjectLookupCriteria } from '../../AdaptableState/Common/AdaptableObject';
7
7
  import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
8
8
  import { AlertInternalApi } from '../Internal/AlertInternalApi';
9
+ import { LayoutExtendedConfig } from '../../AdaptableState/Common/ExtendedLayout';
9
10
  export declare class AlertApiImpl extends ApiBase implements AlertApi {
10
11
  internalApi: AlertInternalApi;
11
12
  constructor(_adaptable: IAdaptable);
12
13
  getAlertState(): AlertState;
13
- getAlertDefinitions(config?: LayoutAssociatedObjectLoadConfig): AlertDefinition[];
14
- getSuspendedAlertDefinitions(config?: {
15
- includeLayoutNotAssociatedObjects?: boolean;
16
- }): AlertDefinition[];
17
- getActiveAlertDefinitions(config?: {
18
- includeLayoutNotAssociatedObjects?: boolean;
19
- }): AlertDefinition[];
14
+ getAlertDefinitions(config?: LayoutExtendedConfig): AlertDefinition[];
15
+ getSuspendedAlertDefinitions(config?: LayoutExtendedConfig): AlertDefinition[];
16
+ getActiveAlertDefinitions(config?: LayoutExtendedConfig): AlertDefinition[];
20
17
  deleteAlertDefinition(alertDefinition: AlertDefinition): void;
21
- getAlertDefinitionById(id: AlertDefinition['Uuid']): AlertDefinition;
18
+ getAlertDefinitionById(id: AlertDefinition['Uuid'], config?: LayoutExtendedConfig): AlertDefinition;
22
19
  addAlertDefinition(alertDefinition: AlertDefinition): AlertDefinition;
23
20
  displayAdaptableAlert(alertToShow: AdaptableAlert): Promise<void>;
24
21
  displayAdaptableAlertNotification(alert: AdaptableAlert): void;
@@ -16,7 +16,7 @@ export class AlertApiImpl extends ApiBase {
16
16
  return this.getAdaptableState().Alert;
17
17
  }
18
18
  getAlertDefinitions(config) {
19
- return (this.handleLayoutAssociatedObjects(this.getAlertState().AlertDefinitions, 'Alert', config) ??
19
+ return (this.handleLayoutExtensionObjects(this.getAlertState().AlertDefinitions, 'Alert', config) ??
20
20
  []);
21
21
  }
22
22
  getSuspendedAlertDefinitions(config) {
@@ -28,8 +28,8 @@ export class AlertApiImpl extends ApiBase {
28
28
  deleteAlertDefinition(alertDefinition) {
29
29
  this.dispatchAction(AlertRedux.AlertDefinitionDelete(alertDefinition));
30
30
  }
31
- getAlertDefinitionById(id) {
32
- return this.getAlertDefinitions().find((alert) => alert?.Uuid === id);
31
+ getAlertDefinitionById(id, config) {
32
+ return this.getAlertDefinitions(config).find((alert) => alert?.Uuid === id);
33
33
  }
34
34
  addAlertDefinition(alertDefinition) {
35
35
  this.addUidToAdaptableObject(alertDefinition);
@@ -189,9 +189,10 @@ export class AlertApiImpl extends ApiBase {
189
189
  });
190
190
  }
191
191
  findAlertDefinitions(criteria) {
192
- return this.getAdaptableInternalApi().findAdaptableObjectsByLookupCriteria(criteria, this.getAlertDefinitions({
193
- includeLayoutNotAssociatedObjects: true,
194
- }));
192
+ const config = {
193
+ includeLayoutNotExtendedObjects: true,
194
+ };
195
+ return this.getAdaptableInternalApi().findAdaptableObjectsByLookupCriteria(criteria, this.getAlertDefinitions(config));
195
196
  }
196
197
  getRelevantColumnIdsForAlertDefinition(alertDefinition) {
197
198
  // if there is an Expression defined, extract only the columns from there (in that case the Scope would be 'All' anyway)
@@ -8,7 +8,7 @@ import { AdaptableOptions } from '../../AdaptableOptions/AdaptableOptions';
8
8
  import { AdaptableApi } from '../AdaptableApi';
9
9
  import { GridApi as AgGridApi } from 'ag-grid-enterprise';
10
10
  import { ExportOptions } from '../../AdaptableOptions/ExportOptions';
11
- import { ActionColumnApi, ActionColumnOptions, AlertApi, AlertOptions, ApplicationApi, BulkUpdateApi, CalculatedColumnApi, CalendarApi, CalendarOptions, CellSummaryApi, CellSummaryOptions, ChartingApi, ChartingOptions, ColumnApi, FilterApi, ColumnOptions, CommentOptions, StateApi, ContainerOptions, CustomSortApi, CustomSortOptions, DashboardApi, DashboardOptions, DataChangeHistoryApi, DataChangeHistoryOptions, DataSetApi, DataSetOptions, EditOptions, EntitlementApi, EntitlementOptions, EventApi, ExportApi, ExpressionApi, ExpressionOptions, Fdc3Api, Fdc3Options, FlashingCellApi, FlashingCellOptions, FormatColumnApi, FormatColumnOptions, FreeTextColumnApi, GridApi, GridFilterApi, LayoutApi, LayoutAssociatedObject, LayoutOptions, NamedQueryApi, NoteOptions, NotificationsOptions, PluginsApi, PlusMinusApi, PredicateApi, PredicateOptions, QuickSearchApi, QuickSearchOptions, ScheduleApi, ColumnScopeApi, SettingsPanelApi, SettingsPanelOptions, ShortcutApi, SmartEditApi, StateOptions, StatusBarApi, StyledColumnApi, SystemStatusApi, TeamSharingApi, TeamSharingOptions, ThemeApi, ToolPanelApi, ToolPanelOptions, UserInterfaceApi, UserInterfaceOptions, ColumnMenuOptions, ContextMenuOptions, FilterOptions, ColumnFilterApi, OptionsApi } from '../../types';
11
+ import { ActionColumnApi, ActionColumnOptions, AlertApi, AlertOptions, ApplicationApi, BulkUpdateApi, CalculatedColumnApi, CalendarApi, CalendarOptions, CellSummaryApi, CellSummaryOptions, ChartingApi, ChartingOptions, ColumnApi, FilterApi, ColumnOptions, CommentOptions, StateApi, ContainerOptions, CustomSortApi, CustomSortOptions, DashboardApi, DashboardOptions, DataChangeHistoryApi, DataChangeHistoryOptions, DataSetApi, DataSetOptions, EditOptions, EntitlementApi, EntitlementOptions, EventApi, ExportApi, ExpressionApi, ExpressionOptions, Fdc3Api, Fdc3Options, FlashingCellApi, FlashingCellOptions, FormatColumnApi, FormatColumnOptions, FreeTextColumnApi, GridApi, GridFilterApi, LayoutApi, LayoutExtensionObject, LayoutOptions, NamedQueryApi, NoteOptions, NotificationsOptions, PluginsApi, PlusMinusApi, PredicateApi, PredicateOptions, QuickSearchApi, QuickSearchOptions, ScheduleApi, ColumnScopeApi, SettingsPanelApi, SettingsPanelOptions, ShortcutApi, SmartEditApi, StateOptions, StatusBarApi, StyledColumnApi, SystemStatusApi, TeamSharingApi, TeamSharingOptions, ThemeApi, ToolPanelApi, ToolPanelOptions, UserInterfaceApi, UserInterfaceOptions, ColumnMenuOptions, ContextMenuOptions, FilterOptions, ColumnFilterApi, OptionsApi, LayoutExtensionModule, LayoutExtendedConfig } from '../../types';
12
12
  import { ModuleParams } from '../../View/Components/SharedProps/ModuleViewPopupProps';
13
13
  import { AdaptableInternalApi } from '../Internal/AdaptableInternalApi';
14
14
  import { AdaptableLogger } from '../../agGrid/AdaptableLogger';
@@ -39,10 +39,7 @@ export declare abstract class ApiBase {
39
39
  */
40
40
  protected checkItemExists(item: any, name: string, type: string): boolean;
41
41
  protected checkArrayExists(array: any): boolean;
42
- protected handleLayoutAssociatedObjects<T extends LayoutAssociatedObject>(objectList: T[], module: AdaptableModule, config?: {
43
- includeLayoutNotAssociatedObjects?: boolean;
44
- associatedWithLayout?: string;
45
- }): T[];
42
+ protected handleLayoutExtensionObjects<T extends LayoutExtensionObject>(objectList: T[], module: LayoutExtensionModule, config?: LayoutExtendedConfig): T[];
46
43
  /**
47
44
  * Base api Helper method that dispatches a *Redux Action* to the Store
48
45
  * @param action the Redux Action to be dispatched
@@ -143,10 +140,3 @@ export declare abstract class ApiBase {
143
140
  protected getOptionsApi(): OptionsApi;
144
141
  destroy(): void;
145
142
  }
146
- /**
147
- * Configuration for API methods which load `LayoutAssociatedObject`
148
- */
149
- export interface LayoutAssociatedObjectLoadConfig {
150
- includeLayoutNotAssociatedObjects?: boolean;
151
- associatedWithLayout?: string;
152
- }
@@ -52,14 +52,14 @@ export class ApiBase {
52
52
  }
53
53
  return true;
54
54
  }
55
- handleLayoutAssociatedObjects(objectList = [], module, config) {
56
- if (config?.includeLayoutNotAssociatedObjects) {
55
+ handleLayoutExtensionObjects(objectList = [], module, config) {
56
+ if (config?.includeLayoutNotExtendedObjects) {
57
57
  return objectList;
58
58
  }
59
- const associatedLayout = config?.associatedWithLayout
60
- ? this.getLayoutApi().getLayoutByName(config.associatedWithLayout)
59
+ const extendedLayout = config?.extendedLayoutName
60
+ ? this.getLayoutApi().getLayoutByName(config.extendedLayoutName)
61
61
  : this.getLayoutApi().getCurrentLayout();
62
- return objectList.filter((objectItem) => this._adaptable.api.layoutApi.internalApi.isObjectAvailableInLayout(objectItem, module, associatedLayout));
62
+ return objectList.filter((objectItem) => this.getLayoutApi().internalApi.isObjectExtendedInLayout(objectItem, module, extendedLayout));
63
63
  }
64
64
  /**
65
65
  * Base api Helper method that dispatches a *Redux Action* to the Store
@@ -1,5 +1,5 @@
1
1
  import { ApiBase } from './ApiBase';
2
- import { AdaptableColumn, AdaptableColumnDataType } from '../../AdaptableState/Common/AdaptableColumn';
2
+ import { AdaptableColumn, AdaptableColumnDataType, AdaptableColumnSummary } from '../../AdaptableState/Common/AdaptableColumn';
3
3
  import { Layout } from '../../types';
4
4
  import { ColumnApi } from '../ColumnApi';
5
5
  import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
@@ -15,9 +15,9 @@ export declare class ColumnApiImpl extends ApiBase implements ColumnApi {
15
15
  internalApi: ColumnInternalApi;
16
16
  constructor(_adaptable: IAdaptable);
17
17
  getColumns(): AdaptableColumn[];
18
+ getUIAvailableColumns(): AdaptableColumn[];
18
19
  getSpecialColumns(): AdaptableColumn[];
19
20
  getNonSpecialColumns(): AdaptableColumn[];
20
- getUIAvailableColumns(): AdaptableColumn[];
21
21
  getVisibleColumns(): AdaptableColumn[];
22
22
  selectColumn(columnId: string): void;
23
23
  selectColumns(columnIds: string[]): void;
@@ -34,6 +34,7 @@ export declare class ColumnApiImpl extends ApiBase implements ColumnApi {
34
34
  isAutoRowGroupColumn(columnId: string): boolean;
35
35
  isAutoRowGroupColumnForSingle(columnId: string): boolean;
36
36
  isAutoRowGroupColumnForMulti(columnId: string): boolean;
37
+ isSpecialColumn(columnId: string): boolean;
37
38
  isCalculatedColumn(columnId: string): boolean;
38
39
  isFreeTextColumn(columnId: string): boolean;
39
40
  isActionColumn(columnId: string): boolean;
@@ -85,4 +86,6 @@ export declare class ColumnApiImpl extends ApiBase implements ColumnApi {
85
86
  getAGGridColDefForColumnId(columnId: string): ColDef | ColGroupDef;
86
87
  getAGGridColumnForColumnId(columnId: string): Column;
87
88
  hasColumnType(columnIdentifier: string | ColDef, columnType: string): boolean;
89
+ getColumnSummaryForColumnId(columnId: string): AdaptableColumnSummary;
90
+ isAgGridGeneratedColumn(columnId: string): boolean;
88
91
  }
@@ -107,22 +107,23 @@ export class ColumnApiImpl extends ApiBase {
107
107
  getColumns() {
108
108
  return this.getGridApi().getInternalState().Columns ?? [];
109
109
  }
110
+ getUIAvailableColumns() {
111
+ return this.getColumns().filter((c) => !c.alwaysHidden &&
112
+ !c.isGeneratedSelectionColumn &&
113
+ // currently (20.0.7) we don't display Pivot Totals in UI
114
+ !c.isPivotTotalColumn);
115
+ }
110
116
  getSpecialColumns() {
111
- const cols = this.getColumns()?.filter((c) => this.internalApi.isSpecialColumn(c.columnId, c));
117
+ const cols = this.getUIAvailableColumns()?.filter((c) => this.internalApi.isSpecialColumn(c.columnId, c));
112
118
  return cols ?? [];
113
119
  }
114
120
  getNonSpecialColumns() {
115
- const cols = this.getColumns()?.filter((c) => !this.internalApi.isSpecialColumn(c.columnId, c));
121
+ const cols = this.getUIAvailableColumns()?.filter((c) => !this.internalApi.isSpecialColumn(c.columnId, c));
116
122
  return cols ?? [];
117
123
  }
118
- getUIAvailableColumns() {
119
- return this.getColumns().filter((c) => !c.alwaysHidden &&
120
- // currently (20.0.7) we don't display Pivot Totals in UI
121
- !c.isPivotTotalColumn);
122
- }
123
124
  getVisibleColumns() {
124
125
  const layout = this.getLayoutApi().getCurrentLayout();
125
- const allcols = this.getColumns();
126
+ const allcols = this.getUIAvailableColumns();
126
127
  if (isPivotLayout(layout)) {
127
128
  return allcols;
128
129
  }
@@ -179,6 +180,12 @@ export class ColumnApiImpl extends ApiBase {
179
180
  isAutoRowGroupColumnForMulti(columnId) {
180
181
  return columnId.startsWith(AUTO_GROUP_COLUMN_ID__MULTI_PREFIX);
181
182
  }
183
+ isSpecialColumn(columnId) {
184
+ return (this.isCalculatedColumn(columnId) ||
185
+ this.isFreeTextColumn(columnId) ||
186
+ this.isActionColumn(columnId) ||
187
+ this.isFdc3Column(columnId));
188
+ }
182
189
  isCalculatedColumn(columnId) {
183
190
  return (this.getCalculatedColumnApi()
184
191
  .getCalculatedColumns()
@@ -252,7 +259,7 @@ export class ColumnApiImpl extends ApiBase {
252
259
  if (!column) {
253
260
  return false;
254
261
  }
255
- return column?.dataType === 'date' || column?.dataType === 'dateString';
262
+ return this.internalApi.getColumnDateTypes().includes(column?.dataType);
256
263
  }
257
264
  getColumnDataTypeForColumnId(columnId) {
258
265
  const column = this.getColumnWithColumnId(columnId);
@@ -380,11 +387,11 @@ export class ColumnApiImpl extends ApiBase {
380
387
  case 'tupleArray':
381
388
  return this.getTupleNumberArrayColumns();
382
389
  default:
383
- return this.getColumns();
390
+ return this.getUIAvailableColumns();
384
391
  }
385
392
  }
386
393
  getNumericColumns() {
387
- return this.getColumns().filter((c) => c.dataType === 'number');
394
+ return this.getUIAvailableColumns().filter((c) => c.dataType === 'number');
388
395
  }
389
396
  getNumericArrayColumns() {
390
397
  return this.getNumberArrayColumns()
@@ -392,28 +399,28 @@ export class ColumnApiImpl extends ApiBase {
392
399
  .concat(this.getObjectNumberArrayColumns());
393
400
  }
394
401
  getNumberArrayColumns() {
395
- return this.getColumns().filter((c) => c.dataType === 'numberArray');
402
+ return this.getUIAvailableColumns().filter((c) => c.dataType === 'numberArray');
396
403
  }
397
404
  getTupleNumberArrayColumns() {
398
- return this.getColumns().filter((c) => c.dataType === 'tupleArray');
405
+ return this.getUIAvailableColumns().filter((c) => c.dataType === 'tupleArray');
399
406
  }
400
407
  getObjectNumberArrayColumns() {
401
- return this.getColumns().filter((c) => c.dataType === 'objectArray');
408
+ return this.getUIAvailableColumns().filter((c) => c.dataType === 'objectArray');
402
409
  }
403
410
  getTextColumns() {
404
- return this.getColumns().filter((c) => c.dataType === 'text');
411
+ return this.getUIAvailableColumns().filter((c) => c.dataType === 'text');
405
412
  }
406
413
  getTextArrayColumns() {
407
- return this.getColumns().filter((c) => c.dataType === 'textArray');
414
+ return this.getUIAvailableColumns().filter((c) => c.dataType === 'textArray');
408
415
  }
409
416
  getDateColumns() {
410
- return this.getColumns().filter((c) => c.dataType === 'date' || c.dataType === 'dateString');
417
+ return this.getUIAvailableColumns().filter((c) => c.dataType === 'date' || c.dataType === 'dateString');
411
418
  }
412
419
  getBooleanColumns() {
413
- return this.getColumns().filter((c) => c.dataType === 'boolean');
420
+ return this.getUIAvailableColumns().filter((c) => c.dataType === 'boolean');
414
421
  }
415
422
  getArrayColumns() {
416
- return this.getColumns().filter((c) => c.dataType === 'numberArray' ||
423
+ return this.getUIAvailableColumns().filter((c) => c.dataType === 'numberArray' ||
417
424
  c.dataType === 'tupleArray' ||
418
425
  c.dataType === 'objectArray' ||
419
426
  c.dataType === 'textArray');
@@ -444,10 +451,7 @@ export class ColumnApiImpl extends ApiBase {
444
451
  }
445
452
  logMissingColumnWarning(columnId) {
446
453
  if (this.getColumnOptions().showMissingColumnsWarning === true) {
447
- if (!this.isAutoRowGroupColumn(columnId) &&
448
- !this.isCalculatedColumn(columnId) &&
449
- !this.isFreeTextColumn(columnId) &&
450
- !this.isActionColumn(columnId)) {
454
+ if (!this.isAutoRowGroupColumn(columnId) && !this.isSpecialColumn(columnId)) {
451
455
  this.logWarn(`No column found named '${columnId}'`);
452
456
  }
453
457
  }
@@ -517,4 +521,36 @@ export class ColumnApiImpl extends ApiBase {
517
521
  return colDef.type === columnType;
518
522
  }
519
523
  }
524
+ getColumnSummaryForColumnId(columnId) {
525
+ const column = this.getColumnWithColumnId(columnId);
526
+ if (!column) {
527
+ return undefined;
528
+ }
529
+ const gridCellsWithCount = this._adaptable.getDistinctGridCellsForColumn(column);
530
+ const columnFilter = this.getColumnFilterApi().getColumnFilterForColumn(column.columnId);
531
+ const uniqueGridCells = gridCellsWithCount.map((gcWithCount) => {
532
+ return {
533
+ rawValue: gcWithCount.rawValue,
534
+ normalisedValue: gcWithCount.normalisedValue,
535
+ displayValue: gcWithCount.displayValue,
536
+ visible: gcWithCount.visible,
537
+ count: gcWithCount.count,
538
+ visibleCount: gcWithCount.visibleCount,
539
+ };
540
+ });
541
+ return {
542
+ column,
543
+ columnFilter,
544
+ uniqueGridCells,
545
+ };
546
+ }
547
+ isAgGridGeneratedColumn(columnId) {
548
+ const column = this.getColumnWithColumnId(columnId);
549
+ if (!column) {
550
+ return true;
551
+ }
552
+ return (column.isGeneratedRowGroupColumn ||
553
+ column.isGeneratedSelectionColumn ||
554
+ column.isGeneratedPivotResultColumn);
555
+ }
520
556
  }
@@ -1,7 +1,7 @@
1
1
  import { ApiBase } from './ApiBase';
2
2
  import { AdaptablePredicateDef, ColumnFilterDef } from '../../AdaptableState/Common/AdaptablePredicate';
3
3
  import { AdaptableColumn } from '../../AdaptableState/Common/AdaptableColumn';
4
- import { ColumnFilter, ColumnFilterPredicate } from '../../types';
4
+ import { ColumnFilter, ColumnFilterPredicate, InFilterValueInfo, InFilterValue } from '../../types';
5
5
  import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
6
6
  import { ColumnFilterInternalApi } from '../Internal/ColumnFilterInternalApi';
7
7
  import { ColumnFilterApi } from '../ColumnFilterApi';
@@ -38,8 +38,14 @@ export declare class ColumnFilterApiImpl extends ApiBase implements ColumnFilter
38
38
  */
39
39
  isColumnFilterActive(filter: ColumnFilter): boolean;
40
40
  setColumnFilterForColumn(columnId: string, columnFilterPredicate: ColumnFilterPredicate): void;
41
+ clearAndSetColumnFilterForColumn(columnId: string, columnFilterPredicate: ColumnFilterPredicate): void;
41
42
  suspendColumnFilter(columnFilter: ColumnFilter): void;
42
43
  unSuspendColumnFilter(columnFilter: ColumnFilter): void;
43
44
  suspendAllColumnFilters(): void;
44
45
  unSuspendAllColumnFilters(): void;
46
+ addBlanksToInFilterValues(columnDistinctValues: InFilterValueInfo[]): InFilterValueInfo[];
47
+ refreshFilterValues(columnId: string): Promise<InFilterValue[]>;
48
+ refreshAllFilterValues(): Promise<Record<string, InFilterValue[]>>;
49
+ resetFilterValues(columnId: string): void;
50
+ resetAllFilterValues(): void;
45
51
  }
@@ -3,12 +3,16 @@ import * as LayoutRedux from '../../Redux/ActionsReducers/LayoutRedux';
3
3
  import { ApiBase } from './ApiBase';
4
4
  import ArrayExtensions from '../../Utilities/Extensions/ArrayExtensions';
5
5
  import { ColumnFilterInternalApi } from '../Internal/ColumnFilterInternalApi';
6
+ import StringExtensions from '../../Utilities/Extensions/StringExtensions';
6
7
  export class ColumnFilterApiImpl extends ApiBase {
7
8
  constructor(_adaptable) {
8
9
  super(_adaptable);
9
10
  this.internalApi = new ColumnFilterInternalApi(_adaptable);
10
11
  }
11
12
  getFilterPredicateDefsForColumn(column) {
13
+ if (!column) {
14
+ return [];
15
+ }
12
16
  const scope = {
13
17
  ColumnIds: [column.columnId],
14
18
  };
@@ -90,7 +94,7 @@ export class ColumnFilterApiImpl extends ApiBase {
90
94
  });
91
95
  }
92
96
  getColumnFilterForColumn(columnId) {
93
- return this.getColumnFilters().find((columnFilter) => columnFilter.ColumnId == columnId);
97
+ return this.getColumnFilters().find((columnFilter) => columnFilter.ColumnId === columnId);
94
98
  }
95
99
  clearColumnFilterForColumn(columnId) {
96
100
  let columnFilterForColumn = this.getColumnFilterForColumn(columnId);
@@ -144,8 +148,8 @@ export class ColumnFilterApiImpl extends ApiBase {
144
148
  return filter.Predicates.some((predicate) => {
145
149
  const predicateDef = this.getPredicateApi().getPredicateDefById(predicate.PredicateId);
146
150
  if (ArrayExtensions.IsNull(predicateDef.inputs) &&
147
- // values predicates have no inputs in the definition
148
- !this.getPredicateApi().internalApi.hasPredicateValues(predicate)) {
151
+ // In and NotIn predicates ave no inputs in the definition
152
+ !this.getPredicateApi().internalApi.IsInOrNotInPredicate(predicate)) {
149
153
  return true;
150
154
  }
151
155
  const inputs = predicate.Inputs || [];
@@ -166,6 +170,13 @@ export class ColumnFilterApiImpl extends ApiBase {
166
170
  };
167
171
  this.setColumnFilters([columnFilter]);
168
172
  }
173
+ clearAndSetColumnFilterForColumn(columnId, columnFilterPredicate) {
174
+ const columnFilter = {
175
+ ColumnId: columnId,
176
+ Predicates: [columnFilterPredicate],
177
+ };
178
+ this.setColumnFilters([columnFilter]);
179
+ }
169
180
  suspendColumnFilter(columnFilter) {
170
181
  this.dispatchAction(LayoutRedux.LayoutColumnFilterSuspend(columnFilter));
171
182
  }
@@ -178,4 +189,66 @@ export class ColumnFilterApiImpl extends ApiBase {
178
189
  unSuspendAllColumnFilters() {
179
190
  this.dispatchAction(LayoutRedux.LayoutColumnFilterUnSuspendAll());
180
191
  }
192
+ addBlanksToInFilterValues(columnDistinctValues) {
193
+ if (columnDistinctValues.some((item) => StringExtensions.IsNullOrEmpty(item.value))) {
194
+ return [
195
+ {
196
+ label: 'Blanks',
197
+ value: 'Blanks',
198
+ },
199
+ ...columnDistinctValues,
200
+ ];
201
+ }
202
+ return columnDistinctValues;
203
+ }
204
+ async refreshFilterValues(columnId) {
205
+ const columnFilterHandler = this.getAgGridApi().getColumnFilterHandler(columnId);
206
+ if (!columnFilterHandler ||
207
+ typeof columnFilterHandler.resetFilterDisplayValues !== 'function') {
208
+ this.logWarn(`No filter handler found for column: ${columnId}`);
209
+ return;
210
+ }
211
+ this.logInfo(`Refreshing filter values for column: ${columnId}`);
212
+ return columnFilterHandler.refreshFilterDisplayValues();
213
+ }
214
+ async refreshAllFilterValues() {
215
+ const allFilterHandlers = this.internalApi.getAllAdaptableFilterHandlers();
216
+ const handlerPromises = allFilterHandlers.map(async (handler) => {
217
+ let values = [];
218
+ if (typeof handler.refreshFilterDisplayValues === 'function') {
219
+ values = await handler.refreshFilterDisplayValues();
220
+ }
221
+ else {
222
+ this.logWarn(`No refresh function for filter handler: ${handler.colId}`);
223
+ values = [];
224
+ }
225
+ return { columnId: handler.colId, values };
226
+ });
227
+ return Promise.all(handlerPromises).then((results) => {
228
+ return results.reduce((acc, { columnId, values }) => {
229
+ acc[columnId] = values;
230
+ return acc;
231
+ }, {});
232
+ });
233
+ }
234
+ resetFilterValues(columnId) {
235
+ const columnFilterHandler = this.getAgGridApi().getColumnFilterHandler(columnId);
236
+ if (!columnFilterHandler ||
237
+ typeof columnFilterHandler.resetFilterDisplayValues !== 'function') {
238
+ this.logWarn(`No filter handler found for column: ${columnId}`);
239
+ return;
240
+ }
241
+ columnFilterHandler.resetFilterDisplayValues();
242
+ }
243
+ resetAllFilterValues() {
244
+ const allFilterHandlers = this.internalApi.getAllAdaptableFilterHandlers();
245
+ allFilterHandlers.forEach((handler) => {
246
+ if (typeof handler.resetFilterDisplayValues === 'function') {
247
+ handler.resetFilterDisplayValues();
248
+ }
249
+ else {
250
+ this.logWarn(`No reset function for filter handler: ${handler.colId}`);
251
+ }
252
+ });
253
+ }
181
254
  }
@@ -10,8 +10,16 @@ export class ColumnScopeApiImpl extends ApiBase {
10
10
  // do we need a true check here?
11
11
  return true;
12
12
  }
13
- if ('DataTypes' in scope && scope.DataTypes.includes(column.dataType)) {
14
- return true;
13
+ if ('DataTypes' in scope) {
14
+ if (scope.DataTypes.includes(column.dataType)) {
15
+ return true;
16
+ }
17
+ if (scope.DataTypes.includes('date')) {
18
+ const agDateTypes = this.getColumnApi().internalApi.getColumnDateTypes();
19
+ if (agDateTypes.includes(column.dataType)) {
20
+ return true;
21
+ }
22
+ }
15
23
  }
16
24
  if ('ColumnTypes' in scope &&
17
25
  scope.ColumnTypes.some((columnType) => column.columnTypes?.includes(columnType))) {
@@ -4,22 +4,17 @@ import { CustomSort, CustomSortState } from '../../AdaptableState/CustomSortStat
4
4
  import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
5
5
  import { CustomSortInternalApi } from '../Internal/CustomSortInternalApi';
6
6
  import { ColumnValuesComparer } from '../../AdaptableOptions/CustomSortOptions';
7
+ import { LayoutExtendedConfig } from '../../types';
7
8
  export declare class CustomSortApiImpl extends ApiBase implements CustomSortApi {
8
9
  internalApi: CustomSortInternalApi;
9
10
  constructor(_adaptable: IAdaptable);
10
11
  getCustomSortState(): CustomSortState;
11
- getCustomSorts(config?: {
12
- includeLayoutNotAssociatedObjects?: boolean;
13
- }): CustomSort[];
14
- getCustomSortById(id: CustomSort['Uuid']): CustomSort;
12
+ getCustomSorts(config?: LayoutExtendedConfig): CustomSort[];
13
+ getCustomSortById(id: CustomSort['Uuid'], config?: LayoutExtendedConfig): CustomSort;
15
14
  getLiveCustomSorts(): CustomSort[];
16
15
  getLiveCustomSortComparers(): ColumnValuesComparer[];
17
- getActiveCustomSorts(config?: {
18
- includeLayoutNotAssociatedObjects?: boolean;
19
- }): CustomSort[];
20
- getSuspendedCustomSorts(config?: {
21
- includeLayoutNotAssociatedObjects?: boolean;
22
- }): CustomSort[];
16
+ getActiveCustomSorts(config?: LayoutExtendedConfig): CustomSort[];
17
+ getSuspendedCustomSorts(config?: LayoutExtendedConfig): CustomSort[];
23
18
  getCustomSortByColumn(column: string): CustomSort;
24
19
  getCustomSortForColumn(columnId: string): CustomSort | undefined;
25
20
  addCustomSort(customSort: CustomSort): CustomSort;
@@ -11,10 +11,10 @@ export class CustomSortApiImpl extends ApiBase {
11
11
  return this.getAdaptableState().CustomSort;
12
12
  }
13
13
  getCustomSorts(config) {
14
- return (this.handleLayoutAssociatedObjects(this.getCustomSortState().CustomSorts, 'CustomSort', config) ?? []);
14
+ return (this.handleLayoutExtensionObjects(this.getCustomSortState().CustomSorts, 'CustomSort', config) ?? []);
15
15
  }
16
- getCustomSortById(id) {
17
- return this.getCustomSorts().find((customSort) => customSort.Uuid === id);
16
+ getCustomSortById(id, config) {
17
+ return this.getCustomSorts(config).find((customSort) => customSort.Uuid === id);
18
18
  }
19
19
  getLiveCustomSorts() {
20
20
  let returnVals = [];
@@ -88,7 +88,9 @@ export class CustomSortApiImpl extends ApiBase {
88
88
  }
89
89
  deleteCustomSort(column) {
90
90
  let customSort = this.getCustomSortForColumn(column);
91
- this.dispatchAction(CustomSortRedux.CustomSortDelete(customSort));
91
+ if (customSort) {
92
+ this.dispatchAction(CustomSortRedux.CustomSortDelete(customSort));
93
+ }
92
94
  }
93
95
  suspendCustomSort(customSort) {
94
96
  this.dispatchAction(CustomSortRedux.CustomSortSuspend(customSort));
@@ -1,4 +1,4 @@
1
- import { ApiBase, LayoutAssociatedObjectLoadConfig } from './ApiBase';
1
+ import { ApiBase } from './ApiBase';
2
2
  import { AdaptableFlashingCell } from '../../AdaptableState/Common/AdaptableFlashingCell';
3
3
  import { FlashingCellApi } from '../FlashingCellApi';
4
4
  import { FlashingCellDefinition, FlashingCellState } from '../../AdaptableState/FlashingCellState';
@@ -6,15 +6,15 @@ import { AdaptablePredicateDef } from '../../AdaptableState/Common/AdaptablePred
6
6
  import { ColumnScope } from '../../AdaptableState/Common/ColumnScope';
7
7
  import { FlashingCellInternalApi } from '../Internal/FlashingCellInternalApi';
8
8
  import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
9
- import { AdaptableObjectLookupCriteria } from '../../types';
9
+ import { AdaptableObjectLookupCriteria, LayoutExtendedConfig } from '../../types';
10
10
  export declare class FlashingCellApiImpl extends ApiBase implements FlashingCellApi {
11
11
  internalApi: FlashingCellInternalApi;
12
12
  constructor(_adaptable: IAdaptable);
13
13
  getFlashingCellState(): FlashingCellState;
14
- getFlashingCellDefinitions(config?: LayoutAssociatedObjectLoadConfig): FlashingCellDefinition[];
15
- getFlashingCellDefinitionById(id: FlashingCellDefinition['Uuid']): FlashingCellDefinition;
16
- getActiveFlashingCellDefinitions(): FlashingCellDefinition[];
17
- getSuspendedFlashingCellDefinitions(): FlashingCellDefinition[];
14
+ getFlashingCellDefinitions(config?: LayoutExtendedConfig): FlashingCellDefinition[];
15
+ getFlashingCellDefinitionById(id: FlashingCellDefinition['Uuid'], config?: LayoutExtendedConfig): FlashingCellDefinition;
16
+ getActiveFlashingCellDefinitions(config?: LayoutExtendedConfig): FlashingCellDefinition[];
17
+ getSuspendedFlashingCellDefinitions(config?: LayoutExtendedConfig): FlashingCellDefinition[];
18
18
  getFlashingCellFlashTarget(flashingCellDefinition: FlashingCellDefinition): FlashingCellDefinition['FlashTarget'];
19
19
  showFlashingCell(flashingCellToShow: AdaptableFlashingCell): void;
20
20
  addFlashingCellDefinition(flashingCellDefinition: FlashingCellDefinition): FlashingCellDefinition;
@@ -26,6 +26,7 @@ export declare class FlashingCellApiImpl extends ApiBase implements FlashingCell
26
26
  unSuspendAllFlashingCellDefinition(): void;
27
27
  addFlashingCellDefinitions(flashingCellDefinitions: FlashingCellDefinition[]): FlashingCellDefinition[];
28
28
  editFlashingCellDefinitions(flashingCellDefinitions: FlashingCellDefinition[]): FlashingCellDefinition[];
29
+ deleteFlashingCellDefinition(flashingCellDefinition: FlashingCellDefinition): void;
29
30
  getFlashingCellPredicateDefsForScope(scope: ColumnScope): AdaptablePredicateDef[];
30
31
  clearAllFlashingCells(): void;
31
32
  isAnyFlashingCellActive(): boolean;