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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) hide show
  1. package/agGrid.d.ts +2 -1
  2. package/agGrid.js +3 -1
  3. package/base.css +36 -15
  4. package/base.css.map +1 -1
  5. package/icons/add-circle.svg +1 -0
  6. package/icons/add.svg +1 -0
  7. package/icons/alert.svg +1 -0
  8. package/icons/align-center.svg +1 -0
  9. package/icons/align-justify.svg +1 -0
  10. package/icons/align-left.svg +1 -0
  11. package/icons/align-right.svg +1 -0
  12. package/icons/arrow-down-long.svg +1 -0
  13. package/icons/arrow-down.svg +1 -0
  14. package/icons/arrow-expand.svg +1 -0
  15. package/icons/arrow-left.svg +1 -0
  16. package/icons/arrow-right.svg +1 -0
  17. package/icons/arrow-up-long.svg +1 -0
  18. package/icons/arrow-up.svg +1 -0
  19. package/icons/assignment.svg +1 -0
  20. package/icons/badge.svg +1 -0
  21. package/icons/bold.svg +1 -0
  22. package/icons/boolean-list.svg +1 -0
  23. package/icons/brain.svg +1 -0
  24. package/icons/broadcast.svg +1 -0
  25. package/icons/brush.svg +1 -0
  26. package/icons/building.svg +1 -0
  27. package/icons/calculated-column.svg +1 -0
  28. package/icons/calendar.svg +1 -0
  29. package/icons/call.svg +1 -0
  30. package/icons/case-lower.svg +1 -0
  31. package/icons/case-sentence.svg +1 -0
  32. package/icons/case-upper.svg +1 -0
  33. package/icons/cells.svg +1 -0
  34. package/icons/chart.svg +1 -0
  35. package/icons/chat.svg +1 -0
  36. package/icons/check-circle.svg +1 -0
  37. package/icons/check.svg +1 -0
  38. package/icons/checked.svg +1 -0
  39. package/icons/clipboard.svg +1 -0
  40. package/icons/clone.svg +1 -0
  41. package/icons/close.svg +1 -0
  42. package/icons/cloud-upload.svg +1 -0
  43. package/icons/collapse-all.svg +1 -0
  44. package/icons/collapse.svg +1 -0
  45. package/icons/color-palette.svg +1 -0
  46. package/icons/column-add.svg +1 -0
  47. package/icons/column-outline.svg +1 -0
  48. package/icons/columns.svg +1 -0
  49. package/icons/comment.svg +1 -0
  50. package/icons/comments.svg +1 -0
  51. package/icons/contact.svg +1 -0
  52. package/icons/contains.svg +1 -0
  53. package/icons/copy.svg +1 -0
  54. package/icons/csv.svg +1 -0
  55. package/icons/dashboard.svg +1 -0
  56. package/icons/data-set.svg +1 -0
  57. package/icons/date-range.svg +1 -0
  58. package/icons/delete.svg +1 -0
  59. package/icons/division.svg +1 -0
  60. package/icons/dock.svg +1 -0
  61. package/icons/dollar.svg +1 -0
  62. package/icons/download.svg +1 -0
  63. package/icons/downloaded.svg +1 -0
  64. package/icons/drag.svg +1 -0
  65. package/icons/edit-table.svg +1 -0
  66. package/icons/edit.svg +1 -0
  67. package/icons/ends-with.svg +1 -0
  68. package/icons/equals.svg +1 -0
  69. package/icons/equation.svg +1 -0
  70. package/icons/error.svg +1 -0
  71. package/icons/excel.svg +1 -0
  72. package/icons/expand-all.svg +1 -0
  73. package/icons/expand.svg +1 -0
  74. package/icons/exponent.svg +1 -0
  75. package/icons/export-data.svg +1 -0
  76. package/icons/export.svg +1 -0
  77. package/icons/fast-backward.svg +1 -0
  78. package/icons/fast-forward.svg +1 -0
  79. package/icons/fdc3.svg +1 -0
  80. package/icons/filled-circle.svg +1 -0
  81. package/icons/filter-list.svg +1 -0
  82. package/icons/filter-off.svg +1 -0
  83. package/icons/filter.svg +1 -0
  84. package/icons/flag.svg +1 -0
  85. package/icons/folder-open.svg +1 -0
  86. package/icons/folder-shared.svg +1 -0
  87. package/icons/folder.svg +1 -0
  88. package/icons/function.svg +1 -0
  89. package/icons/gradient.svg +1 -0
  90. package/icons/greater-than-or-equal.svg +1 -0
  91. package/icons/greater-than.svg +1 -0
  92. package/icons/grid-filter.svg +1 -0
  93. package/icons/grid-info.svg +1 -0
  94. package/icons/grid.svg +1 -0
  95. package/icons/history.svg +1 -0
  96. package/icons/home.svg +1 -0
  97. package/icons/horizontal-lines.svg +1 -0
  98. package/icons/import-export.svg +1 -0
  99. package/icons/import.svg +1 -0
  100. package/icons/info.svg +1 -0
  101. package/icons/interactions.svg +1 -0
  102. package/icons/italic.svg +1 -0
  103. package/icons/json.svg +1 -0
  104. package/icons/laptop.svg +1 -0
  105. package/icons/less-than-or-equal.svg +1 -0
  106. package/icons/less-than.svg +1 -0
  107. package/icons/lightning.svg +1 -0
  108. package/icons/link.svg +1 -0
  109. package/icons/list.svg +1 -0
  110. package/icons/logout.svg +1 -0
  111. package/icons/mail.svg +1 -0
  112. package/icons/menu.svg +1 -0
  113. package/icons/minus.svg +1 -0
  114. package/icons/money.svg +1 -0
  115. package/icons/multiplication.svg +1 -0
  116. package/icons/newpage.svg +1 -0
  117. package/icons/news.svg +1 -0
  118. package/icons/not-contains.svg +1 -0
  119. package/icons/not-equal.svg +1 -0
  120. package/icons/note.svg +1 -0
  121. package/icons/open-in-new.svg +1 -0
  122. package/icons/order.svg +1 -0
  123. package/icons/organisation.svg +1 -0
  124. package/icons/overline.svg +1 -0
  125. package/icons/paperclip.svg +1 -0
  126. package/icons/pause.svg +1 -0
  127. package/icons/percent-tag.svg +1 -0
  128. package/icons/percent.svg +1 -0
  129. package/icons/person.svg +1 -0
  130. package/icons/pie-chart.svg +1 -0
  131. package/icons/play.svg +1 -0
  132. package/icons/plus.svg +1 -0
  133. package/icons/quote.svg +1 -0
  134. package/icons/refresh.svg +1 -0
  135. package/icons/regex.svg +1 -0
  136. package/icons/reminder.svg +1 -0
  137. package/icons/resume.svg +1 -0
  138. package/icons/rows.svg +1 -0
  139. package/icons/save.svg +1 -0
  140. package/icons/schedule.svg +1 -0
  141. package/icons/science.svg +1 -0
  142. package/icons/search-table.svg +1 -0
  143. package/icons/search.svg +1 -0
  144. package/icons/select-all.svg +1 -0
  145. package/icons/select-fwd.svg +1 -0
  146. package/icons/select-off.svg +1 -0
  147. package/icons/settings.svg +1 -0
  148. package/icons/sort-asc.svg +1 -0
  149. package/icons/sort-desc.svg +1 -0
  150. package/icons/spanner.svg +1 -0
  151. package/icons/spark-line.svg +1 -0
  152. package/icons/starts-with.svg +1 -0
  153. package/icons/statusbar.svg +1 -0
  154. package/icons/stop.svg +1 -0
  155. package/icons/strikethrough.svg +1 -0
  156. package/icons/styled-grid.svg +1 -0
  157. package/icons/sync.svg +1 -0
  158. package/icons/tab-unselected.svg +1 -0
  159. package/icons/target.svg +1 -0
  160. package/icons/theme.svg +1 -0
  161. package/icons/traffic-lights.svg +1 -0
  162. package/icons/triangle-down.svg +1 -0
  163. package/icons/triangle-up.svg +1 -0
  164. package/icons/unchecked.svg +1 -0
  165. package/icons/underline.svg +1 -0
  166. package/icons/undo.svg +1 -0
  167. package/icons/unfilled-circle.svg +1 -0
  168. package/icons/upload.svg +1 -0
  169. package/icons/visibility-off-bold.svg +1 -0
  170. package/icons/visibility-off.svg +1 -0
  171. package/icons/visibility-on-bold.svg +1 -0
  172. package/icons/visibility-on.svg +1 -0
  173. package/icons/warning.svg +1 -0
  174. package/index.css +32 -15
  175. package/index.css.map +1 -1
  176. package/package.json +2 -2
  177. package/src/AdaptableInterfaces/IAdaptable.d.ts +10 -5
  178. package/src/AdaptableOptions/ColumnOptions.d.ts +71 -187
  179. package/src/AdaptableOptions/DefaultAdaptableOptions.js +3 -2
  180. package/src/AdaptableOptions/EditOptions.d.ts +4 -7
  181. package/src/AdaptableOptions/FilterOptions.d.ts +50 -15
  182. package/src/AdaptableOptions/LayoutOptions.d.ts +8 -21
  183. package/src/AdaptableOptions/PredicateOptions.d.ts +1 -1
  184. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +1 -1
  185. package/src/AdaptableState/Common/AdaptableColumn.d.ts +7 -0
  186. package/src/AdaptableState/Common/AdaptablePredicate.js +2 -2
  187. package/src/AdaptableState/Common/CustomWindowConfig.d.ts +11 -11
  188. package/src/AdaptableState/Common/ExtendedLayout.d.ts +50 -0
  189. package/src/AdaptableState/Common/ProgressIndicatorConfig.d.ts +1 -4
  190. package/src/AdaptableState/Common/RowScope.d.ts +1 -1
  191. package/src/AdaptableState/FormatColumnState.d.ts +16 -9
  192. package/src/AdaptableState/InternalState.d.ts +1 -1
  193. package/src/AdaptableState/LayoutState.d.ts +26 -6
  194. package/src/AdaptableState/Selection/GridCell.d.ts +32 -0
  195. package/src/AdaptableState/StyledColumnState.d.ts +2 -2
  196. package/src/Api/AlertApi.d.ts +5 -11
  197. package/src/Api/ColumnApi.d.ts +17 -1
  198. package/src/Api/ColumnFilterApi.d.ts +32 -2
  199. package/src/Api/CustomSortApi.d.ts +5 -10
  200. package/src/Api/FlashingCellApi.d.ts +10 -6
  201. package/src/Api/FormatColumnApi.d.ts +8 -18
  202. package/src/Api/Implementation/AlertApiImpl.d.ts +6 -9
  203. package/src/Api/Implementation/AlertApiImpl.js +7 -6
  204. package/src/Api/Implementation/ApiBase.d.ts +2 -12
  205. package/src/Api/Implementation/ApiBase.js +5 -5
  206. package/src/Api/Implementation/ColumnApiImpl.d.ts +5 -2
  207. package/src/Api/Implementation/ColumnApiImpl.js +59 -23
  208. package/src/Api/Implementation/ColumnFilterApiImpl.d.ts +7 -1
  209. package/src/Api/Implementation/ColumnFilterApiImpl.js +76 -3
  210. package/src/Api/Implementation/ColumnScopeApiImpl.js +10 -2
  211. package/src/Api/Implementation/CustomSortApiImpl.d.ts +5 -10
  212. package/src/Api/Implementation/CustomSortApiImpl.js +6 -4
  213. package/src/Api/Implementation/FlashingCellApiImpl.d.ts +7 -6
  214. package/src/Api/Implementation/FlashingCellApiImpl.js +11 -8
  215. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +8 -18
  216. package/src/Api/Implementation/FormatColumnApiImpl.js +10 -9
  217. package/src/Api/Implementation/LayoutApiImpl.d.ts +3 -2
  218. package/src/Api/Implementation/LayoutApiImpl.js +101 -7
  219. package/src/Api/Implementation/LayoutHelpers.d.ts +1 -0
  220. package/src/Api/Implementation/LayoutHelpers.js +25 -5
  221. package/src/Api/Implementation/PlusMinusApiImpl.d.ts +7 -5
  222. package/src/Api/Implementation/PlusMinusApiImpl.js +10 -7
  223. package/src/Api/Implementation/ScheduleApiImpl.d.ts +9 -16
  224. package/src/Api/Implementation/ScheduleApiImpl.js +15 -17
  225. package/src/Api/Implementation/ShortcutApiImpl.d.ts +5 -6
  226. package/src/Api/Implementation/ShortcutApiImpl.js +7 -8
  227. package/src/Api/Implementation/StyledColumnApiImpl.d.ts +7 -8
  228. package/src/Api/Implementation/StyledColumnApiImpl.js +12 -9
  229. package/src/Api/Implementation/TeamSharingApiImpl.js +1 -4
  230. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +2 -1
  231. package/src/Api/Implementation/UserInterfaceApiImpl.js +10 -9
  232. package/src/Api/Internal/AdaptableInternalApi.d.ts +2 -0
  233. package/src/Api/Internal/AdaptableInternalApi.js +3 -0
  234. package/src/Api/Internal/AlertInternalApi.d.ts +6 -6
  235. package/src/Api/Internal/AlertInternalApi.js +10 -10
  236. package/src/Api/Internal/ColumnFilterInternalApi.d.ts +13 -0
  237. package/src/Api/Internal/ColumnFilterInternalApi.js +93 -1
  238. package/src/Api/Internal/ColumnInternalApi.d.ts +2 -1
  239. package/src/Api/Internal/ColumnInternalApi.js +6 -2
  240. package/src/Api/Internal/DashboardInternalApi.js +1 -1
  241. package/src/Api/Internal/EntitlementInternalApi.d.ts +1 -0
  242. package/src/Api/Internal/EntitlementInternalApi.js +8 -0
  243. package/src/Api/Internal/ExportInternalApi.js +1 -1
  244. package/src/Api/Internal/FlashingCellInternalApi.js +1 -1
  245. package/src/Api/Internal/FormatColumnInternalApi.d.ts +12 -13
  246. package/src/Api/Internal/FormatColumnInternalApi.js +45 -16
  247. package/src/Api/Internal/GridInternalApi.d.ts +7 -10
  248. package/src/Api/Internal/GridInternalApi.js +76 -27
  249. package/src/Api/Internal/LayoutInternalApi.d.ts +5 -5
  250. package/src/Api/Internal/LayoutInternalApi.js +42 -5
  251. package/src/Api/Internal/PredicateInternalApi.d.ts +2 -6
  252. package/src/Api/Internal/PredicateInternalApi.js +4 -6
  253. package/src/Api/Internal/UserInterfaceInternalApi.d.ts +1 -0
  254. package/src/Api/Internal/UserInterfaceInternalApi.js +10 -3
  255. package/src/Api/LayoutApi.d.ts +7 -2
  256. package/src/Api/PlusMinusApi.d.ts +11 -7
  257. package/src/Api/ScheduleApi.d.ts +9 -16
  258. package/src/Api/ShortcutApi.d.ts +5 -6
  259. package/src/Api/StyledColumnApi.d.ts +10 -7
  260. package/src/Api/UserInterfaceApi.d.ts +5 -6
  261. package/src/Redux/ActionsReducers/InternalRedux.d.ts +4 -4
  262. package/src/Redux/ActionsReducers/InternalRedux.js +10 -10
  263. package/src/Redux/ActionsReducers/StyledColumnRedux.d.ts +7 -0
  264. package/src/Redux/ActionsReducers/StyledColumnRedux.js +15 -1
  265. package/src/Redux/Store/AdaptableStore.js +10 -10
  266. package/src/Strategy/AdaptableModuleBase.d.ts +14 -4
  267. package/src/Strategy/AdaptableModuleBase.js +46 -9
  268. package/src/Strategy/AlertModule.d.ts +3 -4
  269. package/src/Strategy/AlertModule.js +7 -4
  270. package/src/Strategy/CalculatedColumnModule.js +2 -2
  271. package/src/Strategy/CellSummaryModule.js +2 -2
  272. package/src/Strategy/ChartingModule.d.ts +3 -1
  273. package/src/Strategy/ChartingModule.js +9 -3
  274. package/src/Strategy/ColumnFilterModule.d.ts +1 -1
  275. package/src/Strategy/ColumnFilterModule.js +31 -15
  276. package/src/Strategy/ColumnInfoModule.js +2 -2
  277. package/src/Strategy/CommentModule.d.ts +1 -1
  278. package/src/Strategy/CommentModule.js +3 -3
  279. package/src/Strategy/CustomSortModule.d.ts +3 -4
  280. package/src/Strategy/CustomSortModule.js +2 -2
  281. package/src/Strategy/DashboardModule.js +1 -1
  282. package/src/Strategy/DataChangeHistoryModule.d.ts +2 -1
  283. package/src/Strategy/DataChangeHistoryModule.js +3 -10
  284. package/src/Strategy/DataImportModule.js +3 -3
  285. package/src/Strategy/ExportModule.js +1 -1
  286. package/src/Strategy/Fdc3Module.js +1 -1
  287. package/src/Strategy/FlashingCellModule.d.ts +3 -5
  288. package/src/Strategy/FlashingCellModule.js +3 -3
  289. package/src/Strategy/FormatColumnModule.d.ts +3 -4
  290. package/src/Strategy/FormatColumnModule.js +4 -2
  291. package/src/Strategy/FreeTextColumnModule.d.ts +1 -1
  292. package/src/Strategy/FreeTextColumnModule.js +2 -2
  293. package/src/Strategy/GridInfoModule.js +2 -2
  294. package/src/Strategy/Interface/IModule.d.ts +7 -3
  295. package/src/Strategy/LayoutModule.js +11 -11
  296. package/src/Strategy/NoteModule.d.ts +1 -1
  297. package/src/Strategy/NoteModule.js +3 -3
  298. package/src/Strategy/PlusMinusModule.d.ts +3 -4
  299. package/src/Strategy/PlusMinusModule.js +2 -2
  300. package/src/Strategy/QuickSearchModule.d.ts +2 -0
  301. package/src/Strategy/QuickSearchModule.js +9 -0
  302. package/src/Strategy/ScheduleModule.d.ts +3 -4
  303. package/src/Strategy/ScheduleModule.js +2 -2
  304. package/src/Strategy/SettingsPanelModule.js +1 -1
  305. package/src/Strategy/ShortcutModule.d.ts +3 -4
  306. package/src/Strategy/ShortcutModule.js +2 -2
  307. package/src/Strategy/StatusBarModule.d.ts +3 -2
  308. package/src/Strategy/StatusBarModule.js +6 -3
  309. package/src/Strategy/StyledColumnModule.d.ts +3 -4
  310. package/src/Strategy/StyledColumnModule.js +2 -2
  311. package/src/Strategy/SystemStatusModule.js +2 -2
  312. package/src/Strategy/TeamSharingModule.d.ts +1 -1
  313. package/src/Strategy/TeamSharingModule.js +5 -2
  314. package/src/Strategy/ToolPanelModule.d.ts +1 -1
  315. package/src/Strategy/ToolPanelModule.js +1 -4
  316. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsTargetItems.d.ts +5 -0
  317. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsTargetItems.js +16 -0
  318. package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.js +1 -1
  319. package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +1 -0
  320. package/src/Utilities/Constants/DocumentationLinkConstants.js +2 -1
  321. package/src/Utilities/Extensions/ArrayExtensions.d.ts +15 -2
  322. package/src/Utilities/Extensions/ArrayExtensions.js +68 -15
  323. package/src/Utilities/ObjectFactory.js +3 -2
  324. package/src/Utilities/Services/AnnotationsService.js +1 -1
  325. package/src/Utilities/Services/Interface/IModuleService.d.ts +2 -1
  326. package/src/Utilities/Services/ModuleService.d.ts +3 -3
  327. package/src/Utilities/Services/ModuleService.js +18 -6
  328. package/src/Utilities/getScopeViewItems.js +6 -2
  329. package/src/View/AdaptableView.js +3 -1
  330. package/src/View/ColumnInfo/ColumnInfo.js +9 -3
  331. package/src/View/Components/AdaptableIconSelector/index.js +2 -3
  332. package/src/View/Components/ColumnFilter/AdaptableColumnFilter.d.ts +0 -1
  333. package/src/View/Components/ColumnFilter/AdaptableColumnFilter.js +2 -3
  334. package/src/View/Components/ColumnFilter/AdaptableFloatingFilter.d.ts +0 -2
  335. package/src/View/Components/ColumnFilter/AdaptableFloatingFilter.js +4 -7
  336. package/src/View/Components/ColumnFilter/ColumnFilter.js +11 -4
  337. package/src/View/Components/ColumnFilter/ColumnFilterWindow.js +1 -1
  338. package/src/View/Components/ColumnFilter/FloatingFilter.js +1 -2
  339. package/src/View/Components/ColumnFilter/LayoutColumnFilter.js +1 -1
  340. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +2 -2
  341. package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +2 -2
  342. package/src/View/Components/ColumnFilter/useAdaptableFilterWrapper.d.ts +1 -1
  343. package/src/View/Components/ColumnFilter/useAdaptableFilterWrapper.js +2 -2
  344. package/src/View/Components/ColumnFilter/utils.d.ts +2 -2
  345. package/src/View/Components/ColumnFilter/utils.js +6 -1
  346. package/src/View/Components/EntityRulesEditor/index.js +1 -2
  347. package/src/View/Components/FilterForm/ListBoxFilterForm.js +1 -1
  348. package/src/View/Components/NewScopeComponent.js +5 -1
  349. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +5 -5
  350. package/src/View/Components/PredicateEditor/PredicateEditor.js +1 -2
  351. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +1 -1
  352. package/src/View/Components/Selectors/ColumnSelector.js +1 -1
  353. package/src/View/Components/Selectors/FieldSelector.js +1 -1
  354. package/src/View/Components/Selectors/PermittedValuesSelector.d.ts +1 -0
  355. package/src/View/Components/Selectors/PermittedValuesSelector.js +2 -2
  356. package/src/View/Dashboard/Dashboard.js +2 -2
  357. package/src/View/Dashboard/DashboardPopup.js +3 -1
  358. package/src/View/Dashboard/PinnedDashboard.js +1 -1
  359. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +9 -21
  360. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +59 -22
  361. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +4 -0
  362. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +0 -39
  363. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +13 -12
  364. package/src/View/FormatColumn/Wizard/FormatColumnTargetWizardSection.d.ts +8 -0
  365. package/src/View/FormatColumn/Wizard/FormatColumnTargetWizardSection.js +37 -0
  366. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +18 -4
  367. package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.js +1 -1
  368. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -2
  369. package/src/View/Layout/TransposedPopup.js +2 -2
  370. package/src/View/Layout/Wizard/sections/ColumnsSection.js +64 -9
  371. package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +5 -5
  372. package/src/View/StatusBar/AdaptableStatusBar.js +1 -4
  373. package/src/View/StatusBar/StatusBarPopup.js +1 -1
  374. package/src/View/Theme/ThemeSelector.js +1 -1
  375. package/src/agGrid/AdaptableAgGrid.d.ts +11 -7
  376. package/src/agGrid/AdaptableAgGrid.js +256 -218
  377. package/src/agGrid/AdaptableFilterHandler.d.ts +18 -0
  378. package/src/agGrid/AdaptableFilterHandler.js +65 -0
  379. package/src/agGrid/AgGridAdapter.d.ts +3 -7
  380. package/src/agGrid/AgGridAdapter.js +13 -46
  381. package/src/agGrid/AgGridColumnAdapter.d.ts +3 -3
  382. package/src/agGrid/AgGridColumnAdapter.js +86 -40
  383. package/src/agGrid/AgGridExportAdapter.js +1 -1
  384. package/src/agGrid/AgGridFilterAdapter.d.ts +2 -0
  385. package/src/agGrid/AgGridFilterAdapter.js +53 -0
  386. package/src/agGrid/AgGridFloatingFilterAdapter.d.ts +2 -0
  387. package/src/agGrid/{FloatingFilterWrapper.js → AgGridFloatingFilterAdapter.js} +26 -37
  388. package/src/agGrid/AgGridModulesAdapter.d.ts +15 -0
  389. package/src/agGrid/AgGridModulesAdapter.js +70 -0
  390. package/src/agGrid/editors/AdaptableNumberEditor/InternalAdaptableNumberEditor.js +1 -1
  391. package/src/agGrid/editors/AdaptablePercentageEditor/InternalAdaptablePercentageEditor.js +1 -1
  392. package/src/components/Dialog/index.js +1 -1
  393. package/src/components/Dropdown/Arrows.js +2 -2
  394. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.d.ts +1 -1
  395. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +4 -4
  396. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +1 -1
  397. package/src/components/FileDroppable/index.js +1 -1
  398. package/src/components/IconSelector/IconSelector.d.ts +2 -2
  399. package/src/components/OverlayTrigger/index.js +1 -1
  400. package/src/components/Select/Select.d.ts +1 -1
  401. package/src/components/Select/Select.js +114 -22
  402. package/src/components/icons/DefaultIcon.d.ts +0 -1
  403. package/src/components/icons/DefaultIcon.js +0 -8
  404. package/src/env.js +2 -2
  405. package/src/layout-manager/src/LayoutManagerModel.d.ts +6 -10
  406. package/src/layout-manager/src/index.d.ts +11 -3
  407. package/src/layout-manager/src/index.js +302 -87
  408. package/src/layout-manager/src/normalizeLayoutModel.js +7 -4
  409. package/src/layout-manager/src/simplifyLayoutModel.js +4 -4
  410. package/src/metamodel/adaptable.metamodel.d.ts +172 -20
  411. package/src/metamodel/adaptable.metamodel.js +1 -1
  412. package/src/migration/AdaptableUpgradeHelper.js +2 -0
  413. package/src/migration/VersionUpgrade17.js +1 -1
  414. package/src/migration/VersionUpgrade20.js +1 -0
  415. package/src/migration/VersionUpgrade21.d.ts +6 -0
  416. package/src/migration/VersionUpgrade21.js +28 -0
  417. package/src/types.d.ts +8 -9
  418. package/tsconfig.cjs.tsbuildinfo +1 -1
  419. package/src/AdaptableState/Common/ExtendedLayoutInfo.d.ts +0 -27
  420. package/src/agGrid/FilterWrapper.d.ts +0 -2
  421. package/src/agGrid/FilterWrapper.js +0 -136
  422. package/src/agGrid/FloatingFilterWrapper.d.ts +0 -2
  423. package/src/agGrid/agGridModules.d.ts +0 -3
  424. package/src/agGrid/agGridModules.js +0 -18
  425. package/src/agGrid/getAgGridFilterNotifyModelFn.d.ts +0 -2
  426. package/src/agGrid/getAgGridFilterNotifyModelFn.js +0 -21
  427. /package/src/AdaptableState/Common/{ExtendedLayoutInfo.js → ExtendedLayout.js} +0 -0
