@adaptabletools/adaptable 13.1.1 → 14.0.0-canary.1

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 (382) hide show
  1. package/README.md +1 -1
  2. package/base.css +7 -2
  3. package/base.css.map +1 -1
  4. package/bundle.cjs.js +180 -177
  5. package/index.css +11 -2
  6. package/index.css.map +1 -1
  7. package/package.json +2 -2
  8. package/publishTimestamp.d.ts +1 -1
  9. package/publishTimestamp.js +1 -1
  10. package/src/AdaptableInterfaces/IAdaptable.d.ts +4 -1
  11. package/src/AdaptableOptions/ActionOptions.d.ts +4 -1
  12. package/src/AdaptableOptions/AdaptableQLOptions.d.ts +1 -9
  13. package/src/AdaptableOptions/AlertOptions.d.ts +6 -1
  14. package/src/AdaptableOptions/ChartingOptions.d.ts +1 -1
  15. package/src/AdaptableOptions/DataChangeHistoryOptions.d.ts +1 -1
  16. package/src/AdaptableOptions/ExportOptions.d.ts +1 -1
  17. package/src/AdaptableOptions/GeneralOptions.d.ts +8 -3
  18. package/src/AdaptableOptions/MasterDetailPluginOptions.d.ts +6 -4
  19. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +1 -1
  20. package/src/Api/ActionApi.d.ts +14 -3
  21. package/src/Api/AdaptableApi.d.ts +0 -6
  22. package/src/Api/AlertApi.d.ts +127 -92
  23. package/src/Api/BulkUpdateApi.d.ts +9 -2
  24. package/src/Api/CalculatedColumnApi.d.ts +26 -21
  25. package/src/Api/CellSummaryApi.d.ts +15 -8
  26. package/src/Api/ChartingApi.d.ts +9 -2
  27. package/src/Api/ColumnApi.d.ts +153 -115
  28. package/src/Api/ConfigApi.d.ts +18 -18
  29. package/src/Api/CustomSortApi.d.ts +36 -7
  30. package/src/Api/DashboardApi.d.ts +12 -5
  31. package/src/Api/DataChangeHistoryApi.d.ts +8 -1
  32. package/src/Api/DataSetApi.d.ts +13 -3
  33. package/src/Api/EventApi.d.ts +2 -2
  34. package/src/Api/ExportApi.d.ts +30 -13
  35. package/src/Api/FilterApi.d.ts +74 -62
  36. package/src/Api/FlashingCellApi.d.ts +25 -9
  37. package/src/Api/FormatColumnApi.d.ts +76 -95
  38. package/src/Api/FreeTextColumnApi.d.ts +53 -21
  39. package/src/Api/GridApi.d.ts +57 -22
  40. package/src/Api/Implementation/ActionApiImpl.d.ts +9 -3
  41. package/src/Api/Implementation/ActionApiImpl.js +23 -11
  42. package/src/Api/Implementation/AdaptableApiImpl.d.ts +2 -2
  43. package/src/Api/Implementation/AdaptableApiImpl.js +5 -2
  44. package/src/Api/Implementation/AlertApiImpl.d.ts +57 -28
  45. package/src/Api/Implementation/AlertApiImpl.js +179 -197
  46. package/src/Api/Implementation/ApiBase.d.ts +43 -2
  47. package/src/Api/Implementation/ApiBase.js +129 -5
  48. package/src/Api/Implementation/ApplicationApiImpl.d.ts +1 -1
  49. package/src/Api/Implementation/BulkUpdateApiImpl.d.ts +1 -0
  50. package/src/Api/Implementation/BulkUpdateApiImpl.js +4 -1
  51. package/src/Api/Implementation/CalculatedColumnApiImpl.d.ts +7 -2
  52. package/src/Api/Implementation/CalculatedColumnApiImpl.js +28 -37
  53. package/src/Api/Implementation/CellSummaryApiImpl.d.ts +1 -0
  54. package/src/Api/Implementation/CellSummaryApiImpl.js +6 -1
  55. package/src/Api/Implementation/ChartingApiImpl.d.ts +2 -2
  56. package/src/Api/Implementation/ChartingApiImpl.js +10 -4
  57. package/src/Api/Implementation/ColumnApiImpl.d.ts +22 -6
  58. package/src/Api/Implementation/ColumnApiImpl.js +184 -195
  59. package/src/Api/Implementation/ConfigApiImpl.d.ts +1 -1
  60. package/src/Api/Implementation/ConfigApiImpl.js +1 -1
  61. package/src/Api/Implementation/CustomSortApiImpl.d.ts +16 -1
  62. package/src/Api/Implementation/CustomSortApiImpl.js +33 -7
  63. package/src/Api/Implementation/DashboardApiImpl.d.ts +6 -1
  64. package/src/Api/Implementation/DashboardApiImpl.js +11 -12
  65. package/src/Api/Implementation/DataChangeHistoryApiImpl.d.ts +1 -0
  66. package/src/Api/Implementation/DataChangeHistoryApiImpl.js +5 -0
  67. package/src/Api/Implementation/DataSetApiImpl.d.ts +6 -0
  68. package/src/Api/Implementation/DataSetApiImpl.js +17 -8
  69. package/src/Api/Implementation/EntitlementApiImpl.d.ts +1 -1
  70. package/src/Api/Implementation/ExportApiImpl.d.ts +9 -1
  71. package/src/Api/Implementation/ExportApiImpl.js +34 -68
  72. package/src/Api/Implementation/FilterApiImpl.d.ts +10 -1
  73. package/src/Api/Implementation/FilterApiImpl.js +61 -157
  74. package/src/Api/Implementation/FlashingCellApiImpl.d.ts +8 -0
  75. package/src/Api/Implementation/FlashingCellApiImpl.js +23 -26
  76. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +20 -15
  77. package/src/Api/Implementation/FormatColumnApiImpl.js +62 -153
  78. package/src/Api/Implementation/FreeTextColumnApiImpl.d.ts +13 -5
  79. package/src/Api/Implementation/FreeTextColumnApiImpl.js +42 -27
  80. package/src/Api/Implementation/GridApiImpl.d.ts +15 -1
  81. package/src/Api/Implementation/GridApiImpl.js +117 -61
  82. package/src/Api/Implementation/LayoutApiImpl.d.ts +8 -7
  83. package/src/Api/Implementation/LayoutApiImpl.js +29 -112
  84. package/src/Api/Implementation/PluginsApiImpl.d.ts +1 -1
  85. package/src/Api/Implementation/PlusMinusApiImpl.d.ts +2 -1
  86. package/src/Api/Implementation/PlusMinusApiImpl.js +5 -0
  87. package/src/Api/Implementation/PredicateApiImpl.d.ts +8 -5
  88. package/src/Api/Implementation/PredicateApiImpl.js +33 -98
  89. package/src/Api/Implementation/QueryApiImpl.d.ts +7 -2
  90. package/src/Api/Implementation/QueryApiImpl.js +22 -44
  91. package/src/Api/Implementation/QueryLanguageApiImpl.d.ts +4 -0
  92. package/src/Api/Implementation/QueryLanguageApiImpl.js +5 -0
  93. package/src/Api/Implementation/QuickSearchApiImpl.d.ts +1 -0
  94. package/src/Api/Implementation/QuickSearchApiImpl.js +5 -0
  95. package/src/Api/Implementation/ScheduleApiImpl.d.ts +27 -0
  96. package/src/Api/Implementation/ScheduleApiImpl.js +86 -17
  97. package/src/Api/Implementation/ScopeApiImpl.js +9 -7
  98. package/src/Api/Implementation/SettingsPanelApiImpl.d.ts +2 -0
  99. package/src/Api/Implementation/SettingsPanelApiImpl.js +9 -0
  100. package/src/Api/Implementation/ShortcutApiImpl.d.ts +8 -1
  101. package/src/Api/Implementation/ShortcutApiImpl.js +25 -4
  102. package/src/Api/Implementation/SmartEditApiImpl.d.ts +1 -0
  103. package/src/Api/Implementation/SmartEditApiImpl.js +5 -0
  104. package/src/Api/Implementation/StyledColumnApiImpl.d.ts +14 -11
  105. package/src/Api/Implementation/StyledColumnApiImpl.js +40 -185
  106. package/src/Api/Implementation/SystemStatusApiImpl.d.ts +6 -1
  107. package/src/Api/Implementation/SystemStatusApiImpl.js +19 -12
  108. package/src/Api/Implementation/TeamSharingApiImpl.d.ts +6 -5
  109. package/src/Api/Implementation/TeamSharingApiImpl.js +15 -25
  110. package/src/Api/Implementation/ThemeApiImpl.d.ts +5 -1
  111. package/src/Api/Implementation/ThemeApiImpl.js +23 -4
  112. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +2 -0
  113. package/src/Api/Implementation/UserInterfaceApiImpl.js +13 -4
  114. package/src/Api/Internal/ActionInternalApi.d.ts +23 -0
  115. package/src/Api/Internal/ActionInternalApi.js +198 -0
  116. package/src/Api/{Implementation/InternalApiImpl.d.ts → Internal/AdaptableInternalApi.d.ts} +7 -57
  117. package/src/Api/{Implementation/InternalApiImpl.js → Internal/AdaptableInternalApi.js} +28 -306
  118. package/src/Api/Internal/AlertInternalApi.d.ts +148 -0
  119. package/src/Api/Internal/AlertInternalApi.js +484 -0
  120. package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +24 -0
  121. package/src/Api/Internal/CalculatedColumnInternalApi.js +57 -0
  122. package/src/Api/Internal/ColumnInternalApi.d.ts +33 -0
  123. package/src/Api/Internal/ColumnInternalApi.js +67 -0
  124. package/src/Api/Internal/CustomSortInternalApi.d.ts +6 -0
  125. package/src/Api/Internal/CustomSortInternalApi.js +11 -0
  126. package/src/Api/Internal/DashboardInternalApi.d.ts +8 -0
  127. package/src/Api/Internal/DashboardInternalApi.js +26 -0
  128. package/src/Api/Internal/DataSetInternalApi.d.ts +9 -0
  129. package/src/Api/Internal/DataSetInternalApi.js +20 -0
  130. package/src/Api/Internal/ExportInternalApi.d.ts +11 -0
  131. package/src/Api/Internal/ExportInternalApi.js +73 -0
  132. package/src/Api/Internal/FilterInternalApi.d.ts +58 -0
  133. package/src/Api/Internal/FilterInternalApi.js +194 -0
  134. package/src/Api/Internal/FlashingCellInternalApi.d.ts +12 -0
  135. package/src/Api/Internal/FlashingCellInternalApi.js +56 -0
  136. package/src/Api/Internal/FormatColumnInternalApi.d.ts +109 -0
  137. package/src/Api/Internal/FormatColumnInternalApi.js +225 -0
  138. package/src/Api/Internal/FreeTextColumnInternalApi.d.ts +15 -0
  139. package/src/Api/Internal/FreeTextColumnInternalApi.js +44 -0
  140. package/src/Api/Internal/GridInternalApi.d.ts +82 -0
  141. package/src/Api/Internal/GridInternalApi.js +252 -0
  142. package/src/Api/Internal/LayoutInternalApi.d.ts +48 -0
  143. package/src/Api/Internal/LayoutInternalApi.js +163 -0
  144. package/src/Api/Internal/PredicateInternalApi.d.ts +37 -0
  145. package/src/Api/Internal/PredicateInternalApi.js +140 -0
  146. package/src/Api/Internal/QueryInternalApi.d.ts +17 -0
  147. package/src/Api/Internal/QueryInternalApi.js +57 -0
  148. package/src/Api/Internal/QueryLanguageInternalApi.d.ts +11 -0
  149. package/src/Api/Internal/QueryLanguageInternalApi.js +34 -0
  150. package/src/Api/Internal/StyledColumnInternalApi.d.ts +59 -0
  151. package/src/Api/Internal/StyledColumnInternalApi.js +249 -0
  152. package/src/Api/Internal/SystemStatusInternalApi.d.ts +11 -0
  153. package/src/Api/Internal/SystemStatusInternalApi.js +27 -0
  154. package/src/Api/Internal/TeamSharingInternalApi.d.ts +20 -0
  155. package/src/Api/Internal/TeamSharingInternalApi.js +66 -0
  156. package/src/Api/LayoutApi.d.ts +28 -44
  157. package/src/Api/PlusMinusApi.d.ts +9 -2
  158. package/src/Api/PredicateApi.d.ts +26 -10
  159. package/src/Api/QueryApi.d.ts +23 -18
  160. package/src/Api/QuickSearchApi.d.ts +5 -1
  161. package/src/Api/ScheduleApi.d.ts +97 -16
  162. package/src/Api/SettingsPanelApi.d.ts +12 -1
  163. package/src/Api/ShortcutApi.d.ts +28 -7
  164. package/src/Api/SmartEditApi.d.ts +8 -1
  165. package/src/Api/StyledColumnApi.d.ts +34 -54
  166. package/src/Api/SystemStatusApi.d.ts +12 -6
  167. package/src/Api/TeamSharingApi.d.ts +4 -17
  168. package/src/Api/ThemeApi.d.ts +25 -6
  169. package/src/Api/UserInterfaceApi.d.ts +13 -2
  170. package/src/PredefinedConfig/AlertState.d.ts +1 -1
  171. package/src/PredefinedConfig/Common/AdaptableColumn.js +4 -0
  172. package/src/PredefinedConfig/Common/AdaptableForm.d.ts +0 -5
  173. package/src/PredefinedConfig/Common/AdaptableFormat.d.ts +10 -0
  174. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  175. package/src/PredefinedConfig/Common/AdaptableObject.d.ts +22 -1
  176. package/src/PredefinedConfig/Common/AdaptablePredicate.d.ts +3 -0
  177. package/src/PredefinedConfig/Common/AdaptablePredicate.js +5 -3
  178. package/src/PredefinedConfig/Common/FDC3Context.d.ts +0 -5
  179. package/src/PredefinedConfig/FlashingCellState.d.ts +1 -1
  180. package/src/PredefinedConfig/FormatColumnState.d.ts +1 -1
  181. package/src/PredefinedConfig/StyledColumnState.d.ts +9 -0
  182. package/src/PredefinedConfig/SystemState.d.ts +5 -0
  183. package/src/Redux/ActionsReducers/GridRedux.d.ts +18 -0
  184. package/src/Redux/ActionsReducers/GridRedux.js +65 -2
  185. package/src/Redux/ActionsReducers/SystemRedux.d.ts +5 -0
  186. package/src/Redux/ActionsReducers/SystemRedux.js +17 -3
  187. package/src/Redux/Store/AdaptableStore.js +34 -26
  188. package/src/Strategy/AdaptableModuleBase.js +6 -6
  189. package/src/Strategy/AlertModule.d.ts +1 -6
  190. package/src/Strategy/AlertModule.js +37 -92
  191. package/src/Strategy/BulkUpdateModule.js +3 -3
  192. package/src/Strategy/CalculatedColumnModule.js +6 -6
  193. package/src/Strategy/ChartingModule.js +1 -1
  194. package/src/Strategy/CustomSortModule.js +4 -4
  195. package/src/Strategy/DashboardModule.js +2 -2
  196. package/src/Strategy/DataSetModule.js +1 -1
  197. package/src/Strategy/ExportModule.js +4 -4
  198. package/src/Strategy/FilterModule.js +7 -6
  199. package/src/Strategy/FlashingCellModule.d.ts +2 -0
  200. package/src/Strategy/FlashingCellModule.js +21 -5
  201. package/src/Strategy/FormatColumnModule.d.ts +1 -0
  202. package/src/Strategy/FormatColumnModule.js +29 -3
  203. package/src/Strategy/FreeTextColumnModule.js +3 -3
  204. package/src/Strategy/LayoutModule.js +18 -18
  205. package/src/Strategy/PlusMinusModule.js +2 -2
  206. package/src/Strategy/QueryModule.js +3 -3
  207. package/src/Strategy/ScheduleModule.js +10 -12
  208. package/src/Strategy/ShortcutModule.js +5 -5
  209. package/src/Strategy/SmartEditModule.js +3 -3
  210. package/src/Strategy/StyledColumnModule.js +9 -7
  211. package/src/Strategy/TeamSharingModule.js +3 -3
  212. package/src/Strategy/ThemeModule.js +1 -1
  213. package/src/Strategy/Utilities/CustomSort/getCustomSortColumnViewItems.js +1 -1
  214. package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.js +1 -1
  215. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.js +1 -1
  216. package/src/Strategy/Utilities/getRuleViewItems.d.ts +1 -1
  217. package/src/Strategy/Utilities/getRuleViewItems.js +4 -3
  218. package/src/Strategy/Utilities/getScopeViewItems.js +1 -1
  219. package/src/Strategy/Utilities/updateSingleToMultiplePredicates.d.ts +5 -0
  220. package/src/Strategy/Utilities/updateSingleToMultiplePredicates.js +12 -0
  221. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +4 -3
  222. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +8 -0
  223. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +11 -0
  224. package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.js +73 -78
  225. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.d.ts +3 -1
  226. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +9 -5
  227. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +12 -3
  228. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -1
  229. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +133 -28
  230. package/src/Utilities/Extensions/TypeExtensions.d.ts +1 -0
  231. package/src/Utilities/Helpers/AdaptableHelper.js +1 -1
  232. package/src/Utilities/Helpers/FormatHelper.js +13 -10
  233. package/src/Utilities/ObjectFactory.js +8 -6
  234. package/src/Utilities/Services/CalculatedColumnExpressionService.js +1 -1
  235. package/src/Utilities/Services/ChartingService.js +2 -2
  236. package/src/Utilities/Services/DataService.js +1 -1
  237. package/src/Utilities/Services/Interface/IEntitlementService.d.ts +2 -1
  238. package/src/Utilities/Services/Interface/IRowEditService.d.ts +0 -5
  239. package/src/Utilities/Services/ModuleService.js +1 -1
  240. package/src/Utilities/Services/QueryLanguageService.js +2 -2
  241. package/src/Utilities/Services/ReportService.js +3 -3
  242. package/src/Utilities/Services/RowEditService.d.ts +0 -19
  243. package/src/Utilities/Services/RowEditService.js +4 -161
  244. package/src/Utilities/Services/TeamSharingService.js +3 -3
  245. package/src/Utilities/Services/ValidationService.js +9 -7
  246. package/src/Utilities/logDeprecation.d.ts +3 -0
  247. package/src/Utilities/logDeprecation.js +30 -0
  248. package/src/View/AdaptablePopover/index.d.ts +2 -0
  249. package/src/View/AdaptablePopover/index.js +6 -2
  250. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsActionColumnsForm.js +4 -2
  251. package/src/View/Alert/AlertEntityRow.js +1 -1
  252. package/src/View/Alert/AlertStatusSubPanel.js +1 -1
  253. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +2 -2
  254. package/src/View/Alert/Wizard/AlertButtonsEditor.js +2 -2
  255. package/src/View/Alert/Wizard/AlertDisplayWizardSection.js +3 -3
  256. package/src/View/Alert/Wizard/AlertWizard.js +3 -3
  257. package/src/View/Alert/Wizard/BaseAlertRulesWizardSection.js +4 -2
  258. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +2 -2
  259. package/src/View/Alert/Wizard/isValidAlertRules.js +4 -3
  260. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +3 -3
  261. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.d.ts +1 -0
  262. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +25 -4
  263. package/src/View/Components/Buttons/ButtonDelete.d.ts +1 -1
  264. package/src/View/Components/Charting/ChartingViewPanel.d.ts +2 -2
  265. package/src/View/Components/Charting/ChartingViewPanel.js +17 -3
  266. package/src/View/Components/Charting/ChartingWizard/ChartingWizard.js +2 -2
  267. package/src/View/Components/Charting/ChartingWizard/SettingsSection.js +1 -1
  268. package/src/View/Components/Charting/DeleteChartButton.d.ts +7 -0
  269. package/src/View/Components/Charting/DeleteChartButton.js +12 -0
  270. package/src/View/Components/Charting/EditChartButton.d.ts +8 -0
  271. package/src/View/Components/Charting/EditChartButton.js +21 -0
  272. package/src/View/Components/EntityRulesEditor/PredicatesEditor.d.ts +16 -0
  273. package/src/View/Components/EntityRulesEditor/PredicatesEditor.js +86 -0
  274. package/src/View/Components/EntityRulesEditor/Utilities.d.ts +6 -0
  275. package/src/View/Components/EntityRulesEditor/Utilities.js +21 -0
  276. package/src/View/Components/EntityRulesEditor/index.d.ts +4 -9
  277. package/src/View/Components/EntityRulesEditor/index.js +16 -90
  278. package/src/View/Components/ExpressionWizard.js +1 -1
  279. package/src/View/Components/ExternalRenderer.js +3 -1
  280. package/src/View/Components/FilterForm/FilterForm.js +3 -3
  281. package/src/View/Components/FilterForm/QuickFilterForm.js +5 -5
  282. package/src/View/Components/PermittedValuesSelector/PermitedValuesSelector.js +5 -6
  283. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupBody.js +1 -1
  284. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +2 -2
  285. package/src/View/Components/Popups/AdaptablePopupAlert.js +1 -1
  286. package/src/View/Components/Popups/AdaptablePopupConfirmation.d.ts +2 -12
  287. package/src/View/Components/Popups/AdaptablePopupConfirmation.js +46 -39
  288. package/src/View/Components/PredicateEditor/PredicateEditor.js +5 -5
  289. package/src/View/Components/ScopeComponent.js +3 -3
  290. package/src/View/Components/Selectors/ColumnValueSelector.js +1 -1
  291. package/src/View/Components/StyleComponent.js +42 -14
  292. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +1 -1
  293. package/src/View/CustomSort/CustomSortSummary.js +1 -1
  294. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +2 -2
  295. package/src/View/CustomSort/Wizard/CustomSortSummaryWizard.js +1 -1
  296. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +1 -1
  297. package/src/View/Dashboard/Dashboard.js +1 -1
  298. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -1
  299. package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +10 -1
  300. package/src/View/DataSet/DataSetSelector.js +1 -1
  301. package/src/View/DataSet/DataSetStatusPanelPopover.js +1 -1
  302. package/src/View/DataSet/DataSetViewPanel.js +1 -1
  303. package/src/View/Export/ExportSelector.js +2 -2
  304. package/src/View/Export/ExportViewPanel.js +2 -2
  305. package/src/View/Export/ReportExportDropdown.js +1 -1
  306. package/src/View/Export/Wizard/ReportNameWizardSection.js +1 -1
  307. package/src/View/Export/Wizard/ReportRowsWizardSection.js +1 -1
  308. package/src/View/Filter/FilterSummary.js +1 -1
  309. package/src/View/Filter/FilterViewPanel.js +1 -1
  310. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +2 -2
  311. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +4 -2
  312. package/src/View/FlashingCell/Wizard/isValidFlashingCellRules.js +4 -3
  313. package/src/View/FormatColumn/MoveFormatColumn.js +1 -1
  314. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +11 -5
  315. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +2 -2
  316. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +8 -6
  317. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +3 -4
  318. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +5 -19
  319. package/src/View/GridInfo/ColumnInfoComponent.js +1 -1
  320. package/src/View/GridInfo/GridInfoPopup.js +6 -6
  321. package/src/View/Layout/LayoutRadioSelector.js +1 -1
  322. package/src/View/Layout/LayoutStatusBarSubPanelPopover.js +1 -1
  323. package/src/View/Layout/LayoutViewPanel.js +1 -1
  324. package/src/View/Layout/PivotDetailsPopoup.js +1 -1
  325. package/src/View/Layout/SaveLayoutButton.js +1 -1
  326. package/src/View/Layout/Wizard/LayoutWizard.js +2 -2
  327. package/src/View/Layout/Wizard/sections/AggregationsSection.js +4 -4
  328. package/src/View/Layout/Wizard/sections/ColumnsSection.js +5 -5
  329. package/src/View/Layout/Wizard/sections/FilterSection.js +2 -2
  330. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +2 -2
  331. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +2 -2
  332. package/src/View/Layout/Wizard/sections/SortSection.js +1 -1
  333. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.d.ts +1 -1
  334. package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +2 -2
  335. package/src/View/Query/ExpandedQueryPopup.js +1 -1
  336. package/src/View/Query/Wizard/NamedQueryExpressionWizardSection.js +1 -1
  337. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsWizard.js +2 -2
  338. package/src/View/Shortcut/Wizard/ShortcutWizard.js +1 -1
  339. package/src/View/SmartEdit/SmartEditViewPanel.js +1 -1
  340. package/src/View/StatusBar/StatusBarPanel.js +1 -1
  341. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +2 -2
  342. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +9 -0
  343. package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +2 -2
  344. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarColumnComparisonPreview.d.ts +5 -0
  345. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarColumnComparisonPreview.js +26 -0
  346. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarRangesPreview.d.ts +5 -0
  347. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarRangesPreview.js +23 -0
  348. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.d.ts +8 -0
  349. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.js +25 -0
  350. package/src/View/StyledColumn/Wizard/{StyledColumnWizardStyleSection.d.ts → StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.d.ts} +2 -2
  351. package/src/View/StyledColumn/Wizard/{StyledColumnWizardStyleSection.js → StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js} +21 -19
  352. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/index.d.ts +1 -0
  353. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/index.js +4 -0
  354. package/src/View/TeamSharing/SharedEntityDependencies.js +1 -1
  355. package/src/View/Theme/ThemeStatusPanelPopover.js +1 -1
  356. package/src/agGrid/ActionColumnRenderer.js +1 -1
  357. package/src/agGrid/Adaptable.d.ts +5 -3
  358. package/src/agGrid/Adaptable.js +106 -121
  359. package/src/agGrid/FilterWrapper.js +3 -3
  360. package/src/agGrid/FloatingFilterWrapper.js +3 -3
  361. package/src/agGrid/PercentBarRenderer.js +6 -6
  362. package/src/agGrid/agGridHelper.js +3 -3
  363. package/src/agGrid/agGridMenuHelper.js +3 -3
  364. package/src/agGrid/weightedAverage.js +2 -2
  365. package/src/components/ExpressionEditor/BaseEditorInput.js +92 -7
  366. package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +5 -1
  367. package/src/components/OverlayTrigger/index.js +6 -2
  368. package/src/components/OverlayTrigger/utils.d.ts +1 -1
  369. package/src/components/OverlayTrigger/utils.js +4 -4
  370. package/src/components/icons/index.js +2 -0
  371. package/src/components/icons/open-in-new.d.ts +3 -0
  372. package/src/components/icons/open-in-new.js +7 -0
  373. package/src/env.js +1 -3
  374. package/src/metamodel/adaptable.metamodel.d.ts +30 -10
  375. package/src/metamodel/adaptable.metamodel.js +1 -1
  376. package/src/parser/src/parser.js +644 -382
  377. package/src/parser/src/types.d.ts +9 -0
  378. package/src/types.d.ts +3 -3
  379. package/version.d.ts +1 -1
  380. package/version.js +1 -1
  381. package/src/Api/InternalApi.d.ts +0 -155
  382. package/src/Api/InternalApi.js +0 -2
