@adaptabletools/adaptable 23.0.4-canary.0 → 23.0.5-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 (441) hide show
  1. package/agGrid.js +0 -31
  2. package/index.js +0 -31
  3. package/package.json +1 -1
  4. package/src/AdaptableInterfaces/IAdaptable.d.ts +0 -2
  5. package/src/AdaptableOptions/AdaptablePlugin.js +1 -9
  6. package/src/AdaptableOptions/DefaultAdaptableOptions.js +3 -39
  7. package/src/AdaptableOptions/SettingsPanelOptions.d.ts +44 -16
  8. package/src/AdaptableState/Aggregations/only.js +0 -11
  9. package/src/AdaptableState/Aggregations/weightedAverage.js +0 -26
  10. package/src/AdaptableState/Common/AdaptableColumn.js +0 -1
  11. package/src/AdaptableState/Common/AdaptableForm.js +0 -49
  12. package/src/AdaptableState/Common/AdaptableFormatPresets.js +0 -13
  13. package/src/AdaptableState/Common/AdaptablePredicate.js +3 -125
  14. package/src/AdaptableState/Common/AggregationColumns.js +0 -10
  15. package/src/AdaptableState/Common/Enums.js +0 -3
  16. package/src/AdaptableState/Common/Menu.js +1 -7
  17. package/src/AdaptableState/Common/MenuItem.js +0 -2
  18. package/src/AdaptableState/Common/Types.js +2 -5
  19. package/src/AdaptableState/StatusBarState.js +0 -3
  20. package/src/AdaptableState/StyledColumns/BadgeStyle.js +0 -1
  21. package/src/AdaptableState/StyledColumns/Common/BarStyleProperties.js +0 -4
  22. package/src/AdaptableState/StyledColumns/Common/CellTextOptions.js +0 -5
  23. package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.js +0 -8
  24. package/src/AdaptableState/Uuid.js +0 -1
  25. package/src/Api/Implementation/AdaptableApiImpl.js +0 -4
  26. package/src/Api/Implementation/AlertApiImpl.js +0 -21
  27. package/src/Api/Implementation/ApiBase.js +0 -24
  28. package/src/Api/Implementation/CalculatedColumnApiImpl.js +0 -1
  29. package/src/Api/Implementation/ChartingApiImpl.js +0 -3
  30. package/src/Api/Implementation/ColumnApiImpl.js +1 -15
  31. package/src/Api/Implementation/ColumnFilterApiImpl.js +0 -9
  32. package/src/Api/Implementation/ColumnScopeApiImpl.js +0 -21
  33. package/src/Api/Implementation/DashboardApiImpl.js +0 -1
  34. package/src/Api/Implementation/EntitlementApiImpl.js +0 -1
  35. package/src/Api/Implementation/ExportApiImpl.js +0 -10
  36. package/src/Api/Implementation/ExpressionApiImpl.js +0 -1
  37. package/src/Api/Implementation/FormatColumnApiImpl.js +0 -3
  38. package/src/Api/Implementation/FreeTextColumnApiImpl.js +0 -2
  39. package/src/Api/Implementation/GridApiImpl.js +1 -22
  40. package/src/Api/Implementation/GridFilterApiImpl.js +0 -2
  41. package/src/Api/Implementation/LayoutApiImpl.js +0 -18
  42. package/src/Api/Implementation/LayoutHelpers.js +0 -16
  43. package/src/Api/Implementation/NamedQueryApiImpl.js +0 -1
  44. package/src/Api/Implementation/PredicateApiImpl.js +0 -5
  45. package/src/Api/Implementation/RowFormApiImpl.js +0 -2
  46. package/src/Api/Implementation/StateApiImpl.js +0 -7
  47. package/src/Api/Implementation/SystemStatusApiImpl.js +0 -2
  48. package/src/Api/Implementation/TeamSharingApiImpl.js +0 -3
  49. package/src/Api/Implementation/UserInterfaceApiImpl.js +0 -1
  50. package/src/Api/Internal/ActionColumnInternalApi.js +0 -1
  51. package/src/Api/Internal/AdaptableInternalApi.d.ts +0 -2
  52. package/src/Api/Internal/AdaptableInternalApi.js +1 -39
  53. package/src/Api/Internal/AlertInternalApi.js +1 -102
  54. package/src/Api/Internal/CalculatedColumnInternalApi.js +0 -17
  55. package/src/Api/Internal/ChartingInternalApi.js +0 -1
  56. package/src/Api/Internal/ColumnFilterInternalApi.js +0 -52
  57. package/src/Api/Internal/ColumnInternalApi.js +0 -32
  58. package/src/Api/Internal/CustomSortInternalApi.js +0 -5
  59. package/src/Api/Internal/DashboardInternalApi.js +0 -23
  60. package/src/Api/Internal/DataImportInternalApi.js +0 -1
  61. package/src/Api/Internal/EventInternalApi.js +0 -2
  62. package/src/Api/Internal/ExportInternalApi.js +1 -16
  63. package/src/Api/Internal/ExpressionInternalApi.js +0 -23
  64. package/src/Api/Internal/Fdc3InternalApi.js +0 -9
  65. package/src/Api/Internal/FlashingCellInternalApi.js +0 -5
  66. package/src/Api/Internal/FormatColumnInternalApi.js +5 -107
  67. package/src/Api/Internal/FreeTextColumnInternalApi.js +0 -8
  68. package/src/Api/Internal/GridFilterInternalApi.js +0 -3
  69. package/src/Api/Internal/GridInternalApi.js +0 -37
  70. package/src/Api/Internal/LayoutInternalApi.js +0 -18
  71. package/src/Api/Internal/NamedQueryInternalApi.js +0 -9
  72. package/src/Api/Internal/PredicateInternalApi.js +0 -23
  73. package/src/Api/Internal/RowFormInternalApi.js +0 -18
  74. package/src/Api/Internal/StateInternalApi.js +0 -25
  75. package/src/Api/Internal/StyledColumnInternalApi.js +0 -62
  76. package/src/Api/Internal/TeamSharingInternalApi.js +0 -9
  77. package/src/Redux/ActionsReducers/AlertRedux.js +0 -24
  78. package/src/Redux/ActionsReducers/ApplicationRedux.js +0 -9
  79. package/src/Redux/ActionsReducers/BulkUpdateRedux.js +0 -6
  80. package/src/Redux/ActionsReducers/CalculatedColumnRedux.js +1 -16
  81. package/src/Redux/ActionsReducers/ChartingRedux.js +0 -24
  82. package/src/Redux/ActionsReducers/CommentsRedux.js +0 -24
  83. package/src/Redux/ActionsReducers/CustomSortRedux.js +0 -24
  84. package/src/Redux/ActionsReducers/DashboardRedux.js +0 -33
  85. package/src/Redux/ActionsReducers/ExportRedux.js +0 -36
  86. package/src/Redux/ActionsReducers/FlashingCellRedux.js +0 -24
  87. package/src/Redux/ActionsReducers/FormatColumnRedux.js +0 -36
  88. package/src/Redux/ActionsReducers/FreeTextColumnRedux.js +1 -20
  89. package/src/Redux/ActionsReducers/InternalRedux.js +0 -42
  90. package/src/Redux/ActionsReducers/LayoutRedux.js +1 -67
  91. package/src/Redux/ActionsReducers/NamedQueryRedux.js +0 -15
  92. package/src/Redux/ActionsReducers/NoteRedux.js +0 -14
  93. package/src/Redux/ActionsReducers/PluginsRedux.js +0 -3
  94. package/src/Redux/ActionsReducers/PlusMinusRedux.js +0 -34
  95. package/src/Redux/ActionsReducers/PopupRedux.js +2 -6
  96. package/src/Redux/ActionsReducers/QuickSearchRedux.js +0 -15
  97. package/src/Redux/ActionsReducers/ShortcutRedux.js +0 -24
  98. package/src/Redux/ActionsReducers/SmartEditRedux.js +0 -6
  99. package/src/Redux/ActionsReducers/StatusBarRedux.js +0 -6
  100. package/src/Redux/ActionsReducers/StyledColumnRedux.js +0 -27
  101. package/src/Redux/ActionsReducers/SystemStatusRedux.js +0 -6
  102. package/src/Redux/ActionsReducers/TeamSharingRedux.js +0 -1
  103. package/src/Redux/ActionsReducers/ThemeRedux.js +0 -26
  104. package/src/Redux/ActionsReducers/ToolPanelRedux.js +0 -22
  105. package/src/Redux/ActionsReducers/UserInterfaceRedux.js +0 -3
  106. package/src/Redux/ActionsReducers/utils.js +0 -6
  107. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +0 -1
  108. package/src/Redux/Store/AdaptableReduxMerger.js +0 -25
  109. package/src/Redux/Store/AdaptableStore.js +5 -301
  110. package/src/Strategy/AdaptableModuleBase.js +0 -35
  111. package/src/Strategy/AlertModule.js +0 -9
  112. package/src/Strategy/CellSummaryModule.js +0 -12
  113. package/src/Strategy/ChartingModule.js +0 -1
  114. package/src/Strategy/ColumnFilterModule.js +1 -11
  115. package/src/Strategy/CommentModule.js +0 -2
  116. package/src/Strategy/DashboardModule.js +0 -4
  117. package/src/Strategy/ExportModule.js +0 -1
  118. package/src/Strategy/FlashingCellModule.js +0 -8
  119. package/src/Strategy/FormatColumnModule.js +0 -3
  120. package/src/Strategy/FreeTextColumnModule.js +0 -3
  121. package/src/Strategy/LayoutModule.js +0 -26
  122. package/src/Strategy/NoteModule.js +0 -3
  123. package/src/Strategy/PlusMinusModule.js +0 -3
  124. package/src/Strategy/SettingsPanelModule.js +0 -1
  125. package/src/Strategy/ShortcutModule.js +0 -1
  126. package/src/Strategy/SmartEditModule.js +0 -5
  127. package/src/Strategy/StatusBarModule.js +0 -7
  128. package/src/Strategy/StyledColumnModule.js +1 -16
  129. package/src/Strategy/TeamSharingModule.js +0 -9
  130. package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.js +0 -5
  131. package/src/Utilities/Constants/DocumentationLinkConstants.js +0 -1
  132. package/src/Utilities/Constants/GeneralConstants.js +0 -10
  133. package/src/Utilities/Constants/ObjectDefaultConstants.js +0 -3
  134. package/src/Utilities/Constants/ReduxConstants.js +4 -8
  135. package/src/Utilities/Emitter.js +0 -9
  136. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +0 -8
  137. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +0 -15
  138. package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.js +0 -3
  139. package/src/Utilities/ExpressionFunctions/deepMap.js +0 -16
  140. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +0 -9
  141. package/src/Utilities/ExpressionFunctions/groupingMap.js +0 -9
  142. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +7 -78
  143. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +0 -9
  144. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +2 -16
  145. package/src/Utilities/Extensions/ArrayExtensions.js +1 -63
  146. package/src/Utilities/Extensions/NumberExtensions.js +0 -27
  147. package/src/Utilities/Extensions/ObjectExtensions.js +0 -36
  148. package/src/Utilities/Extensions/StringExtensions.js +0 -27
  149. package/src/Utilities/Helpers/ActionColumnHelper.js +0 -4
  150. package/src/Utilities/Helpers/AdaptableHelper.js +0 -8
  151. package/src/Utilities/Helpers/DateHelper.js +0 -10
  152. package/src/Utilities/Helpers/DisplayFormatHelper.js +0 -8
  153. package/src/Utilities/Helpers/Helper.js +3 -9
  154. package/src/Utilities/Helpers/PlusMinusHelper.js +0 -20
  155. package/src/Utilities/Helpers/QuickSearchHelper.js +0 -5
  156. package/src/Utilities/Helpers/Scheduling/CronExpression.js +0 -43
  157. package/src/Utilities/Helpers/Scheduling/ScheduledReportHelper.js +0 -4
  158. package/src/Utilities/Helpers/SettingsPanelHelper.js +40 -4
  159. package/src/Utilities/Helpers/StyleHelper.js +0 -56
  160. package/src/Utilities/Helpers/StyledColumns/BarStylesHelper.js +0 -46
  161. package/src/Utilities/Helpers/StyledColumns/GradientStyleHelper.js +0 -38
  162. package/src/Utilities/Helpers/StyledColumns/IconStyleHelper.js +0 -39
  163. package/src/Utilities/Helpers/StyledColumns/PercentBarStyleHelper.js +0 -1
  164. package/src/Utilities/Helpers/StyledColumns/SparklineStyleHelper.js +0 -5
  165. package/src/Utilities/Helpers/StyledColumns/StyledColumnHelper.js +0 -37
  166. package/src/Utilities/Helpers/TimingHelper.js +0 -13
  167. package/src/Utilities/ObjectFactory.js +2 -4
  168. package/src/Utilities/Services/AggregatedScalarLiveValue.js +0 -7
  169. package/src/Utilities/Services/AlertService.js +0 -1
  170. package/src/Utilities/Services/AnnotationsService.js +0 -22
  171. package/src/Utilities/Services/CalculatedColumnExpressionService.js +0 -8
  172. package/src/Utilities/Services/ChartingService.js +0 -9
  173. package/src/Utilities/Services/DataService.js +0 -11
  174. package/src/Utilities/Services/Fdc3Service.js +0 -3
  175. package/src/Utilities/Services/FlashingCellService.js +0 -6
  176. package/src/Utilities/Services/ModuleService.js +0 -8
  177. package/src/Utilities/Services/QueryLanguageService.js +2 -25
  178. package/src/Utilities/Services/RowFormService.js +0 -1
  179. package/src/Utilities/Services/RowSummaryService.js +1 -20
  180. package/src/Utilities/Services/TeamSharingService.js +0 -15
  181. package/src/Utilities/Services/ThemeService.js +0 -7
  182. package/src/Utilities/Services/ValidationService.js +0 -21
  183. package/src/Utilities/createAgStatusPanelComponent.js +0 -3
  184. package/src/Utilities/getExpressionViewItems.js +0 -2
  185. package/src/Utilities/getObjectTagsViewItems.js +0 -1
  186. package/src/Utilities/getScrollbarSize.js +0 -1
  187. package/src/Utilities/logDeprecation.js +0 -3
  188. package/src/Utilities/resolveContainerElement.js +0 -21
  189. package/src/Utilities/runIfNotResolvedIn.js +0 -7
  190. package/src/Utilities/sortColumnStateForVisibleColumns.js +2 -12
  191. package/src/Utilities/waitForTimeout.js +0 -1
  192. package/src/Utilities/wizardSelection.js +0 -2
  193. package/src/View/AdaptablePopover/index.js +1 -1
  194. package/src/View/AdaptableView.js +1 -5
  195. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +0 -4
  196. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +0 -23
  197. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/EntitlementsForm.js +0 -2
  198. package/src/View/AdaptableWizardView/Wizard.js +0 -12
  199. package/src/View/AdaptableWizardView/helper.js +0 -11
  200. package/src/View/Alert/ActiveAlertsPanel.js +0 -2
  201. package/src/View/Alert/AlertStatusSubPanel.js +0 -8
  202. package/src/View/Alert/Utilities/getAlertType.js +0 -7
  203. package/src/View/Alert/Utilities/getDefaultAlertDefinition.js +0 -5
  204. package/src/View/Alert/Utilities/mapAlertDefinition.js +0 -3
  205. package/src/View/Alert/Wizard/AlertWizard.js +0 -2
  206. package/src/View/Alert/Wizard/isValidAlertRules.js +0 -1
  207. package/src/View/BulkUpdate/BulkUpdatePopup.js +0 -1
  208. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -3
  209. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +0 -1
  210. package/src/View/CalculatedColumn/utils.d.ts +1 -1
  211. package/src/View/CellSummary/CellSummaryPopup.js +0 -3
  212. package/src/View/CellSummary/CellSummaryStatusBarSubPanelPopover.js +1 -7
  213. package/src/View/Charting/EditChartButton.js +1 -4
  214. package/src/View/Charting/ShowChartButton.js +0 -3
  215. package/src/View/Charting/useAgChartState.js +0 -5
  216. package/src/View/Charting/useChartingElements.js +0 -4
  217. package/src/View/Charting/useExternalChartState.js +0 -6
  218. package/src/View/ColumnInfo/ColumnInfo.js +7 -17
  219. package/src/View/Comments/CommentsEditor.js +1 -16
  220. package/src/View/Components/AdaptableButton/AdaptableButtonComponent.js +0 -1
  221. package/src/View/Components/AdaptableButton/AdaptableButtonView.js +0 -3
  222. package/src/View/Components/AdaptableDateInput/index.js +2 -9
  223. package/src/View/Components/AdaptableIconComponent/index.js +0 -4
  224. package/src/View/Components/AdaptableIconSelector/index.js +0 -3
  225. package/src/View/Components/AdaptableInput/index.js +0 -2
  226. package/src/View/Components/Badge/index.js +0 -8
  227. package/src/View/Components/Buttons/ButtonNewPage.js +1 -2
  228. package/src/View/Components/Buttons/EntityListActionButtons.js +0 -1
  229. package/src/View/Components/CellPopup/index.js +1 -2
  230. package/src/View/Components/ColumnFilter/AdaptableColumnFilter.js +0 -4
  231. package/src/View/Components/ColumnFilter/AdaptableFloatingFilter.js +0 -4
  232. package/src/View/Components/ColumnFilter/ColumnFilter.js +3 -46
  233. package/src/View/Components/ColumnFilter/ColumnFilterWindow.js +0 -2
  234. package/src/View/Components/ColumnFilter/FloatingFilter.js +1 -20
  235. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +2 -16
  236. package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +1 -4
  237. package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +0 -1
  238. package/src/View/Components/ColumnFilter/components/FloatingFilterInputList.js +1 -6
  239. package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +0 -20
  240. package/src/View/Components/ColumnFilter/useAdaptableFilterWrapper.js +0 -5
  241. package/src/View/Components/ColumnFilter/utils.js +2 -9
  242. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicateEditor.js +0 -2
  243. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +0 -1
  244. package/src/View/Components/EntityRulesEditor/index.js +1 -11
  245. package/src/View/Components/ExternalRenderer.js +1 -3
  246. package/src/View/Components/FilterForm/ListBoxFilterForm.js +1 -52
  247. package/src/View/Components/ModuleValueSelector/index.js +0 -2
  248. package/src/View/Components/Panels/PanelWithImage.js +1 -5
  249. package/src/View/Components/Panels/PanelWithRow.js +0 -3
  250. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +0 -6
  251. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupBody.js +0 -3
  252. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +0 -6
  253. package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +1 -2
  254. package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +0 -1
  255. package/src/View/Components/Popups/AdaptablePopupAlert.js +0 -3
  256. package/src/View/Components/Popups/AdaptableToaster.js +0 -2
  257. package/src/View/Components/Popups/WindowPopups/WindowPopups.js +0 -8
  258. package/src/View/Components/RangesComponent.js +0 -57
  259. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +0 -3
  260. package/src/View/Components/Selectors/PermittedValuesSelector.js +1 -6
  261. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +1 -18
  262. package/src/View/Components/ToolPanel/ToolPanelPopupSections.js +0 -4
  263. package/src/View/Components/ToolPanel/ToolPanelWrapper.js +1 -4
  264. package/src/View/Components/ValueSelector/index.js +0 -4
  265. package/src/View/Components/wizardColumnListStyles.js +0 -5
  266. package/src/View/Dashboard/CustomToolbar.js +1 -25
  267. package/src/View/Dashboard/PinnedToolbarsSelector.js +0 -1
  268. package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -22
  269. package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +0 -1
  270. package/src/View/DataImport/systemFileHandlers.js +1 -1
  271. package/src/View/FlashingCell/Wizard/isValidFlashingCellRules.js +0 -1
  272. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +0 -27
  273. package/src/View/FormatColumn/Wizard/FormatColumnPreview.js +0 -1
  274. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +0 -7
  275. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +0 -12
  276. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +0 -10
  277. package/src/View/GridFilter/GridFilterPopup.js +0 -1
  278. package/src/View/GridFilter/useGridFilterExpressionEditor.js +0 -2
  279. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +1 -31
  280. package/src/View/Layout/LayoutViewPanel.js +0 -2
  281. package/src/View/Layout/PivotDetailsPopoup.js +0 -2
  282. package/src/View/Layout/TransposedPopup.js +0 -7
  283. package/src/View/Layout/Wizard/LayoutWizard.js +1 -6
  284. package/src/View/Layout/Wizard/sections/AggregationsSection.js +0 -2
  285. package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -32
  286. package/src/View/Layout/Wizard/sections/RowSummarySection.js +0 -3
  287. package/src/View/Layout/Wizard/sections/columnLayoutHelpers.js +0 -2
  288. package/src/View/Layout/Wizard/sections/layoutWizardColumns.js +0 -4
  289. package/src/View/Note/NotePopup.js +0 -1
  290. package/src/View/QuickSearch/QuickSearchPopup.js +0 -1
  291. package/src/View/StatusBar/AdaptableStatusBar.js +0 -4
  292. package/src/View/StatusBar/StatusBarPanel.js +0 -8
  293. package/src/View/StatusBar/StatusBarPopup.js +0 -2
  294. package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +0 -11
  295. package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +0 -28
  296. package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +0 -13
  297. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +1 -25
  298. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +0 -26
  299. package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +0 -3
  300. package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +0 -40
  301. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +0 -55
  302. package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +0 -15
  303. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +0 -21
  304. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarStyleCellTextPreview.js +0 -10
  305. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.js +0 -5
  306. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.js +0 -4
  307. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +0 -5
  308. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +0 -3
  309. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.js +0 -13
  310. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +0 -1
  311. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.js +0 -1
  312. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.js +0 -1
  313. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardRangesSection.js +0 -13
  314. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +1 -13
  315. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +0 -21
  316. package/src/View/SystemStatus/SystemStatusPopup.js +0 -1
  317. package/src/View/TeamSharing/SharedEntityObjectView.js +0 -1
  318. package/src/View/Theme/ThemeSelector.js +0 -1
  319. package/src/View/UIHelper.js +0 -6
  320. package/src/View/UIInterfaces.js +0 -1
  321. package/src/View/Wizard/CollapsibleWizardCard.js +1 -8
  322. package/src/View/Wizard/OnePageWizards.js +2 -9
  323. package/src/View/Wizard/SummaryColorTag.js +0 -1
  324. package/src/View/Wizard/useKeyboardNavigation.js +1 -3
  325. package/src/agGrid/Adaptable.js +0 -12
  326. package/src/agGrid/AdaptableAgGrid.d.ts +0 -2
  327. package/src/agGrid/AdaptableAgGrid.js +3 -482
  328. package/src/agGrid/AdaptableFilterHandler.js +0 -5
  329. package/src/agGrid/AdaptableLogger.js +0 -6
  330. package/src/agGrid/AgGridAdapter.js +3 -90
  331. package/src/agGrid/AgGridColumnAdapter.js +6 -168
  332. package/src/agGrid/AgGridExportAdapter.js +4 -106
  333. package/src/agGrid/AgGridFilterAdapter.js +0 -5
  334. package/src/agGrid/AgGridFloatingFilterAdapter.js +0 -10
  335. package/src/agGrid/AgGridMenuAdapter.js +0 -143
  336. package/src/agGrid/AgGridModulesAdapter.js +0 -2
  337. package/src/agGrid/AgGridOptionsService.js +0 -2
  338. package/src/agGrid/AgGridThemeAdapter.js +0 -7
  339. package/src/agGrid/agGridDataTypeDefinitions.js +0 -8
  340. package/src/agGrid/cellRenderers/BadgeRenderer.js +0 -10
  341. package/src/agGrid/cellRenderers/BulletChartRenderer.js +1 -96
  342. package/src/agGrid/cellRenderers/IconRenderer.js +0 -55
  343. package/src/agGrid/cellRenderers/PercentBarRenderer.js +0 -51
  344. package/src/agGrid/cellRenderers/RangeBarRenderer.js +1 -50
  345. package/src/agGrid/cellRenderers/RatingRenderer.js +0 -40
  346. package/src/agGrid/editors/AdaptableDateEditor/index.js +0 -18
  347. package/src/agGrid/editors/AdaptableNumberEditor/InternalAdaptableNumberEditor.js +0 -3
  348. package/src/agGrid/editors/AdaptableNumberEditor/index.js +0 -11
  349. package/src/agGrid/editors/AdaptablePercentageEditor/index.js +0 -9
  350. package/src/agGrid/index.js +1 -9
  351. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +1 -73
  352. package/src/components/ColorPicker/ColorPicker.js +0 -6
  353. package/src/components/Combobox/VirtualizedList.js +0 -5
  354. package/src/components/Combobox/index.js +5 -63
  355. package/src/components/Dashboard/Dashboard.js +1 -4
  356. package/src/components/Datepicker/index.js +2 -97
  357. package/src/components/DragAndDropContext/TabList.js +2 -6
  358. package/src/components/Drawer/index.js +0 -7
  359. package/src/components/Dropdown/index.js +0 -1
  360. package/src/components/DropdownButton/index.js +0 -1
  361. package/src/components/ExpressionEditor/BaseEditorInput.js +1 -16
  362. package/src/components/ExpressionEditor/EditorButton.js +0 -1
  363. package/src/components/ExpressionEditor/EditorInput.js +1 -7
  364. package/src/components/ExpressionEditor/EditorInputWithWhereClause.js +0 -1
  365. package/src/components/ExpressionEditor/ExpressionPreview.js +4 -14
  366. package/src/components/ExpressionEditor/NamedQueryContext.js +0 -1
  367. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +1 -6
  368. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +0 -12
  369. package/src/components/ExpressionEditor/QueryBuilder/utils.js +0 -4
  370. package/src/components/ExpressionEditor/index.js +5 -14
  371. package/src/components/Icon/index.js +0 -2
  372. package/src/components/Input/NumberInput.js +0 -10
  373. package/src/components/Modal/Backdrop.js +0 -1
  374. package/src/components/OverlayTrigger/Overlay.js +0 -1
  375. package/src/components/OverlayTrigger/index.js +3 -15
  376. package/src/components/ProgressIndicator/ProgressIndicator.js +3 -16
  377. package/src/components/ResizeObserver/index.js +0 -7
  378. package/src/components/SelectableList/index.js +0 -7
  379. package/src/components/SimpleButton/index.js +2 -16
  380. package/src/components/Tabs/index.js +0 -3
  381. package/src/components/Tag/Tag.js +0 -1
  382. package/src/components/Tag/columnScopeTagHelpers.js +0 -2
  383. package/src/components/Textarea/index.js +1 -8
  384. package/src/components/Toggle/Toggle.js +1 -5
  385. package/src/components/Toggle/ToggleGroup.js +1 -3
  386. package/src/components/ToggleButton/index.js +1 -3
  387. package/src/components/Tree/TreeDropdown/index.js +2 -130
  388. package/src/components/Tree/treeUtils.js +0 -4
  389. package/src/components/WindowModal/WindowModal.js +1 -14
  390. package/src/components/WindowModal/useStacking.js +0 -7
  391. package/src/components/icons/bullet-chart.js +0 -4
  392. package/src/components/icons/icon-style.js +0 -4
  393. package/src/components/icons/index.js +26 -36
  394. package/src/components/icons/range-bar.js +0 -5
  395. package/src/components/icons/star.js +0 -1
  396. package/src/components/twUtils.js +3 -12
  397. package/src/components/ui/calendar.js +1 -9
  398. package/src/components/ui/combobox.js +0 -4
  399. package/src/components/utils/captureTabNavigation/getFocusableChildren.js +0 -1
  400. package/src/components/utils/useDraggable.js +0 -4
  401. package/src/components/utils/useProperty.js +0 -18
  402. package/src/devTools/index.js +0 -1
  403. package/src/env.js +2 -2
  404. package/src/layout-manager/src/LMEmitter.js +0 -5
  405. package/src/layout-manager/src/destructurePivotColumnId.js +0 -19
  406. package/src/layout-manager/src/index.js +2 -182
  407. package/src/layout-manager/src/isLayoutEqual.js +0 -1
  408. package/src/layout-manager/src/isPivotColumnTotal.js +0 -2
  409. package/src/layout-manager/src/normalizeLayoutModel.js +0 -27
  410. package/src/layout-manager/src/simplifyLayoutModel.js +0 -11
  411. package/src/layout-manager/src/sortColumnIdsByOrder.js +2 -12
  412. package/src/lib/utils.js +0 -1
  413. package/src/migration/AdaptableUpgradeHelper.js +0 -2
  414. package/src/migration/VersionUpgrade17.js +0 -33
  415. package/src/migration/VersionUpgrade20.js +1 -21
  416. package/src/migration/VersionUpgrade21.js +0 -3
  417. package/src/migration/VersionUpgrade22.js +0 -11
  418. package/src/migration/VersionUpgrade23.js +0 -73
  419. package/src/parser/src/evaluator.js +0 -1
  420. package/src/parser/src/index.js +0 -1
  421. package/src/parser/src/parser.js +4 -103
  422. package/src/parser/src/predicate/mapExpressionToQlPredicate.js +0 -5
  423. package/src/parser/src/predicate/mapQlPredicateToExpression.js +0 -2
  424. package/src/parser/src/tokenizer.js +0 -2
  425. package/src/parser/src/utils.js +0 -1
  426. package/src/renderReactRoot.js +0 -12
  427. package/src/setupDevTools.js +0 -6
  428. package/src/twMerge.js +0 -1
  429. package/src/types.d.ts +1 -1
  430. package/src/types.js +0 -2
  431. package/tsconfig.esm.tsbuildinfo +1 -1
  432. package/src/Utilities/Services/Interface/IMetamodelService.d.ts +0 -20
  433. package/src/Utilities/Services/Interface/IMetamodelService.js +0 -1
  434. package/src/Utilities/Services/MetamodelService.d.ts +0 -17
  435. package/src/Utilities/Services/MetamodelService.js +0 -162
  436. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.d.ts +0 -6
  437. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +0 -99
  438. package/src/metamodel/adaptable-metamodel-model.d.ts +0 -26
  439. package/src/metamodel/adaptable-metamodel-model.js +0 -1
  440. package/src/metamodel/adaptable.metamodel.d.ts +0 -6244
  441. package/src/metamodel/adaptable.metamodel.js +0 -1
