@adaptabletools/adaptable-cjs 23.0.4 → 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.
- package/agGrid.js +0 -31
- package/index.js +0 -31
- package/package.json +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +0 -2
- package/src/AdaptableOptions/AdaptablePlugin.js +1 -9
- package/src/AdaptableOptions/DefaultAdaptableOptions.js +3 -39
- package/src/AdaptableOptions/SettingsPanelOptions.d.ts +44 -16
- package/src/AdaptableState/Aggregations/only.js +0 -11
- package/src/AdaptableState/Aggregations/weightedAverage.js +0 -26
- package/src/AdaptableState/Common/AdaptableColumn.js +0 -1
- package/src/AdaptableState/Common/AdaptableForm.js +0 -49
- package/src/AdaptableState/Common/AdaptableFormatPresets.js +0 -13
- package/src/AdaptableState/Common/AdaptablePredicate.js +3 -125
- package/src/AdaptableState/Common/AggregationColumns.js +0 -10
- package/src/AdaptableState/Common/Enums.js +0 -3
- package/src/AdaptableState/Common/Menu.js +1 -7
- package/src/AdaptableState/Common/MenuItem.js +0 -2
- package/src/AdaptableState/Common/Types.js +2 -5
- package/src/AdaptableState/StatusBarState.js +0 -3
- package/src/AdaptableState/StyledColumns/BadgeStyle.js +0 -1
- package/src/AdaptableState/StyledColumns/Common/BarStyleProperties.js +0 -4
- package/src/AdaptableState/StyledColumns/Common/CellTextOptions.js +0 -5
- package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.js +0 -8
- package/src/AdaptableState/Uuid.js +0 -1
- package/src/Api/Implementation/AdaptableApiImpl.js +0 -4
- package/src/Api/Implementation/AlertApiImpl.js +0 -21
- package/src/Api/Implementation/ApiBase.js +0 -24
- package/src/Api/Implementation/CalculatedColumnApiImpl.js +0 -1
- package/src/Api/Implementation/ChartingApiImpl.js +0 -3
- package/src/Api/Implementation/ColumnApiImpl.js +1 -15
- package/src/Api/Implementation/ColumnFilterApiImpl.js +0 -9
- package/src/Api/Implementation/ColumnScopeApiImpl.js +0 -21
- package/src/Api/Implementation/DashboardApiImpl.js +0 -1
- package/src/Api/Implementation/EntitlementApiImpl.js +0 -1
- package/src/Api/Implementation/ExportApiImpl.js +0 -10
- package/src/Api/Implementation/ExpressionApiImpl.js +0 -1
- package/src/Api/Implementation/FormatColumnApiImpl.js +0 -3
- package/src/Api/Implementation/FreeTextColumnApiImpl.js +0 -2
- package/src/Api/Implementation/GridApiImpl.js +1 -22
- package/src/Api/Implementation/GridFilterApiImpl.js +0 -2
- package/src/Api/Implementation/LayoutApiImpl.js +0 -18
- package/src/Api/Implementation/LayoutHelpers.js +0 -16
- package/src/Api/Implementation/NamedQueryApiImpl.js +0 -1
- package/src/Api/Implementation/PredicateApiImpl.js +0 -5
- package/src/Api/Implementation/RowFormApiImpl.js +0 -2
- package/src/Api/Implementation/StateApiImpl.js +0 -7
- package/src/Api/Implementation/SystemStatusApiImpl.js +0 -2
- package/src/Api/Implementation/TeamSharingApiImpl.js +0 -3
- package/src/Api/Implementation/UserInterfaceApiImpl.js +0 -1
- package/src/Api/Internal/ActionColumnInternalApi.js +0 -1
- package/src/Api/Internal/AdaptableInternalApi.d.ts +0 -2
- package/src/Api/Internal/AdaptableInternalApi.js +1 -39
- package/src/Api/Internal/AlertInternalApi.js +1 -102
- package/src/Api/Internal/CalculatedColumnInternalApi.js +0 -17
- package/src/Api/Internal/ChartingInternalApi.js +0 -1
- package/src/Api/Internal/ColumnFilterInternalApi.js +0 -52
- package/src/Api/Internal/ColumnInternalApi.js +0 -32
- package/src/Api/Internal/CustomSortInternalApi.js +0 -5
- package/src/Api/Internal/DashboardInternalApi.js +0 -23
- package/src/Api/Internal/DataImportInternalApi.js +0 -1
- package/src/Api/Internal/EventInternalApi.js +0 -2
- package/src/Api/Internal/ExportInternalApi.js +1 -16
- package/src/Api/Internal/ExpressionInternalApi.js +0 -23
- package/src/Api/Internal/Fdc3InternalApi.js +0 -9
- package/src/Api/Internal/FlashingCellInternalApi.js +0 -5
- package/src/Api/Internal/FormatColumnInternalApi.js +5 -107
- package/src/Api/Internal/FreeTextColumnInternalApi.js +0 -8
- package/src/Api/Internal/GridFilterInternalApi.js +0 -3
- package/src/Api/Internal/GridInternalApi.js +0 -37
- package/src/Api/Internal/LayoutInternalApi.js +0 -18
- package/src/Api/Internal/NamedQueryInternalApi.js +0 -9
- package/src/Api/Internal/PredicateInternalApi.js +0 -23
- package/src/Api/Internal/RowFormInternalApi.js +0 -18
- package/src/Api/Internal/StateInternalApi.js +0 -25
- package/src/Api/Internal/StyledColumnInternalApi.js +0 -62
- package/src/Api/Internal/TeamSharingInternalApi.js +0 -9
- package/src/Redux/ActionsReducers/AlertRedux.js +0 -24
- package/src/Redux/ActionsReducers/ApplicationRedux.js +0 -9
- package/src/Redux/ActionsReducers/BulkUpdateRedux.js +0 -6
- package/src/Redux/ActionsReducers/CalculatedColumnRedux.js +1 -16
- package/src/Redux/ActionsReducers/ChartingRedux.js +0 -24
- package/src/Redux/ActionsReducers/CommentsRedux.js +0 -24
- package/src/Redux/ActionsReducers/CustomSortRedux.js +0 -24
- package/src/Redux/ActionsReducers/DashboardRedux.js +0 -33
- package/src/Redux/ActionsReducers/ExportRedux.js +0 -36
- package/src/Redux/ActionsReducers/FlashingCellRedux.js +0 -24
- package/src/Redux/ActionsReducers/FormatColumnRedux.js +0 -36
- package/src/Redux/ActionsReducers/FreeTextColumnRedux.js +1 -20
- package/src/Redux/ActionsReducers/InternalRedux.js +0 -42
- package/src/Redux/ActionsReducers/LayoutRedux.js +1 -67
- package/src/Redux/ActionsReducers/NamedQueryRedux.js +0 -15
- package/src/Redux/ActionsReducers/NoteRedux.js +0 -14
- package/src/Redux/ActionsReducers/PluginsRedux.js +0 -3
- package/src/Redux/ActionsReducers/PlusMinusRedux.js +0 -34
- package/src/Redux/ActionsReducers/PopupRedux.js +2 -6
- package/src/Redux/ActionsReducers/QuickSearchRedux.js +0 -15
- package/src/Redux/ActionsReducers/ShortcutRedux.js +0 -24
- package/src/Redux/ActionsReducers/SmartEditRedux.js +0 -6
- package/src/Redux/ActionsReducers/StatusBarRedux.js +0 -6
- package/src/Redux/ActionsReducers/StyledColumnRedux.js +0 -27
- package/src/Redux/ActionsReducers/SystemStatusRedux.js +0 -6
- package/src/Redux/ActionsReducers/TeamSharingRedux.js +0 -1
- package/src/Redux/ActionsReducers/ThemeRedux.js +0 -26
- package/src/Redux/ActionsReducers/ToolPanelRedux.js +0 -22
- package/src/Redux/ActionsReducers/UserInterfaceRedux.js +0 -3
- package/src/Redux/ActionsReducers/utils.js +0 -6
- package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +0 -1
- package/src/Redux/Store/AdaptableReduxMerger.js +0 -25
- package/src/Redux/Store/AdaptableStore.js +5 -301
- package/src/Strategy/AdaptableModuleBase.js +0 -35
- package/src/Strategy/AlertModule.js +0 -9
- package/src/Strategy/CellSummaryModule.js +0 -12
- package/src/Strategy/ChartingModule.js +0 -1
- package/src/Strategy/ColumnFilterModule.js +1 -11
- package/src/Strategy/CommentModule.js +0 -2
- package/src/Strategy/DashboardModule.js +0 -4
- package/src/Strategy/ExportModule.js +0 -1
- package/src/Strategy/FlashingCellModule.js +0 -8
- package/src/Strategy/FormatColumnModule.js +0 -3
- package/src/Strategy/FreeTextColumnModule.js +0 -3
- package/src/Strategy/LayoutModule.js +0 -26
- package/src/Strategy/NoteModule.js +0 -3
- package/src/Strategy/PlusMinusModule.js +0 -3
- package/src/Strategy/SettingsPanelModule.js +0 -1
- package/src/Strategy/ShortcutModule.js +0 -1
- package/src/Strategy/SmartEditModule.js +0 -5
- package/src/Strategy/StatusBarModule.js +0 -7
- package/src/Strategy/StyledColumnModule.js +1 -16
- package/src/Strategy/TeamSharingModule.js +0 -9
- package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.js +0 -5
- package/src/Utilities/Constants/DocumentationLinkConstants.js +0 -1
- package/src/Utilities/Constants/GeneralConstants.js +0 -10
- package/src/Utilities/Constants/ObjectDefaultConstants.js +0 -3
- package/src/Utilities/Constants/ReduxConstants.js +4 -8
- package/src/Utilities/Emitter.js +0 -9
- package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +0 -8
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +0 -15
- package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.js +0 -3
- package/src/Utilities/ExpressionFunctions/deepMap.js +0 -16
- package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +0 -9
- package/src/Utilities/ExpressionFunctions/groupingMap.js +0 -9
- package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +7 -78
- package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +0 -9
- package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +2 -16
- package/src/Utilities/Extensions/ArrayExtensions.js +1 -63
- package/src/Utilities/Extensions/NumberExtensions.js +0 -27
- package/src/Utilities/Extensions/ObjectExtensions.js +0 -36
- package/src/Utilities/Extensions/StringExtensions.js +0 -27
- package/src/Utilities/Helpers/ActionColumnHelper.js +0 -4
- package/src/Utilities/Helpers/AdaptableHelper.js +0 -8
- package/src/Utilities/Helpers/DateHelper.js +0 -10
- package/src/Utilities/Helpers/DisplayFormatHelper.js +0 -8
- package/src/Utilities/Helpers/Helper.js +3 -9
- package/src/Utilities/Helpers/PlusMinusHelper.js +0 -20
- package/src/Utilities/Helpers/QuickSearchHelper.js +0 -5
- package/src/Utilities/Helpers/Scheduling/CronExpression.js +0 -43
- package/src/Utilities/Helpers/Scheduling/ScheduledReportHelper.js +0 -4
- package/src/Utilities/Helpers/SettingsPanelHelper.js +40 -4
- package/src/Utilities/Helpers/StyleHelper.js +0 -56
- package/src/Utilities/Helpers/StyledColumns/BarStylesHelper.js +0 -46
- package/src/Utilities/Helpers/StyledColumns/GradientStyleHelper.js +0 -38
- package/src/Utilities/Helpers/StyledColumns/IconStyleHelper.js +0 -39
- package/src/Utilities/Helpers/StyledColumns/PercentBarStyleHelper.js +0 -1
- package/src/Utilities/Helpers/StyledColumns/SparklineStyleHelper.js +0 -5
- package/src/Utilities/Helpers/StyledColumns/StyledColumnHelper.js +0 -37
- package/src/Utilities/Helpers/TimingHelper.js +0 -13
- package/src/Utilities/ObjectFactory.js +2 -4
- package/src/Utilities/Services/AggregatedScalarLiveValue.js +0 -7
- package/src/Utilities/Services/AlertService.js +0 -1
- package/src/Utilities/Services/AnnotationsService.js +0 -22
- package/src/Utilities/Services/CalculatedColumnExpressionService.js +0 -8
- package/src/Utilities/Services/ChartingService.js +0 -9
- package/src/Utilities/Services/DataService.js +0 -11
- package/src/Utilities/Services/Fdc3Service.js +0 -3
- package/src/Utilities/Services/FlashingCellService.js +0 -6
- package/src/Utilities/Services/ModuleService.js +0 -8
- package/src/Utilities/Services/QueryLanguageService.js +2 -25
- package/src/Utilities/Services/RowFormService.js +0 -1
- package/src/Utilities/Services/RowSummaryService.js +1 -20
- package/src/Utilities/Services/TeamSharingService.js +0 -15
- package/src/Utilities/Services/ThemeService.js +0 -7
- package/src/Utilities/Services/ValidationService.js +0 -21
- package/src/Utilities/createAgStatusPanelComponent.js +0 -3
- package/src/Utilities/getExpressionViewItems.js +0 -2
- package/src/Utilities/getObjectTagsViewItems.js +0 -1
- package/src/Utilities/getScrollbarSize.js +0 -1
- package/src/Utilities/logDeprecation.js +0 -3
- package/src/Utilities/resolveContainerElement.js +0 -21
- package/src/Utilities/runIfNotResolvedIn.js +0 -7
- package/src/Utilities/sortColumnStateForVisibleColumns.js +2 -12
- package/src/Utilities/waitForTimeout.js +0 -1
- package/src/Utilities/wizardSelection.js +0 -2
- package/src/View/AdaptablePopover/index.js +1 -1
- package/src/View/AdaptableView.js +1 -5
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +0 -4
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +0 -23
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/EntitlementsForm.js +0 -2
- package/src/View/AdaptableWizardView/Wizard.js +0 -12
- package/src/View/AdaptableWizardView/helper.js +0 -11
- package/src/View/Alert/ActiveAlertsPanel.js +0 -2
- package/src/View/Alert/AlertStatusSubPanel.js +0 -8
- package/src/View/Alert/Utilities/getAlertType.js +0 -7
- package/src/View/Alert/Utilities/getDefaultAlertDefinition.js +0 -5
- package/src/View/Alert/Utilities/mapAlertDefinition.js +0 -3
- package/src/View/Alert/Wizard/AlertWizard.js +0 -2
- package/src/View/Alert/Wizard/isValidAlertRules.js +0 -1
- package/src/View/BulkUpdate/BulkUpdatePopup.js +0 -1
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -3
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +0 -1
- package/src/View/CalculatedColumn/utils.d.ts +1 -1
- package/src/View/CellSummary/CellSummaryPopup.js +0 -3
- package/src/View/CellSummary/CellSummaryStatusBarSubPanelPopover.js +1 -7
- package/src/View/Charting/EditChartButton.js +1 -4
- package/src/View/Charting/ShowChartButton.js +0 -3
- package/src/View/Charting/useAgChartState.js +0 -5
- package/src/View/Charting/useChartingElements.js +0 -4
- package/src/View/Charting/useExternalChartState.js +0 -6
- package/src/View/ColumnInfo/ColumnInfo.js +7 -17
- package/src/View/Comments/CommentsEditor.js +1 -16
- package/src/View/Components/AdaptableButton/AdaptableButtonComponent.js +0 -1
- package/src/View/Components/AdaptableButton/AdaptableButtonView.js +0 -3
- package/src/View/Components/AdaptableDateInput/index.js +2 -9
- package/src/View/Components/AdaptableIconComponent/index.js +0 -4
- package/src/View/Components/AdaptableIconSelector/index.js +0 -3
- package/src/View/Components/AdaptableInput/index.js +0 -2
- package/src/View/Components/Badge/index.js +0 -8
- package/src/View/Components/Buttons/ButtonNewPage.js +1 -2
- package/src/View/Components/Buttons/EntityListActionButtons.js +0 -1
- package/src/View/Components/CellPopup/index.js +1 -2
- package/src/View/Components/ColumnFilter/AdaptableColumnFilter.js +0 -4
- package/src/View/Components/ColumnFilter/AdaptableFloatingFilter.js +0 -4
- package/src/View/Components/ColumnFilter/ColumnFilter.js +3 -46
- package/src/View/Components/ColumnFilter/ColumnFilterWindow.js +0 -2
- package/src/View/Components/ColumnFilter/FloatingFilter.js +1 -20
- package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +2 -16
- package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +1 -4
- package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +0 -1
- package/src/View/Components/ColumnFilter/components/FloatingFilterInputList.js +1 -6
- package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +0 -20
- package/src/View/Components/ColumnFilter/useAdaptableFilterWrapper.js +0 -5
- package/src/View/Components/ColumnFilter/utils.js +2 -9
- package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicateEditor.js +0 -2
- package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +0 -1
- package/src/View/Components/EntityRulesEditor/index.js +1 -11
- package/src/View/Components/ExternalRenderer.js +1 -3
- package/src/View/Components/FilterForm/ListBoxFilterForm.js +1 -52
- package/src/View/Components/ModuleValueSelector/index.js +0 -2
- package/src/View/Components/Panels/PanelWithImage.js +1 -5
- package/src/View/Components/Panels/PanelWithRow.js +0 -3
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +0 -6
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupBody.js +0 -3
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +0 -6
- package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +1 -2
- package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +0 -1
- package/src/View/Components/Popups/AdaptablePopupAlert.js +0 -3
- package/src/View/Components/Popups/AdaptableToaster.js +0 -2
- package/src/View/Components/Popups/WindowPopups/WindowPopups.js +0 -8
- package/src/View/Components/RangesComponent.js +0 -57
- package/src/View/Components/Selectors/BulkUpdateValueSelector.js +0 -3
- package/src/View/Components/Selectors/PermittedValuesSelector.js +1 -6
- package/src/View/Components/ToolPanel/AdaptableToolPanel.js +1 -18
- package/src/View/Components/ToolPanel/ToolPanelPopupSections.js +0 -4
- package/src/View/Components/ToolPanel/ToolPanelWrapper.js +1 -4
- package/src/View/Components/ValueSelector/index.js +0 -4
- package/src/View/Components/wizardColumnListStyles.js +0 -5
- package/src/View/Dashboard/CustomToolbar.js +1 -25
- package/src/View/Dashboard/PinnedToolbarsSelector.js +0 -1
- package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -22
- package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +0 -1
- package/src/View/DataImport/systemFileHandlers.js +1 -1
- package/src/View/FlashingCell/Wizard/isValidFlashingCellRules.js +0 -1
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +0 -27
- package/src/View/FormatColumn/Wizard/FormatColumnPreview.js +0 -1
- package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +0 -7
- package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +0 -12
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +0 -10
- package/src/View/GridFilter/GridFilterPopup.js +0 -1
- package/src/View/GridFilter/useGridFilterExpressionEditor.js +0 -2
- package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +1 -31
- package/src/View/Layout/LayoutViewPanel.js +0 -2
- package/src/View/Layout/PivotDetailsPopoup.js +0 -2
- package/src/View/Layout/TransposedPopup.js +0 -7
- package/src/View/Layout/Wizard/LayoutWizard.js +1 -6
- package/src/View/Layout/Wizard/sections/AggregationsSection.js +0 -2
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -32
- package/src/View/Layout/Wizard/sections/RowSummarySection.js +0 -3
- package/src/View/Layout/Wizard/sections/columnLayoutHelpers.js +0 -2
- package/src/View/Layout/Wizard/sections/layoutWizardColumns.js +0 -4
- package/src/View/Note/NotePopup.js +0 -1
- package/src/View/QuickSearch/QuickSearchPopup.js +0 -1
- package/src/View/StatusBar/AdaptableStatusBar.js +0 -4
- package/src/View/StatusBar/StatusBarPanel.js +0 -8
- package/src/View/StatusBar/StatusBarPopup.js +0 -2
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +0 -11
- package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +0 -28
- package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +0 -13
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +1 -25
- package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +0 -26
- package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +0 -3
- package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +0 -40
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +0 -55
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +0 -15
- package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +0 -21
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarStyleCellTextPreview.js +0 -10
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.js +0 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.js +0 -4
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +0 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +0 -3
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.js +0 -13
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +0 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.js +0 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.js +0 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardRangesSection.js +0 -13
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +1 -13
- package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +0 -21
- package/src/View/SystemStatus/SystemStatusPopup.js +0 -1
- package/src/View/TeamSharing/SharedEntityObjectView.js +0 -1
- package/src/View/Theme/ThemeSelector.js +0 -1
- package/src/View/UIHelper.js +0 -6
- package/src/View/UIInterfaces.js +0 -1
- package/src/View/Wizard/CollapsibleWizardCard.js +1 -8
- package/src/View/Wizard/OnePageWizards.js +2 -9
- package/src/View/Wizard/SummaryColorTag.js +0 -1
- package/src/View/Wizard/useKeyboardNavigation.js +1 -3
- package/src/agGrid/Adaptable.js +0 -12
- package/src/agGrid/AdaptableAgGrid.d.ts +0 -2
- package/src/agGrid/AdaptableAgGrid.js +3 -482
- package/src/agGrid/AdaptableFilterHandler.js +0 -5
- package/src/agGrid/AdaptableLogger.js +0 -6
- package/src/agGrid/AgGridAdapter.js +3 -90
- package/src/agGrid/AgGridColumnAdapter.js +6 -168
- package/src/agGrid/AgGridExportAdapter.js +4 -106
- package/src/agGrid/AgGridFilterAdapter.js +0 -5
- package/src/agGrid/AgGridFloatingFilterAdapter.js +0 -10
- package/src/agGrid/AgGridMenuAdapter.js +0 -143
- package/src/agGrid/AgGridModulesAdapter.js +0 -2
- package/src/agGrid/AgGridOptionsService.js +0 -2
- package/src/agGrid/AgGridThemeAdapter.js +0 -7
- package/src/agGrid/agGridDataTypeDefinitions.js +0 -8
- package/src/agGrid/cellRenderers/BadgeRenderer.js +0 -10
- package/src/agGrid/cellRenderers/BulletChartRenderer.js +1 -96
- package/src/agGrid/cellRenderers/IconRenderer.js +0 -55
- package/src/agGrid/cellRenderers/PercentBarRenderer.js +0 -51
- package/src/agGrid/cellRenderers/RangeBarRenderer.js +1 -50
- package/src/agGrid/cellRenderers/RatingRenderer.js +0 -40
- package/src/agGrid/editors/AdaptableDateEditor/index.js +0 -18
- package/src/agGrid/editors/AdaptableNumberEditor/InternalAdaptableNumberEditor.js +0 -3
- package/src/agGrid/editors/AdaptableNumberEditor/index.js +0 -11
- package/src/agGrid/editors/AdaptablePercentageEditor/index.js +0 -9
- package/src/agGrid/index.js +0 -6
- package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +1 -73
- package/src/components/ColorPicker/ColorPicker.js +0 -6
- package/src/components/Combobox/VirtualizedList.js +0 -5
- package/src/components/Combobox/index.js +5 -63
- package/src/components/Dashboard/Dashboard.js +1 -4
- package/src/components/Datepicker/index.js +2 -97
- package/src/components/DragAndDropContext/TabList.js +2 -6
- package/src/components/Drawer/index.js +0 -7
- package/src/components/Dropdown/index.js +0 -1
- package/src/components/DropdownButton/index.js +0 -1
- package/src/components/ExpressionEditor/BaseEditorInput.js +1 -16
- package/src/components/ExpressionEditor/EditorButton.js +0 -1
- package/src/components/ExpressionEditor/EditorInput.js +1 -7
- package/src/components/ExpressionEditor/EditorInputWithWhereClause.js +0 -1
- package/src/components/ExpressionEditor/ExpressionPreview.js +4 -14
- package/src/components/ExpressionEditor/NamedQueryContext.js +0 -1
- package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +1 -6
- package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +0 -12
- package/src/components/ExpressionEditor/QueryBuilder/utils.js +0 -4
- package/src/components/ExpressionEditor/index.js +5 -14
- package/src/components/Icon/index.js +0 -2
- package/src/components/Input/NumberInput.js +0 -10
- package/src/components/Modal/Backdrop.js +0 -1
- package/src/components/OverlayTrigger/Overlay.js +0 -1
- package/src/components/OverlayTrigger/index.js +3 -15
- package/src/components/ProgressIndicator/ProgressIndicator.js +3 -16
- package/src/components/ResizeObserver/index.js +0 -7
- package/src/components/SelectableList/index.js +0 -7
- package/src/components/SimpleButton/index.js +2 -16
- package/src/components/Tabs/index.js +0 -3
- package/src/components/Tag/Tag.js +0 -1
- package/src/components/Tag/columnScopeTagHelpers.js +0 -2
- package/src/components/Textarea/index.js +1 -8
- package/src/components/Toggle/Toggle.js +1 -5
- package/src/components/Toggle/ToggleGroup.js +1 -3
- package/src/components/ToggleButton/index.js +1 -3
- package/src/components/Tree/TreeDropdown/index.js +2 -130
- package/src/components/Tree/treeUtils.js +0 -4
- package/src/components/WindowModal/WindowModal.js +1 -14
- package/src/components/WindowModal/useStacking.js +0 -7
- package/src/components/icons/bullet-chart.js +0 -4
- package/src/components/icons/icon-style.js +0 -4
- package/src/components/icons/index.js +26 -36
- package/src/components/icons/range-bar.js +0 -5
- package/src/components/icons/star.js +0 -1
- package/src/components/twUtils.js +3 -12
- package/src/components/ui/calendar.js +1 -9
- package/src/components/ui/combobox.js +0 -4
- package/src/components/utils/captureTabNavigation/getFocusableChildren.js +0 -1
- package/src/components/utils/useDraggable.js +0 -4
- package/src/components/utils/useProperty.js +0 -18
- package/src/devTools/index.js +0 -1
- package/src/env.js +2 -2
- package/src/layout-manager/src/LMEmitter.js +0 -5
- package/src/layout-manager/src/destructurePivotColumnId.js +0 -19
- package/src/layout-manager/src/index.js +2 -182
- package/src/layout-manager/src/isLayoutEqual.js +0 -1
- package/src/layout-manager/src/isPivotColumnTotal.js +0 -2
- package/src/layout-manager/src/normalizeLayoutModel.js +0 -27
- package/src/layout-manager/src/simplifyLayoutModel.js +0 -11
- package/src/layout-manager/src/sortColumnIdsByOrder.js +2 -12
- package/src/lib/utils.js +0 -1
- package/src/migration/AdaptableUpgradeHelper.js +0 -2
- package/src/migration/VersionUpgrade17.js +0 -33
- package/src/migration/VersionUpgrade20.js +1 -21
- package/src/migration/VersionUpgrade21.js +0 -3
- package/src/migration/VersionUpgrade22.js +0 -11
- package/src/migration/VersionUpgrade23.js +0 -73
- package/src/parser/src/evaluator.js +0 -1
- package/src/parser/src/index.js +0 -1
- package/src/parser/src/parser.js +4 -103
- package/src/parser/src/predicate/mapExpressionToQlPredicate.js +0 -5
- package/src/parser/src/predicate/mapQlPredicateToExpression.js +0 -2
- package/src/parser/src/tokenizer.js +0 -2
- package/src/parser/src/utils.js +0 -1
- package/src/renderReactRoot.js +0 -12
- package/src/setupDevTools.js +0 -6
- package/src/twMerge.js +0 -1
- package/src/types.d.ts +1 -1
- package/src/types.js +0 -2
- package/tsconfig.cjs.tsbuildinfo +1 -1
- package/src/Utilities/Services/Interface/IMetamodelService.d.ts +0 -20
- package/src/Utilities/Services/Interface/IMetamodelService.js +0 -2
- package/src/Utilities/Services/MetamodelService.d.ts +0 -17
- package/src/Utilities/Services/MetamodelService.js +0 -167
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.d.ts +0 -6
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +0 -104
- package/src/metamodel/adaptable-metamodel-model.d.ts +0 -26
- package/src/metamodel/adaptable-metamodel-model.js +0 -2
- package/src/metamodel/adaptable.metamodel.d.ts +0 -6244
- package/src/metamodel/adaptable.metamodel.js +0 -1
|
@@ -25,7 +25,6 @@ class AlertService {
|
|
|
25
25
|
return this.emitter.on('ReactiveAlertTriggered', callback);
|
|
26
26
|
};
|
|
27
27
|
createReactiveAlert(alertDefinition) {
|
|
28
|
-
// if there is already a reactive alert for this definition, delete it (possible in case of editing definitions),
|
|
29
28
|
this.deleteReactiveAlert(alertDefinition);
|
|
30
29
|
if (!('Rule' in alertDefinition)) {
|
|
31
30
|
return;
|
|
@@ -4,10 +4,6 @@ exports.AnnotationsService = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const InternalRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/InternalRedux"));
|
|
6
6
|
const ArrayExtensions_1 = tslib_1.__importDefault(require("../Extensions/ArrayExtensions"));
|
|
7
|
-
/**
|
|
8
|
-
* This service controls the interaction between Notes & Comments
|
|
9
|
-
* If there are active Notes or Comments it listens to Cell Selection and Mouse Enter events
|
|
10
|
-
*/
|
|
11
7
|
class AnnotationsService {
|
|
12
8
|
api;
|
|
13
9
|
adaptable;
|
|
@@ -32,7 +28,6 @@ class AnnotationsService {
|
|
|
32
28
|
if (a?.ColumnId === b?.ColumnId && a?.PrimaryKeyValue === b?.PrimaryKeyValue) {
|
|
33
29
|
return true;
|
|
34
30
|
}
|
|
35
|
-
// Primary keys retrieved from the grid dom are always strings, so we must also consider them strings
|
|
36
31
|
if ((typeof a.PrimaryKeyValue === 'number' && typeof b.PrimaryKeyValue === 'string') ||
|
|
37
32
|
(typeof b.PrimaryKeyValue === 'string' && typeof a.PrimaryKeyValue === 'number')) {
|
|
38
33
|
return (a.PrimaryKeyValue.toString() === b.PrimaryKeyValue.toString() && a.ColumnId === b.ColumnId);
|
|
@@ -46,7 +41,6 @@ class AnnotationsService {
|
|
|
46
41
|
}
|
|
47
42
|
}
|
|
48
43
|
shouldListenToEvents() {
|
|
49
|
-
// Listen to events if we either have Notes in state or if Comments have been set up
|
|
50
44
|
return (ArrayExtensions_1.default.IsNotNullOrEmpty(this.api.noteApi.getAllNotes()) ||
|
|
51
45
|
this.api.internalApi.getModuleService().isAdapTableModulePresent('Comment'));
|
|
52
46
|
}
|
|
@@ -85,28 +79,19 @@ class AnnotationsService {
|
|
|
85
79
|
handleMouseEnter(event) {
|
|
86
80
|
const editMode = this.getEditMode();
|
|
87
81
|
if (editMode) {
|
|
88
|
-
// ignore
|
|
89
82
|
return;
|
|
90
83
|
}
|
|
91
84
|
const cellPosition = this.getCellPositionFromEvent(event);
|
|
92
85
|
const openCellAddress = this.getOpenCellAddress();
|
|
93
|
-
// Hovering over something that is not a cell and there is no open note
|
|
94
86
|
if (!cellPosition && openCellAddress) {
|
|
95
|
-
// need to close if the new cell does not have a note
|
|
96
87
|
this.hidePopup();
|
|
97
88
|
return;
|
|
98
89
|
}
|
|
99
|
-
// call only if cell address is different
|
|
100
90
|
if (AnnotationsService.isSameAddress(openCellAddress, cellPosition)) {
|
|
101
91
|
return;
|
|
102
92
|
}
|
|
103
93
|
const cellNote = this.api.noteApi.getNoteForCell(cellPosition);
|
|
104
94
|
const cellComments = this.api.commentApi.getCommentThreadForCell(cellPosition);
|
|
105
|
-
// Notes / Comments only open on hover when explicitly opted in via
|
|
106
|
-
// `noteOptions.openNote = 'hover'` / `commentOptions.showComment =
|
|
107
|
-
// 'hover'` (the defaults). When either is set to 'menu' the popup is
|
|
108
|
-
// only opened via the Cell Menu, so we ignore that side of the
|
|
109
|
-
// annotation when deciding whether to show the popup here.
|
|
110
95
|
const openNoteMode = this.api.optionsApi.getNoteOptions()?.showNoteAction ?? 'hover';
|
|
111
96
|
const showCommentMode = this.api.optionsApi.getCommentOptions()?.showCommentAction ?? 'hover';
|
|
112
97
|
const shouldOpenForNote = !!cellNote && openNoteMode === 'hover';
|
|
@@ -117,26 +102,19 @@ class AnnotationsService {
|
|
|
117
102
|
this.showPopup(cellPosition, false);
|
|
118
103
|
}
|
|
119
104
|
handleCellSelected(cellAddress) {
|
|
120
|
-
// if already opened - do nothing
|
|
121
105
|
const openCellAddress = this.getOpenCellAddress();
|
|
122
106
|
if (AnnotationsService.isSameAddress(openCellAddress, cellAddress)) {
|
|
123
107
|
return;
|
|
124
108
|
}
|
|
125
|
-
// if open but this has no note, close
|
|
126
109
|
const cellNote = this.api.noteApi.getNoteForCell(cellAddress);
|
|
127
110
|
const cellComments = this.api.commentApi.getCommentThreadForCell(cellAddress);
|
|
128
111
|
const hasNotesOrComments = cellNote || cellComments;
|
|
129
112
|
if (openCellAddress && !hasNotesOrComments) {
|
|
130
|
-
// hide only if in edit mode
|
|
131
|
-
// because if you select a cell and move the mouse fast over another cell
|
|
132
|
-
// with a note, you do not want to close that note
|
|
133
|
-
// the selection is debounced, so the moment goes over the new cell this event is triggered
|
|
134
113
|
if (this.getEditMode()) {
|
|
135
114
|
this.hidePopup();
|
|
136
115
|
}
|
|
137
116
|
return;
|
|
138
117
|
}
|
|
139
|
-
// if open but the new selection has a note open that one in edit mode (because of click)
|
|
140
118
|
if (openCellAddress && hasNotesOrComments) {
|
|
141
119
|
this.showPopup(cellAddress, true);
|
|
142
120
|
return;
|
|
@@ -53,9 +53,6 @@ class CalculatedColumnExpressionService {
|
|
|
53
53
|
getCalculatedColumnDataType(calculatedColumnQuery) {
|
|
54
54
|
try {
|
|
55
55
|
if (calculatedColumnQuery.AggregatedScalarExpression) {
|
|
56
|
-
// currently AggregatedScalarExpression support only numerical values
|
|
57
|
-
// TODO AFL try to derive the type from the aggregatedColumn?
|
|
58
|
-
// we definitely don't want to aggregate everything only to get the data type
|
|
59
56
|
return 'number';
|
|
60
57
|
}
|
|
61
58
|
let firstRowNode = this.adaptableApi.gridApi.getFirstRowNode();
|
|
@@ -86,7 +83,6 @@ class CalculatedColumnExpressionService {
|
|
|
86
83
|
isCalculatedColumnQueryValid(calculatedColumnQuery) {
|
|
87
84
|
if (calculatedColumnQuery.ScalarExpression) {
|
|
88
85
|
try {
|
|
89
|
-
// TODO AFL add a cached validation for ScalarExpression, just like for all the other types
|
|
90
86
|
let firstRowNode = this.adaptableApi.gridApi.getFirstRowNode();
|
|
91
87
|
this.adaptableApi.internalApi
|
|
92
88
|
.getQueryLanguageService()
|
|
@@ -94,7 +90,6 @@ class CalculatedColumnExpressionService {
|
|
|
94
90
|
return true;
|
|
95
91
|
}
|
|
96
92
|
catch (e) {
|
|
97
|
-
// no logging as this method is used only in the UI
|
|
98
93
|
return false;
|
|
99
94
|
}
|
|
100
95
|
}
|
|
@@ -102,7 +97,6 @@ class CalculatedColumnExpressionService {
|
|
|
102
97
|
const validationResult = this.adaptableApi.expressionApi.isValidAggregatedScalarExpression(calculatedColumnQuery.AggregatedScalarExpression, ModuleConstants_1.CalculatedColumnModuleId);
|
|
103
98
|
return validationResult;
|
|
104
99
|
}
|
|
105
|
-
// if query has neither a ScalarExpression nor an AggregatedScalarExpression => it can only be false
|
|
106
100
|
return false;
|
|
107
101
|
}
|
|
108
102
|
evaluateCalculatedColumnQuery(calculatedColumn, rowNode) {
|
|
@@ -110,7 +104,6 @@ class CalculatedColumnExpressionService {
|
|
|
110
104
|
if (this.adaptableApi.gridApi.isGroupRowNode(rowNode)) {
|
|
111
105
|
return undefined;
|
|
112
106
|
}
|
|
113
|
-
// no validation here, this function has to be as performant as possible
|
|
114
107
|
if (calculatedColumn?.Query?.ScalarExpression) {
|
|
115
108
|
return this.adaptableApi.internalApi
|
|
116
109
|
.getQueryLanguageService()
|
|
@@ -128,7 +121,6 @@ class CalculatedColumnExpressionService {
|
|
|
128
121
|
}
|
|
129
122
|
}
|
|
130
123
|
createAggregatedScalarLiveValue(calculatedColumn) {
|
|
131
|
-
// if there is already an aggregated scalar, delete it (possible when editing)
|
|
132
124
|
this.destroyAggregatedScalarLiveValue(calculatedColumn);
|
|
133
125
|
if (calculatedColumn.Query?.AggregatedScalarExpression) {
|
|
134
126
|
try {
|
|
@@ -17,7 +17,6 @@ class ChartingService {
|
|
|
17
17
|
case 'chartCreated':
|
|
18
18
|
const createParams = params;
|
|
19
19
|
if (allChartDefinitions.some((chartDefinition) => chartDefinition.Model?.chartId === createParams.chartId)) {
|
|
20
|
-
// chart already exists
|
|
21
20
|
}
|
|
22
21
|
else {
|
|
23
22
|
const chartModel = models.find((model) => model?.chartId === createParams.chartId);
|
|
@@ -27,7 +26,6 @@ class ChartingService {
|
|
|
27
26
|
case 'chartOptionsChanged':
|
|
28
27
|
case 'chartRangeSelectionChanged':
|
|
29
28
|
if (!currentChartDefinition) {
|
|
30
|
-
// editing a non-saved chart
|
|
31
29
|
break;
|
|
32
30
|
}
|
|
33
31
|
const updatedChartDefinition = {
|
|
@@ -40,13 +38,6 @@ class ChartingService {
|
|
|
40
38
|
this.api.internalApi.dispatchReduxAction(InternalRedux.ChartingSetCurrentChartModels(models));
|
|
41
39
|
this.emitAdaptableChartDefinitonChange();
|
|
42
40
|
}
|
|
43
|
-
/**
|
|
44
|
-
* Emit events only for adaptable charting definition changes
|
|
45
|
-
* - an adaptable chart opens
|
|
46
|
-
* - an adaptable chart closes
|
|
47
|
-
* - an adaptable chart is created
|
|
48
|
-
* - an adaptable chart is deleted
|
|
49
|
-
*/
|
|
50
41
|
emitAdaptableChartDefinitonChange() {
|
|
51
42
|
const chartingOpenState = this.api.chartingApi.getChartingOpenState();
|
|
52
43
|
const chartChangedInfo = {
|
|
@@ -5,7 +5,6 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const Emitter_1 = tslib_1.__importDefault(require("../../Utilities/Emitter"));
|
|
6
6
|
const rxjs_1 = require("rxjs");
|
|
7
7
|
const Helper_1 = tslib_1.__importDefault(require("../Helpers/Helper"));
|
|
8
|
-
// ~ 8 hours
|
|
9
8
|
const MAX_TIMEFRAME_SIZE = 86400000;
|
|
10
9
|
class DataService {
|
|
11
10
|
adaptable;
|
|
@@ -62,16 +61,10 @@ class DataService {
|
|
|
62
61
|
this.adaptable.api.eventApi.internalApi.fireRowChangedEvent(rowDataChangedInfo);
|
|
63
62
|
this.rowDataChangeLogSubject$.next(rowDataChangedInfo);
|
|
64
63
|
}
|
|
65
|
-
// we need this temporary "shared memory" because the value change and the AG Grid cellChanged event are asynchronous
|
|
66
|
-
// in the first phase we keep the undone change
|
|
67
64
|
logUndoChange(change) {
|
|
68
65
|
const { primaryKeyValue, column, oldValue, newValue } = change;
|
|
69
66
|
const undoChangeKey = this.getUndoChangeKey(primaryKeyValue, column.columnId, oldValue, newValue);
|
|
70
67
|
this.undoChangeLog.set(undoChangeKey, change);
|
|
71
|
-
// normally the extractUndoChange() should be executed right after this method
|
|
72
|
-
// just to be sure that no 'zombie' undo change remains here (if something goes wrong with the undo value change)
|
|
73
|
-
// we manually extract the change after a 2 seconds
|
|
74
|
-
// why 2 and not 3 or 1? no good reason, only seems like a reasonable waiting time :)
|
|
75
68
|
const UNDO_WAIT = 2000;
|
|
76
69
|
const timeoutId = setTimeout(() => {
|
|
77
70
|
this.adaptable.logger.warn(`Undo change was not handled within timeout: column="${change.column}", primaryKey="${change.primaryKeyValue}", from=${change.newValue} to=${change.oldValue}.`);
|
|
@@ -79,10 +72,8 @@ class DataService {
|
|
|
79
72
|
}, UNDO_WAIT);
|
|
80
73
|
this.undoChangeTimers.set(undoChangeKey, timeoutId);
|
|
81
74
|
}
|
|
82
|
-
// in the second phase, when AG-Grid triggers the cellChange event, we check if it corresponds to an undone change
|
|
83
75
|
extractUndoChange(change) {
|
|
84
76
|
const { primaryKeyValue, column, oldValue, newValue } = change;
|
|
85
|
-
// this is post-undo, so we have to swap the new & old values
|
|
86
77
|
const undoChangeKey = this.getUndoChangeKey(primaryKeyValue, column.columnId, newValue, oldValue);
|
|
87
78
|
const result = this.undoChangeLog.get(undoChangeKey);
|
|
88
79
|
this.undoChangeLog.delete(undoChangeKey);
|
|
@@ -101,11 +92,9 @@ class DataService {
|
|
|
101
92
|
});
|
|
102
93
|
}
|
|
103
94
|
extractDataChangeLogEntry(cellDataChangedInfo) {
|
|
104
|
-
// create rowData snapshot
|
|
105
95
|
const rowData = cellDataChangedInfo.rowData
|
|
106
96
|
? Helper_1.default.cloneObject(cellDataChangedInfo.rowData)
|
|
107
97
|
: null;
|
|
108
|
-
// strip down rowNode properties as it is pretty "heavy" on the memory
|
|
109
98
|
const rowNode = rowData ? { data: rowData } : null;
|
|
110
99
|
return {
|
|
111
100
|
...cellDataChangedInfo,
|
|
@@ -11,7 +11,6 @@ class Fdc3Service {
|
|
|
11
11
|
uiControlsDefaultConfiguration;
|
|
12
12
|
constructor(adaptableApi) {
|
|
13
13
|
this.adaptableApi = adaptableApi;
|
|
14
|
-
// 1. Subscribe to FDC3 events
|
|
15
14
|
const adaptableHandleIntentFn = this.getFdc3Options().intents?.handleIntent;
|
|
16
15
|
const listenForIntents = this.getFdc3Options().intents?.listensFor ?? [];
|
|
17
16
|
if (listenForIntents.length) {
|
|
@@ -72,7 +71,6 @@ class Fdc3Service {
|
|
|
72
71
|
.then((listener) => this.contextHandlerSubscriptions.push(listener));
|
|
73
72
|
});
|
|
74
73
|
}
|
|
75
|
-
// 2. Init UI Controls default configuration
|
|
76
74
|
this.uiControlsDefaultConfiguration = this.buildUiControlsDefaultConfiguration();
|
|
77
75
|
}
|
|
78
76
|
getUiControlsDefaultConfiguration() {
|
|
@@ -193,7 +191,6 @@ class Fdc3Service {
|
|
|
193
191
|
};
|
|
194
192
|
return intentsMapping;
|
|
195
193
|
}, {});
|
|
196
|
-
// merge adaptable defaults with (optional) user provided configuration
|
|
197
194
|
return {
|
|
198
195
|
contexts: {
|
|
199
196
|
...adaptableDefaultContextIcons,
|
|
@@ -2,14 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FlashingCellService = exports.FLASHING_CELL_ROW_KEY = void 0;
|
|
4
4
|
exports.FLASHING_CELL_ROW_KEY = '__ROW';
|
|
5
|
-
/**
|
|
6
|
-
* This service manages Flashing Cells
|
|
7
|
-
*/
|
|
8
5
|
class FlashingCellService {
|
|
9
6
|
api;
|
|
10
|
-
// map of rowPrimaryKey -> ColIdOrRowId -> FlashingCellUuid
|
|
11
7
|
gridCellsCurrentlyFlashing;
|
|
12
|
-
// map of FlashingCellUuid -> FlashingCell
|
|
13
8
|
flashingCellsMapping;
|
|
14
9
|
constructor(api) {
|
|
15
10
|
this.api = api;
|
|
@@ -40,7 +35,6 @@ class FlashingCellService {
|
|
|
40
35
|
if (flashingCell.flashTarget === 'row' || flashingCell.flashTarget.includes('row')) {
|
|
41
36
|
columnIds.push(exports.FLASHING_CELL_ROW_KEY);
|
|
42
37
|
}
|
|
43
|
-
// for high frequency rates, we might have multiple flashes for the same cell
|
|
44
38
|
if (this.gridCellsCurrentlyFlashing[rowPrimaryKey]) {
|
|
45
39
|
columnIds.forEach((colId) => {
|
|
46
40
|
if (this.gridCellsCurrentlyFlashing[rowPrimaryKey][colId] === flashingCell.Uuid) {
|
|
@@ -25,11 +25,8 @@ class ModuleService {
|
|
|
25
25
|
return module.isModuleEditable();
|
|
26
26
|
}
|
|
27
27
|
logMissingAgGridDepsInfos() {
|
|
28
|
-
// log missing core (required) AG Grid dependencies
|
|
29
28
|
const agGridModulesAdapter = this.adaptableApi.internalApi.getAgGridModulesAdapter();
|
|
30
29
|
if (agGridModulesAdapter.isAgGridModuleRegistered('AllEnterpriseModule')) {
|
|
31
|
-
// no need to check further if AllEnterprise is registered
|
|
32
|
-
// it may even trigger false positives (e.g. when using SSRM)
|
|
33
30
|
return;
|
|
34
31
|
}
|
|
35
32
|
const mandatoryAgGridModuleNames = agGridModulesAdapter.getMandatoryAgGridModuleNames();
|
|
@@ -38,7 +35,6 @@ class ModuleService {
|
|
|
38
35
|
if (missingAgGridModuleNames.length) {
|
|
39
36
|
this.adaptableApi.consoleError(`Adaptable requires these AG Grid modules: ${missingAgGridModuleNames.join(', ')}. Please register them. See: ${DocumentationLinkConstants_1.AgGridRequiredModulesDocsLink}`);
|
|
40
37
|
}
|
|
41
|
-
// log optional missing AG Grid dependencies for all modules
|
|
42
38
|
this.getModuleCollection().forEach((adaptableModule) => {
|
|
43
39
|
adaptableModule.logMissingAgGridDepsInfos();
|
|
44
40
|
});
|
|
@@ -60,7 +56,6 @@ class ModuleService {
|
|
|
60
56
|
}
|
|
61
57
|
}
|
|
62
58
|
});
|
|
63
|
-
// store Settings Panel items in Internal State as they never change and we often re-use
|
|
64
59
|
this.adaptableApi.internalApi.setSettingsPanelItems(settingsPanelItems);
|
|
65
60
|
}
|
|
66
61
|
createModuleButtonsForDashboardAndToolPanel() {
|
|
@@ -73,7 +68,6 @@ class ModuleService {
|
|
|
73
68
|
}
|
|
74
69
|
}
|
|
75
70
|
});
|
|
76
|
-
// store Dashboard Buttons in Internal State as they never change l
|
|
77
71
|
this.adaptableApi.internalApi.setDashboardModuleButtons(moduleButtons);
|
|
78
72
|
}
|
|
79
73
|
getTeamSharingAction(adaptableModule) {
|
|
@@ -84,7 +78,6 @@ class ModuleService {
|
|
|
84
78
|
return module.getTeamSharingAction();
|
|
85
79
|
}
|
|
86
80
|
getModuleById(adaptableModule) {
|
|
87
|
-
// @ts-ignore TODO: make modules generic
|
|
88
81
|
return this.getModuleCollection().get(adaptableModule);
|
|
89
82
|
}
|
|
90
83
|
getModuleInfoByModule(adaptableModule) {
|
|
@@ -188,7 +181,6 @@ class ModuleService {
|
|
|
188
181
|
}
|
|
189
182
|
}
|
|
190
183
|
destroy() {
|
|
191
|
-
// TO DO
|
|
192
184
|
}
|
|
193
185
|
}
|
|
194
186
|
exports.ModuleService = ModuleService;
|
|
@@ -24,7 +24,6 @@ class QueryLanguageService {
|
|
|
24
24
|
}
|
|
25
25
|
evaluateBooleanExpression(expression, module, rowNode, evalContext) {
|
|
26
26
|
if (expression == undefined) {
|
|
27
|
-
// should never happen, but just in case
|
|
28
27
|
this.adaptableApi.logError('QueryLanguageService.evaluateBooleanExpression was called with an undefined expression');
|
|
29
28
|
return false;
|
|
30
29
|
}
|
|
@@ -41,13 +40,12 @@ class QueryLanguageService {
|
|
|
41
40
|
});
|
|
42
41
|
}
|
|
43
42
|
evaluateScalarExpression(expression, module, rowNode) {
|
|
44
|
-
// currently scalar and boolean expressions are evaluated the same
|
|
45
43
|
return this.evaluateBooleanExpression(expression, module, rowNode);
|
|
46
44
|
}
|
|
47
45
|
evaluateAggregatedScalarExpression(expression, module, getRowNodes) {
|
|
48
46
|
const aggregatedScalarFunctions = this.getModuleExpressionFunctionsMap(module).aggregatedScalarFunctions;
|
|
49
47
|
return parser.evaluate(expression, {
|
|
50
|
-
node: null,
|
|
48
|
+
node: null,
|
|
51
49
|
functions: aggregatedScalarFunctions,
|
|
52
50
|
evaluateCustomQueryVariable: this.evaluateCustomQueryVariable,
|
|
53
51
|
getRowNodes,
|
|
@@ -94,7 +92,6 @@ class QueryLanguageService {
|
|
|
94
92
|
return result;
|
|
95
93
|
}
|
|
96
94
|
const force = config?.force ?? false;
|
|
97
|
-
// see if validation should be performed
|
|
98
95
|
if (!this.adaptableApi.optionsApi.getExpressionOptions().performExpressionValidation &&
|
|
99
96
|
!force) {
|
|
100
97
|
const result = { isValid: true, errorMessage: '' };
|
|
@@ -196,7 +193,6 @@ class QueryLanguageService {
|
|
|
196
193
|
this.cacheAggregatedBooleanValidation.set(cacheKey, result);
|
|
197
194
|
return result;
|
|
198
195
|
}
|
|
199
|
-
// no exception,so everything seems to be fine
|
|
200
196
|
const result = { isValid: true, errorMessage: '' };
|
|
201
197
|
this.cacheAggregatedBooleanValidation.set(cacheKey, result);
|
|
202
198
|
return result;
|
|
@@ -234,7 +230,6 @@ class QueryLanguageService {
|
|
|
234
230
|
this.cacheAggregatedScalarValidation.set(cacheKey, result);
|
|
235
231
|
return result;
|
|
236
232
|
}
|
|
237
|
-
// no exception,so everything seems to be fine
|
|
238
233
|
const result = { isValid: true, errorMessage: '' };
|
|
239
234
|
this.cacheAggregatedScalarValidation.set(cacheKey, result);
|
|
240
235
|
return result;
|
|
@@ -272,12 +267,9 @@ class QueryLanguageService {
|
|
|
272
267
|
const columnFriendlyName = this.adaptableApi.columnApi.getFriendlyNameForColumnId(columnId);
|
|
273
268
|
result = result.split(columnId).join(columnFriendlyName);
|
|
274
269
|
});
|
|
275
|
-
// replace $SCOPE() with friendly name as well
|
|
276
270
|
result = result.split(`$SCOPE()`).join(`$Column_Scope`);
|
|
277
271
|
return result;
|
|
278
272
|
}
|
|
279
|
-
// Returns the ExpressionFunctions available for the given Module as specified in the `QueryLanguageOptions.moduleExpressionFunctions`
|
|
280
|
-
// if there are no specific functions defined, it falls back to the default values
|
|
281
273
|
getModuleExpressionFunctionsMap(module) {
|
|
282
274
|
const expressionOptions = this.adaptableApi.optionsApi.getExpressionOptions();
|
|
283
275
|
if (module) {
|
|
@@ -289,10 +281,7 @@ class QueryLanguageService {
|
|
|
289
281
|
const generalBooleanExpressionFunctions = this.extractMappedExpressionFunctions(booleanExpressionFunctions_1.booleanExpressionFunctions, expressionOptions.systemBooleanFunctions, expressionOptions.customBooleanFunctions);
|
|
290
282
|
const generalScalarExpressionFunctions = this.extractMappedExpressionFunctions(scalarExpressionFunctions_1.scalarExpressionFunctions, expressionOptions.systemScalarFunctions, expressionOptions.customScalarFunctions);
|
|
291
283
|
const generalObservableExpressionFunctions = this.extractMappedExpressionFunctions(observableExpressionFunctions_1.observableExpressionFunctions, expressionOptions.systemObservableFunctions);
|
|
292
|
-
const generalAggregatedBooleanExpressionFunctions = this.extractMappedExpressionFunctions(aggregatedBooleanExpressionFunctions_1.aggregatedBooleanExpressionFunctions, expressionOptions.systemAggregatedBooleanFunctions,
|
|
293
|
-
// right now the custom aggregated scalar functions are used in the aggregated boolean functions as well
|
|
294
|
-
// hopefully we'll simplify this in the future
|
|
295
|
-
this.getCustomAggregatedScalarFunctions());
|
|
284
|
+
const generalAggregatedBooleanExpressionFunctions = this.extractMappedExpressionFunctions(aggregatedBooleanExpressionFunctions_1.aggregatedBooleanExpressionFunctions, expressionOptions.systemAggregatedBooleanFunctions, this.getCustomAggregatedScalarFunctions());
|
|
296
285
|
const generalAggregatedScalarExpressionFunctions = this.extractMappedExpressionFunctions(aggregatedScalarExpressionFunctions_1.aggregatedScalarExpressionFunctions, expressionOptions.systemAggregatedScalarFunctions, this.getCustomAggregatedScalarFunctions());
|
|
297
286
|
if (!module) {
|
|
298
287
|
this.adaptableApi.logWarn(`QueryLanguageService.getModuleExpressionFunctions() was called with an undefined 'module' param, this should never happen`);
|
|
@@ -358,11 +347,9 @@ class QueryLanguageService {
|
|
|
358
347
|
const groupByColumnIds = groupByParameter?.value;
|
|
359
348
|
const contextArgs = args.filter((arg) => {
|
|
360
349
|
if (typeof arg === 'object' && arg.name === 'COL') {
|
|
361
|
-
// filter out aggregation column
|
|
362
350
|
return arg.value !== aggColumnId;
|
|
363
351
|
}
|
|
364
352
|
if (typeof arg === 'object' && arg.name === 'GROUP_BY') {
|
|
365
|
-
// filter out groupBy column
|
|
366
353
|
return false;
|
|
367
354
|
}
|
|
368
355
|
return true;
|
|
@@ -381,7 +368,6 @@ class QueryLanguageService {
|
|
|
381
368
|
index: dataIndex,
|
|
382
369
|
rowNode,
|
|
383
370
|
args: contextArgs.map((arg) => {
|
|
384
|
-
// if col, replace with value
|
|
385
371
|
if (typeof arg === 'object' && arg.name === 'COL') {
|
|
386
372
|
return getValueForColId(arg.value, rowNode);
|
|
387
373
|
}
|
|
@@ -418,7 +404,6 @@ class QueryLanguageService {
|
|
|
418
404
|
aggregatedValue: aggregationValue,
|
|
419
405
|
...this.adaptableApi.internalApi.buildBaseContext(),
|
|
420
406
|
args: contextArgs.map((arg) => {
|
|
421
|
-
// if col, replace with value
|
|
422
407
|
if (typeof arg === 'object' && arg.name === 'COL') {
|
|
423
408
|
return getValueForColId(arg.value, rowNode);
|
|
424
409
|
}
|
|
@@ -438,7 +423,6 @@ class QueryLanguageService {
|
|
|
438
423
|
rowNode,
|
|
439
424
|
...this.adaptableApi.internalApi.buildBaseContext(),
|
|
440
425
|
args: contextArgs.map((arg) => {
|
|
441
|
-
// if col, replace with value
|
|
442
426
|
if (typeof arg === 'object' && arg.name === 'COL') {
|
|
443
427
|
return getValueForColId(arg.value, rowNode);
|
|
444
428
|
}
|
|
@@ -477,16 +461,13 @@ class QueryLanguageService {
|
|
|
477
461
|
})
|
|
478
462
|
: systemFunctions;
|
|
479
463
|
let generalExpressionFunctions = {};
|
|
480
|
-
// add system functions
|
|
481
464
|
if (Array.isArray(systemFunctionNames)) {
|
|
482
|
-
// add only system functions specified by user
|
|
483
465
|
systemFunctionNames.forEach((systemFunctionName) => {
|
|
484
466
|
generalExpressionFunctions[systemFunctionName] =
|
|
485
467
|
availableExpressionFunctions[systemFunctionName];
|
|
486
468
|
});
|
|
487
469
|
}
|
|
488
470
|
else {
|
|
489
|
-
// add ALL system functions
|
|
490
471
|
generalExpressionFunctions = { ...availableExpressionFunctions };
|
|
491
472
|
}
|
|
492
473
|
const customFunctionDefinitions = typeof customFunctions === 'function'
|
|
@@ -522,7 +503,6 @@ class QueryLanguageService {
|
|
|
522
503
|
getNodesFromExpression(input, nodeType) {
|
|
523
504
|
try {
|
|
524
505
|
const resultSet = new Set();
|
|
525
|
-
// @ts-ignore
|
|
526
506
|
const walk = (node) => {
|
|
527
507
|
if (typeof node !== 'object') {
|
|
528
508
|
return false;
|
|
@@ -551,9 +531,6 @@ class QueryLanguageService {
|
|
|
551
531
|
if (!queryNodes.length) {
|
|
552
532
|
return;
|
|
553
533
|
}
|
|
554
|
-
// circular QUERY references can only be detected by actually evaluating the expression
|
|
555
|
-
// we just evaluate against the first row, as we don't care about the result, just about
|
|
556
|
-
// whether an exception is thrown
|
|
557
534
|
const firstRowNode = this.adaptableApi.gridApi.getFirstRowNode();
|
|
558
535
|
queryNodes.forEach((queryNode) => {
|
|
559
536
|
this.evaluateBooleanExpression(`QUERY("${queryNode}")`, module, firstRowNode);
|
|
@@ -10,9 +10,6 @@ const AggregatedScalarLiveValue_1 = require("./AggregatedScalarLiveValue");
|
|
|
10
10
|
const ObjectExtensions_1 = require("../Extensions/ObjectExtensions");
|
|
11
11
|
const TimingHelper_1 = require("../Helpers/TimingHelper");
|
|
12
12
|
const ObjectExtensions_2 = require("../Extensions/ObjectExtensions");
|
|
13
|
-
/**
|
|
14
|
-
* The logic is extracted here to make it easier to follow
|
|
15
|
-
*/
|
|
16
13
|
class RowSummaryService {
|
|
17
14
|
api;
|
|
18
15
|
cachedCellSummary = new Map();
|
|
@@ -25,11 +22,9 @@ class RowSummaryService {
|
|
|
25
22
|
this.rowSummariesSubscriptions();
|
|
26
23
|
}
|
|
27
24
|
rowSummariesSubscriptions() {
|
|
28
|
-
// return;
|
|
29
25
|
if (this.api.isDestroyed()) {
|
|
30
26
|
return;
|
|
31
27
|
}
|
|
32
|
-
// Currently not available for serverside model
|
|
33
28
|
if (!this.api.layoutApi.internalApi.getLayoutSupportedFeatures().RowSummaries) {
|
|
34
29
|
return;
|
|
35
30
|
}
|
|
@@ -49,18 +44,15 @@ class RowSummaryService {
|
|
|
49
44
|
});
|
|
50
45
|
});
|
|
51
46
|
this.api.eventApi.on('LayoutChanged', (event) => {
|
|
52
|
-
// exclude filter events, those are handled in another event
|
|
53
47
|
if (event.actionName.includes('FILTER')) {
|
|
54
48
|
return;
|
|
55
49
|
}
|
|
56
50
|
setTimeout(() => {
|
|
57
|
-
// the timeout is added so the grid has time to repond to the layout changed
|
|
58
51
|
this.throttledEvaluateRowSummary();
|
|
59
52
|
}, 16);
|
|
60
53
|
});
|
|
61
54
|
const adaptable = this.api.internalApi.getAdaptableInstance();
|
|
62
55
|
adaptable._on('AdapTableFiltersApplied', () => {
|
|
63
|
-
// we need to use this instead of layout changed so the rows have time to update
|
|
64
56
|
this.throttledEvaluateRowSummary();
|
|
65
57
|
});
|
|
66
58
|
adaptable._on('FirstDataRendered', () => {
|
|
@@ -74,10 +66,6 @@ class RowSummaryService {
|
|
|
74
66
|
}
|
|
75
67
|
this._throttledEvaluateRowSummary(reason);
|
|
76
68
|
}
|
|
77
|
-
/**
|
|
78
|
-
*
|
|
79
|
-
* @param colId optional to evaluate only one column
|
|
80
|
-
*/
|
|
81
69
|
_throttledEvaluateRowSummary = (0, TimingHelper_1.throttle)(this.evaluateRowSummary, 300);
|
|
82
70
|
evaluateRowSummary(reason) {
|
|
83
71
|
if (this._throttleAcumulatedColumnsThatChanged.size > 0) {
|
|
@@ -92,11 +80,7 @@ class RowSummaryService {
|
|
|
92
80
|
}
|
|
93
81
|
const currentLayout = this.api.layoutApi.getCurrentLayout();
|
|
94
82
|
let previousLayout = this.previousLayout;
|
|
95
|
-
// it is added here to be sure it is saved
|
|
96
83
|
this.previousLayout = currentLayout;
|
|
97
|
-
/**
|
|
98
|
-
* If the previous & current layout does not have row summaries, it is safe to exit
|
|
99
|
-
*/
|
|
100
84
|
if ((0, ObjectExtensions_1.isObjectEmpty)(currentLayout?.RowSummaries) && (0, ObjectExtensions_1.isObjectEmpty)(previousLayout?.RowSummaries)) {
|
|
101
85
|
return;
|
|
102
86
|
}
|
|
@@ -108,9 +92,7 @@ class RowSummaryService {
|
|
|
108
92
|
const rowSummariesResults = rowSummaries
|
|
109
93
|
.filter((rowSummary) => !rowSummary.IsSuspended)
|
|
110
94
|
.map((rowSummary, index) => {
|
|
111
|
-
const { ColumnsMap, Position,
|
|
112
|
-
// it defaults to true
|
|
113
|
-
IncludeOnlyFilteredRows = true, } = rowSummary;
|
|
95
|
+
const { ColumnsMap, Position, IncludeOnlyFilteredRows = true, } = rowSummary;
|
|
114
96
|
return {
|
|
115
97
|
Position,
|
|
116
98
|
RowData: Object.entries(ColumnsMap ?? {}).reduce((acc, [columnId, expression]) => {
|
|
@@ -121,7 +103,6 @@ class RowSummaryService {
|
|
|
121
103
|
let expressionLiveValue = this.cachedCellSummary.get(key);
|
|
122
104
|
if (expressionLiveValue) {
|
|
123
105
|
if (!reason) {
|
|
124
|
-
// refresh all of them
|
|
125
106
|
expressionLiveValue.refresh();
|
|
126
107
|
}
|
|
127
108
|
else if ('columnIds' in reason && reason.columnIds.includes(columnId)) {
|
|
@@ -12,7 +12,6 @@ class TeamSharingService {
|
|
|
12
12
|
this.adaptableApi = adaptableApi;
|
|
13
13
|
const teamSharingOptions = adaptableApi.optionsApi.getTeamSharingOptions();
|
|
14
14
|
if (teamSharingOptions.updateInterval > 0) {
|
|
15
|
-
// convert minutes to millis
|
|
16
15
|
const updateInterval = teamSharingOptions.updateInterval * 60000;
|
|
17
16
|
this.updateCheckTimerId = setInterval(() => {
|
|
18
17
|
this.adaptableApi.teamSharingApi.checkForUpdates();
|
|
@@ -48,7 +47,6 @@ class TeamSharingService {
|
|
|
48
47
|
updateActiveSharedEntity(changedAdaptableObject, userName, sharedEntities) {
|
|
49
48
|
let activeSharedEntity = sharedEntities.find((sharedEntity) => sharedEntity.Type === 'Active' && sharedEntity.Entity.Uuid === changedAdaptableObject.Uuid);
|
|
50
49
|
if (!activeSharedEntity) {
|
|
51
|
-
// shared entity may have been removed in the meantime
|
|
52
50
|
return [sharedEntities, []];
|
|
53
51
|
}
|
|
54
52
|
activeSharedEntity = {
|
|
@@ -58,16 +56,13 @@ class TeamSharingService {
|
|
|
58
56
|
ChangedBy: userName,
|
|
59
57
|
Revision: activeSharedEntity.Revision + 1,
|
|
60
58
|
};
|
|
61
|
-
// update EntityDependencyIds (references may have been removed or new ones added)
|
|
62
59
|
const updatedEntityDependencyIds = [];
|
|
63
60
|
const currentEntityDependencies = this.getSharedEntityDependencies(activeSharedEntity, sharedEntities);
|
|
64
61
|
const newTeamSharingReferences = this.getTeamSharingReferences(changedAdaptableObject, activeSharedEntity.Module);
|
|
65
62
|
const newReferenceAdaptableObjectIds = newTeamSharingReferences.map((reference) => reference.Reference.Uuid);
|
|
66
|
-
// 1. add all the existing dependencies which are still referenced
|
|
67
63
|
updatedEntityDependencyIds.push(...currentEntityDependencies
|
|
68
64
|
.filter((entityDependency) => newReferenceAdaptableObjectIds.includes(entityDependency.Entity.Uuid))
|
|
69
65
|
.map((entity) => entity.Uuid));
|
|
70
|
-
// 2. check if there are new references which are not yet shared
|
|
71
66
|
const freshReferences = newTeamSharingReferences.filter((reference) => !currentEntityDependencies
|
|
72
67
|
.map((entityDependency) => entityDependency.Entity.Uuid)
|
|
73
68
|
.includes(reference.Reference.Uuid));
|
|
@@ -87,7 +82,6 @@ class TeamSharingService {
|
|
|
87
82
|
}
|
|
88
83
|
buildSharedEntityImportActions(importedSharedEntity) {
|
|
89
84
|
let configOverwriteNeedsConfirmation = false;
|
|
90
|
-
// either ADD or EDIT(in which case the user will need to confirm the overwrite)
|
|
91
85
|
const getSharedEntityImportAction = (sharedEntity) => {
|
|
92
86
|
const { Module, Entity } = sharedEntity;
|
|
93
87
|
const importInfo = this.adaptableApi.internalApi
|
|
@@ -213,7 +207,6 @@ class TeamSharingService {
|
|
|
213
207
|
clearTimeout(this.updateCheckTimerId);
|
|
214
208
|
}
|
|
215
209
|
createSharedEntity(adaptableObject, module, configuration, sharingUserName, sharingTimestamp, createdSharedEntities) {
|
|
216
|
-
// create main shared entity
|
|
217
210
|
const mainSharedEntity = {
|
|
218
211
|
EntityType: 'adaptableEntity',
|
|
219
212
|
Uuid: (0, Uuid_1.createUuid)(),
|
|
@@ -228,29 +221,21 @@ class TeamSharingService {
|
|
|
228
221
|
Revision: 1,
|
|
229
222
|
Type: configuration.type,
|
|
230
223
|
};
|
|
231
|
-
// load all dependencies (special cols, shared queries etc)
|
|
232
224
|
const teamSharingDependencies = this.getTeamSharingReferences(adaptableObject, module);
|
|
233
|
-
// for every dependency, create recursively the corresponding shared entities
|
|
234
225
|
teamSharingDependencies.forEach((teamSharingDependency) => {
|
|
235
226
|
const sharedEntityDependency = this.createSharedEntity(teamSharingDependency.Reference, teamSharingDependency.Module, configuration, sharingUserName, sharingTimestamp, createdSharedEntities);
|
|
236
|
-
// update dependency IDs for the main shared entity
|
|
237
227
|
mainSharedEntity.EntityDependencyIds.push(sharedEntityDependency.Uuid);
|
|
238
228
|
});
|
|
239
|
-
// add main shared entity to the accumulator
|
|
240
229
|
createdSharedEntities.push(mainSharedEntity);
|
|
241
230
|
return mainSharedEntity;
|
|
242
231
|
}
|
|
243
|
-
// returns the given rootSharedEntity with all its unique dependencies in their dependency order
|
|
244
232
|
getSharedEntityDependencyTree(rootSharedEntity, allSharedEntities) {
|
|
245
|
-
// using a map to handle the case where a SharedEntity occurs multiple times in the dependency tree
|
|
246
233
|
const result = new Map();
|
|
247
234
|
result.set(rootSharedEntity.Uuid, rootSharedEntity);
|
|
248
235
|
rootSharedEntity.EntityDependencyIds.forEach((dependencyId) => {
|
|
249
236
|
const dependencySharedEntity = allSharedEntities.find((sharedEntity) => sharedEntity.Uuid === dependencyId);
|
|
250
|
-
// check for zombie dependencies (possible if state is inconsistent due to dirty reads)
|
|
251
237
|
if (dependencySharedEntity) {
|
|
252
238
|
this.getSharedEntityDependencyTree(dependencySharedEntity, allSharedEntities).forEach((childDependency) => {
|
|
253
|
-
// check if this dependency is not already present in the dependency tree
|
|
254
239
|
if (!result.has(childDependency.Uuid)) {
|
|
255
240
|
result.set(childDependency.Uuid, childDependency);
|
|
256
241
|
}
|