@@ -40,36 +40,36 @@ class FormatColumnInternalApi extends ApiBase_1.ApiBase {
40
40
  * Retrieves all Format Columns in Adaptable State with the `Style` property set
41
41
  * @returns format columns
42
42
  */
43
- getAllFormatColumnWithStyle() {
43
+ getAllFormatColumnWithStyle(config) {
44
44
  return this.getFormatColumnApi()
45
- .getFormatColumns()
45
+ .getFormatColumns(config)
46
46
  .filter((fc) => fc.Style);
47
47
  }
48
48
  /**
49
49
  * Retrieves all Format Columns in Adaptable State with the `Style` or the `CellAlignment` property set
50
50
  * @returns format columns
51
51
  */
52
- getAllFormatColumnWithStyleAndCellAlignment() {
52
+ getAllFormatColumnWithStyleAndCellAlignment(config) {
53
53
  return this.getFormatColumnApi()
54
- .getFormatColumns()
54
+ .getFormatColumns(config)
55
55
  .filter((fc) => fc.Style || fc.CellAlignment);
56
56
  }
57
57
  /**
58
58
  * Retrieves all Format Columns in Adaptable State with `DisplayFormat` property set
59
59
  * @returns format columns
60
60
  */
61
- getAllFormatColumnWithDisplayFormat() {
61
+ getAllFormatColumnWithDisplayFormat(config) {
62
62
  return this.getFormatColumnApi()
63
- .getFormatColumns()
63
+ .getFormatColumns(config)
64
64
  .filter((fc) => fc.DisplayFormat);
65
65
  }
66
66
  /**
67
67
  * Retrieves all Format Columns in Adaptable State with `CellAlignment` property set
68
68
  * @returns format columns
69
69
  */
70
- getAllFormatColumnWithCellAlignment() {
70
+ getAllFormatColumnWithCellAlignment(config) {
71
71
  return this.getFormatColumnApi()
72
- .getFormatColumns()
72
+ .getFormatColumns(config)
73
73
  .filter((fc) => fc.CellAlignment);
74
74
  }
75
75
  /**
@@ -82,8 +82,8 @@ class FormatColumnInternalApi extends ApiBase_1.ApiBase {
82
82
  const formatColumns = this.getAllFormatColumnWithStyleAndCellAlignment()
83
83
  .filter((formatColumn) => {
84
84
  // FormatColumn default target is 'cell', so if no target is specified, we assume 'cell'
85
- const fcTarget = formatColumn.Target ?? ['cell'];
86
- return fcTarget.includes(config.target);
85
+ const fcTarget = formatColumn.Target ?? 'cell';
86
+ return fcTarget === config.target;
87
87
  })
88
88
  .filter((formatColumn) => config?.includeSuspended || !formatColumn.IsSuspended);
89
89
  return this.getFormatColumnWithColumnInScope(formatColumns, column);
@@ -120,7 +120,13 @@ class FormatColumnInternalApi extends ApiBase_1.ApiBase {
120
120
  * @returns list of FormatColumn
121
121
  */
122
122
  getFormatColumnsWithDisplayFormatForColumn(column, config) {
123
- const formatColumns = this.getAllFormatColumnWithDisplayFormat().filter((formatColumn) => config?.includeSuspended || !formatColumn.IsSuspended);
123
+ const formatColumns = this.getAllFormatColumnWithDisplayFormat()
124
+ .filter((formatColumn) => {
125
+ // FormatColumn default target is 'cell', so if no target is specified, we assume 'cell'
126
+ const fcTarget = formatColumn.Target ?? 'cell';
127
+ return fcTarget === config.target;
128
+ })
129
+ .filter((formatColumn) => config?.includeSuspended || !formatColumn.IsSuspended);
124
130
  return this.getFormatColumnWithColumnInScope(formatColumns, column);
125
131
  }
126
132
  /**
@@ -187,7 +193,7 @@ class FormatColumnInternalApi extends ApiBase_1.ApiBase {
187
193
  return true;
188
194
  }
189
195
  const agGridApi = this.getAdaptableApi().agGridApi;
190
- const agGridColumn = agGridApi.isPivotMode()
196
+ const agGridColumn = this._adaptable.isInPivotMode()
191
197
  ? agGridApi.getPivotResultColumns().find((col) => col.getColId() === column.columnId)
192
198
  : agGridApi.getColumn(column.columnId);
193
199
  if (!agGridColumn) {
@@ -329,14 +335,14 @@ class FormatColumnInternalApi extends ApiBase_1.ApiBase {
329
335
  * Retrieves all Format Columns which have an Expression
330
336
  * @returns Format Columns with Expression
331
337
  */
332
- getFormatColumnsWithExpression() {
338
+ getFormatColumnsWithExpression(config) {
333
339
  return this.getFormatColumnApi()
334
- .getFormatColumns()
340
+ .getFormatColumns(config)
335
341
  .filter((fc) => !!fc.Rule?.BooleanExpression);
336
342
  }
337
- getFormatColumnsDependentOnColumns(columnSet) {
343
+ getFormatColumnsDependentOnColumns(columnSet, config) {
338
344
  return this.getFormatColumnApi()
339
- .getFormatColumns()
345
+ .getFormatColumns(config)
340
346
  .filter((fc) => fc.Rule?.Predicates?.some((p) => columnSet.has(p.ColumnId)));
341
347
  }
342
348
  /**
@@ -360,5 +366,28 @@ class FormatColumnInternalApi extends ApiBase_1.ApiBase {
360
366
  });
361
367
  return [...columnsThatNeedRefresh];
362
368
  }
369
+ formatColumnHeaderName(headerName, params) {
370
+ // currently we only format the header name for normal columns (NOT column groups)
371
+ if (!params.column) {
372
+ return headerName;
373
+ }
374
+ const abColumn = this.getColumnApi().getColumnWithColumnId(params.column.getColId());
375
+ const activeFormatColumnsWithDisplayFormat = this.getFormatColumnApi().internalApi.getFormatColumnsWithDisplayFormatForColumn(abColumn, {
376
+ target: 'columnHeader',
377
+ });
378
+ if (!activeFormatColumnsWithDisplayFormat.length) {
379
+ return headerName;
380
+ }
381
+ const mostRelevantFormatColumn = activeFormatColumnsWithDisplayFormat.find((formatColumn) => this.formatColumnShouldRenderInHeader(formatColumn, abColumn));
382
+ if (!mostRelevantFormatColumn) {
383
+ return headerName;
384
+ }
385
+ if (mostRelevantFormatColumn.DisplayFormat?.Formatter !== 'StringFormatter') {
386
+ // headers are always strings, so we can only use StringFormatter
387
+ return headerName;
388
+ }
389
+ const formattedHeaderName = this.getFormatColumnApi().internalApi.getStringFormattedValue(headerName, null, abColumn, mostRelevantFormatColumn.DisplayFormat.Options);
390
+ return formattedHeaderName;
391
+ }
363
392
  }
364
393
  exports.FormatColumnInternalApi = FormatColumnInternalApi;
@@ -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
  }
@@ -4,7 +4,8 @@ exports.GridInternalApi = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const Enums_1 = require("../../AdaptableState/Common/Enums");
6
6
  const InternalRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/InternalRedux"));
7
- const ArrayExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Extensions/ArrayExtensions"));
7
+ const ArrayExtensions_1 = require("../../Utilities/Extensions/ArrayExtensions");
8
+ const infinite_react_1 = require("@infinite-table/infinite-react");
8
9
  const StyleHelper_1 = require("../../Utilities/Helpers/StyleHelper");
9
10
  const UIHelper_1 = tslib_1.__importDefault(require("../../View/UIHelper"));
10
11
  const ApiBase_1 = require("../Implementation/ApiBase");
@@ -40,20 +41,13 @@ class GridInternalApi extends ApiBase_1.ApiBase {
40
41
  if (abColumn == undefined) {
41
42
  return [];
42
43
  }
43
- let gridCells = await this._adaptable.getDistinctFilterValuesForColumn({
44
+ const inFilterValues = await this._adaptable.getDistinctFilterValuesForColumn({
44
45
  column: abColumn,
45
46
  get currentSearchValue() {
46
47
  return options.currentSearchValue;
47
48
  },
48
49
  });
49
- gridCells = gridCells || [];
50
- const valueOptions = gridCells.map((cv) => {
51
- return {
52
- label: cv.displayValue,
53
- value: cv.normalisedValue,
54
- };
55
- });
56
- return valueOptions;
50
+ return inFilterValues || [];
57
51
  }
58
52
  async getDistinctValuesForColumn(columnId) {
59
53
  const abColumn = this.getColumnApi().getColumnWithColumnId(columnId);
@@ -63,31 +57,19 @@ class GridInternalApi extends ApiBase_1.ApiBase {
63
57
  const gridCells = await this._adaptable.getDistinctValuesForColumn(abColumn);
64
58
  return gridCells;
65
59
  }
66
- async getDistinctDisplayValuesForColumn(columnId) {
67
- const distinctValues = await this.getDistinctValuesForColumn(columnId);
68
- return distinctValues.map((gc) => {
69
- return gc.displayValue;
70
- });
71
- }
72
60
  async getDistinctEditDisplayValuesForColumn(options) {
73
61
  const abColumn = this.getColumnApi().getColumnWithColumnId(options.columnId);
74
62
  if (!abColumn) {
75
63
  return undefined;
76
64
  }
77
- let gridCells = await this._adaptable.getDistinctEditValuesForColumn({
65
+ const valueOptions = await this._adaptable.getDistinctEditValuesForColumn({
78
66
  column: abColumn,
79
67
  gridCell: options.gridCell,
80
68
  get currentSearchValue() {
81
69
  return options.currentSearchValue;
82
70
  },
83
71
  });
84
- gridCells = gridCells || [];
85
- return gridCells.map((gc) => {
86
- return {
87
- label: gc.displayValue,
88
- value: gc.normalisedValue,
89
- };
90
- });
72
+ return valueOptions || [];
91
73
  }
92
74
  /**
93
75
  * Gets all distinct raw values in Column. Values are sorted.
@@ -113,6 +95,58 @@ class GridInternalApi extends ApiBase_1.ApiBase {
113
95
  }
114
96
  return this._adaptable.getDistinctGridCellsForColumn(abColumn);
115
97
  }
98
+ getSortedRowNodesWithCurrentLayoutSortOrder(rowNodes) {
99
+ const currentLayout = this.getLayoutApi().getCurrentLayout();
100
+ const columnSorts = currentLayout.ColumnSorts || [];
101
+ const columnApi = this.getColumnApi();
102
+ const rowNodesMapToCells = new Map();
103
+ const allRowNodes = [];
104
+ // for each row node,let's create an object
105
+ // with only those gridcells that are needed - meaning
106
+ // for those column that are in the current sort
107
+ const rowNodeCallback = (node) => {
108
+ allRowNodes.push(node);
109
+ const rowNodeCells = {};
110
+ rowNodesMapToCells.set(node, rowNodeCells);
111
+ columnSorts.forEach((columnSort, i) => {
112
+ const { ColumnId } = columnSort;
113
+ const gridCell = this._adaptable.getGridCellFromRowNode(node, ColumnId);
114
+ rowNodeCells[ColumnId] = gridCell;
115
+ });
116
+ };
117
+ if (rowNodes) {
118
+ rowNodes.forEach(rowNodeCallback);
119
+ }
120
+ else {
121
+ this.getAgGridApi().forEachNode(rowNodeCallback);
122
+ }
123
+ if (!columnSorts.length) {
124
+ return allRowNodes;
125
+ }
126
+ const sortInfo = columnSorts.map((columnSort) => {
127
+ const { ColumnId } = columnSort;
128
+ // NOTE: the comparator we pass to multisort should always sort in ascending order
129
+ // that's why we pass SortOrder.Asc to the comparators
130
+ const comparator = columnApi.hasNumberDataType(ColumnId)
131
+ ? (0, ArrayExtensions_1.getNumericComparatorForGridCell)(Enums_1.SortOrder.Asc)
132
+ : columnApi.hasDateDataType(ColumnId)
133
+ ? (0, ArrayExtensions_1.getDateComparatorForGridCell)(Enums_1.SortOrder.Asc)
134
+ : (0, ArrayExtensions_1.getGenericComparatorForGridCell)(Enums_1.SortOrder.Asc);
135
+ return {
136
+ // but here we pass the actual direction of the column sort
137
+ dir: columnSort.SortOrder === 'Asc' ? 1 : -1,
138
+ fn: (rowNodeA, rowNodeB) => {
139
+ const gridCellA = rowNodesMapToCells.get(rowNodeA)?.[ColumnId];
140
+ const gridCellB = rowNodesMapToCells.get(rowNodeB)?.[ColumnId];
141
+ if (!gridCellA || !gridCellB) {
142
+ return 0;
143
+ }
144
+ return comparator(gridCellA, gridCellB);
145
+ },
146
+ };
147
+ });
148
+ return (0, infinite_react_1.multisort)(sortInfo, allRowNodes);
149
+ }
116
150
  sortDistinctValues(returnValues, column) {
117
151
  // this does NOT into account Custom Sort - far too hard for now...
118
152
  let sortOrder = undefined;
@@ -127,13 +161,13 @@ class GridInternalApi extends ApiBase_1.ApiBase {
127
161
  }
128
162
  if (sortOrder) {
129
163
  if (this.getColumnApi().hasNumberDataType(column?.columnId)) {
130
- returnValues = ArrayExtensions_1.default.sortCellValueArrayNumeric(returnValues, sortOrder);
164
+ returnValues = (0, ArrayExtensions_1.sortCellValueArrayNumeric)(returnValues, sortOrder);
131
165
  }
132
166
  else if (this.getColumnApi().hasDateDataType(column?.columnId)) {
133
- returnValues = ArrayExtensions_1.default.sortCellValueArrayDates(returnValues, sortOrder);
167
+ returnValues = (0, ArrayExtensions_1.sortCellValueArrayDates)(returnValues, sortOrder);
134
168
  }
135
169
  else {
136
- returnValues = ArrayExtensions_1.default.sortCellValueArray(returnValues, sortOrder);
170
+ returnValues = (0, ArrayExtensions_1.sortCellValueArray)(returnValues, sortOrder);
137
171
  }
138
172
  }
139
173
  return returnValues;
@@ -226,5 +260,20 @@ class GridInternalApi extends ApiBase_1.ApiBase {
226
260
  }
227
261
  return undefined;
228
262
  }
263
+ isRowFilterable(rowNode) {
264
+ // first assess if the Row is filterable - if not, then return true so it appears in Grid
265
+ const isRowFilterable = this.getOptionsApi().getFilterOptions().isRowFilterable;
266
+ if (typeof isRowFilterable === 'function') {
267
+ const rowFilterableContext = {
268
+ ...this.getAdaptableApi().internalApi.buildBaseContext(),
269
+ rowNode,
270
+ data: rowNode.data,
271
+ };
272
+ if (!isRowFilterable(rowFilterableContext)) {
273
+ return false;
274
+ }
275
+ }
276
+ return true;
277
+ }
229
278
  }
230
279
  exports.GridInternalApi = GridInternalApi;
@@ -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
  }
@@ -124,12 +124,12 @@ class LayoutInternalApi extends ApiBase_1.ApiBase {
124
124
  return false;
125
125
  }
126
126
  if (layoutTagOptions.autoCheckTagsForLayouts == true ||
127
- typeof layoutTagOptions?.isObjectAvailableInLayout === 'function') {
127
+ typeof layoutTagOptions?.isObjectExtendedInLayout === 'function') {
128
128
  return true;
129
129
  }
130
130
  return false;
131
131
  }
132
- isObjectAvailableInLayout(object, module, layout) {
132
+ isObjectExtendedInLayout(object, module, layout) {
133
133
  if (!this.hasLayoutSpecificObjects()) {
134
134
  return true;
135
135
  }
@@ -143,10 +143,10 @@ class LayoutInternalApi extends ApiBase_1.ApiBase {
143
143
  layout,
144
144
  ...this.getAdaptableInternalApi().buildBaseContext(),
145
145
  };
146
- return layoutTagOptions?.isObjectAvailableInLayout(context);
146
+ return layoutTagOptions?.isObjectExtendedInLayout(context);
147
147
  }
148
- showLayoutNotAssociatedObjects() {
149
- return this.getAdaptableState().Internal.Layout.ShowLayoutNotAssociatedObjects;
148
+ showLayoutNonExtendedObjects() {
149
+ return this.getAdaptableState().Internal.Layout.showLayoutNonExtendedObjects;
150
150
  }
151
151
  isLayoutGrouped(layout) {
152
152
  if (!layout) {
@@ -155,6 +155,10 @@ class LayoutInternalApi extends ApiBase_1.ApiBase {
155
155
  return (layout?.RowGroupedColumns?.length || layout?.PivotGroupedColumns?.length) > 0;
156
156
  }
157
157
  setupRowSummaries() {
158
+ if (!this._adaptable.agGridModulesAdapter.isAgGridModuleRegistered('PinnedRowModule')) {
159
+ this.getAdaptableApi().consoleError(`Can NOT set Layout Row Summaries - missing required AG Grid module 'PinnedRowModule'`);
160
+ return;
161
+ }
158
162
  const rowSummaries = this.getAdaptableState().Internal?.RowSummary?.rowSummaries ?? [];
159
163
  const { top, bottom } = rowSummaries.reduce((acc, summaryRow) => {
160
164
  const row = summaryRow.RowData;
@@ -173,5 +177,38 @@ class LayoutInternalApi extends ApiBase_1.ApiBase {
173
177
  refreshLayout() {
174
178
  this._adaptable.refreshLayout();
175
179
  }
180
+ getChangedColumnSorts(oldSorts, newSorts) {
181
+ if (ArrayExtensions_1.default.IsNullOrEmpty(oldSorts) && ArrayExtensions_1.default.IsNullOrEmpty(newSorts)) {
182
+ return [];
183
+ }
184
+ // If either one is empty but not both, all columns in the non-empty array have changed
185
+ if (ArrayExtensions_1.default.IsNullOrEmpty(oldSorts)) {
186
+ return newSorts.map((sort) => sort.ColumnId);
187
+ }
188
+ if (ArrayExtensions_1.default.IsNullOrEmpty(newSorts)) {
189
+ return oldSorts.map((sort) => sort.ColumnId);
190
+ }
191
+ const changedColumnIds = [];
192
+ // Create maps for quick lookup
193
+ const oldSortsMap = new Map();
194
+ oldSorts.forEach((sort) => {
195
+ oldSortsMap.set(sort.ColumnId, sort.SortOrder);
196
+ });
197
+ // Check columns in new sorts that changed from old sorts
198
+ newSorts.forEach((newSort) => {
199
+ const oldSortOrder = oldSortsMap.get(newSort.ColumnId);
200
+ // If column wasn't sorted before or sort order changed
201
+ if (oldSortOrder === undefined || oldSortOrder !== newSort.SortOrder) {
202
+ changedColumnIds.push(newSort.ColumnId);
203
+ }
204
+ // Remove processed columns from the map
205
+ oldSortsMap.delete(newSort.ColumnId);
206
+ });
207
+ // Add remaining columns from old sorts (these were removed in new sorts)
208
+ oldSortsMap.forEach((_, columnId) => {
209
+ changedColumnIds.push(columnId);
210
+ });
211
+ return changedColumnIds;
212
+ }
176
213
  }
177
214
  exports.LayoutInternalApi = LayoutInternalApi;
@@ -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
  */
@@ -3,14 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PredicateInternalApi = void 0;
4
4
  const ApiBase_1 = require("../Implementation/ApiBase");
5
5
  class PredicateInternalApi extends ApiBase_1.ApiBase {
6
- /**
7
- * Returns true if the predicate has a dropdown.
8
- *
9
- * @param predicate
10
- */
11
- hasPredicateValues(predicate) {
6
+ IsInOrNotInPredicate(predicate) {
12
7
  return predicate?.PredicateId === 'In' || predicate?.PredicateId === 'NotIn';
13
8
  }
9
+ IsInorNotInPredicateDef(predicateDef) {
10
+ return predicateDef && ['In', 'NotIn'].includes(predicateDef.id);
11
+ }
14
12
  /**
15
13
  * Get all Filter Predicate Definitions - System and Custom
16
14
  */
@@ -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
  }
@@ -5,15 +5,22 @@ const ApiBase_1 = require("../Implementation/ApiBase");
5
5
  class UserInterfaceInternalApi extends ApiBase_1.ApiBase {
6
6
  prepareAdaptableIconDef(icon) {
7
7
  if (icon && 'name' in icon) {
8
- let customIcon = icon && 'name' in icon
9
- ? this.getUserInterfaceApi().getCustomIconDefinition(icon.name)
10
- : null;
8
+ let customIcon = icon && 'name' in icon ? this.getCustomIconDefinition(icon.name) : null;
11
9
  if (customIcon) {
12
10
  icon = customIcon;
13
11
  }
14
12
  }
15
13
  return icon;
16
14
  }
15
+ getCustomIconDefinition(iconName) {
16
+ let customIcon = undefined;
17
+ const customIcons = this.getUserInterfaceApi().getCustomIcons();
18
+ customIcon = customIcons.find((icon) => icon.name === iconName);
19
+ if (customIcon) {
20
+ return customIcon.icon;
21
+ }
22
+ return customIcon;
23
+ }
17
24
  shouldShowSelectCellEditor(column) {
18
25
  const showSelectCellEditor = this.getEditOptions().showSelectCellEditor;
19
26
  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