@@ -4,9 +4,8 @@ import { parseIntFn as parseInt } from '../Extensions/NumberExtensions';
4
4
  import { ExpressionEvaluationError } from '../../parser/src/ExpressionEvaluationError';
5
5
  import { extractColumnParameter, extractParameter, getDataChangeLog$, getGridChangeLog$, getNumericValue, handleColumnFunction, handleWhereFunction, validateColumnType, } from './expressionFunctionUtils';
6
6
  import { getTypedKeys } from '../Extensions/TypeExtensions';
7
- // numeric value(digits) followed by a single 's', 'm' or 'h' letter (case insensitive)
8
7
  const TIMEFRAME_REGEX = /^(\d+)(s|m|h)$/i;
9
- const SYSTEM_MAX_TIMEFRAME_SIZE = 86400000; // 24h
8
+ const SYSTEM_MAX_TIMEFRAME_SIZE = 86400000;
10
9
  export const observableExpressionFunctions = {
11
10
  WHERE: {
12
11
  handler(args, context) {
@@ -40,13 +39,7 @@ export const observableExpressionFunctions = {
40
39
  return getDataChangeMax$(dataChangeLog$, timeframeChange$);
41
40
  }
42
41
  case 'NONE': {
43
- return dataChangeLog$.pipe(
44
- // wait for the given time
45
- debounceTime(timeframeParameter.value),
46
- // completing the observable (ex. alert deletion) will also fire the NONE event
47
- // takeUntil takes care of this, ignoring any emissions as soon as the source completes
48
- // (count() result is irrelevant here, the main thing is that it emits an source completion)
49
- takeUntil(dataChangeLog$.pipe(count())));
42
+ return dataChangeLog$.pipe(debounceTime(timeframeParameter.value), takeUntil(dataChangeLog$.pipe(count())));
50
43
  }
51
44
  }
52
45
  },
@@ -80,15 +73,7 @@ export const observableExpressionFunctions = {
80
73
  return getDataChangeMax$(dataChangeLog$, timeframeChange$);
81
74
  }
82
75
  case 'NONE': {
83
- return dataChangeLog$.pipe(
84
- // add a synthetic first value to ensure the grid is observed even when there are no changes
85
- startWith(getDataChangedInfoStub(context)),
86
- // wait for the given time
87
- debounceTime(timeframeParameter.value),
88
- // completing the observable (ex. alert deletion) will also fire the NONE event
89
- // takeUntil takes care of this, ignoring any emissions as soon as the source completes
90
- // (count() result is irrelevant here, the main thing is that it emits a source completion)
91
- takeUntil(dataChangeLog$.pipe(count())));
76
+ return dataChangeLog$.pipe(startWith(getDataChangedInfoStub(context)), debounceTime(timeframeParameter.value), takeUntil(dataChangeLog$.pipe(count())));
92
77
  }
93
78
  }
