@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
@@ -36,36 +36,36 @@ export class FormatColumnInternalApi extends ApiBase {
36
36
  * Retrieves all Format Columns in Adaptable State with the `Style` property set
37
37
  * @returns format columns
38
38
  */
39
- getAllFormatColumnWithStyle() {
39
+ getAllFormatColumnWithStyle(config) {
40
40
  return this.getFormatColumnApi()
41
- .getFormatColumns()
41
+ .getFormatColumns(config)
42
42
  .filter((fc) => fc.Style);
43
43
  }
44
44
  /**
45
45
  * Retrieves all Format Columns in Adaptable State with the `Style` or the `CellAlignment` property set
46
46
  * @returns format columns
47
47
  */
48
- getAllFormatColumnWithStyleAndCellAlignment() {
48
+ getAllFormatColumnWithStyleAndCellAlignment(config) {
49
49
  return this.getFormatColumnApi()
50
- .getFormatColumns()
50
+ .getFormatColumns(config)
51
51
  .filter((fc) => fc.Style || fc.CellAlignment);
52
52
  }
53
53
  /**
54
54
  * Retrieves all Format Columns in Adaptable State with `DisplayFormat` property set
55
55
  * @returns format columns
56
56
  */
57
- getAllFormatColumnWithDisplayFormat() {
57
+ getAllFormatColumnWithDisplayFormat(config) {
58
58
  return this.getFormatColumnApi()
59
- .getFormatColumns()
59
+ .getFormatColumns(config)
60
60
  .filter((fc) => fc.DisplayFormat);
61
61
  }
62
62
  /**
63
63
  * Retrieves all Format Columns in Adaptable State with `CellAlignment` property set
64
64
  * @returns format columns
65
65
  */
66
- getAllFormatColumnWithCellAlignment() {
66
+ getAllFormatColumnWithCellAlignment(config) {
67
67
  return this.getFormatColumnApi()
68
- .getFormatColumns()
68
+ .getFormatColumns(config)
69
69
  .filter((fc) => fc.CellAlignment);
70
70
  }
71
71
  /**
@@ -78,8 +78,8 @@ export class FormatColumnInternalApi extends ApiBase {
78
78
  const formatColumns = this.getAllFormatColumnWithStyleAndCellAlignment()
79
79
  .filter((formatColumn) => {
80
80
  // FormatColumn default target is 'cell', so if no target is specified, we assume 'cell'
81
- const fcTarget = formatColumn.Target ?? ['cell'];
82
- return fcTarget.includes(config.target);
81
+ const fcTarget = formatColumn.Target ?? 'cell';
82
+ return fcTarget === config.target;
83
83
  })
84
84
  .filter((formatColumn) => config?.includeSuspended || !formatColumn.IsSuspended);
85
85
  return this.getFormatColumnWithColumnInScope(formatColumns, column);
@@ -116,7 +116,13 @@ export class FormatColumnInternalApi extends ApiBase {
116
116
  * @returns list of FormatColumn
117
117
  */
118
118
  getFormatColumnsWithDisplayFormatForColumn(column, config) {
119
- const formatColumns = this.getAllFormatColumnWithDisplayFormat().filter((formatColumn) => config?.includeSuspended || !formatColumn.IsSuspended);
119
+ const formatColumns = this.getAllFormatColumnWithDisplayFormat()
120
+ .filter((formatColumn) => {
121
+ // FormatColumn default target is 'cell', so if no target is specified, we assume 'cell'
122
+ const fcTarget = formatColumn.Target ?? 'cell';
123
+ return fcTarget === config.target;
124
+ })
125
+ .filter((formatColumn) => config?.includeSuspended || !formatColumn.IsSuspended);
120
126
  return this.getFormatColumnWithColumnInScope(formatColumns, column);
121
127
  }
122
128
  /**
@@ -183,7 +189,7 @@ export class FormatColumnInternalApi extends ApiBase {
183
189
  return true;
184
190
  }
185
191
  const agGridApi = this.getAdaptableApi().agGridApi;
186
- const agGridColumn = agGridApi.isPivotMode()
192
+ const agGridColumn = this._adaptable.isInPivotMode()
187
193
  ? agGridApi.getPivotResultColumns().find((col) => col.getColId() === column.columnId)
188
194
  : agGridApi.getColumn(column.columnId);
189
195
  if (!agGridColumn) {
@@ -325,14 +331,14 @@ export class FormatColumnInternalApi extends ApiBase {
325
331
  * Retrieves all Format Columns which have an Expression
326
332
  * @returns Format Columns with Expression
327
333
  */
328
- getFormatColumnsWithExpression() {
334
+ getFormatColumnsWithExpression(config) {
329
335
  return this.getFormatColumnApi()
330
- .getFormatColumns()
336
+ .getFormatColumns(config)
331
337
  .filter((fc) => !!fc.Rule?.BooleanExpression);
332
338
  }
333
- getFormatColumnsDependentOnColumns(columnSet) {
339
+ getFormatColumnsDependentOnColumns(columnSet, config) {
334
340
  return this.getFormatColumnApi()
335
- .getFormatColumns()
341
+ .getFormatColumns(config)
336
342
  .filter((fc) => fc.Rule?.Predicates?.some((p) => columnSet.has(p.ColumnId)));
337
343
  }
338
344
  /**
@@ -356,4 +362,27 @@ export class FormatColumnInternalApi extends ApiBase {
356
362
  });
357
363
  return [...columnsThatNeedRefresh];
358
364
  }
365
+ formatColumnHeaderName(headerName, params) {
366
+ // currently we only format the header name for normal columns (NOT column groups)
367
+ if (!params.column) {
368
+ return headerName;
369
+ }
370
+ const abColumn = this.getColumnApi().getColumnWithColumnId(params.column.getColId());
371
+ const activeFormatColumnsWithDisplayFormat = this.getFormatColumnApi().internalApi.getFormatColumnsWithDisplayFormatForColumn(abColumn, {
372
+ target: 'columnHeader',
373
+ });
374
+ if (!activeFormatColumnsWithDisplayFormat.length) {
375
+ return headerName;
376
+ }
377
+ const mostRelevantFormatColumn = activeFormatColumnsWithDisplayFormat.find((formatColumn) => this.formatColumnShouldRenderInHeader(formatColumn, abColumn));
378
+ if (!mostRelevantFormatColumn) {
379
+ return headerName;
380
+ }
381
+ if (mostRelevantFormatColumn.DisplayFormat?.Formatter !== 'StringFormatter') {
382
+ // headers are always strings, so we can only use StringFormatter
383
+ return headerName;
384
+ }
385
+ const formattedHeaderName = this.getFormatColumnApi().internalApi.getStringFormattedValue(headerName, null, abColumn, mostRelevantFormatColumn.DisplayFormat.Options);
386
+ return formattedHeaderName;
387
+ }
359
388
  }
@@ -1,11 +1,13 @@
1
- import { RowClassParams } from 'ag-grid-enterprise';
1
+ import { IRowNode, RowClassParams } from 'ag-grid-enterprise';
2
2
  import { AdaptableColumn } from '../../AdaptableState/Common/AdaptableColumn';
3
3
  import { AdaptableMenuItem } from '../../AdaptableState/Common/Menu';
4
4
  import { SpecialColumnSettings } from '../../AdaptableState/Common/SpecialColumnSettings';
5
5
  import { GridCell } from '../../AdaptableState/Selection/GridCell';
6
6
  import { SelectedCellInfo } from '../../AdaptableState/Selection/SelectedCellInfo';
7
7
  import { SelectedRowInfo } from '../../AdaptableState/Selection/SelectedRowInfo';
8
+ import { InFilterValue } from '../../types';
8
9
  import { ApiBase } from '../Implementation/ApiBase';
10
+ import { EditColumnValueInfo } from '../../AdaptableOptions/EditOptions';
9
11
  export declare class GridInternalApi extends ApiBase {
10
12
  /**
11
13
  * Gets all distinct display values in the Column for given ColumnId
@@ -27,20 +29,13 @@ export declare class GridInternalApi extends ApiBase {
27
29
  getDistinctFilterDisplayValuesForColumn(options: {
28
30
  columnId: string;
29
31
  currentSearchValue: string;
30
- }): Promise<{
31
- value: any;
32
- label: string;
33
- }[]>;
32
+ }): Promise<InFilterValue[]>;
34
33
  getDistinctValuesForColumn(columnId: string): Promise<GridCell[]> | undefined;
35
- getDistinctDisplayValuesForColumn(columnId: string): Promise<any[]> | undefined;
36
34
  getDistinctEditDisplayValuesForColumn(options: {
37
35
  columnId: string;
38
36
  gridCell: GridCell;
39
37
  currentSearchValue: string;
40
- }): Promise<{
41
- value: any;
42
- label: string;
43
- }[]> | undefined;
38
+ }): Promise<EditColumnValueInfo[]> | undefined;
44
39
  /**
45
40
  * Gets all distinct raw values in Column. Values are sorted.
46
41
  * @param columnId Column to check
@@ -51,6 +46,7 @@ export declare class GridInternalApi extends ApiBase {
51
46
  * @param columnId Column to check
52
47
  */
53
48
  getUnsortedDistinctRawValuesForColumn(columnId: string): any[];
49
+ getSortedRowNodesWithCurrentLayoutSortOrder(rowNodes?: IRowNode[]): IRowNode[];
54
50
  sortDistinctValues<T extends GridCell>(returnValues: T[], column: AdaptableColumn): T[];
55
51
  setColumns(columns: AdaptableColumn[]): void;
56
52
  setSelectedCells(selectedCellInfo: SelectedCellInfo): void;
@@ -72,4 +68,5 @@ export declare class GridInternalApi extends ApiBase {
72
68
  * DO NOT USE THIS METHOD DIRECTLY - use `GridApi.isCellEditable` instead
73
69
  */
74
70
  isCellEditableAccordingToEditOptions(gridCell: GridCell, defaultColDefinitionEditableValue: boolean): boolean | undefined;
71
+ isRowFilterable(rowNode: IRowNode): boolean;
75
72
  }
@@ -1,6 +1,7 @@
1
1
  import { SortOrder } from '../../AdaptableState/Common/Enums';
2
2
  import * as InternalRedux from '../../Redux/ActionsReducers/InternalRedux';
3
- import ArrayExtensions from '../../Utilities/Extensions/ArrayExtensions';
3
+ import { getDateComparatorForGridCell, getGenericComparatorForGridCell, getNumericComparatorForGridCell, sortCellValueArrayNumeric, sortCellValueArrayDates, sortCellValueArray, } from '../../Utilities/Extensions/ArrayExtensions';
4
+ import { multisort } from '@infinite-table/infinite-react';
4
5
  import { convertAdaptableStyleToCSS } from '../../Utilities/Helpers/StyleHelper';
5
6
  import UIHelper from '../../View/UIHelper';
6
7
  import { ApiBase } from '../Implementation/ApiBase';
@@ -36,20 +37,13 @@ export class GridInternalApi extends ApiBase {
36
37
  if (abColumn == undefined) {
37
38
  return [];
38
39
  }
39
- let gridCells = await this._adaptable.getDistinctFilterValuesForColumn({
40
+ const inFilterValues = await this._adaptable.getDistinctFilterValuesForColumn({
40
41
  column: abColumn,
41
42
  get currentSearchValue() {
42
43
  return options.currentSearchValue;
43
44
  },
44
45
  });
45
- gridCells = gridCells || [];
46
- const valueOptions = gridCells.map((cv) => {
47
- return {
48
- label: cv.displayValue,
49
- value: cv.normalisedValue,
50
- };
51
- });
52
- return valueOptions;
46
+ return inFilterValues || [];
53
47
  }
54
48
  async getDistinctValuesForColumn(columnId) {
55
49
  const abColumn = this.getColumnApi().getColumnWithColumnId(columnId);
@@ -59,31 +53,19 @@ export class GridInternalApi extends ApiBase {
59
53
  const gridCells = await this._adaptable.getDistinctValuesForColumn(abColumn);
60
54
  return gridCells;
61
55
  }
62
- async getDistinctDisplayValuesForColumn(columnId) {
63
- const distinctValues = await this.getDistinctValuesForColumn(columnId);
64
- return distinctValues.map((gc) => {
65
- return gc.displayValue;
66
- });
67
- }
68
56
  async getDistinctEditDisplayValuesForColumn(options) {
69
57
  const abColumn = this.getColumnApi().getColumnWithColumnId(options.columnId);
70
58
  if (!abColumn) {
71
59
  return undefined;
72
60
  }
73
- let gridCells = await this._adaptable.getDistinctEditValuesForColumn({
61
+ const valueOptions = await this._adaptable.getDistinctEditValuesForColumn({
74
62
  column: abColumn,
75
63
  gridCell: options.gridCell,
76
64
  get currentSearchValue() {
77
65
  return options.currentSearchValue;
78
66
  },
79
67
  });
80
- gridCells = gridCells || [];
81
- return gridCells.map((gc) => {
82
- return {
83
- label: gc.displayValue,
84
- value: gc.normalisedValue,
85
- };
86
- });
68
+ return valueOptions || [];
87
69
  }
88
70
  /**
89
71
  * Gets all distinct raw values in Column. Values are sorted.
@@ -109,6 +91,58 @@ export class GridInternalApi extends ApiBase {
109
91
  }
110
92
  return this._adaptable.getDistinctGridCellsForColumn(abColumn);
111
93
  }
94
+ getSortedRowNodesWithCurrentLayoutSortOrder(rowNodes) {
95
+ const currentLayout = this.getLayoutApi().getCurrentLayout();
96
+ const columnSorts = currentLayout.ColumnSorts || [];
97
+ const columnApi = this.getColumnApi();
98
+ const rowNodesMapToCells = new Map();
99
+ const allRowNodes = [];
100
+ // for each row node,let's create an object
101
+ // with only those gridcells that are needed - meaning
102
+ // for those column that are in the current sort
103
+ const rowNodeCallback = (node) => {
104
+ allRowNodes.push(node);
105
+ const rowNodeCells = {};
106
+ rowNodesMapToCells.set(node, rowNodeCells);
107
+ columnSorts.forEach((columnSort, i) => {
108
+ const { ColumnId } = columnSort;
109
+ const gridCell = this._adaptable.getGridCellFromRowNode(node, ColumnId);
110
+ rowNodeCells[ColumnId] = gridCell;
111
+ });
112
+ };
113
+ if (rowNodes) {
114
+ rowNodes.forEach(rowNodeCallback);
115
+ }
116
+ else {
117
+ this.getAgGridApi().forEachNode(rowNodeCallback);
118
+ }
119
+ if (!columnSorts.length) {
120
+ return allRowNodes;
121
+ }
122
+ const sortInfo = columnSorts.map((columnSort) => {
123
+ const { ColumnId } = columnSort;
124
+ // NOTE: the comparator we pass to multisort should always sort in ascending order
125
+ // that's why we pass SortOrder.Asc to the comparators
126
+ const comparator = columnApi.hasNumberDataType(ColumnId)
127
+ ? getNumericComparatorForGridCell(SortOrder.Asc)
128
+ : columnApi.hasDateDataType(ColumnId)
129
+ ? getDateComparatorForGridCell(SortOrder.Asc)
130
+ : getGenericComparatorForGridCell(SortOrder.Asc);
131
+ return {
132
+ // but here we pass the actual direction of the column sort
133
+ dir: columnSort.SortOrder === 'Asc' ? 1 : -1,
134
+ fn: (rowNodeA, rowNodeB) => {
135
+ const gridCellA = rowNodesMapToCells.get(rowNodeA)?.[ColumnId];
136
+ const gridCellB = rowNodesMapToCells.get(rowNodeB)?.[ColumnId];
137
+ if (!gridCellA || !gridCellB) {
138
+ return 0;
139
+ }
140
+ return comparator(gridCellA, gridCellB);
141
+ },
142
+ };
143
+ });
144
+ return multisort(sortInfo, allRowNodes);
145
+ }
112
146
  sortDistinctValues(returnValues, column) {
113
147
  // this does NOT into account Custom Sort - far too hard for now...
114
148
  let sortOrder = undefined;
@@ -123,13 +157,13 @@ export class GridInternalApi extends ApiBase {
123
157
  }
124
158
  if (sortOrder) {
125
159
  if (this.getColumnApi().hasNumberDataType(column?.columnId)) {
126
- returnValues = ArrayExtensions.sortCellValueArrayNumeric(returnValues, sortOrder);
160
+ returnValues = sortCellValueArrayNumeric(returnValues, sortOrder);
127
161
  }
128
162
  else if (this.getColumnApi().hasDateDataType(column?.columnId)) {
129
- returnValues = ArrayExtensions.sortCellValueArrayDates(returnValues, sortOrder);
163
+ returnValues = sortCellValueArrayDates(returnValues, sortOrder);
130
164
  }
131
165
  else {
132
- returnValues = ArrayExtensions.sortCellValueArray(returnValues, sortOrder);
166
+ returnValues = sortCellValueArray(returnValues, sortOrder);
133
167
  }
134
168
  }
135
169
  return returnValues;
@@ -222,4 +256,19 @@ export class GridInternalApi extends ApiBase {
222
256
  }
223
257
  return undefined;
224
258
  }
259
+ isRowFilterable(rowNode) {
260
+ // first assess if the Row is filterable - if not, then return true so it appears in Grid
261
+ const isRowFilterable = this.getOptionsApi().getFilterOptions().isRowFilterable;
262
+ if (typeof isRowFilterable === 'function') {
263
+ const rowFilterableContext = {
264
+ ...this.getAdaptableApi().internalApi.buildBaseContext(),
265
+ rowNode,
266
+ data: rowNode.data,
267
+ };
268
+ if (!isRowFilterable(rowFilterableContext)) {
269
+ return false;
270
+ }
271
+ }
272
+ return true;
273
+ }
225
274
  }
@@ -1,8 +1,7 @@
1
- import { LayoutAssociatedObject } from '../../AdaptableOptions/LayoutOptions';
2
- import { AdaptableModule } from '../../AdaptableState/Common/Types';
3
- import { Layout, PivotLayout, TableLayout } from '../../AdaptableState/LayoutState';
1
+ import { Layout, LayoutBase, PivotLayout, TableLayout } from '../../AdaptableState/LayoutState';
4
2
  import { ApiBase } from '../Implementation/ApiBase';
5
3
  import { ColDef, ColGroupDef } from 'ag-grid-enterprise';
4
+ import { LayoutExtensionObject, LayoutExtensionModule } from '../../types';
6
5
  export declare class LayoutInternalApi extends ApiBase {
7
6
  getNormalizedLayout(layout: TableLayout | PivotLayout): TableLayout | PivotLayout;
8
7
  sortColumnDefsByPivotAggregationOrder(columnDefs: (ColDef | ColGroupDef)[], pivotAggregationColumns: PivotLayout['PivotAggregationColumns']): (ColDef | ColGroupDef)[];
@@ -27,9 +26,10 @@ export declare class LayoutInternalApi extends ApiBase {
27
26
  RowSummaries: boolean;
28
27
  };
29
28
  hasLayoutSpecificObjects(): boolean;
30
- isObjectAvailableInLayout(object: LayoutAssociatedObject, module: AdaptableModule, layout: Layout): boolean;
31
- showLayoutNotAssociatedObjects(): boolean;
29
+ isObjectExtendedInLayout(object: LayoutExtensionObject, module: LayoutExtensionModule, layout: Layout): boolean;
30
+ showLayoutNonExtendedObjects(): boolean;
32
31
  isLayoutGrouped(layout?: Layout): boolean;
33
32
  setupRowSummaries(): void;
34
33
  refreshLayout(): void;
34
+ getChangedColumnSorts(oldSorts: LayoutBase['ColumnSorts'], newSorts: LayoutBase['ColumnSorts']): string[];
35
35
  }
@@ -120,12 +120,12 @@ export class LayoutInternalApi extends ApiBase {
120
120
  return false;
121
121
  }
122
122
  if (layoutTagOptions.autoCheckTagsForLayouts == true ||
123
- typeof layoutTagOptions?.isObjectAvailableInLayout === 'function') {
123
+ typeof layoutTagOptions?.isObjectExtendedInLayout === 'function') {
124
124
  return true;
125
125
  }
126
126
  return false;
127
127
  }
128
- isObjectAvailableInLayout(object, module, layout) {
128
+ isObjectExtendedInLayout(object, module, layout) {
129
129
  if (!this.hasLayoutSpecificObjects()) {
130
130
  return true;
131
131
  }
@@ -139,10 +139,10 @@ export class LayoutInternalApi extends ApiBase {
139
139
  layout,
140
140
  ...this.getAdaptableInternalApi().buildBaseContext(),
141
141
  };
142
- return layoutTagOptions?.isObjectAvailableInLayout(context);
142
+ return layoutTagOptions?.isObjectExtendedInLayout(context);
143
143
  }
144
- showLayoutNotAssociatedObjects() {
145
- return this.getAdaptableState().Internal.Layout.ShowLayoutNotAssociatedObjects;
144
+ showLayoutNonExtendedObjects() {
145
+ return this.getAdaptableState().Internal.Layout.showLayoutNonExtendedObjects;
146
146
  }
147
147
  isLayoutGrouped(layout) {
148
148
  if (!layout) {
@@ -151,6 +151,10 @@ export class LayoutInternalApi extends ApiBase {
151
151
  return (layout?.RowGroupedColumns?.length || layout?.PivotGroupedColumns?.length) > 0;
152
152
  }
153
153
  setupRowSummaries() {
154
+ if (!this._adaptable.agGridModulesAdapter.isAgGridModuleRegistered('PinnedRowModule')) {
155
+ this.getAdaptableApi().consoleError(`Can NOT set Layout Row Summaries - missing required AG Grid module 'PinnedRowModule'`);
156
+ return;
157
+ }
154
158
  const rowSummaries = this.getAdaptableState().Internal?.RowSummary?.rowSummaries ?? [];
155
159
  const { top, bottom } = rowSummaries.reduce((acc, summaryRow) => {
156
160
  const row = summaryRow.RowData;
@@ -169,4 +173,37 @@ export class LayoutInternalApi extends ApiBase {
169
173
  refreshLayout() {
170
174
  this._adaptable.refreshLayout();
171
175
  }
176
+ getChangedColumnSorts(oldSorts, newSorts) {
177
+ if (ArrayExtensions.IsNullOrEmpty(oldSorts) && ArrayExtensions.IsNullOrEmpty(newSorts)) {
178
+ return [];
179
+ }
180
+ // If either one is empty but not both, all columns in the non-empty array have changed
181
+ if (ArrayExtensions.IsNullOrEmpty(oldSorts)) {
182
+ return newSorts.map((sort) => sort.ColumnId);
183
+ }
184
+ if (ArrayExtensions.IsNullOrEmpty(newSorts)) {
185
+ return oldSorts.map((sort) => sort.ColumnId);
186
+ }
187
+ const changedColumnIds = [];
188
+ // Create maps for quick lookup
189
+ const oldSortsMap = new Map();
190
+ oldSorts.forEach((sort) => {
191
+ oldSortsMap.set(sort.ColumnId, sort.SortOrder);
192
+ });
193
+ // Check columns in new sorts that changed from old sorts
194
+ newSorts.forEach((newSort) => {
195
+ const oldSortOrder = oldSortsMap.get(newSort.ColumnId);
196
+ // If column wasn't sorted before or sort order changed
197
+ if (oldSortOrder === undefined || oldSortOrder !== newSort.SortOrder) {
198
+ changedColumnIds.push(newSort.ColumnId);
199
+ }
200
+ // Remove processed columns from the map
201
+ oldSortsMap.delete(newSort.ColumnId);
202
+ });
203
+ // Add remaining columns from old sorts (these were removed in new sorts)
204
+ oldSortsMap.forEach((_, columnId) => {
205
+ changedColumnIds.push(columnId);
206
+ });
207
+ return changedColumnIds;
208
+ }
172
209
  }
@@ -4,12 +4,8 @@ import { SystemFilterPredicateId } from '../../AdaptableState/Common/ColumnFilte
4
4
  import { AdaptableColumnDataType } from '../../AdaptableState/Common/AdaptableColumn';
5
5
  import { ColumnScope } from '../../types';
6
6
  export declare class PredicateInternalApi extends ApiBase {
7
- /**
8
- * Returns true if the predicate has a dropdown.
9
- *
10
- * @param predicate
11
- */
12
- hasPredicateValues(predicate: AdaptablePredicate): boolean;
7
+ IsInOrNotInPredicate(predicate: AdaptablePredicate): boolean;
8
+ IsInorNotInPredicateDef(predicateDef: AdaptablePredicateDef): boolean;
13
9
  /**
14
10
  * Get all Filter Predicate Definitions - System and Custom
15
11
  */
@@ -1,13 +1,11 @@
1
1
  import { ApiBase } from '../Implementation/ApiBase';
2
2
  export class PredicateInternalApi extends ApiBase {
3
- /**
4
- * Returns true if the predicate has a dropdown.
5
- *
6
- * @param predicate
7
- */
8
- hasPredicateValues(predicate) {
3
+ IsInOrNotInPredicate(predicate) {
9
4
  return predicate?.PredicateId === 'In' || predicate?.PredicateId === 'NotIn';
10
5
  }
6
+ IsInorNotInPredicateDef(predicateDef) {
7
+ return predicateDef && ['In', 'NotIn'].includes(predicateDef.id);
8
+ }
11
9
  /**
12
10
  * Get all Filter Predicate Definitions - System and Custom
13
11
  */
@@ -2,5 +2,6 @@ import { AdaptableColumn, AdaptableIcon } from '../../types';
2
2
  import { ApiBase } from '../Implementation/ApiBase';
3
3
  export declare class UserInterfaceInternalApi extends ApiBase {
4
4
  prepareAdaptableIconDef(icon: AdaptableIcon): AdaptableIcon;
5
+ getCustomIconDefinition(iconName: string): AdaptableIcon | import("../../types").CustomIcon;
5
6
  shouldShowSelectCellEditor(column: AdaptableColumn): boolean;
6
7
  }
@@ -2,15 +2,22 @@ import { ApiBase } from '../Implementation/ApiBase';
2
2
  export class UserInterfaceInternalApi extends ApiBase {
3
3
  prepareAdaptableIconDef(icon) {
4
4
  if (icon && 'name' in icon) {
5
- let customIcon = icon && 'name' in icon
6
- ? this.getUserInterfaceApi().getCustomIconDefinition(icon.name)
7
- : null;
5
+ let customIcon = icon && 'name' in icon ? this.getCustomIconDefinition(icon.name) : null;
8
6
  if (customIcon) {
9
7
  icon = customIcon;
10
8
  }
11
9
  }
12
10
  return icon;
13
11
  }
12
+ getCustomIconDefinition(iconName) {
13
+ let customIcon = undefined;
14
+ const customIcons = this.getUserInterfaceApi().getCustomIcons();
15
+ customIcon = customIcons.find((icon) => icon.name === iconName);
16
+ if (customIcon) {
17
+ return customIcon.icon;
18
+ }
19
+ return customIcon;
20
+ }
14
21
  shouldShowSelectCellEditor(column) {
15
22
  const showSelectCellEditor = this.getEditOptions().showSelectCellEditor;
16
23
  if (showSelectCellEditor) {
@@ -1,5 +1,5 @@
1
1
  import { AdaptableColumn, ColumnSort, PivotLayout, TableLayout } from '../../types';
2
- import { ExtendedLayoutInfo } from '../AdaptableState/Common/ExtendedLayoutInfo';
2
+ import { ExtendedLayout } from '../AdaptableState/Common/ExtendedLayout';
3
3
  import { LayoutState, Layout } from '../AdaptableState/LayoutState';
4
4
  /**
5
5
  * Provides run-time access to the Layout Module and associated state
@@ -61,7 +61,12 @@ export interface LayoutApi {
61
61
  * @param layoutName Layout to retrieve
62
62
  * @returns layout
63
63
  */
64
- getExtendedLayoutByName(layoutName: string): ExtendedLayoutInfo | undefined;
64
+ getExtendedLayoutByName(layoutName: string): ExtendedLayout | undefined;
65
+ /**
66
+ * Creates (or Updates) an Extended Layout
67
+ * @param extendedLayoutInfo extendedLayout to Create
68
+ */
69
+ createOrUpdateExtendedLayout(extendedLayoutInfo: ExtendedLayout): void;
65
70
  /**
66
71
  * Retrieves all Layouts in Adaptable State
67
72
  * @returns layouts
@@ -1,5 +1,6 @@
1
1
  import { PlusMinusState, PlusMinusNudge } from '../AdaptableState/PlusMinusState';
2
2
  import { CellUpdateRequest, GridCell } from '../AdaptableState/Selection/GridCell';
3
+ import { LayoutExtendedConfig } from '../types';
3
4
  /**
4
5
  * Provides run-time access to the Plus / Minus Module and associated state
5
6
  */
@@ -10,27 +11,25 @@ export interface PlusMinusApi {
10
11
  getPlusMinusState(): PlusMinusState;
11
12
  /**
12
13
  * Retrieves all Plus Minus Rules in Adaptable State with those with expressions first
13
- * @returns plus minus rule
14
+ * @returns all plus minus rules
14
15
  */
15
- getAllPlusMinus(config?: {
16
- includeLayoutNotAssociatedObjects?: boolean;
17
- }): PlusMinusNudge[];
16
+ getAllPlusMinus(config?: LayoutExtendedConfig): PlusMinusNudge[];
18
17
  /**
19
18
  * Retrieves Plus Minus Rule by the technical ID (from `PlusMinusState`)
20
19
  * @param id Plus Minus id
21
20
  * @returns plus minus rule
22
21
  */
23
- getPlusMinusById(id: PlusMinusNudge['Uuid']): PlusMinusNudge;
22
+ getPlusMinusById(id: PlusMinusNudge['Uuid'], config?: LayoutExtendedConfig): PlusMinusNudge;
24
23
  /**
25
24
  * Retrieves all active (not-suspended) Plus Minus Rules in Adaptable State with those with expressions first
26
25
  * @returns plus minus rules
27
26
  */
28
- getAllActivePlusMinus(): PlusMinusNudge[];
27
+ getAllActivePlusMinus(config?: LayoutExtendedConfig): PlusMinusNudge[];
29
28
  /**
30
29
  * Retrieves all suspended Plus Minus Rules in Adaptable State with those with expressions first
31
30
  * @returns plus minus rules
32
31
  */
33
- getAllSuspendedPlusMinus(): PlusMinusNudge[];
32
+ getAllSuspendedPlusMinus(config?: LayoutExtendedConfig): PlusMinusNudge[];
34
33
  /**
35
34
  * Applies a Plus Minus Rule to given cells
36
35
  * @param plusMinusNudge Plus Minus Rule to apply
@@ -53,6 +52,11 @@ export interface PlusMinusApi {
53
52
  * @returns plus minus rule
54
53
  */
55
54
  editPlusMinusNudge(plusMinusNudge: PlusMinusNudge): PlusMinusNudge;
55
+ /**
56
+ * Deletes a plus minus rule
57
+ * @param plusMinusNudge Plus Minus Rule to delete
58
+ */
59
+ deletePlusMinusNudge(plusMinusNudge: PlusMinusNudge): void;
56
60
  /**
57
61
  * Adds new Plus Minus Rule to State
58
62
  * @param plusMinusNudge Plus Minus Rule to add
@@ -3,6 +3,7 @@ import { ReportSchedule } from '../AdaptableState/ExportState';
3
3
  import { IPushPullSchedule } from '../AdaptableState/IPushPullState';
4
4
  import { OpenFinSchedule } from '../AdaptableState/OpenFinState';
5
5
  import { ReminderSchedule, ScheduleState } from '../AdaptableState/ScheduleState';
6
+ import { LayoutExtendedConfig } from '../types';
6
7
  /**
7
8
  * Provides run-time access to the Schedule Module and associated state
8
9
  */
@@ -15,30 +16,28 @@ export interface ScheduleApi {
15
16
  * Retrieves the Schedule section from Adaptable State
16
17
  * @returns schedules
17
18
  */
18
- getSchedules(): BaseSchedule[];
19
+ getSchedules(config?: LayoutExtendedConfig): BaseSchedule[];
19
20
  /**
20
21
  * Retrieves Schedule by id
21
22
  * @param id Schedule id
22
23
  * @returns schedule
23
24
  */
24
- getScheduleById(id: BaseSchedule['Uuid']): BaseSchedule;
25
+ getScheduleById(id: BaseSchedule['Uuid'], config?: LayoutExtendedConfig): BaseSchedule;
25
26
  /**
26
27
  * Retrieves all Reminder-based Schedules from Schedule State
27
28
  * @returns reminder schedules
28
29
  */
29
- getReminderSchedules(config?: {
30
- includeLayoutNotAssociatedObjects?: boolean;
31
- }): ReminderSchedule[];
30
+ getReminderSchedules(config?: LayoutExtendedConfig): ReminderSchedule[];
32
31
  /**
33
32
  * Retrieves all active (not-suspended) Reminder-based Schedules from Schedule State
34
33
  * @returns reminder schedules
35
34
  */
36
- getActiveReminderSchedules(): ReminderSchedule[];
35
+ getActiveReminderSchedules(config?: LayoutExtendedConfig): ReminderSchedule[];
37
36
  /**
38
37
  * Retrieves all suspended Reminder-based Schedules from Schedule State
39
38
  * @returns reminder schedules
40
39
  */
41
- getSuspendedReminderSchedules(): ReminderSchedule[];
40
+ getSuspendedReminderSchedules(config?: LayoutExtendedConfig): ReminderSchedule[];
42
41
  /**
43
42
  * Adds Reminder-based Schedule
44
43
  * @param ReminderSchedule Reminder Schedule to add
@@ -72,9 +71,7 @@ export interface ScheduleApi {
72
71
  * Retrieves all Report / Export Schedules from Schedule State
73
72
  * @returns report schedules
74
73
  */
75
- getReportSchedules(config?: {
76
- includeLayoutNotAssociatedObjects?: boolean;
77
- }): ReportSchedule[];
74
+ getReportSchedules(config?: LayoutExtendedConfig): ReportSchedule[];
78
75
  /**
79
76
  * Retrieves all active (not-suspended) Report / Export Schedules from Schedule State
80
77
  * @returns report schedules
@@ -118,9 +115,7 @@ export interface ScheduleApi {
118
115
  * Retrieves all ipushpull-based Schedules from Schedule State
119
116
  * @returns IPushPull schedules
120
117
  */
121
- getIPushPullSchedules(config?: {
122
- includeLayoutNotAssociatedObjects?: boolean;
123
- }): IPushPullSchedule[];
118
+ getIPushPullSchedules(config?: LayoutExtendedConfig): IPushPullSchedule[];
124
119
  /**
125
120
  * Retrieves all active (not-suspended) ipushpull-based Schedules from Schedule State
126
121
  * @returns IPushPull schedules
@@ -164,9 +159,7 @@ export interface ScheduleApi {
164
159
  * Retrieves all OpenFin-based Schedules from Schedule State
165
160
  * @returns OpenFin schedules
166
161
  */
167
- getOpenFinSchedules(config?: {
168
- includeLayoutNotAssociatedObjects?: boolean;
169
- }): OpenFinSchedule[];
162
+ getOpenFinSchedules(config?: LayoutExtendedConfig): OpenFinSchedule[];
170
163
  /**
171
164
  * Retrieves all active (not-suspended) OpenFin-based Schedules from Schedule State
172
165
  * @returns OpenFin schedules