@@ -15,7 +15,7 @@ let FilterWrapperFactory = (adaptable) => {
15
15
  return adaptable.api.filterApi.getColumnFilters().findIndex((x) => x.ColumnId == colId) > -1;
16
16
  }
17
17
  function getFilterContext(colId, hidePopup) {
18
- let column = adaptable.api.columnApi.getColumnFromId(colId);
18
+ let column = adaptable.api.columnApi.getColumnWithColumnId(colId);
19
19
  let filterContext = {
20
20
  Column: column,
21
21
  Adaptable: adaptable,
@@ -30,7 +30,7 @@ let FilterWrapperFactory = (adaptable) => {
30
30
  return (0, react_1.forwardRef)(function ReactFilterWrapper(props, ref) {
31
31
  const [filterContext, setFilterContext] = (0, react_1.useState)(null);
32
32
  const colId = props.column.getId();
33
- const column = adaptable.api.columnApi.getColumnFromId(colId);
33
+ const column = adaptable.api.columnApi.getColumnWithColumnId(colId);
34
34
  (0, react_1.useImperativeHandle)(ref, () => {
35
35
  return {
36
36
  isFilterActive: () => isFilterActive(colId),
@@ -80,7 +80,7 @@ let FilterWrapperFactory = (adaptable) => {
80
80
  var _a, _b;
81
81
  //we always unmount first so the autofocus from the form works... in other grids we unmount when hidden
82
82
  (_a = this.unmountReactRoot) === null || _a === void 0 ? void 0 : _a.call(this);
83
- let column = adaptable.api.columnApi.getColumnFromId(this.column.getColId());
83
+ let column = adaptable.api.columnApi.getColumnWithColumnId(this.column.getColId());
84
84
  if (column) {
85
85
  const hidePopup = (_b = params === null || params === void 0 ? void 0 : params.hidePopup) !== null && _b !== void 0 ? _b : null;
86
86
  const filterContext = getFilterContext(this.column.getColId(), !!hidePopup);
@@ -18,7 +18,7 @@ const FloatingFilterWrapperFactory = (adaptable) => {
18
18
  return `floatingFilter_${colId}_${adaptable.adaptableOptions.adaptableId}`;
19
19
  }
20
20
  function getFilterContext(colId) {
21
- const column = adaptable.api.columnApi.getColumnFromId(colId);
21
+ const column = adaptable.api.columnApi.getColumnWithColumnId(colId);
22
22
  const filterContext = {
23
23
  Column: column,
24
24
  Adaptable: adaptable,
@@ -36,7 +36,7 @@ const FloatingFilterWrapperFactory = (adaptable) => {
36
36
  if (adaptable.variant === 'react') {
37
37
  return (0, react_1.forwardRef)(function ReactFloatingFilterWrapper(props, ref) {
38
38
  const colId = props.column.getId();
39
- const column = adaptable.api.columnApi.getColumnFromId(colId);
39
+ const column = adaptable.api.columnApi.getColumnWithColumnId(colId);
40
40
  (0, react_1.useImperativeHandle)(ref, () => {
41
41
  return {
42
42
  onParentModelChanged() { },
@@ -63,7 +63,7 @@ const FloatingFilterWrapperFactory = (adaptable) => {
63
63
  //@ts-ignore
64
64
  this.filterContainer.style[key] = filterContainerStyle[key];
65
65
  });
66
- const column = adaptable.api.columnApi.getColumnFromId(colId);
66
+ const column = adaptable.api.columnApi.getColumnWithColumnId(colId);
67
67
  if (column) {
68
68
  const filterContext = getFilterContext(colId);
69
69
  this.unmountReactRoot = adaptable.renderReactRoot((0, QuickFilterForm_1.QuickFilterFormReact)(filterContext), this.filterContainer);
@@ -14,8 +14,8 @@ const getPercentBarRendererForColumn = (styledColumn, abColumn, api) => {
14
14
  if (!styledColumn.IncludeGroupedRows && api.gridApi.isGroupRowNode(params.node)) {
15
15
  return;
16
16
  }
17
- const min = api.styledColumnApi.getNumericStyleMinValue(styledColumn, abColumn, params.node, params.value);
18
- const max = api.styledColumnApi.getNumericStyleMaxValue(styledColumn, abColumn, params.node, params.value);
17
+ const min = api.styledColumnApi.internalApi.getNumericStyleMinValue(styledColumn, abColumn, params.node, params.value);
18
+ const max = api.styledColumnApi.internalApi.getNumericStyleMaxValue(styledColumn, abColumn, params.node, params.value);
19
19
  let value = params.value;
20
20
  if (Helper_1.default.objectNotExists(value)) {
21
21
  value = 0;
@@ -28,7 +28,7 @@ const getPercentBarRendererForColumn = (styledColumn, abColumn, api) => {
28
28
  cellBackColor = percentBarStyle.ColumnComparison.Color;
29
29
  }
30
30
  else {
31
- const matchingRange = api.styledColumnApi.findRangeForColumn(percentBarStyle.CellRanges, abColumn, percentBarStyle.RangeValueType, params.value);
31
+ const matchingRange = api.styledColumnApi.internalApi.findRangeForColumn(percentBarStyle.CellRanges, abColumn, percentBarStyle.RangeValueType, params.value);
32
32
  if (matchingRange) {
33
33
  cellBackColor = matchingRange.Color;
34
34
  }
@@ -56,11 +56,11 @@ const getPercentBarRendererForColumn = (styledColumn, abColumn, api) => {
56
56
  textEl.className = 'ab-PercentBar__text';
57
57
  textEl.style.lineHeight = '1.2';
58
58
  if (percentBarStyle.CellText.includes('CellValue')) {
59
- const activeFormatColumnsWithDisplayFormat = api.formatColumnApi.getFormatColumnsWithDisplayFormatForColumn(abColumn);
60
- const [formatColumn] = api.formatColumnApi.getFormatColumnsRelevantForColumn(activeFormatColumnsWithDisplayFormat, abColumn, { node: params.node, value });
59
+ const activeFormatColumnsWithDisplayFormat = api.formatColumnApi.internalApi.getFormatColumnsWithDisplayFormatForColumn(abColumn);
60
+ const [formatColumn] = api.formatColumnApi.internalApi.getFormatColumnsRelevantForColumn(activeFormatColumnsWithDisplayFormat, abColumn, { node: params.node, value });
61
61
  if (formatColumn && api.scopeApi.isColumnInNumericScope(abColumn, formatColumn.Scope)) {
62
62
  const options = formatColumn.DisplayFormat.Options;
63
- value = api.formatColumnApi.getNumberFormattedValue(params.value, params.node, abColumn, options);
63
+ value = api.formatColumnApi.internalApi.getNumberFormattedValue(params.value, params.node, abColumn, options);
64
64
  }
65
65
  else {
66
66
  value = (0, FormatHelper_1.NumberFormatter)(value, { FractionDigits: 2 });
@@ -388,7 +388,7 @@ class agGridHelper {
388
388
  }
389
389
  let dataType = 'Unknown';
390
390
  // get the column type if already in store (and not unknown)
391
- const existingColumn = this.adaptable.api.columnApi.getColumnFromId(column.getId(), logWarning);
391
+ const existingColumn = this.adaptable.api.columnApi.getColumnWithColumnId(column.getId(), logWarning);
392
392
  if (existingColumn && existingColumn.dataType != 'Unknown') {
393
393
  return existingColumn.dataType;
394
394
  }
@@ -523,7 +523,7 @@ class agGridHelper {
523
523
  if (this.adaptable.adaptableOptions.searchOptions.clearSearchesOnStartUp) {
524
524
  if (StringExtensions_1.StringExtensions.IsNotNullOrEmpty(this.adaptable.api.quickSearchApi.getQuickSearchState().QuickSearchText) ||
525
525
  StringExtensions_1.StringExtensions.IsNotNullOrEmpty(this.adaptable.api.queryApi.getCurrentQuery()) ||
526
- ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(this.adaptable.api.dataSetApi.getAllDataSets())) {
526
+ ArrayExtensions_1.ArrayExtensions.IsNotNullOrEmpty(this.adaptable.api.dataSetApi.getDataSets())) {
527
527
  (0, LoggingHelper_1.LogAdaptableWarning)('Clearing existing Searches as "clearSearchesOnStartUp" is true');
528
528
  this.adaptable.api.quickSearchApi.clearQuickSearch();
529
529
  this.adaptable.api.queryApi.clearCurrentQuery();
@@ -537,7 +537,7 @@ class agGridHelper {
537
537
  const { nodeA, nodeB } = params;
538
538
  let firstGroupedColumn = adaptable.getFirstGroupedColumn();
539
539
  if (firstGroupedColumn) {
540
- const definedColumnComparator = adaptable.getActiveColumnComparator(firstGroupedColumn.columnId, adaptable.api.customSortApi.getCustomSortByColumn(firstGroupedColumn.columnId), adaptable.api.internalApi.getCustomSortComparer(firstGroupedColumn));
540
+ const definedColumnComparator = adaptable.getActiveColumnComparator(firstGroupedColumn.columnId, adaptable.api.customSortApi.getCustomSortForColumn(firstGroupedColumn.columnId), adaptable.api.customSortApi.internalApi.getCustomSortComparer(firstGroupedColumn));
541
541
  if (definedColumnComparator) {
542
542
  return definedColumnComparator(nodeA.key, nodeB.key);
543
543
  }
@@ -29,7 +29,7 @@ class agGridMenuHelper {
29
29
  if (hasAdaptableColumnMenuItems) {
30
30
  agGridColumnMenuItems.push('separator');
31
31
  }
32
- const adaptableColumn = this.adaptable.api.columnApi.getColumnFromId(colId);
32
+ const adaptableColumn = this.adaptable.api.columnApi.getColumnWithColumnId(colId);
33
33
  const menuContext = this.createColumnMenuContextObject(adaptableColumn, params.column);
34
34
  // then Get Adaptable Menu Items
35
35
  if (menuContext.isRowGroupColumn) {
@@ -75,7 +75,7 @@ class agGridMenuHelper {
75
75
  const adaptableMenuItems = [];
76
76
  const agGridColumn = params.column;
77
77
  if (agGridColumn) {
78
- const adaptableColumn = this.adaptable.api.columnApi.getColumnFromId(agGridColumn.getColId());
78
+ const adaptableColumn = this.adaptable.api.columnApi.getColumnWithColumnId(agGridColumn.getColId());
79
79
  // if (adaptableColumn != undefined) {
80
80
  let menuContext = this.createContextMenuContextObject(params, adaptableColumn);
81
81
  // keep it simple for now - if its a grouped cell then don't add the shipped menu items
@@ -382,7 +382,7 @@ class agGridMenuHelper {
382
382
  });
383
383
  }
384
384
  buildStandaloneColumnHeader(adaptableColumn) {
385
- const agGridColumn = this.adaptable.api.columnApi.getAgGridColumnForAdaptableColumn(adaptableColumn.columnId);
385
+ const agGridColumn = this.adaptable.api.columnApi.internalApi.getAgGridColumnForAdaptableColumn(adaptableColumn.columnId);
386
386
  let menuContext = this.createColumnMenuContextObject(adaptableColumn, agGridColumn);
387
387
  let returnMenuItems = [];
388
388
  returnMenuItems.push(...this.getAdaptableMenuItemsColumnHeader(adaptableColumn, menuContext));
@@ -82,11 +82,11 @@ const cellSummaryWeightedAverage = ({ numericColumns, selectedCellInfo, adaptabl
82
82
  if (!isValid) {
83
83
  return '';
84
84
  }
85
- const abColumn = adaptableApi.columnApi.getColumnFromId(columnId);
85
+ const abColumn = adaptableApi.columnApi.getColumnWithColumnId(columnId);
86
86
  if (!abColumn) {
87
87
  return '';
88
88
  }
89
- const activeFormatColumnsWithDisplayFormat = adaptableApi.formatColumnApi.getFormatColumnsWithDisplayFormatForColumn(abColumn);
89
+ const activeFormatColumnsWithDisplayFormat = adaptableApi.formatColumnApi.internalApi.getFormatColumnsWithDisplayFormatForColumn(abColumn);
90
90
  if (activeFormatColumnsWithDisplayFormat.length === 1 &&
91
91
  activeFormatColumnsWithDisplayFormat[0].DisplayFormat.Formatter === 'NumberFormatter') {
92
92
  // there only one FormatColumn on this column, so we will use it to format the aggregated value
@@ -20,6 +20,10 @@ const LoggingHelper_1 = require("../../Utilities/Helpers/LoggingHelper");
20
20
  const icons_1 = require("../icons");
21
21
  const AdaptableContext_1 = require("../../View/AdaptableContext");
22
22
  const join_1 = tslib_1.__importDefault(require("../utils/join"));
23
+ const ExpressionFunctionDocumentation_1 = require("./ExpressionFunctionDocumentation");
24
+ const Tag_1 = require("../Tag");
25
+ const StringExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Extensions/StringExtensions"));
26
+ const Radio_1 = tslib_1.__importDefault(require("../Radio"));
23
27
  const VarEditorButton = () => {
24
28
  var _a, _b;
25
29
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
@@ -32,6 +36,93 @@ const VarEditorButton = () => {
32
36
  return (React.createElement(EditorButton_1.default, { data: varString, key: varOption }, varString));
33
37
  })));
34
38
  };
39
+ const FunctionsDropdown = ({ expressionFunctions, baseClassName }) => {
40
+ const [currentFunctionCategory, setCurrentFunctionCategory] = React.useState('all');
41
+ const dropdownRef = React.useRef(null);
42
+ const [overFunction, setOverFunction] = React.useState();
43
+ React.useEffect(() => {
44
+ setOverFunction(null);
45
+ }, [currentFunctionCategory]);
46
+ const groupedFunctions = React.useMemo(() => {
47
+ return Object.keys(expressionFunctions).reduce((acc, key) => {
48
+ const functionDef = expressionFunctions[key];
49
+ // filter
50
+ if (currentFunctionCategory !== 'all' && functionDef.category !== currentFunctionCategory) {
51
+ return acc;
52
+ }
53
+ if (functionDef.category) {
54
+ acc[functionDef.category] = Object.assign(Object.assign({}, acc[functionDef.category]), { [key]: functionDef });
55
+ }
56
+ else {
57
+ acc.noCategory[key] = functionDef;
58
+ }
59
+ return acc;
60
+ }, { noCategory: {} });
61
+ }, [currentFunctionCategory]);
62
+ const handleFunctionCategoryChange = React.useCallback((type) => (event) => {
63
+ setCurrentFunctionCategory(type);
64
+ }, [currentFunctionCategory]);
65
+ const categoryOptions = React.useMemo(() => {
66
+ const categoryOptions = Object.keys(expressionFunctions)
67
+ .reduce((acc, functionName) => {
68
+ const funcitonExpression = expressionFunctions[functionName];
69
+ if (!acc.includes(funcitonExpression.category)) {
70
+ acc.push(funcitonExpression.category);
71
+ }
72
+ return acc;
73
+ }, [])
74
+ .map((category) => ({
75
+ label: StringExtensions_1.default.Humanize(category),
76
+ value: category,
77
+ }));
78
+ return [{ label: 'All', value: 'all' }, ...categoryOptions];
79
+ }, [expressionFunctions]);
80
+ const hidePopup = () => {
81
+ dropdownRef.current.hide();
82
+ setOverFunction(null);
83
+ };
84
+ /**
85
+ * Hide when:
86
+ * - mouse leaves
87
+ * - a function is inserted
88
+ */
89
+ return (React.createElement(OverlayTrigger_1.default, { ref: dropdownRef, showEvent: "mouseenter", hideEvent: "mouseleave", targetOffset: 5, render: () => (React.createElement(rebass_1.Flex, { className: `${baseClassName}__dropdown-functions-list-wrapper`, flexDirection: "column", onMouseLeave: () => hidePopup() },
90
+ React.createElement(rebass_1.Flex, { pl: 2, style: { gap: 10 } }, categoryOptions.map((option) => {
91
+ return (React.createElement(Radio_1.default, { onFocus: (event) => {
92
+ event.preventDefault();
93
+ event.stopPropagation();
94
+ }, onClick: handleFunctionCategoryChange(option.value), checked: currentFunctionCategory === option.value }, option.label));
95
+ })),
96
+ React.createElement(rebass_1.Flex, null,
97
+ React.createElement(rebass_1.Flex, { className: `${baseClassName}__dropdown-functions-list`, "data-name": "expression-dropdown-fuctions-list", flexDirection: "column", p: 2, maxHeight: '50vh' }, Object.keys(groupedFunctions).map((groupName) => {
98
+ const functionsInGroup = Object.keys(groupedFunctions[groupName]);
99
+ if (functionsInGroup.length === 0) {
100
+ return React.createElement(React.Fragment, null);
101
+ }
102
+ const getEditorButtonData = (functionName) => {
103
+ // handle special cases
104
+ if (functionName === 'CASE') {
105
+ return `CASE <caseValue> WHEN <whenValue> THEN <thenValue> ELSE <defaultValue> END`;
106
+ }
107
+ return `${functionName}()`;
108
+ };
109
+ return (React.createElement(rebass_1.Box, { mb: 2, key: groupName },
110
+ React.createElement(Tag_1.Tag, { mb: 1 }, StringExtensions_1.default.Humanize(groupName)),
111
+ functionsInGroup.map((functionName) => (React.createElement(rebass_1.Box, { key: functionName, onMouseEnter: () => setOverFunction(functionName), onClick: () => hidePopup() }, functionName === 'VAR' ? (React.createElement(VarEditorButton, { key: functionName })) : (React.createElement(EditorButton_1.default, { data: getEditorButtonData(functionName), key: functionName, mr: 1 }, functionName)))))));
112
+ })),
113
+ React.createElement(rebass_1.Box, { className: `${baseClassName}__dropdown-functions-description`, p: 2, width: 600, maxWidth: "30vw" }, overFunction ? (React.createElement(React.Fragment, null,
114
+ React.createElement(Tag_1.Tag, null, overFunction),
115
+ React.createElement(ExpressionFunctionDocumentation_1.ExpressionFunctionDocumentation, { expressionFunction: expressionFunctions[overFunction] }))) : (React.createElement(Tag_1.Tag, { padding: 20 },
116
+ React.createElement("ul", null,
117
+ React.createElement("li", null,
118
+ "Hover over a Function to learn more",
119
+ React.createElement("br", null),
120
+ React.createElement("br", null)),
121
+ React.createElement("li", null, "Select a Function to add to the Expression in the Editor")))))))) },
122
+ React.createElement(SimpleButton_1.default, { "data-name": "expression-dropdown", icon: "arrow-down", iconPosition: 'end', mr: 1 },
123
+ React.createElement(rebass_1.Flex, { marginRight: 1, fontSize: 2 },
124
+ React.createElement(icons_1.Icon, { name: "equation" })))));
125
+ };
35
126
  function BaseEditorInput(props) {
36
127
  const { expressionFunctions, testData, style, type } = props;
37
128
  const { ref: textAreaRefCallback, selectionStart, selectionEnd } = (0, useSelectionRange_1.useSelectionRange)();
@@ -103,12 +194,6 @@ function BaseEditorInput(props) {
103
194
  props.onSelectedFunctionChange(selectedFunctionName ? expressionFunctions[selectedFunctionName] : null);
104
195
  }
105
196
  }, [selectedFunctionName]);
106
- const functionsDropdown = (React.createElement(OverlayTrigger_1.default, { render: () => (React.createElement(rebass_1.Flex, { className: `${baseClassName}__dropdown-functions-list`, "data-name": "expression-dropdown-fuctions-list", flexDirection: "column", p: 2, maxHeight: '50vh' }, Object.keys(expressionFunctions)
107
- .filter((functionName) => !expressionFunctions[functionName].isHiddenFromMenu)
108
- .map((functionName) => functionName === 'VAR' ? (React.createElement(VarEditorButton, { key: functionName })) : (React.createElement(EditorButton_1.default, { data: `${functionName}()`, key: functionName, mr: 1 }, functionName))))), showEvent: "focus", hideEvent: "blur" },
109
- React.createElement(SimpleButton_1.default, { "data-name": "expression-dropdown", icon: "arrow-down", iconPosition: 'end', mr: 1 },
110
- React.createElement(rebass_1.Flex, { marginRight: 1, fontSize: 2 },
111
- React.createElement(icons_1.Icon, { name: "equation" })))));
112
197
  const operatorButtons = props.editorButtons
113
198
  .filter((editorButtonDef) => !!expressionFunctions[editorButtonDef.functionName])
114
199
  .map((editorButtonDef) => (React.createElement(EditorButton_1.default, { key: `${editorButtonDef.functionName}-operator`, data: editorButtonDef.data, icon: editorButtonDef.icon }, !editorButtonDef.icon && (editorButtonDef.text || editorButtonDef.functionName))));
@@ -116,7 +201,7 @@ function BaseEditorInput(props) {
116
201
  return (React.createElement(React.Fragment, null,
117
202
  React.createElement(rebass_1.Flex, { className: baseClassName, "data-name": "expression-toolbar", py: 2, mb: 2, mt: 2, flexWrap: "wrap" },
118
203
  React.createElement(rebass_1.Flex, { style: { flex: 1, marginLeft: 5 }, flexWrap: "wrap" },
119
- functionsDropdown,
204
+ React.createElement(FunctionsDropdown, { expressionFunctions: expressionFunctions, baseClassName: baseClassName }),
120
205
  operatorButtons),
121
206
  showDocumentationLink && (React.createElement(rebass_1.Flex, { alignItems: "flex-start" },
122
207
  React.createElement(ButtonInfo_1.ButtonInfo, { mr: 2, tooltip: 'Learn how to use the Expression Editor', onClick: () => window.open(DocumentationLinkConstants_1.ExpressionEditorDocsLink, '_blank') })))),
@@ -4,6 +4,7 @@ exports.ExpressionFunctionDocumentation = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const rebass_1 = require("rebass");
6
6
  const React = tslib_1.__importStar(require("react"));
7
+ const Tag_1 = require("../Tag");
7
8
  const ExpressionFunctionDocumentation = (props) => {
8
9
  return props.expressionFunction ? (React.createElement(rebass_1.Box, { "data-name": "expression-editor-documentation", my: 2, p: 2, style: {
9
10
  background: 'var(--ab-color-primary)',
@@ -17,6 +18,9 @@ const ExpressionFunctionDocumentation = (props) => {
17
18
  props.expressionFunction.examples && (React.createElement(rebass_1.Box, { "data-name": "expression-editor-documentation-examples" },
18
19
  React.createElement("b", null, "Examples"),
19
20
  React.createElement("ul", null, props.expressionFunction.examples.map((example, index) => (React.createElement("li", { key: index },
20
- React.createElement("pre", { style: { whiteSpace: 'pre-wrap', margin: 0 } }, example))))))))) : null;
21
+ React.createElement("pre", { style: { whiteSpace: 'pre-wrap', margin: 0 } }, example))))))),
22
+ props.expressionFunction.returnType && (React.createElement(rebass_1.Box, { "data-name": "expression-editor-documentation-examples" },
23
+ React.createElement("b", null, "Return Type"),
24
+ React.createElement(Tag_1.Tag, null, props.expressionFunction.returnType))))) : null;
21
25
  };
22
26
  exports.ExpressionFunctionDocumentation = ExpressionFunctionDocumentation;
@@ -60,6 +60,10 @@ const OverlayTrigger = React.forwardRef((props, ref) => {
60
60
  ['TopRight', 'BottomCenter'],
61
61
  ['TopRight', 'BottomLeft'],
62
62
  ['TopRight', 'BottomLeft'],
63
+ ['BottomLeft', 'TopLeft'],
64
+ ['BottomRight', 'TopRight'],
65
+ ['BottomRight', 'TopCenter'],
66
+ ['BottomRight', 'TopLeft'],
63
67
  ], constrainTo, target: targetProp } = props, domProps = tslib_1.__rest(props, ["visible", "showTriangle", "showEvent", "hideEvent", "render", "targetOffset", "preventPortalEventPropagation", "defaultZIndex", "anchor", "hideDelay", "opacityTransitionDuration", "onVisibleChange", "alignPosition", "constrainTo", "target"]);
64
68
  const { showOverlay, clearAll: clearAllOverlays, hideOverlay, portal, } = (0, InfiniteTable_1.useOverlay)({
65
69
  portalContainer: portalElement,
@@ -114,7 +118,6 @@ const OverlayTrigger = React.forwardRef((props, ref) => {
114
118
  }
115
119
  }
116
120
  }, [ref]);
117
- const previousVisible = (0, usePrevious_1.default)(visible, visible);
118
121
  (0, react_1.useEffect)(() => {
119
122
  let target = domRef.current.previousSibling;
120
123
  if (targetProp) {
@@ -174,11 +177,12 @@ const OverlayTrigger = React.forwardRef((props, ref) => {
174
177
  preparedConstrinTo = adaptable === null || adaptable === void 0 ? void 0 : adaptable.getAgGridContainerElement();
175
178
  }
176
179
  // show only if visible or if it was visible and now it is invisible
180
+ const alignToRect = (0, utils_1.getRect)(target, targetOffset !== null && targetOffset !== void 0 ? targetOffset : 0);
177
181
  const showOverlayOptions = {
178
182
  id: 'overlay-trigger',
179
183
  alignPosition,
180
184
  constrainTo: (_b = (_a = preparedConstrinTo === null || preparedConstrinTo === void 0 ? void 0 : preparedConstrinTo.getBoundingClientRect) === null || _a === void 0 ? void 0 : _a.call(preparedConstrinTo)) !== null && _b !== void 0 ? _b : true,
181
- alignTo: target.getBoundingClientRect(),
185
+ alignTo: alignToRect,
182
186
  };
183
187
  showOverlay(() => overlayContent, showOverlayOptions);
184
188
  }
@@ -1,4 +1,4 @@
1
1
  import { BoundingClientRect } from '../utils/getAvailableSizeInfo';
2
- export declare const getRect: (node: HTMLElement) => BoundingClientRect;
2
+ export declare const getRect: (node: HTMLElement, offset?: number) => BoundingClientRect;
3
3
  export declare const getDocRect: () => BoundingClientRect;
4
4
  export declare const getIntersection: (rect1: BoundingClientRect, rect2: BoundingClientRect) => BoundingClientRect;
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getIntersection = exports.getDocRect = exports.getRect = void 0;
4
- const getRect = (node) => {
4
+ const getRect = (node, offset = 0) => {
5
5
  const rect = node.getBoundingClientRect();
6
6
  return {
7
- top: rect.top,
7
+ top: rect.top - offset,
8
8
  left: rect.left,
9
- bottom: rect.bottom,
9
+ bottom: rect.bottom + offset,
10
10
  right: rect.right,
11
11
  width: rect.width,
12
- height: rect.height,
12
+ height: rect.height + offset,
13
13
  };
14
14
  };
15
15
  exports.getRect = getRect;
@@ -89,6 +89,7 @@ const cloud_upload_1 = tslib_1.__importDefault(require("./cloud-upload"));
89
89
  const upload_1 = tslib_1.__importDefault(require("./upload"));
90
90
  const ipushpull_1 = tslib_1.__importDefault(require("./ipushpull"));
91
91
  const folder_open_1 = tslib_1.__importDefault(require("./folder-open"));
92
+ const open_in_new_1 = tslib_1.__importDefault(require("./open-in-new"));
92
93
  const folder_1 = tslib_1.__importDefault(require("./folder"));
93
94
  const folder_shared_1 = tslib_1.__importDefault(require("./folder-shared"));
94
95
  const play_1 = tslib_1.__importDefault(require("./play"));
@@ -219,6 +220,7 @@ const allIcons = {
219
220
  justify: justify_1.default,
220
221
  check: check_1.default,
221
222
  ok: check_1.default,
223
+ 'open-in-new': open_in_new_1.default,
222
224
  plus: plus_1.default,
223
225
  home: home_1.default,
224
226
  'sort-asc': sort_asc_1.default,
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const _default: (props: any) => JSX.Element;
3
+ export default _default;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const React = tslib_1.__importStar(require("react"));
5
+ const DefaultIcon_1 = tslib_1.__importDefault(require("./DefaultIcon"));
6
+ exports.default = (props) => (React.createElement(DefaultIcon_1.default, Object.assign({}, props),
7
+ React.createElement("path", { xmlns: "http://www.w3.org/2000/svg", d: "M5 21q-.825 0-1.413-.587Q3 19.825 3 19V5q0-.825.587-1.413Q4.175 3 5 3h7v2H5v14h14v-7h2v7q0 .825-.587 1.413Q19.825 21 19 21Zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4Z" })));
package/src/env.js CHANGED
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
- IPUSHPULL_API_KEY: 'CbBaMaoqHVifScrYwKssGnGyNkv5xHOhQVGm3cYP',
5
- IPUSHPULL_API_SECRET: 'xYzE51kuHyyt9kQCvMe0tz0H2sDSjyEQcF5SOBlPQmcL9em0NqcCzyqLYj5fhpuZxQ8BiVcYl6zoOHeI6GYZj1TkUiiLVFoW3HUxiCdEUjlPS8Vl2YHUMEPD5qkLYnGj',
6
- INFINITE_TABLE_LICENSE_KEY: 'StartDate=2021-06-29|EndDate=2030-01-01|Owner=Adaptable|Type=distribution|TS=1624971462479|C=137829811,1004007071,2756196225,1839832928,3994409405,636616862',
4
+ INFINITE_TABLE_LICENSE_KEY: "StartDate=2021-06-29|EndDate=2030-01-01|Owner=Adaptable|Type=distribution|TS=1624971462479|C=137829811,1004007071,2756196225,1839832928,3994409405,636616862",
7
5
  };
@@ -557,6 +557,26 @@ export declare const ADAPTABLE_METAMODEL: {
557
557
  reference: string;
558
558
  })[];
559
559
  };
560
+ AdaptableObjectLookupCriteria: {
561
+ name: string;
562
+ kind: string;
563
+ description: string;
564
+ properties: ({
565
+ name: string;
566
+ kind: string;
567
+ description: string;
568
+ uiLabel: string;
569
+ isOptional: boolean;
570
+ reference?: undefined;
571
+ } | {
572
+ name: string;
573
+ kind: string;
574
+ description: string;
575
+ uiLabel: string;
576
+ isOptional: boolean;
577
+ reference: string;
578
+ })[];
579
+ };
560
580
  AdaptableObjectTag: {
561
581
  name: string;
562
582
  kind: string;
@@ -737,16 +757,6 @@ export declare const ADAPTABLE_METAMODEL: {
737
757
  gridInfo?: undefined;
738
758
  noCode?: undefined;
739
759
  defaultValue?: undefined;
740
- } | {
741
- name: string;
742
- kind: string;
743
- description: string;
744
- uiLabel: string;
745
- isOptional: boolean;
746
- gridInfo: string;
747
- defaultValue: string;
748
- reference: string;
749
- noCode?: undefined;
750
760
  })[];
751
761
  };
752
762
  AdaptableQuery: {
@@ -1635,6 +1645,11 @@ export declare const ADAPTABLE_METAMODEL: {
1635
1645
  reference: string;
1636
1646
  })[];
1637
1647
  };
1648
+ ColumnFilterDef: {
1649
+ name: string;
1650
+ kind: string;
1651
+ description: string;
1652
+ };
1638
1653
  ColumnFilterPredicate: {
1639
1654
  name: string;
1640
1655
  kind: string;
@@ -4872,6 +4887,11 @@ export declare const ADAPTABLE_METAMODEL: {
4872
4887
  reference?: undefined;
4873
4888
  })[];
4874
4889
  };
4890
+ SparkLineStyle: {
4891
+ name: string;
4892
+ kind: string;
4893
+ description: string;
4894
+ };
4875
4895
  SpecialColumnSettings: {
4876
4896
  name: string;
4877
4897
  kind: string;