94
79
  },
@@ -222,14 +207,12 @@ export const observableExpressionFunctions = {
222
207
  },
223
208
  TIMEFRAME: {
224
209
  handler(args, context) {
225
- // unit -> milliseconds
226
210
  const durationUnitRatios = {
227
211
  s: 1000,
228
212
  m: 60000,
229
213
  h: 3600000,
230
214
  };
231
215
  const input = args[0] + '';
232
- //we allow only seconds, minutes & hours durations
233
216
  const matchingResult = input.match(TIMEFRAME_REGEX);
234
217
  const value = matchingResult?.[1];
235
218
  const unit = matchingResult?.[2]?.toLowerCase();
@@ -240,7 +223,6 @@ export const observableExpressionFunctions = {
240
223
  if (!duration) {
241
224
  throw new ExpressionEvaluationError('TIMEFRAME', `timeframe expression is invalid`);
242
225
  }
243
- // check if the given duration is greater than the generally defined maxTimeframe size
244
226
  duration = getMaxTimeframeSize(duration, context);
245
227
  const result = {
246
228
  type: 'config',
@@ -260,26 +242,22 @@ export const observableExpressionFunctions = {
260
242
  },
261
243
  };
262
244
  export const observableExpressionFunctionNames = getTypedKeys(observableExpressionFunctions);
263
- // return TRUE if the last(tail) element has the greatest value
264
245
  const isLastElementMaxValue = (values) => {
265
246
  const [tailValue] = values.slice(-1);
266
247
  const restValues = values.slice(0, -1);
267
248
  return restValues.every((value) => value < tailValue);
268
249
  };
269
- // return TRUE if the last(tail) element has the greatest value
270
250
  const isLastElementMinValue = (values) => {
271
251
  const [tailValue] = values.slice(-1);
272
252
  const restValues = values.slice(0, -1);
273
253
  return restValues.every((value) => value > tailValue);
274
254
  };
275
- // useful for functions which do NOT have an initial change (ex. GRID_CHANGE NONE)
276
255
  const getDataChangedInfoStub = (context) => {
277
256
  let rowNodeStub;
278
257
  if (!context.filterFn) {
279
258
  rowNodeStub = context.node ?? context.adaptableApi.gridApi.getFirstRowNode();
280
259
  }
281
260
  else {
282
- // if there is a WHERE clause defined, find the first rowNode which satisfies the condition
283
261
  context.adaptableApi.internalApi.forAllRowNodesDo((rowNode) => {
284
262
  if (!rowNodeStub) {
285
263
  if (context.filterFn(rowNode)) {
@@ -310,13 +288,11 @@ const getDataChangedInfoStub = (context) => {
310
288
  };
311
289
  }
312
290
  };
313
- // returns an observable which fires if the source$ emitted `targetCount` times in the given `timeframeChange$` period
314
291
  const getDataChangeCount$ = (dataChangeLog$, timeframeChange$, targetCount) => {
315
292
  return dataChangeLog$.pipe(withLatestFrom(timeframeChange$), filter(([_, changeCountWithinTimeframe]) => {
316
293
  return targetCount === changeCountWithinTimeframe;
317
294
  }), map(([source]) => source));
318
295
  };
319
- // returns an observable which fires if the last source$ emission had the lowest(min) value in the given `timeframeChange$` period
320
296
  const getDataChangeMin$ = (dataChangeLog$, timeframeChange$) => {
321
297
  return dataChangeLog$.pipe(withLatestFrom(timeframeChange$), filter(([changeLog, values]) => {
322
298
  return values.length > 1
@@ -326,7 +302,6 @@ const getDataChangeMin$ = (dataChangeLog$, timeframeChange$) => {
326
302
  return changeLog;
327
303
  }));
328
304
  };
329
- // returns an observable which fires if the last source$ emission had the highest(max) value in the given `timeframeChange$` period
330
305
  const getDataChangeMax$ = (dataChangeLog$, timeframeChange$) => {
331
306
  return dataChangeLog$.pipe(withLatestFrom(timeframeChange$), filter(([changeLog, values]) => {
332
307
  return values.length > 1
@@ -336,17 +311,12 @@ const getDataChangeMax$ = (dataChangeLog$, timeframeChange$) => {
336
311
  return changeLog;
337
312
  }));
338
313
  };
339
- // returns an observable which maps a dataChangeLogEntry to the number(count) of changed values in the entire grid
340
- // the counter is continuously up-to-date in the given timeframe
341
- // if the given counterLimit is reached, the counter is reset
342
314
  const getTrailingGridCountChange$ = (source$, trailingPeriod, counterLimit) => {
343
315
  return defer(() => {
344
- // keep the counter value in an internal intermediary state
345
316
  let counter = 0;
346
317
  const movingTimeWindow$ = getSlidingTimeframe$(source$, trailingPeriod, (dataChangeLog) => {
347
318
  counter++;
348
319
  }, (dataChangeLog) => {
349
- // counter may have been reset during the timeframe, in which case we skip the decrement
350
320
  if (counter > 0) {
351
321
  counter--;
352
322
  }
@@ -354,19 +324,14 @@ const getTrailingGridCountChange$ = (source$, trailingPeriod, counterLimit) => {
354
324
  return movingTimeWindow$.pipe(map(() => {
355
325
  const gridCounter = counter;
356
326
  if (gridCounter === counterLimit) {
357
- // reset counter
358
327
  counter = 0;
359
328
  }
360
329
  return gridCounter;
361
330
  }));
362
331
  });
363
332
  };
364
- // returns an observable which maps a dataChangeLogEntry to the number(count) of changed values in the row of the given dataChangeLogEntry
365
- // the counter is continuously up-to-date in the given timeframe
366
- // if the given counterLimit is reached, the counter is reset
367
333
  const getTrailingRowCountChange$ = (source$, trailingPeriod, counterLimit) => {
368
334
  return defer(() => {
369
- // keep the counter value in an internal intermediary state (distinct per row PK)
370
335
  const counterMap = new Map();
371
336
  const getCellCounter = (dataChangeLog) => counterMap.get(dataChangeLog.primaryKeyValue) ?? 0;
372
337
  const slidingTimeframe$ = getSlidingTimeframe$(source$, trailingPeriod, (dataChangeLog) => {
@@ -374,7 +339,6 @@ const getTrailingRowCountChange$ = (source$, trailingPeriod, counterLimit) => {
374
339
  counterMap.set(dataChangeLog.primaryKeyValue, ++currentCounter);
375
340
  }, (dataChangeLog) => {
376
341
  let currentCounter = getCellCounter(dataChangeLog);
377
- // counter may have been reset during the timeframe, in which case we skip the decrement
378
342
  if (currentCounter > 0) {
379
343
  counterMap.set(dataChangeLog.primaryKeyValue, --currentCounter);
380
344
  }
@@ -382,32 +346,25 @@ const getTrailingRowCountChange$ = (source$, trailingPeriod, counterLimit) => {
382
346
  return slidingTimeframe$.pipe(map((dataChangeLog) => {
383
347
  const cellCounter = getCellCounter(dataChangeLog);
384
348
  if (cellCounter === counterLimit) {
385
- // reset counter
386
349
  counterMap.set(dataChangeLog.primaryKeyValue, 0);
387
350
  }
388
351
  return cellCounter;
389
352
  }));
390
353
  });
391
354
  };
392
- // returns an observable which maps a dataChangeLogEntry to the array of changed values in the entire grid
393
- // the changed values array is continuously up-to-date in the given timeframe
394
355
  const getTrailingGridValueChange$ = (source$, trailingPeriod) => {
395
356
  return defer(() => {
396
- // keep the changed values in an internal intermediary state
397
357
  let values = [];
398
358
  const doubleInsertionsMap = new WeakMap();
399
359
  const slidingTimeframe$ = getSlidingTimeframe$(source$, trailingPeriod, (dataChangeLog) => {
400
360
  if (!values.length) {
401
- // values is empty, so we evaluate both old & new node values
402
361
  values.push(getNumericValue(dataChangeLog.oldValue));
403
- // mark the double insertion, we will have to pop 2 elements
404
362
  doubleInsertionsMap.set(dataChangeLog, true);
405
363
  }
406
364
  values.push(getNumericValue(dataChangeLog.newValue));
407
365
  }, (dataChangeLog) => {
408
366
  values.shift();
409
367
  if (doubleInsertionsMap.get(dataChangeLog)) {
410
- // the current change inserted both old and new values, so we have to extract 2 elements
411
368
  values.shift();
412
369
  doubleInsertionsMap.delete(dataChangeLog);
413
370
  }
@@ -415,20 +372,15 @@ const getTrailingGridValueChange$ = (source$, trailingPeriod) => {
415
372
  return slidingTimeframe$.pipe(map(() => values));
416
373
  });
417
374
  };
418
- // returns an observable which maps a dataChangeLogEntry to the array of changed values in the row of the given dataChangeLogEntry
419
- // the changed values array is continuously up-to-date in the given timeframe
420
375
  const getTrailingRowValueChange$ = (source$, trailingPeriod) => {
421
376
  return defer(() => {
422
- // keep the changed values in an internal intermediary state (distinct per row PK)
423
377
  const rowValuesMap = new Map();
424
378
  const doubleInsertionsMap = new WeakMap();
425
379
  const getRowValues = (dataChangeLog) => rowValuesMap.get(dataChangeLog.primaryKeyValue) ?? [];
426
380
  const slidingTimeframe$ = getSlidingTimeframe$(source$, trailingPeriod, (dataChangeLog) => {
427
381
  let rowValues = getRowValues(dataChangeLog);
428
382
  if (!rowValues.length) {
429
- // values is empty, so we evaluate both old & new node values
430
383
  rowValues.push(getNumericValue(dataChangeLog.oldValue));
431
- // mark the double insertion, we will have to pop 2 elements
432
384
  doubleInsertionsMap.set(dataChangeLog, true);
433
385
  }
434
386
  rowValues.push(getNumericValue(dataChangeLog.newValue));
@@ -437,7 +389,6 @@ const getTrailingRowValueChange$ = (source$, trailingPeriod) => {
437
389
  let rowValues = getRowValues(dataChangeLog);
438
390
  rowValues.shift();
439
391
  if (doubleInsertionsMap.get(dataChangeLog)) {
440
- // the current change inserted both old and new values, so we have to extract 2 elements
441
392
  rowValues.shift();
442
393
  doubleInsertionsMap.delete(dataChangeLog);
443
394
  }
@@ -446,20 +397,10 @@ const getTrailingRowValueChange$ = (source$, trailingPeriod) => {
446
397
  return slidingTimeframe$.pipe(map((dataChangeLog) => getRowValues(dataChangeLog)));
447
398
  });
448
399
  };
449
- // return an observable which will emit when the source$ event enters, respectively exits the timeframe
450
- // it also executes the provided onEnter/onExit handlers
451
400
  const getSlidingTimeframe$ = (source$, timeframeDuration, onTimeframeEnter, onTimeframeExit) => {
452
- return source$.pipe(
453
- // create intermediary observable which, for each emission from source$:
454
- mergeMap((dataChangeLog) => {
455
- // 1. it will emit the payload immediately...
456
- const enter$ = of(dataChangeLog).pipe(
457
- // ...and execute the provided onPushHandler() callback
458
- tap((dataChangeLog) => onTimeframeEnter(dataChangeLog)));
459
- // 2. and after a given 'timeWindowSize' delay it will re-emit the payload...
460
- const exit$ = of(dataChangeLog).pipe(delay(timeframeDuration),
461
- // ...and execute the provided onPopHandler() callback
462
- tap((dataChangeLog) => onTimeframeExit(dataChangeLog)));
401
+ return source$.pipe(mergeMap((dataChangeLog) => {
402
+ const enter$ = of(dataChangeLog).pipe(tap((dataChangeLog) => onTimeframeEnter(dataChangeLog)));
403
+ const exit$ = of(dataChangeLog).pipe(delay(timeframeDuration), tap((dataChangeLog) => onTimeframeExit(dataChangeLog)));
463
404
  return of(enter$, exit$).pipe(mergeAll());
464
405
  }));
465
406
  };
@@ -480,15 +421,12 @@ const handleGridRowAddedOrRemoved = (args, gridChangeLog$, consumingFunction, co
480
421
  throw new ExpressionEvaluationError(consumingFunction, 'requires a TIMEFRAME parameter when observing for no changes');
481
422
  }
482
423
  if (countValue == null && timeframeParameter == null) {
483
- // default - return all new rows
484
424
  return gridChangeLog$;
485
425
  }
486
426
  if (countValue == null) {
487
- // default count value of 1
488
427
  countValue = 1;
489
428
  }
490
429
  if (timeframeParameter == null) {
491
- // default time parameter of max
492
430
  timeframeParameter = {
493
431
  name: 'TIMEFRAME',
494
432
  type: 'config',
@@ -496,7 +434,6 @@ const handleGridRowAddedOrRemoved = (args, gridChangeLog$, consumingFunction, co
496
434
  };
497
435
  }
498
436
  if (countValue === 0) {
499
- // handle special case when observing NO changes
500
437
  const rowDataChangeInfoStub = {
501
438
  rowTrigger: consumingFunction === 'ROW_ADDED' ? 'Add' : 'Delete',
502
439
  rowNodes: [],
@@ -504,15 +441,7 @@ const handleGridRowAddedOrRemoved = (args, gridChangeLog$, consumingFunction, co
504
441
  changedAt: Date.now(),
505
442
  ...context.adaptableApi.internalApi.buildBaseContext(),
506
443
  };
507
- return gridChangeLog$.pipe(
508
- // add a synthetic first value to ensure the grid is observed even when there are no changes
509
- startWith(rowDataChangeInfoStub),
510
- // wait for the given time
511
- debounceTime(timeframeParameter.value),
512
- // completing the observable (ex. alert deletion) will also fire the NONE event
513
- // takeUntil takes care of this, ignoring any emissions as soon as the source completes
514
- // (count() result is irrelevant here, the main thing is that it emits a source completion)
515
- takeUntil(gridChangeLog$.pipe(count())));
444
+ return gridChangeLog$.pipe(startWith(rowDataChangeInfoStub), debounceTime(timeframeParameter.value), takeUntil(gridChangeLog$.pipe(count())));
516
445
  }
517
446
  const timeframeChange$ = getTrailingGridCountChange$(gridChangeLog$, timeframeParameter.value, countValue);
518
447
  return getDataChangeCount$(gridChangeLog$, timeframeChange$, countValue);
@@ -63,15 +63,6 @@ function initReducers(reducers) {
63
63
  }
64
64
  return result;
65
65
  }
66
- /**
67
- *
68
- * This fn mutates the reducerResults array!!!
69
- *
70
- * @param data data item
71
- * @param reducers an array of reducers
72
- * @param reducerResults the results on which to operate
73
- *
74
- */
75
66
  function computeReducersFor(data, reducers, reducerResults, dataIndex) {
76
67
  if (!reducers || !Object.keys(reducers).length) {
77
68
  return;
@@ -18,8 +18,6 @@ import StringExtensions from '../Extensions/StringExtensions';
18
18
  import { getTypedKeys } from '../Extensions/TypeExtensions';
19
19
  import { evaluate } from '../../parser/src';
20
20
  import { evaluateNode } from '../../parser/src/evaluator';
21
- // useful for unary operators which expect a list of arguments
22
- // we extract the provided array elements into a list
23
21
  const flattenArguments = (values) => {
24
22
  if (!Array.isArray(values)) {
25
23
  return values;
@@ -60,11 +58,9 @@ export const scalarExpressionFunctions = {
60
58
  if (!column.queryable) {
61
59
  throw new ExpressionEvaluationError('COL', `Column name "${columnId}" is not queryable`);
62
60
  }
63
- // see #derived_pivot_cell_style
64
61
  if (context.pivotResultColumn) {
65
62
  const baseColumnId = context.pivotResultColumn.getColDef()?.pivotValueColumn?.getColId();
66
63
  if (baseColumnId === columnId) {
67
- // we evaluate the pivot result column instead of the base column
68
64
  return context.adaptableApi?.gridApi.getNormalisedValueFromRowNode(context.node, context.pivotResultColumn.getColId());
69
65
  }
70
66
  }
@@ -103,11 +99,9 @@ export const scalarExpressionFunctions = {
103
99
  if (!column.queryable) {
104
100
  throw new ExpressionEvaluationError('$SCOPE', `Column name "${scopeColumnId}" is not queryable`);
105
101
  }
106
- // see #derived_pivot_cell_style
107
102
  if (context.pivotResultColumn) {
108
103
  const baseColumnId = context.pivotResultColumn.getColDef()?.pivotValueColumn?.getColId();
109
104
  if (baseColumnId === scopeColumnId) {
110
- // we evaluate the pivot result column instead of the base column
111
105
  return context.adaptableApi?.gridApi.getNormalisedValueFromRowNode(context.node, context.pivotResultColumn.getColId());
112
106
  }
113
107
  }
@@ -129,12 +123,10 @@ export const scalarExpressionFunctions = {
129
123
  if (!namedQuery) {
130
124
  throw new ExpressionEvaluationError('QUERY', `Named Query with name ${namedQueryName} not found!`);
131
125
  }
132
- // add query to call stack
133
126
  if (!context.namedQueryCallStack) {
134
127
  context.namedQueryCallStack = [];
135
128
  }
136
129
  context.namedQueryCallStack.push(namedQueryName);
137
- //check if this Named Query is not already evaluated, in which case this would lead to an infinite evaluation cycle
138
130
  const firstIndex = context.namedQueryCallStack.indexOf(namedQueryName);
139
131
  const lastIndex = context.namedQueryCallStack.lastIndexOf(namedQueryName);
140
132
  if (firstIndex !== lastIndex) {
@@ -142,7 +134,6 @@ export const scalarExpressionFunctions = {
142
134
  throw new ExpressionEvaluationError(`${namedQueryName}`, ` contains a circular reference: ${cycle.join(' -> ')}`);
143
135
  }
144
136
  const queryEvaluationResult = evaluate(namedQuery.BooleanExpression, context);
145
- // remove query name from callstack
146
137
  context.namedQueryCallStack?.pop();
147
138
  return queryEvaluationResult;
148
139
  },
@@ -273,7 +264,6 @@ export const scalarExpressionFunctions = {
273
264
  handler(args) {
274
265
  const sanitizedArguments = sanitizeArguments(flattenArguments(args));
275
266
  if (args.length && !sanitizedArguments.length) {
276
- // expression is syntactically valid, but operates with incompatible values
277
267
  return;
278
268
  }
279
269
  return sanitizedArguments.reduce((a, b) => a + b) / sanitizedArguments.length;
@@ -288,7 +278,6 @@ export const scalarExpressionFunctions = {
288
278
  handler(args) {
289
279
  const sanitizedArguments = sanitizeArguments(args, true);
290
280
  if (args.length && !sanitizedArguments.length) {
291
- // expression is syntactically valid, but operates with incompatible values
292
281
  return;
293
282
  }
294
283
  return sanitizedArguments.reduce((a, b) => a + b);
@@ -304,7 +293,6 @@ export const scalarExpressionFunctions = {
304
293
  handler(args) {
305
294
  const sanitizedArguments = sanitizeArguments(args);
306
295
  if (args.length && !sanitizedArguments.length) {
307
- // expression is syntactically valid, but operates with incompatible values
308
296
  return;
309
297
  }
310
298
  return sanitizedArguments.reduce((a, b) => a - b);
@@ -363,9 +351,9 @@ export const scalarExpressionFunctions = {
363
351
  CASE: {
364
352
  handler([expressionValueNode, whenThenListNodes, defaultValueNode], context) {
365
353
  const caseExpressionValue = expressionValueNode != undefined
366
- ? // CASE matches the first WHEN statement with the provided expression value
354
+ ?
367
355
  evaluateExpressionNode(expressionValueNode, context)
368
- : // otherwise it returns the first WHEN statement evaluated to TRUE
356
+ :
369
357
  true;
370
358
  const matchingWhen = whenThenListNodes.find((whenThenStatement) => {
371
359
  const whenValue = evaluateExpressionNode(whenThenStatement.WHEN, context);
@@ -734,10 +722,8 @@ export const scalarExpressionFunctions = {
734
722
  }
735
723
  const columnArg = args[0];
736
724
  if (!columnArg) {
737
- // if no column is provided, we check if any value has changed
738
725
  return context.dataChangedEvent.oldValue !== context.dataChangedEvent.newValue;
739
726
  }
740
- // only COL argument is supported
741
727
  if (columnArg.type !== 'COL' && columnArg.type !== '$SCOPE') {
742
728
  throw new ExpressionEvaluationError('ANY_CHANGE', 'accepts only a column reference or scope as an argument');
743
729
  }
@@ -89,7 +89,6 @@ export function hasItemsOfCount(arrayToCheck, numberOfItems) {
89
89
  export function moveArray(array, from, to) {
90
90
  array.splice(to, 0, array.splice(from, 1)[0]);
91
91
  }
92
- //This deliberately only checks contents equality and not positional so [1, 2, 3]== [1, 3, 2]
93
92
  export function areArraysEqual(arr1, arr2) {
94
93
  if (IsNullOrEmpty(arr1) && IsNotNullOrEmpty(arr2)) {
95
94
  return false;
@@ -114,29 +113,17 @@ export function areArraysEqualWithOrder(arr1, arr2) {
114
113
  }
115
114
  return arr1.every((x, index) => arr2.indexOf(x) == index);
116
115
  }
117
- /**
118
- * Checks if two arrays contain the same elements (order-independent).
119
- *
120
- * @param arr1 First array to compare
121
- * @param arr2 Second array to compare
122
- * @param equalityFn Optional function to determine if two elements are equal
123
- * @returns True if arrays contain the same elements, false otherwise
124
- */
125
116
  export function areArraysEqualWithCustomComparator(arr1, arr2, equalityFn) {
126
- // Handle null/undefined cases
127
117
  if (!arr1 && !arr2) {
128
118
  return true;
129
119
  }
130
120
  if (!arr1 || !arr2) {
131
121
  return false;
132
122
  }
133
- // Check length
134
123
  if (arr1.length !== arr2.length) {
135
124
  return false;
136
125
  }
137
- // Use default equality comparison if no custom function provided
138
126
  const compareElements = equalityFn || ((a, b) => a === b);
139
- // For each element in arr1, find a matching element in arr2
140
127
  const arr2Copy = [...arr2];
141
128
  for (let i = 0; i < arr1.length; i++) {
142
129
  const element = arr1[i];
@@ -144,45 +131,34 @@ export function areArraysEqualWithCustomComparator(arr1, arr2, equalityFn) {
144
131
  if (matchIndex === -1) {
145
132
  return false;
146
133
  }
147
- // Remove the matched element to prevent duplicate matches
148
134
  arr2Copy.splice(matchIndex, 1);
149
135
  }
150
136
  return true;
151
137
  }
152
138
  export function areArraysEqualWithOrderAndProperties(value, other) {
153
139
  const type = Object.prototype.toString.call(value);
154
- // If the two objects are not the same type, return false
155
140
  if (type !== Object.prototype.toString.call(other)) {
156
141
  return false;
157
142
  }
158
- // If items are not an object or array, return false
159
143
  if (['[object Array]', '[object Object]'].indexOf(type) < 0) {
160
144
  return false;
161
145
  }
162
- // Compare the length of the length of the two items
163
146
  const valueLen = type === '[object Array]' ? value.length : Object.keys(value).length;
164
147
  const otherLen = type === '[object Array]' ? other.length : Object.keys(other).length;
165
148
  if (valueLen !== otherLen) {
166
149
  return false;
167
150
  }
168
- // Compare two items
169
151
  const compare = function (item1, item2) {
170
- // Get the object type
171
152
  const itemType = Object.prototype.toString.call(item1);
172
- // If an object or array, compare recursively
173
153
  if (['[object Array]', '[object Object]'].indexOf(itemType) >= 0) {
174
154
  if (!areArraysEqualWithOrderAndProperties(item1, item2)) {
175
155
  return false;
176
156
  }
177
157
  }
178
- // Otherwise, do a simple comparison
179
158
  else {
180
- // If the two items are not the same type, return false
181
159
  if (itemType !== Object.prototype.toString.call(item2)) {
182
160
  return false;
183
161
  }
184
- // Else if it's a function, convert to a string and compare
185
- // Otherwise, just compare
186
162
  if (itemType === '[object Function]') {
187
163
  if (item1.toString() !== item2.toString()) {
188
164
  return false;
@@ -195,7 +171,6 @@ export function areArraysEqualWithOrderAndProperties(value, other) {
195
171
  }
196
172
  }
197
173
  };
198
- // Compare properties
199
174
  if (type === '[object Array]') {
200
175
  for (let i = 0; i < valueLen; i++) {
201
176
  if (compare(value[i], other[i]) === false) {
@@ -212,7 +187,6 @@ export function areArraysEqualWithOrderAndProperties(value, other) {
212
187
  }
213
188
  }
214
189
  }
215
- // If nothing failed, return true
216
190
  return true;
217
191
  }
218
192
  export function sortArrayWithProperty(sortOrder, values, sortProperty) {
@@ -308,7 +282,6 @@ export function SumArray(array) {
308
282
  export function reorderArray(array, startIndex, endIndex) {
309
283
  const result = [...array];
310
284
  if (startIndex > array.length - 1) {
311
- // not much that we can do if the dragged item is out of bounds...
312
285
  return result;
313
286
  }
314
287
  if (endIndex > array.length - 1) {
@@ -318,15 +291,7 @@ export function reorderArray(array, startIndex, endIndex) {
318
291
  result.splice(endIndex, 0, removed);
319
292
  return result;
320
293
  }
321
- export function sortArrayWithOrder(array, order,
322
- /**
323
- *
324
- * The array can contain items which are not listed in the order array.
325
- * So sortUnorderedItems decides whether to leave these items untouched
326
- * in the current order in which they are in the array (sortUnorderedItems: false)
327
- * or to sort them using normal comparison rules
328
- */
329
- { sortUnorderedItems }) {
294
+ export function sortArrayWithOrder(array, order, { sortUnorderedItems }) {
330
295
  const itemsToIndex = array.reduce((acc, x, i) => {
331
296
  acc.set(x, i);
332
297
  return acc;
@@ -344,10 +309,8 @@ export function sortArrayWithOrder(array, order,
344
309
  const indexInOrderSecondElement = orderContainsSecondElement
345
310
  ? orderItemsToIndex.get(valueB)
346
311
  : -1;
347
- //if none of the element are in the order list we just return normal compare
348
312
  if (!orderContainsFirstElement && !orderContainsSecondElement) {
349
313
  if (!sortUnorderedItems) {
350
- // keep the original order
351
314
  return itemsToIndex.get(valueA) - itemsToIndex.get(valueB);
352
315
  }
353
316
  if (valueA == valueB) {
@@ -355,24 +318,16 @@ export function sortArrayWithOrder(array, order,
355
318
  }
356
319
  return valueA < valueB ? -1 : 1;
357
320
  }
358
- //if first item not in the list make sure we put it after the second item
359
321
  if (!orderContainsFirstElement) {
360
322
  return 1;
361
323
  }
362
- //if second item not in the list make sure we put it after the first item
363
324
  if (!orderContainsSecondElement) {
364
325
  return -1;
365
326
  }
366
- //return the comparison from the list if the two items are in the list
367
327
  return indexInOrderOfFirstElement - indexInOrderSecondElement;
368
328
  }
369
329
  return [].concat(array).sort(compareItemsOfCustomSort);
370
330
  }
371
- /**
372
- * Creates an array of elements split into groups the length of `size`.
373
- * If `array` can't be split evenly, the final chunk will be the remaining elements.
374
- * Drop-in replacement for lodash/chunk.
375
- */
376
331
  export function chunk(array, size = 1) {
377
332
  const length = array.length;
378
333
  if (!length || !(size >= 1)) {
@@ -385,32 +340,15 @@ export function chunk(array, size = 1) {
385
340
  }
386
341
  return result;
387
342
  }
388
- /**
389
- * Flattens array a single level deep.
390
- * Drop-in replacement for lodash/flatten.
391
- */
392
343
  export function flatten(array) {
393
344
  return array.flat();
394
345
  }
395
- /**
396
- * Recursively flattens array.
397
- * Drop-in replacement for lodash/flattenDeep.
398
- */
399
346
  export function flattenDeep(array) {
400
347
  return array.flat(Infinity);
401
348
  }
402
- /**
403
- * Creates a duplicate-free version of an array, using SameValueZero for equality
404
- * comparisons, in which only the first occurrence of each element is kept.
405
- * Drop-in replacement for lodash/uniq.
406
- */
407
349
  export function uniq(array) {
408
350
  return [...new Set(array)];
409
351
  }
410
- /**
411
- * Checks if `value` is classified as an Array object.
412
- * Drop-in replacement for lodash/isArray.
413
- */
414
352
  export const isArray = Array.isArray;
415
353
  export const ArrayExtensions = {
416
354
  GetLength,
@@ -18,14 +18,6 @@ export function wrapInParentheses(numberToWrap) {
18
18
  return ' (' + numberToWrap + ')';
19
19
  }
20
20
  export function timesBy100(value) {
21
- // the simple solution does not work
22
- // return value * 100;
23
- // needed because 0.12676 * 100 = 12.676000000000002
24
- // but we dont want that to happen
25
- // this solution does not handle -0 correctly
26
- // also 1267.6 * 100 is 126759.99999999999
27
- // which is not what we want
28
- // return parseFloat((value * 100).toFixed(12));
29
21
  if (isNaN(value) || !value) {
30
22
  return value;
31
23
  }
@@ -41,12 +33,6 @@ export function timesBy100(value) {
41
33
  return Number(num.join(''));
42
34
  }
43
35
  export function divideBy100(value) {
44
- // the simple solution does not work
45
- // return value / 100;
46
- // needed because 4012.3456/100 = 40.123456000000004
47
- // but we dont want that to happen
48
- // this solution does not handle -0 correctly
49
- // return parseFloat((value / 100).toFixed(12));
50
36
  if (isNaN(value) || !value) {
51
37
  return value;
52
38
  }
@@ -77,10 +63,6 @@ export function avoidJavascriptPrecisionIssues(value) {
77
63
  }
78
64
  return newValue;
79
65
  }
80
- /**
81
- * Clamps `number` within the inclusive `lower` and `upper` bounds.
82
- * Drop-in replacement for lodash/clamp.
83
- */
84
66
  export function clamp(value, lower, upper) {
85
67
  return Math.min(Math.max(value, lower), upper);
86
68
  }
@@ -105,10 +87,6 @@ const _reTrimEnd = /\s+$/;
105
87
  const _reIsBinary = /^0b[01]+$/i;
106
88
  const _reIsOctal = /^0o[0-7]+$/i;
107
89
  const _reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
108
- /**
109
- * Converts value to a number.
110
- * Drop-in replacement for lodash/toNumber.
111
- */
112
90
  export function toNumber(value) {
113
91
  if (typeof value === 'number') {
114
92
  return value;
@@ -138,11 +116,6 @@ export function toNumber(value) {
138
116
  const other = typeof value.valueOf === 'function' ? value.valueOf() : value;
139
117
  return +other;
140
118
  }
141
- /**
142
- * Converts string to an integer of the specified radix.
143
- * If radix is undefined or 0, a radix of 10 is used (unlike native parseInt which auto-detects).
144
- * Drop-in replacement for lodash/parseInt.
145
- */
146
119
  export function parseIntFn(string, radix) {
147
120
  const str = typeof string === 'string' ? string.trim() : String(string);
148
121
  return globalThis.parseInt(str, radix || 10);