@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.
- 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 +1 -9
- 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.esm.tsbuildinfo +1 -1
- package/src/Utilities/Services/Interface/IMetamodelService.d.ts +0 -20
- package/src/Utilities/Services/Interface/IMetamodelService.js +0 -1
- package/src/Utilities/Services/MetamodelService.d.ts +0 -17
- package/src/Utilities/Services/MetamodelService.js +0 -162
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.d.ts +0 -6
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +0 -99
- package/src/metamodel/adaptable-metamodel-model.d.ts +0 -26
- package/src/metamodel/adaptable-metamodel-model.js +0 -1
- package/src/metamodel/adaptable.metamodel.d.ts +0 -6244
- package/src/metamodel/adaptable.metamodel.js +0 -1
|
@@ -31,7 +31,6 @@ export function useDistinctFilterColumnValues(options) {
|
|
|
31
31
|
const [isDistinctColumnValuesLoading, setIsDistinctColumnValuesLoading] = React.useState(false);
|
|
32
32
|
useEffect(() => {
|
|
33
33
|
if (valuesLoadTrigger === 0) {
|
|
34
|
-
// skip the first render
|
|
35
34
|
return;
|
|
36
35
|
}
|
|
37
36
|
let ignore = false;
|
|
@@ -81,15 +80,8 @@ export function useDistinctFilterColumnValues(options) {
|
|
|
81
80
|
triggerValuesLoad,
|
|
82
81
|
};
|
|
83
82
|
}
|
|
84
|
-
/**
|
|
85
|
-
* This component was ported and modified to not know about colum filter and predicates.
|
|
86
|
-
* It should be further refactored to be easily ported;
|
|
87
|
-
*/
|
|
88
83
|
export const FloatingFilterValues = (props) => {
|
|
89
84
|
const { api } = useAdaptable();
|
|
90
|
-
// const evaluateInPredicateUsingTime = useAdaptableOptions(
|
|
91
|
-
// (options) => options.predicateOptions.evaluateInPredicateUsingTime
|
|
92
|
-
// );
|
|
93
85
|
const currentColumn = api.columnApi.getColumnWithColumnId(props.columnId);
|
|
94
86
|
const searchValueRef = React.useRef('');
|
|
95
87
|
const { isDistinctColumnValuesLoading, quickFilterValues, triggerValuesLoad } = useDistinctFilterColumnValues({
|
|
@@ -98,20 +90,14 @@ export const FloatingFilterValues = (props) => {
|
|
|
98
90
|
});
|
|
99
91
|
const valueRef = React.useRef(props.value);
|
|
100
92
|
useEffect(() => {
|
|
101
|
-
// we used to load values initially on mount, without any condition
|
|
102
93
|
const value = valueRef.current;
|
|
103
|
-
// but we now optimize it - if there are no values to show (for which we would need a label)
|
|
104
|
-
// then we skip it altogether, so we'll only load onMenuOpen
|
|
105
94
|
if (!value || !Array.isArray(value) || value.length === 0) {
|
|
106
95
|
return;
|
|
107
96
|
}
|
|
108
|
-
// see 😅 usePreviousValuesProbablyBecauseOfAGGridUnnecessaryFilterRemountRef 😅
|
|
109
97
|
const filterHandler = api.filterApi.columnFilterApi.internalApi.getAdaptableFilterHandler(props.columnId);
|
|
110
98
|
const usePrevious = filterHandler && typeof filterHandler.getLastCachedFilterDisplayValues === 'function'
|
|
111
99
|
? !!filterHandler.getLastCachedFilterDisplayValues()
|
|
112
100
|
: false;
|
|
113
|
-
// however, if the `value` prop is a non-empty array, we need to load the values
|
|
114
|
-
// so we know which labels to show
|
|
115
101
|
triggerValuesLoad({
|
|
116
102
|
usePrevious,
|
|
117
103
|
});
|
|
@@ -119,14 +105,8 @@ export const FloatingFilterValues = (props) => {
|
|
|
119
105
|
const quickFilterValuesRef = React.useRef(quickFilterValues);
|
|
120
106
|
quickFilterValuesRef.current = quickFilterValues;
|
|
121
107
|
useEffect(() => {
|
|
122
|
-
// since we did the optimization above,
|
|
123
|
-
// we now hit a scenario where the value is set via an API method
|
|
124
|
-
// so we also need to account for that - so whenever props.value changes, we need to check
|
|
125
|
-
// and if we previously didn't have a valid array
|
|
126
|
-
// and now we do, we need to load the values - if they are not already loaded
|
|
127
108
|
if (quickFilterValuesRef.current.values.length > 0 ||
|
|
128
109
|
quickFilterValuesRef.current.dataLoadIsComplete) {
|
|
129
|
-
// values have already been loaded, so we can skip
|
|
130
110
|
return;
|
|
131
111
|
}
|
|
132
112
|
const currentValue = props.value;
|
|
@@ -14,7 +14,6 @@ export const useAdaptableFilterWrapper = (columnId, filterComponent, handleOnCha
|
|
|
14
14
|
const column = api.columnApi.getColumnWithColumnId(columnId);
|
|
15
15
|
const columnFilterOptions = api.optionsApi.getFilterOptions().columnFilterOptions;
|
|
16
16
|
const qlPredicateDefs = React.useMemo(() => {
|
|
17
|
-
// this is NOT the ideal place to do this, but it is what it is: autoGroupCol should NOT have the 'Blanks'/'NonBlanks' predicates
|
|
18
17
|
const predicateDefs = api.filterApi.columnFilterApi
|
|
19
18
|
.getFilterPredicateDefsForColumn(column)
|
|
20
19
|
.filter((predDef) => {
|
|
@@ -34,7 +33,6 @@ export const useAdaptableFilterWrapper = (columnId, filterComponent, handleOnCha
|
|
|
34
33
|
? mapColumnFilterToQlPredicate(columnFilter, column, qlPredicateDefs, columnFilterOptions, filterComponent, api)
|
|
35
34
|
: null;
|
|
36
35
|
const handleOnChange = (adaptablePredicate, logic = 'AND') => {
|
|
37
|
-
// make sure we always have the latest columnFiler
|
|
38
36
|
const columnFilter = adaptable.api.filterApi.columnFilterApi.getColumnFilterForColumn(columnId);
|
|
39
37
|
const newFilter = {
|
|
40
38
|
...columnFilter,
|
|
@@ -52,9 +50,6 @@ export const useAdaptableFilterWrapper = (columnId, filterComponent, handleOnCha
|
|
|
52
50
|
}
|
|
53
51
|
};
|
|
54
52
|
const handleClear = React.useCallback(() => dispatch(LayoutRedux.LayoutColumnFilterClear(columnId)), [columnId]);
|
|
55
|
-
/**
|
|
56
|
-
* Converts a QlPredicate to an AdaptablePredicate and dispatches the change.
|
|
57
|
-
*/
|
|
58
53
|
const handlePredicateChange = React.useCallback((newPredicate) => {
|
|
59
54
|
if (!newPredicate) {
|
|
60
55
|
handleClear();
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { isAdaptableIcon } from '../../../components/Icon';
|
|
3
3
|
import { AdaptableIconComponent } from '../AdaptableIconComponent';
|
|
4
|
-
export const mapAdaptablePredicateDefToQlPredicateDef = (adaptablePredicateDef,
|
|
5
|
-
// used to determine values type
|
|
6
|
-
dataType) => {
|
|
4
|
+
export const mapAdaptablePredicateDefToQlPredicateDef = (adaptablePredicateDef, dataType) => {
|
|
7
5
|
let icon = null;
|
|
8
6
|
if (isAdaptableIcon(adaptablePredicateDef.icon)) {
|
|
9
7
|
icon = React.createElement(AdaptableIconComponent, { icon: adaptablePredicateDef.icon });
|
|
@@ -16,11 +14,9 @@ dataType) => {
|
|
|
16
14
|
});
|
|
17
15
|
if (adaptablePredicateDef.id === 'In' || adaptablePredicateDef.id === 'NotIn') {
|
|
18
16
|
if (['text', 'number', 'date'].includes(dataType)) {
|
|
19
|
-
// add array type
|
|
20
17
|
inputs.push(`${dataType}[]`);
|
|
21
18
|
}
|
|
22
19
|
if (['text[]', 'number[]'].includes(dataType)) {
|
|
23
|
-
// add array type
|
|
24
20
|
inputs.push(dataType);
|
|
25
21
|
}
|
|
26
22
|
}
|
|
@@ -38,7 +34,7 @@ dataType) => {
|
|
|
38
34
|
};
|
|
39
35
|
export const mapAdaptablePredicateToQlPredicate = (adaptablePredicate) => {
|
|
40
36
|
return {
|
|
41
|
-
operator: adaptablePredicate.PredicateId,
|
|
37
|
+
operator: adaptablePredicate.PredicateId,
|
|
42
38
|
args: adaptablePredicate.Inputs,
|
|
43
39
|
};
|
|
44
40
|
};
|
|
@@ -52,7 +48,6 @@ export const qlPredicateToString = (qlPredicate, predicateDefs) => {
|
|
|
52
48
|
if (typeof qlPredicate === 'object' &&
|
|
53
49
|
'operator' in qlPredicate &&
|
|
54
50
|
(qlPredicate.operator === 'AND' || qlPredicate.operator === 'OR')) {
|
|
55
|
-
// save to join args because there is no extra nesting
|
|
56
51
|
return qlPredicate.args
|
|
57
52
|
.filter((str) => str)
|
|
58
53
|
.map((arg) => qlPredicateToString(arg, predicateDefs))
|
|
@@ -89,7 +84,6 @@ export const mapColumnFilterToQlPredicate = (columnFilter, abColumn, qlPredicate
|
|
|
89
84
|
args: (columnFilter?.Predicates ?? []).map?.(mapAdaptablePredicateToQlPredicate),
|
|
90
85
|
};
|
|
91
86
|
if (qlPredicate.args.length === 0) {
|
|
92
|
-
// used when none is defined
|
|
93
87
|
let defaultQlPredicate = null;
|
|
94
88
|
switch (abColumn.dataType) {
|
|
95
89
|
case 'number':
|
|
@@ -178,7 +172,6 @@ export const mapColumnFilterToQlPredicate = (columnFilter, abColumn, qlPredicate
|
|
|
178
172
|
break;
|
|
179
173
|
}
|
|
180
174
|
if (defaultQlPredicate === null) {
|
|
181
|
-
// take the firstavailable one
|
|
182
175
|
if (qlPredicateDefs.length > 0) {
|
|
183
176
|
defaultQlPredicate = { operator: qlPredicateDefs[0].operator, args: [] };
|
|
184
177
|
}
|
|
@@ -35,7 +35,6 @@ export const EntityRulePredicateEditor = (props) => {
|
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
else {
|
|
38
|
-
// no previous predicate, e.g. it was cleared
|
|
39
38
|
newPredicates = [newPredicateDef];
|
|
40
39
|
}
|
|
41
40
|
props.onChange({
|
|
@@ -61,7 +60,6 @@ export const EntityRulePredicateEditor = (props) => {
|
|
|
61
60
|
label: col.label,
|
|
62
61
|
value: col.value,
|
|
63
62
|
}));
|
|
64
|
-
// use global scope or custom scope
|
|
65
63
|
let predicateColumnId = null;
|
|
66
64
|
if (predicate?.ColumnId && predicate.ColumnId !== '') {
|
|
67
65
|
predicateColumnId = predicate.ColumnId;
|
|
@@ -14,7 +14,6 @@ export const EntityRulePredicatesEditor = (props) => {
|
|
|
14
14
|
const { api } = useAdaptable();
|
|
15
15
|
const showDocumentationLinks = api.internalApi.isDocumentationLinksDisplayed();
|
|
16
16
|
const columnPredicateEnabled = props.data.Rule.Predicates.some((predicate) => predicate.ColumnId !== undefined);
|
|
17
|
-
// filter out predicates that are already in use
|
|
18
17
|
const defaultPredicateDefs = props.predicateDefs.filter((predicateDef) => {
|
|
19
18
|
return props.data.Rule?.Predicates?.every((rulePrediate) => rulePrediate.PredicateId !== predicateDef.id);
|
|
20
19
|
});
|
|
@@ -14,7 +14,6 @@ const QueryTab = (props) => {
|
|
|
14
14
|
const text = (_jsxs(Flex, { flexDirection: "column", children: [label, " ", _jsx(Box, { className: "twa:text-2", children: "query" })] }));
|
|
15
15
|
return (_jsx(Tabs.Tab, { style: { flex: 1 }, ...tabProps, children: !disabled && props.showRadio ? (_jsx(Radio, { tabIndex: -1, className: "twa:m-0 twa:align-baseline", checked: type === props.value, children: text })) : (text) }));
|
|
16
16
|
};
|
|
17
|
-
// needed here to be considered a child Tab component, inside the Tabs component
|
|
18
17
|
SupportedTabMenuComps.add(QueryTab);
|
|
19
18
|
export const EntityRulesSummary = (props) => {
|
|
20
19
|
const { data } = props;
|
|
@@ -25,16 +24,7 @@ export const EntityRulesSummary = (props) => {
|
|
|
25
24
|
!data?.Rule?.AggregatedBooleanExpression) {
|
|
26
25
|
return _jsx(Box, { className: "twa:text-2", children: "No Rule defined" });
|
|
27
26
|
}
|
|
28
|
-
return (_jsx(
|
|
29
|
-
Box,
|
|
30
|
-
{ className: "twa:text-2", children: data.Rule.Predicates ? (_jsx(_Fragment, { children: data.Rule?.Predicates?.map?.((predicate, index) => (
|
|
31
|
-
// predicate id is not unique
|
|
32
|
-
(_jsx(
|
|
33
|
-
React.Fragment,
|
|
34
|
-
{ children: props.renderPredicate(predicateApi.predicateToString(predicate)) },
|
|
35
|
-
index
|
|
36
|
-
)))) })) : (_jsx(_Fragment, { children: props.renderQueryExpression(internalApi.getAdaptableQueryExpressionText(data.Rule)) })) }
|
|
37
|
-
));
|
|
27
|
+
return (_jsx(Box, { className: "twa:text-2", children: data.Rule.Predicates ? (_jsx(_Fragment, { children: data.Rule?.Predicates?.map?.((predicate, index) => (_jsx(React.Fragment, { children: props.renderPredicate(predicateApi.predicateToString(predicate)) }, index))) })) : (_jsx(_Fragment, { children: props.renderQueryExpression(internalApi.getAdaptableQueryExpressionText(data.Rule)) })) }));
|
|
38
28
|
};
|
|
39
29
|
const RuleTabTitle = (props) => {
|
|
40
30
|
return props.showRadio ? (_jsx(Radio, { className: "twa:m-0", tabIndex: -1, checked: props.checked, children: props.children })) : (_jsx(_Fragment, { children: "props.children" }));
|
|
@@ -29,9 +29,7 @@ export const ExternalRenderer = ({ render, frameworkComponent, componentName = '
|
|
|
29
29
|
}
|
|
30
30
|
else if (frameworkComponent) {
|
|
31
31
|
onDestroy?.();
|
|
32
|
-
adaptableApi.internalApi.destroyFrameworkComponent(element, frameworkComponent,
|
|
33
|
-
// @ts-ignore
|
|
34
|
-
componentName);
|
|
32
|
+
adaptableApi.internalApi.destroyFrameworkComponent(element, frameworkComponent, componentName);
|
|
35
33
|
}
|
|
36
34
|
};
|
|
37
35
|
}, []);
|
|
@@ -12,7 +12,6 @@ import { isEmbeddedColumnFilterLocation } from '../ColumnFilter/columnFilterLoca
|
|
|
12
12
|
import { useColumnFilterLocation } from '../ColumnFilter/AdaptableColumnFilter';
|
|
13
13
|
import { GridFilterTreeDropdown } from '../../../components/Tree/TreeDropdown';
|
|
14
14
|
const baseClassName = 'ab-ListBoxFilterForm';
|
|
15
|
-
// used for displaying the date values in the input
|
|
16
15
|
function toDateDisplayValue(values) {
|
|
17
16
|
values = values.map((v) => {
|
|
18
17
|
if (!Array.isArray(v)) {
|
|
@@ -23,20 +22,6 @@ function toDateDisplayValue(values) {
|
|
|
23
22
|
return toDisplayValueDefault(values);
|
|
24
23
|
}
|
|
25
24
|
const dateOnChangeParser = (value) => {
|
|
26
|
-
/**
|
|
27
|
-
* the value looks like this:
|
|
28
|
-
* [
|
|
29
|
-
* ["2021","2021-01","2021-01-01"],
|
|
30
|
-
* ["2024","2024-02","2024-02-15T12:34:00"],
|
|
31
|
-
* ]
|
|
32
|
-
*/
|
|
33
|
-
// so first need to transfor the above to this:
|
|
34
|
-
/**
|
|
35
|
-
* [
|
|
36
|
-
* [2023, 12, 1, 1640668800000],
|
|
37
|
-
* [2023, 12, 3, 1738377600000]
|
|
38
|
-
* ]
|
|
39
|
-
*/
|
|
40
25
|
return value.map((v) => {
|
|
41
26
|
return v[v.length - 1];
|
|
42
27
|
});
|
|
@@ -47,7 +32,6 @@ export const ColumnValuesSelect = (props) => {
|
|
|
47
32
|
const column = props.column;
|
|
48
33
|
let selectedColumnValues = props.value || EMPTY_ARRAY;
|
|
49
34
|
const rawOptionsFromProps = Array.isArray(props.options) ? props.options : EMPTY_ARRAY;
|
|
50
|
-
// Drop empty entries for all column types; Memoise them because Date cols can leak them when using `customInFilterValues` + `orderedValues`
|
|
51
35
|
const optionsFromProps = useMemo(() => {
|
|
52
36
|
if (rawOptionsFromProps === EMPTY_ARRAY) {
|
|
53
37
|
return rawOptionsFromProps;
|
|
@@ -65,20 +49,6 @@ export const ColumnValuesSelect = (props) => {
|
|
|
65
49
|
return rawOptionsFromProps.filter((option) => !StringExtensions.IsNullOrEmpty(option?.value));
|
|
66
50
|
}, [rawOptionsFromProps]);
|
|
67
51
|
const value = [];
|
|
68
|
-
// For `customInFilterValues` + `orderedValues` on a date column, the
|
|
69
|
-
// options arrive with raw `Date` objects as `value`. `GridFilterTreeDropdown`
|
|
70
|
-
// round-trips path keys via `JSON.stringify`/`JSON.parse`, which converts
|
|
71
|
-
// `Date` -> ISO string. The stored selection paths therefore become
|
|
72
|
-
// strings while the option/treePath values are still `Date` references —
|
|
73
|
-
// and `TreeSelectionState`'s internal DeepMap uses strict reference
|
|
74
|
-
// equality, so a clicked item never matches its tree path on the next
|
|
75
|
-
// render (no checkbox, click looks like a no-op).
|
|
76
|
-
//
|
|
77
|
-
// Normalise `Date` option values to ISO strings up front so every layer
|
|
78
|
-
// (treePaths, items, selectionMap, value, onChange output) speaks the
|
|
79
|
-
// same primitive. Tree-shaped date options (the default-values flow) use
|
|
80
|
-
// string values like "2024" / "2024-01" / "2024-01-01" already and pass
|
|
81
|
-
// through unchanged.
|
|
82
52
|
const dateOptions = useMemo(() => {
|
|
83
53
|
if (column.dataType !== 'date') {
|
|
84
54
|
return optionsFromProps;
|
|
@@ -97,14 +67,6 @@ export const ColumnValuesSelect = (props) => {
|
|
|
97
67
|
return optionsFromProps.map(convert);
|
|
98
68
|
}, [column.dataType, optionsFromProps]);
|
|
99
69
|
if (column.dataType === 'date') {
|
|
100
|
-
// we might have a use-case where users might want to get rid of a tree level
|
|
101
|
-
// because it may contain only one child. currently,
|
|
102
|
-
// the value is an array of strings that have this form (ISOish)
|
|
103
|
-
// ["2021-01-01", "2021-10-02", "2021-01-03T12:00:00"]
|
|
104
|
-
// but we want the full path to each value
|
|
105
|
-
// but we can't compute that by simply splitting the strings by '-' or 'T',
|
|
106
|
-
// as if we do that, then we won't support removing a tree level
|
|
107
|
-
// so we have to compute the paths based on the options
|
|
108
70
|
const valueToPath = useMemo(() => {
|
|
109
71
|
const valueToPath = new Map();
|
|
110
72
|
const withOption = (option, parentPath = []) => {
|
|
@@ -119,9 +81,6 @@ export const ColumnValuesSelect = (props) => {
|
|
|
119
81
|
}, [dateOptions]);
|
|
120
82
|
selectedColumnValues = selectedColumnValues
|
|
121
83
|
.map((v) => {
|
|
122
|
-
// Saved selections may be raw `Date` objects from older
|
|
123
|
-
// `orderedValues` snapshots; coerce to the same ISO string we use
|
|
124
|
-
// for option keys so the lookup still hits.
|
|
125
84
|
const key = v instanceof Date ? v.toISOString() : v;
|
|
126
85
|
return valueToPath.get(key);
|
|
127
86
|
})
|
|
@@ -131,7 +90,6 @@ export const ColumnValuesSelect = (props) => {
|
|
|
131
90
|
? dateOptions
|
|
132
91
|
: optionsFromProps.filter((distinctValue) => {
|
|
133
92
|
let isActive = selectedColumnValues.indexOf(distinctValue.value) >= 0;
|
|
134
|
-
// special case for date objects, need to check against string values
|
|
135
93
|
if (!isActive && distinctValue.value && distinctValue.value instanceof Date) {
|
|
136
94
|
isActive = selectedColumnValues.some((dateStr) => isEqual(parseDateValue(dateStr), parseDateValue(distinctValue.value)));
|
|
137
95
|
}
|
|
@@ -159,23 +117,14 @@ export const ColumnValuesSelect = (props) => {
|
|
|
159
117
|
: undefined;
|
|
160
118
|
const component = column.dataType === 'date' || column.columnId === AG_GRID_GROUPED_COLUMN ? (_jsx(GridFilterTreeDropdown, { toDisplayValue: treeDropdownToDisplayValue, resizable: true, onValueChange: column.dataType === 'date'
|
|
161
119
|
? (value) => props.onChange(dateOnChangeParser(value))
|
|
162
|
-
: props.onChange, items: options,
|
|
163
|
-
// for dates, the treeDateOptions have ids that are numbers
|
|
164
|
-
// so we have to add the `toDateValue` function to convert the values to the correct format
|
|
165
|
-
value: selectedColumnValues, "data-name": "Select Values", primaryKey: 'value', isLoading: props.isLoading, onOpenChange: onOpenChange, showClear: isEmbeddedColumnFilterLocation(location) })) : (_jsx(GridFilterCombobox, { disabled: props.disabled, ...selectProps, onOpenChange: onOpenChange, items: options, value: value, isLoading: props.isLoading, onValueChange: props.onChange, showClear: isEmbeddedColumnFilterLocation(location) }, "select"));
|
|
120
|
+
: props.onChange, items: options, value: selectedColumnValues, "data-name": "Select Values", primaryKey: 'value', isLoading: props.isLoading, onOpenChange: onOpenChange, showClear: isEmbeddedColumnFilterLocation(location) })) : (_jsx(GridFilterCombobox, { disabled: props.disabled, ...selectProps, onOpenChange: onOpenChange, items: options, value: value, isLoading: props.isLoading, onValueChange: props.onChange, showClear: isEmbeddedColumnFilterLocation(location) }, "select"));
|
|
166
121
|
return (_jsx("div", { className: join(baseClassName, 'twa:relative', props.isLoading && `${baseClassName}--loading`, !value.length && `${baseClassName}--empty`), onKeyDownCapture: (e) => {
|
|
167
122
|
if (e.key === 'Tab') {
|
|
168
|
-
// Prevent AG Grid from hijacking Tab; keep browser default focus navigation.
|
|
169
123
|
e.stopPropagation();
|
|
170
124
|
return;
|
|
171
125
|
}
|
|
172
126
|
const event = e.nativeEvent || e;
|
|
173
127
|
event.stopPropagation = () => {
|
|
174
|
-
// see #ensure-keyboard-navigation-works-in-column-values-filter
|
|
175
|
-
// we want to prevent ag grid from stopping the propagation of the event
|
|
176
|
-
// so that the event can be handled by the select component and thus makes keyboard navigation work
|
|
177
|
-
//
|
|
178
|
-
// the solution is to reassign the stopPropagation method to a function that does nothing
|
|
179
128
|
};
|
|
180
129
|
}, children: component }));
|
|
181
130
|
};
|
|
@@ -28,8 +28,6 @@ export const ModuleValueSelector = (props) => {
|
|
|
28
28
|
return ArrayExtensions.sortArrayWithOrder(options, value, { sortUnorderedItems: true });
|
|
29
29
|
}, [allowReorder, options, value]);
|
|
30
30
|
const moduleFilter = useCallback((module, searchText) => {
|
|
31
|
-
// the module name is camelCased so I want to split it
|
|
32
|
-
// so we can also use spaces in the search text
|
|
33
31
|
const parts = module.split(/(?=[A-Z])/);
|
|
34
32
|
const withSpaces = parts.join(' ');
|
|
35
33
|
return (module.toLowerCase().includes(searchText.toLowerCase()) ||
|
|
@@ -5,9 +5,6 @@ import { allIcons } from '../../../components/icons';
|
|
|
5
5
|
import { ButtonInfo } from '../Buttons/ButtonInfo';
|
|
6
6
|
import { twMerge } from '../../../twMerge';
|
|
7
7
|
import { Box, Flex } from '../../../components/Flex';
|
|
8
|
-
//We cannot destructure this.props using the react way in typescript which is a real pain as you
|
|
9
|
-
//need to transfer props individually as a consequence
|
|
10
|
-
//let { buttonContent, ...other } = this.props
|
|
11
8
|
class PanelWithImageCmp extends React.Component {
|
|
12
9
|
render() {
|
|
13
10
|
const IconCmp = allIcons[(this.props.icon || this.props.glyphicon)];
|
|
@@ -16,8 +13,7 @@ class PanelWithImageCmp extends React.Component {
|
|
|
16
13
|
headerStyle.color = this.props.headerColor;
|
|
17
14
|
headerStyle.fill = this.props.headerColor;
|
|
18
15
|
}
|
|
19
|
-
let headerRow = (_jsx(Flex, { className: "twa:flex-1", children: _jsxs(Flex, { alignItems: "center", children: [_jsxs(Flex, { className: "twa:min-h-[15px]", alignItems: "center", style: headerStyle, children: [IconCmp ? _jsx(IconCmp, {}) : null, _jsx(Box, { className: "twa:mr-2" }), this.props.header ?? '', _jsx(Box, { className: "twa:mr-2", "data-name": "space-after" }), this.props.infoLink != null && !this.props.infoLinkDisabled && (_jsx(ButtonInfo, { onClick: () => window.open(this.props.infoLink, '_blank'
|
|
20
|
-
) }))] }), _jsx(Flex, { className: "twa:flex-1" }), this.props.button && React.cloneElement(this.props.button)] }) }));
|
|
16
|
+
let headerRow = (_jsx(Flex, { className: "twa:flex-1", children: _jsxs(Flex, { alignItems: "center", children: [_jsxs(Flex, { className: "twa:min-h-[15px]", alignItems: "center", style: headerStyle, children: [IconCmp ? _jsx(IconCmp, {}) : null, _jsx(Box, { className: "twa:mr-2" }), this.props.header ?? '', _jsx(Box, { className: "twa:mr-2", "data-name": "space-after" }), this.props.infoLink != null && !this.props.infoLinkDisabled && (_jsx(ButtonInfo, { onClick: () => window.open(this.props.infoLink, '_blank') }))] }), _jsx(Flex, { className: "twa:flex-1" }), this.props.button && React.cloneElement(this.props.button)] }) }));
|
|
21
17
|
return (_jsx(NewPanel, { header: headerRow, variant: this.props.variant, style: this.props.style, bodyScroll: this.props.bodyScroll !== undefined ? this.props.bodyScroll : true, className: twMerge('twa:rounded-none twa:border-none', this.props.className), bodyProps: {
|
|
22
18
|
...this.props.bodyProps,
|
|
23
19
|
className: twMerge('twa:p-0', this.props.bodyProps?.className),
|
|
@@ -2,9 +2,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import Panel from '../../../components/Panel';
|
|
4
4
|
import { Flex, Box } from '../../../components/Flex';
|
|
5
|
-
// We cannot destructure this.props using the react way in typescript which is a real pain as you
|
|
6
|
-
// need to transfer props individually as a consequence
|
|
7
|
-
// let { buttonContent, ...other } = this.props
|
|
8
5
|
export class PanelWithRow extends React.Component {
|
|
9
6
|
render() {
|
|
10
7
|
const headerItems = this.props.colItems.map((colItem, index) => (_jsx(Box, { className: "twa:font-bold twa:text-3 twa:px-1", style: {
|
|
@@ -21,11 +21,6 @@ export const AdaptablePopup = (props) => {
|
|
|
21
21
|
const isWindowModal = settingsPanelOptions.popupType === 'window';
|
|
22
22
|
const modalContainer = resolveContainerElement(adaptable.adaptableOptions?.containerOptions?.modalContainer, props.api.internalApi.buildBaseContext());
|
|
23
23
|
let friendlyName = null;
|
|
24
|
-
/**
|
|
25
|
-
* This means that it is not rendered in the context of Settings Panel
|
|
26
|
-
* - no topbar
|
|
27
|
-
* - no navigation
|
|
28
|
-
*/
|
|
29
24
|
let isStandalone = false;
|
|
30
25
|
let moduleViewContent = null;
|
|
31
26
|
let activeItem = null;
|
|
@@ -34,7 +29,6 @@ export const AdaptablePopup = (props) => {
|
|
|
34
29
|
const firstMenuModule = firstMenuItem?.category;
|
|
35
30
|
let componentModule = props.componentModule;
|
|
36
31
|
let componentName = props.componentName;
|
|
37
|
-
// ts forces to check for General, there is no menu item General
|
|
38
32
|
const useFirstItem = !props.componentName;
|
|
39
33
|
if (useFirstItem &&
|
|
40
34
|
firstMenuModule !== 'General' &&
|
|
@@ -15,7 +15,6 @@ export const AdaptablePopupBody = (props) => {
|
|
|
15
15
|
props.onHide();
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
|
-
// show share button if TeamSharing is active & user has edit rights
|
|
19
18
|
teamSharingActivated: props.api.teamSharingApi.isTeamSharingAvailable() &&
|
|
20
19
|
props.api.teamSharingApi.hasTeamSharingFullRights(),
|
|
21
20
|
modalContainer: modalContainer,
|
|
@@ -24,7 +23,5 @@ export const AdaptablePopupBody = (props) => {
|
|
|
24
23
|
moduleInfo,
|
|
25
24
|
};
|
|
26
25
|
const BodyComponent = AdaptableViewFactory?.[props?.componentName ?? moduleInfo.Popup] || AdaptablePopupModuleView;
|
|
27
|
-
// key is to make sure state is reset between views
|
|
28
|
-
// most of the views use the `AdaptablePopupModuleView` component
|
|
29
26
|
return _jsx(BodyComponent, { module: props.module, ...moduleProps }, props?.componentName);
|
|
30
27
|
};
|
|
@@ -18,10 +18,6 @@ import Panel from '../../../../components/Panel';
|
|
|
18
18
|
import { Tabs } from '../../../../components/Tabs';
|
|
19
19
|
import { NewDropdownButton } from '../../../../components/DropdownButton';
|
|
20
20
|
export const AdaptablePopupModuleView = (props) => {
|
|
21
|
-
/**
|
|
22
|
-
* This triggers a render for each state change.
|
|
23
|
-
* NOT sure this is still needed... It is here for historical reasons.
|
|
24
|
-
*/
|
|
25
21
|
const adaptable = useAdaptable();
|
|
26
22
|
const rerender = useRerender();
|
|
27
23
|
useEffect(() => {
|
|
@@ -66,8 +62,6 @@ export const AdaptablePopupModuleView = (props) => {
|
|
|
66
62
|
emptyContent = emptyView;
|
|
67
63
|
}
|
|
68
64
|
const toolTipText = moduleViewProperties.newTooltipText ?? `Create ${moduleInfo.FriendlyName}`;
|
|
69
|
-
// Some modules do not have new button
|
|
70
|
-
// e.g. filter
|
|
71
65
|
let newButton = null;
|
|
72
66
|
if (moduleViewProperties?.abObjectTypes?.length) {
|
|
73
67
|
const items = moduleViewProperties?.abObjectTypes.map((abObjectType) => {
|
|
@@ -4,6 +4,5 @@ import { Box, Flex } from '../../../../components/Flex';
|
|
|
4
4
|
import { cn } from '../../../../lib/utils';
|
|
5
5
|
export const PopupPanel = (props) => {
|
|
6
6
|
const baseClassName = 'ab-Adaptable-Popup__Panel';
|
|
7
|
-
return (_jsxs(Box, { className: cn('twa:flex-1 twa:flex twa:flex-col twa:gap-3 twa:p-1', props.className, baseClassName, props.scrollable === false ? 'twa:overflow-hidden' : 'twa:overflow-auto'), children: [_jsxs("div", { className: `${baseClassName}__Header twa:flex`, children: [_jsxs(Flex, { alignItems: "center", children: [_jsx(Box, { className: "twa:mr-0", "data-name": "space-before" }), _jsx("div", { className: `${baseClassName}__Header__Title`, children: props.headerText }), _jsx(Box, { className: "twa:mr-2", "data-name": "space-after" }), props.infoLink != null && !props.infoLinkDisabled && (_jsx(ButtonInfo, { tone: "none", variant: "text", iconSize: 24, onClick: () => window.open(props.infoLink, '_blank'
|
|
8
|
-
) }))] }), _jsx(Box, { className: "twa:flex-1" }), props.button] }), _jsx(Box, { className: cn('twa:w-full twa:flex twa:flex-col twa:flex-1 twa:min-h-0', `${baseClassName}__Body`, props.bodyClassName), children: props.children })] }));
|
|
7
|
+
return (_jsxs(Box, { className: cn('twa:flex-1 twa:flex twa:flex-col twa:gap-3 twa:p-1', props.className, baseClassName, props.scrollable === false ? 'twa:overflow-hidden' : 'twa:overflow-auto'), children: [_jsxs("div", { className: `${baseClassName}__Header twa:flex`, children: [_jsxs(Flex, { alignItems: "center", children: [_jsx(Box, { className: "twa:mr-0", "data-name": "space-before" }), _jsx("div", { className: `${baseClassName}__Header__Title`, children: props.headerText }), _jsx(Box, { className: "twa:mr-2", "data-name": "space-after" }), props.infoLink != null && !props.infoLinkDisabled && (_jsx(ButtonInfo, { tone: "none", variant: "text", iconSize: 24, onClick: () => window.open(props.infoLink, '_blank') }))] }), _jsx(Box, { className: "twa:flex-1" }), props.button] }), _jsx(Box, { className: cn('twa:w-full twa:flex twa:flex-col twa:flex-1 twa:min-h-0', `${baseClassName}__Body`, props.bodyClassName), children: props.children })] }));
|
|
9
8
|
};
|
|
@@ -19,7 +19,6 @@ export const useMenuItems = () => {
|
|
|
19
19
|
const resolveNavigationItem = (moduleName) => {
|
|
20
20
|
const customSettingsPanel = settingsPanelOptions?.customSettingsPanels?.find?.((panel) => panel.name === moduleName);
|
|
21
21
|
if (customSettingsPanel) {
|
|
22
|
-
// @ts-ignore custom settings panel menu items are not part of the standard menu name union
|
|
23
22
|
return {
|
|
24
23
|
category: 'CustomSettingsPanel',
|
|
25
24
|
label: customSettingsPanel.name,
|
|
@@ -19,7 +19,6 @@ export const AdaptablePopupAlert = (props) => {
|
|
|
19
19
|
header = `${header}: ${props.adaptableAlert.header}`;
|
|
20
20
|
}
|
|
21
21
|
let glyph = UIHelper.getGlyphByMessageType(messageType);
|
|
22
|
-
// we still need the defauld
|
|
23
22
|
const defaultForm = React.useMemo(() => {
|
|
24
23
|
return api.alertApi.internalApi.getDefaultAlertNotificationForm();
|
|
25
24
|
}, []);
|
|
@@ -51,8 +50,6 @@ export const AdaptablePopupAlert = (props) => {
|
|
|
51
50
|
})
|
|
52
51
|
: msg] }), _jsx(Box, { className: "twa:m-2", children: adaptableForm ? (_jsx(AdaptableFormComponent, { focusFirstButton: props.focusFirstButton, data: formData, formDef: adaptableForm, displayTitle: true, onChange: setFormData, api: api, context: context, onButtonClick: (button) => {
|
|
53
52
|
props.onClose();
|
|
54
|
-
// we want to give the current popup time to close
|
|
55
|
-
// and we reopen with a delay in case this button action causes another popup
|
|
56
53
|
setTimeout(() => {
|
|
57
54
|
button.onClick?.(button, context);
|
|
58
55
|
}, 20);
|
|
@@ -3,8 +3,6 @@ import ObjectFactory from '../../../Utilities/ObjectFactory';
|
|
|
3
3
|
import { AdaptablePopupAlert } from './AdaptablePopupAlert';
|
|
4
4
|
import { toast } from '../../../components/Toastify';
|
|
5
5
|
export const showToast = (props) => {
|
|
6
|
-
// we're doing this hack and not simply using props.api in order not to have a memory
|
|
7
|
-
// leak where the api is still kept around in memory by the toaster
|
|
8
6
|
let api = props.api;
|
|
9
7
|
const off = api.eventApi.on('AdaptableDestroy', () => {
|
|
10
8
|
toast.dismiss();
|
|
@@ -14,14 +14,8 @@ const NoopComponent = () => {
|
|
|
14
14
|
return _jsx(_Fragment, {});
|
|
15
15
|
};
|
|
16
16
|
export const CUSTOM_WINDOW_FACTORY_ID = 'CUSTOM_WINDOW_FACTORY_ID';
|
|
17
|
-
/**
|
|
18
|
-
* Portals children into a target container element.
|
|
19
|
-
* Monitors the container with a MutationObserver — if the container is removed
|
|
20
|
-
* from the DOM, `onContainerRemoved` is called so callers can clean up React/Redux state.
|
|
21
|
-
*/
|
|
22
17
|
const ContainerPortal = ({ container, onContainerRemoved, children }) => {
|
|
23
18
|
React.useEffect(() => {
|
|
24
|
-
// If the container is already detached, clean up immediately
|
|
25
19
|
if (!document.contains(container)) {
|
|
26
20
|
onContainerRemoved();
|
|
27
21
|
return;
|
|
@@ -32,7 +26,6 @@ const ContainerPortal = ({ container, onContainerRemoved, children }) => {
|
|
|
32
26
|
observer.disconnect();
|
|
33
27
|
}
|
|
34
28
|
});
|
|
35
|
-
// Observe the entire document body for subtree removals
|
|
36
29
|
observer.observe(document.body, { childList: true, subtree: true });
|
|
37
30
|
return () => {
|
|
38
31
|
observer.disconnect();
|
|
@@ -66,7 +59,6 @@ export const WindowPopups = () => {
|
|
|
66
59
|
Component = Component ?? NoopComponent;
|
|
67
60
|
componentNode = (_jsx(Component, { api: adaptable.api, onDismiss: handleDismiss, popupProps: restPopupProps }));
|
|
68
61
|
}
|
|
69
|
-
// Transposed View: portal into custom container if configured
|
|
70
62
|
if (windowItem.FactoryId === WINDOW_SHOW_TRANSPOSED_VIEW) {
|
|
71
63
|
const transposedContainer = resolveContainerElement(adaptable.adaptableOptions?.containerOptions?.transposedViewContainer, adaptable.api.internalApi.buildBaseContext());
|
|
72
64
|
if (transposedContainer) {
|