@adaptabletools/adaptable 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 +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
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useAdaptable } from '../AdaptableContext';
|
|
3
|
-
// need to trigger other show-chart buttons to close/hide
|
|
4
3
|
const buttonChangeSubscribers = [];
|
|
5
4
|
export const useExternalChartState = (chartDefinition) => {
|
|
6
5
|
const adaptable = useAdaptable();
|
|
7
|
-
// needs to update when ever a chart is:
|
|
8
|
-
// - opened, hidden
|
|
9
6
|
const [isOpen, setIsOpen] = React.useState(() => {
|
|
10
7
|
return (chartDefinition &&
|
|
11
8
|
adaptable.api.chartingApi.internalApi.isExternalChartOpened(chartDefinition));
|
|
@@ -23,7 +20,6 @@ export const useExternalChartState = (chartDefinition) => {
|
|
|
23
20
|
updateIsOpen();
|
|
24
21
|
};
|
|
25
22
|
buttonChangeSubscribers.push(subscriber);
|
|
26
|
-
// clear own subscriptions
|
|
27
23
|
return () => {
|
|
28
24
|
const index = buttonChangeSubscribers.indexOf(subscriber);
|
|
29
25
|
if (index > -1) {
|
|
@@ -34,14 +30,12 @@ export const useExternalChartState = (chartDefinition) => {
|
|
|
34
30
|
return {
|
|
35
31
|
showChart: (container) => {
|
|
36
32
|
adaptable.api.chartingApi.internalApi.onShowExternalChart(chartDefinition, container);
|
|
37
|
-
// The small delay allows the library to render the chart before the button is updated
|
|
38
33
|
requestAnimationFrame(() => {
|
|
39
34
|
buttonChangeSubscribers.forEach((subscriber) => subscriber());
|
|
40
35
|
});
|
|
41
36
|
},
|
|
42
37
|
hideChart: () => {
|
|
43
38
|
adaptable.api.chartingApi.internalApi.onHideExternalChart(chartDefinition);
|
|
44
|
-
// The small delay allows the library to destroy the chart before the button is updated
|
|
45
39
|
requestAnimationFrame(() => {
|
|
46
40
|
buttonChangeSubscribers.forEach((subscriber) => subscriber());
|
|
47
41
|
});
|
|
@@ -15,19 +15,15 @@ const BASE_CLASS_NAME = 'ab-AdaptableColumns';
|
|
|
15
15
|
const domProps = {
|
|
16
16
|
className: 'twa:flex-1 twa:min-h-0 twa:w-full',
|
|
17
17
|
};
|
|
18
|
-
// TODOS:
|
|
19
|
-
// - use column from props as initial value
|
|
20
|
-
// - table summary
|
|
21
|
-
// - access level for edit/new buttons
|
|
22
18
|
const MODULES_WITH_COLUMN = [
|
|
23
|
-
'Alert',
|
|
24
|
-
'CalculatedColumn',
|
|
25
|
-
'CustomSort',
|
|
26
|
-
'FormatColumn',
|
|
19
|
+
'Alert',
|
|
20
|
+
'CalculatedColumn',
|
|
21
|
+
'CustomSort',
|
|
22
|
+
'FormatColumn',
|
|
27
23
|
'FlashingCell',
|
|
28
|
-
'PlusMinus',
|
|
29
|
-
'Shortcut',
|
|
30
|
-
'StyledColumn',
|
|
24
|
+
'PlusMinus',
|
|
25
|
+
'Shortcut',
|
|
26
|
+
'StyledColumn',
|
|
31
27
|
];
|
|
32
28
|
const MODULES_WITH_SCOPE = [
|
|
33
29
|
'Alert',
|
|
@@ -36,7 +32,6 @@ const MODULES_WITH_SCOPE = [
|
|
|
36
32
|
'Shortcut',
|
|
37
33
|
'StyledColumn',
|
|
38
34
|
];
|
|
39
|
-
/** Column Info summary only — shows the resolved default width when layout has no explicit sizing. */
|
|
40
35
|
const formatColumnInfoSummaryWidth = (columnId, sizing, resolveDefaultWidth) => {
|
|
41
36
|
const explicit = formatColumnInspectorSizing(columnId, sizing, resolveDefaultWidth);
|
|
42
37
|
if (explicit !== 'Default') {
|
|
@@ -193,13 +188,9 @@ const ModuleView = (props) => {
|
|
|
193
188
|
const EditWizard = module?.getViewProperties?.()?.getEditWizard?.();
|
|
194
189
|
const column = adaptable.api.columnApi.getColumnWithColumnId(props.selectedColumnId);
|
|
195
190
|
const allItems = module?.toViewAll?.();
|
|
196
|
-
// Dont show calculated column for non calc cols
|
|
197
191
|
if (module.moduleInfo.ModuleName == 'CalculatedColumn' && !column.isCalculatedColumn) {
|
|
198
192
|
return _jsx(_Fragment, {});
|
|
199
193
|
}
|
|
200
|
-
// if (MODULES_WITH_VIEW_ONLY.includes(props.moduleName) && !allItems?.length) {
|
|
201
|
-
// return <></>;
|
|
202
|
-
// }
|
|
203
194
|
const itemsInScope = allItems.filter((item) => {
|
|
204
195
|
if ('Scope' in item.abObject) {
|
|
205
196
|
return adaptable.api.columnScopeApi.isColumnInScope(column, item.abObject.Scope);
|
|
@@ -215,7 +206,6 @@ const ModuleView = (props) => {
|
|
|
215
206
|
const handleWizardClose = React.useCallback(() => {
|
|
216
207
|
setIsWizardOpen(false);
|
|
217
208
|
}, []);
|
|
218
|
-
// filter out items with scope
|
|
219
209
|
return (_jsxs(Box, { "data-name": module.moduleInfo.ModuleName, className: `${BASE_CLASS_NAME}__module-list twa:mb-4`, children: [_jsxs(Flex, { children: [_jsx("b", { className: `${BASE_CLASS_NAME}__header`, children: module.moduleInfo.FriendlyName }), _jsx(Box, { className: "twa:flex-1" }), _jsx(ButtonNew, { onClick: () => setIsWizardOpen(true), children: "New" })] }), itemsInScope?.length ? _jsx(AdaptableObjectList, { items: itemsInScope, module: module }) : null, isWizardOpen && EditWizard && (_jsx(EditWizard, { popupParams: {
|
|
220
210
|
column,
|
|
221
211
|
action: 'New',
|
|
@@ -11,14 +11,6 @@ import AdaptableInput from '../Components/AdaptableInput';
|
|
|
11
11
|
import FormatHelper from '../../Utilities/Helpers/DisplayFormatHelper';
|
|
12
12
|
import { Box, Flex } from '../../components/Flex';
|
|
13
13
|
import { ACCESS_LEVEL_READ_ONLY } from '../../Utilities/Constants/GeneralConstants';
|
|
14
|
-
// Edit Mode
|
|
15
|
-
// [author] [edit, delete]
|
|
16
|
-
// [text-editor] * this is different
|
|
17
|
-
// [show-all-comments-button]
|
|
18
|
-
// View Mode
|
|
19
|
-
// [author] [edit, delete]
|
|
20
|
-
// [text]
|
|
21
|
-
// [show-all-comments-button]
|
|
22
14
|
export const CommentsEditor = (props) => {
|
|
23
15
|
const { api } = useAdaptable();
|
|
24
16
|
const showCloseButton = api.optionsApi.getCommentOptions()?.showPopupCloseButton ?? true;
|
|
@@ -29,13 +21,6 @@ export const CommentsEditor = (props) => {
|
|
|
29
21
|
const commentThread = useSelector((state) => CommentsRedux.GetCellCommentSelector(state.Comment, cellAddress));
|
|
30
22
|
const isReadOnlyModule = api.entitlementApi.getEntitlementAccessLevelForModule('Comment') === ACCESS_LEVEL_READ_ONLY;
|
|
31
23
|
const [activeEditingComment, setActiveEditingComment] = React.useState(() => {
|
|
32
|
-
/**
|
|
33
|
-
* When opening the popup and there is only one comment, we want to open it in edit mode.
|
|
34
|
-
* This happens usualy when a new comment is added via cell menu.
|
|
35
|
-
*/
|
|
36
|
-
// if (cellComments?.Comments?.length === 1 && cellComments?.Comments[0].Value === '') {
|
|
37
|
-
// return cellComments?.Comments[0].Uuid;
|
|
38
|
-
// }
|
|
39
24
|
return null;
|
|
40
25
|
});
|
|
41
26
|
const [newCommentText, setNewCommentText] = React.useState('');
|
|
@@ -68,7 +53,7 @@ export const CommentsEditor = (props) => {
|
|
|
68
53
|
}
|
|
69
54
|
const isOwnComment = comment?.Author?.UserName
|
|
70
55
|
? comment?.Author?.UserName === userId
|
|
71
|
-
: true;
|
|
56
|
+
: true;
|
|
72
57
|
return (_jsxs(Box, { className: "ab-Comment twa:p-2", children: [_jsxs(Flex, { alignItems: "center", className: "twa:mb-2", children: [_jsxs(Box, { children: [_jsx(Box, { "data-name": "comment-username", className: "twa:text-3 twa:font-bold", children: comment?.Author?.UserName }), comment.Timestamp && (_jsx(Box, { "data-name": "comment-timestamp", className: "twa:text-2", children: formatDate(comment.Timestamp, api.commentApi.internalApi.getCommentsDateFormat()) }))] }), _jsx(Box, { className: "twa:flex-1" }), _jsx(SimpleButton, { variant: "text", icon: "edit", disabled: !isOwnComment || isReadOnlyModule, onClick: () => setActiveEditingComment(comment.Uuid) }), _jsx(SimpleButton, { variant: "text", icon: "delete", disabled: !isOwnComment || isReadOnlyModule, onClick: () => {
|
|
73
58
|
api.commentApi.deleteComment(comment, cellAddress);
|
|
74
59
|
requestAnimationFrame(() => {
|
|
@@ -2,7 +2,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { isAdaptableSystemIcon } from '../../../components/Icon';
|
|
3
3
|
import SimpleButton from '../../../components/SimpleButton';
|
|
4
4
|
import { useAdaptable } from '../../AdaptableContext';
|
|
5
|
-
/** Renders {@link SimpleButton} with Adaptable custom/system icon preparation. */
|
|
6
5
|
export const AdaptableButtonComponent = (props) => {
|
|
7
6
|
let icon = props.icon;
|
|
8
7
|
const adaptable = useAdaptable();
|
|
@@ -2,9 +2,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { ACCESS_LEVEL_FULL, ACCESS_LEVEL_READ_ONLY, } from '../../../Utilities/Constants/GeneralConstants';
|
|
4
4
|
import { AdaptableButtonComponent } from './AdaptableButtonComponent';
|
|
5
|
-
/**
|
|
6
|
-
* Default variant/tone when `buttonStyle` omits them — differs by surface by design.
|
|
7
|
-
*/
|
|
8
5
|
export const ADAPTABLE_BUTTON_SURFACE_DEFAULTS = {
|
|
9
6
|
dashboard: { variant: 'text', tone: 'none' },
|
|
10
7
|
customToolbar: { variant: 'outlined', tone: 'neutral' },
|
|
@@ -8,23 +8,16 @@ const AdaptableDateInput = React.forwardRef(function AdaptableDateInputCmp(props
|
|
|
8
8
|
const dateInputOptions = useAdaptable().adaptableOptions.userInterfaceOptions.dateInputOptions;
|
|
9
9
|
const { value: _, defaultValue: __, onChange, required, disabled, showClearButton, ...inputProps } = props;
|
|
10
10
|
const [value, setValue] = useProperty(props, 'value', undefined, {
|
|
11
|
-
onChange: (dateString) =>
|
|
12
|
-
// wrap date value in ChangeEvent in order to keep the external API unchanged
|
|
13
|
-
props.onChange?.({
|
|
11
|
+
onChange: (dateString) => props.onChange?.({
|
|
14
12
|
target: {
|
|
15
|
-
// ALWAYS trigger onChange with the ISO format
|
|
16
13
|
value: dateString,
|
|
17
14
|
},
|
|
18
15
|
}),
|
|
19
16
|
});
|
|
20
17
|
const dateValue = value ? parseDateValue(value) : null;
|
|
21
18
|
const datepickerProps = {
|
|
22
|
-
// this is OK as long as we do not support range datepicker
|
|
23
19
|
value: dateValue,
|
|
24
|
-
onChange: (dateValue) =>
|
|
25
|
-
// convert to ISO8601 string format
|
|
26
|
-
// see https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#date_strings
|
|
27
|
-
setValue(dateToISO(dateValue) ?? ''),
|
|
20
|
+
onChange: (dateValue) => setValue(dateToISO(dateValue) ?? ''),
|
|
28
21
|
required,
|
|
29
22
|
disabled,
|
|
30
23
|
dateProps: {
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { IconComponent } from '../../../components/Icon';
|
|
3
3
|
import { useCustomIcon } from './useCustomIcon';
|
|
4
|
-
/**
|
|
5
|
-
* This is a connected componnet.
|
|
6
|
-
* It needs to be used only inside adaptable context.
|
|
7
|
-
*/
|
|
8
4
|
export const AdaptableIconComponent = (props) => {
|
|
9
5
|
const icon = useCustomIcon(props.icon);
|
|
10
6
|
return _jsx(IconComponent, { ...props, icon: icon });
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { IconSelector } from '../../../components/IconSelector';
|
|
3
3
|
import { useAdaptable } from '../../AdaptableContext';
|
|
4
|
-
/**
|
|
5
|
-
* This component connects to adaptable to retrieve custom icons
|
|
6
|
-
*/
|
|
7
4
|
export const AdaptableIconSelector = (props) => {
|
|
8
5
|
const adaptable = useAdaptable();
|
|
9
6
|
const customIcons = adaptable.api.userInterfaceApi.getCustomIcons();
|
|
@@ -7,11 +7,9 @@ const AdaptableInput = React.forwardRef((props, ref) => {
|
|
|
7
7
|
const useNativeInputDate = useAdaptable().adaptableOptions.userInterfaceOptions?.dateInputOptions?.useNativeInput;
|
|
8
8
|
const { showClearButton, ...inputProps } = props;
|
|
9
9
|
if (props.type === 'date' && !useNativeInputDate) {
|
|
10
|
-
// use AdapTable date input
|
|
11
10
|
return (_jsx(AdaptableDateInput, { showClearButton: showClearButton, ...inputProps, ref: ref }));
|
|
12
11
|
}
|
|
13
12
|
else {
|
|
14
|
-
// native input
|
|
15
13
|
return _jsx(Input, { ...inputProps, ref: ref });
|
|
16
14
|
}
|
|
17
15
|
});
|
|
@@ -10,13 +10,6 @@ const DENSITY_CLASS = {
|
|
|
10
10
|
Normal: 'ab-Badge--normal',
|
|
11
11
|
Comfortable: 'ab-Badge--comfortable',
|
|
12
12
|
};
|
|
13
|
-
/**
|
|
14
|
-
* Maps a {@link BadgePillStyle} to React/CSS properties for the pill.
|
|
15
|
-
*
|
|
16
|
-
* Intentionally does **not** read corner radius (owned by `Shape`), text
|
|
17
|
-
* alignment (owned by `BadgeStyle.Font.Alignment` at the cell level),
|
|
18
|
-
* `ClassName`, or `FontSize` — none make sense on a pill.
|
|
19
|
-
*/
|
|
20
13
|
const pillStyleToCss = (pill) => {
|
|
21
14
|
const result = {};
|
|
22
15
|
if (!pill)
|
|
@@ -46,7 +39,6 @@ const pillStyleToCss = (pill) => {
|
|
|
46
39
|
}
|
|
47
40
|
if (pill.BorderColor) {
|
|
48
41
|
result.borderColor = pill.BorderColor;
|
|
49
|
-
// Subtler 1px outline; pills are usually only ~20px tall.
|
|
50
42
|
result.borderWidth = 1;
|
|
51
43
|
result.borderStyle = 'solid';
|
|
52
44
|
}
|
|
@@ -3,7 +3,6 @@ import * as React from 'react';
|
|
|
3
3
|
import SimpleButton from '../../../components/SimpleButton';
|
|
4
4
|
export class ButtonNewPage extends React.Component {
|
|
5
5
|
render() {
|
|
6
|
-
return (_jsx(SimpleButton, { "data-name": "new-page", tooltip: "New Page", iconSize: 20, icon: "newpage"
|
|
7
|
-
, variant: "text", ...this.props }));
|
|
6
|
+
return (_jsx(SimpleButton, { "data-name": "new-page", tooltip: "New Page", iconSize: 20, icon: "newpage", variant: "text", ...this.props }));
|
|
8
7
|
}
|
|
9
8
|
}
|
|
@@ -14,7 +14,7 @@ const ensurePortalElement = (className) => {
|
|
|
14
14
|
}
|
|
15
15
|
portalElement = document.createElement('div');
|
|
16
16
|
portalElement.style.position = 'absolute';
|
|
17
|
-
portalElement.style.zIndex = '4';
|
|
17
|
+
portalElement.style.zIndex = '4';
|
|
18
18
|
portalElement.style.top = '0px';
|
|
19
19
|
portalElement.style.left = '0px';
|
|
20
20
|
if (className) {
|
|
@@ -39,7 +39,6 @@ export const CellPopup = React.forwardRef((props, ref) => {
|
|
|
39
39
|
const showOverlayOptions = {
|
|
40
40
|
id: OVERLAY_ID,
|
|
41
41
|
alignPosition: [
|
|
42
|
-
// overlay - target
|
|
43
42
|
['TopLeft', 'TopRight'],
|
|
44
43
|
['TopRight', 'TopLeft'],
|
|
45
44
|
['TopCenter', 'BottomCenter'],
|
|
@@ -9,10 +9,6 @@ export const ColumnFilterLocationProvider = ColumnFilterLocationContext.Provider
|
|
|
9
9
|
export const useColumnFilterLocation = () => {
|
|
10
10
|
return React.useContext(ColumnFilterLocationContext) ?? 'columnMenu';
|
|
11
11
|
};
|
|
12
|
-
/**
|
|
13
|
-
* This wrapper knows about predicates.
|
|
14
|
-
* It transforms predicates in QlPredicates.
|
|
15
|
-
*/
|
|
16
12
|
export const AdaptableColumnFilter = (props) => {
|
|
17
13
|
const { qlPredicate, qlPredicateDefs, columnFilter, handlePredicateChange } = useAdaptableFilterWrapper(props.columnId, 'FilterForm');
|
|
18
14
|
const filterContent = (_jsx(ColumnFilterLocationProvider, { value: props.location, children: _jsx(ColumnFilterComponent, { location: props.location, wrapperProps: props.wrapperProps, columnId: props.columnId, predicate: qlPredicate, predicateDefs: qlPredicateDefs, disabled: columnFilter?.IsSuspended, onPredicateChange: React.useCallback((predicate) => {
|
|
@@ -3,10 +3,6 @@ import * as React from 'react';
|
|
|
3
3
|
import { useAdaptable } from '../../AdaptableContext';
|
|
4
4
|
import { FloatingFilter } from './FloatingFilter';
|
|
5
5
|
import { useAdaptableFilterWrapper } from './useAdaptableFilterWrapper';
|
|
6
|
-
/**
|
|
7
|
-
* This wrapper knows about predicates.
|
|
8
|
-
* It transforms predicates in QlPredicates.
|
|
9
|
-
*/
|
|
10
6
|
export const AdaptableFloatingFilter = (props) => {
|
|
11
7
|
const adaptable = useAdaptable();
|
|
12
8
|
const { qlPredicate, qlPredicateDefs, columnFilter, column, handlePredicateChange, handleOnChange, handleClear, } = useAdaptableFilterWrapper(props.Column.columnId, 'FilterBar');
|
|
@@ -23,46 +23,19 @@ const ColumnFilterPredicateDropdown = (props) => {
|
|
|
23
23
|
const operator = props.predicate?.operator;
|
|
24
24
|
const isAndOr = operator === 'AND' || operator === 'OR';
|
|
25
25
|
return (_jsx(Box, { className: "twa:flex twa:items-center ab-ColumnFilterPredicateDropdown twa:p-0.5", style: {
|
|
26
|
-
//@ts-ignore ignore
|
|
27
26
|
'--ab-color-input-background': 'var(--ab-color-primary)',
|
|
28
|
-
}, children: _jsx(SingleSelect, { "data-name": "filter-predicate-dropdown", extraWidthChars: 8,
|
|
29
|
-
// The trigger lives inside ag-grid's column menu, which closes itself
|
|
30
|
-
// on mousedowns outside its DOM subtree. Since the popup is portaled
|
|
31
|
-
// to `document.body`, mousedowns inside it would otherwise bubble to
|
|
32
|
-
// `document` and unmount the trigger mid-interaction (causing the
|
|
33
|
-
// popup to re-align to (0,0) before disappearing).
|
|
34
|
-
stopMouseDownPropagation: true, showItemTooltip: true, className: predicateDef ? `twa:min-w-[10rem]` : null, onValueChange: (value) => {
|
|
27
|
+
}, children: _jsx(SingleSelect, { "data-name": "filter-predicate-dropdown", extraWidthChars: 8, stopMouseDownPropagation: true, showItemTooltip: true, className: predicateDef ? `twa:min-w-[10rem]` : null, onValueChange: (value) => {
|
|
35
28
|
props.onPredicateChange({
|
|
36
29
|
operator: value,
|
|
37
30
|
args: [],
|
|
38
31
|
});
|
|
39
|
-
}, items: options,
|
|
40
|
-
// For the "Add Condition" picker the current predicate is the top-level
|
|
41
|
-
// AND/OR predicate, which is not a selectable item. Use `null` (a proper
|
|
42
|
-
// controlled empty value) plus a placeholder rather than a fake string
|
|
43
|
-
// value: passing a non-item value makes base-ui's Select reconcile and
|
|
44
|
-
// fire a spurious `onValueChange` when the items change (e.g. switching
|
|
45
|
-
// the filter to another column), which previously crashed.
|
|
46
|
-
placeholder: "Add Condition", value: isAndOr ? null : props.predicate?.operator }) }));
|
|
32
|
+
}, items: options, placeholder: "Add Condition", value: isAndOr ? null : props.predicate?.operator }) }));
|
|
47
33
|
};
|
|
48
34
|
const ColumnFilterEditor = (props) => {
|
|
49
35
|
return (_jsxs(Box, { className: "twa:mb-3 twa:overflow-x-hidden twa:p-0.5", children: [_jsxs(Flex, { className: "twa:mb-2", children: [_jsx(ColumnFilterPredicateDropdown, { columnId: props.columnId, disabled: props.disabled, predicate: props.predicate, predicateDefs: props.predicateDefs, onPredicateChange: props.onPredicateChange }), _jsx(Flex, { alignItems: "center", className: "twa:ml-2", children: _jsx(SimpleButton, { disabled: props.deleteDisabled, onClick: props.onDelete, variant: "text", icon: "delete" }) })] }), _jsx(ColumnFilterInputList, { columnId: props.columnId, disabled: props.disabled, predicate: props.predicate, onPredicateChange: props.onPredicateChange, predicateDefs: props.predicateDefs })] }));
|
|
50
36
|
};
|
|
51
37
|
const AndOrInput = (props) => {
|
|
52
|
-
return (
|
|
53
|
-
// <Select
|
|
54
|
-
// value={props.operator}
|
|
55
|
-
// onChange={props.onChange}
|
|
56
|
-
// options={[
|
|
57
|
-
// { label: 'AND', value: 'AND' },
|
|
58
|
-
// { label: 'OR', value: 'OR' },
|
|
59
|
-
// ]}
|
|
60
|
-
// />
|
|
61
|
-
(_jsxs(
|
|
62
|
-
Flex,
|
|
63
|
-
{ className: "twa:flex-1", children: [_jsx(Radio, { className: "twa:mr-2", onClick: () => props.onChange('AND'), checked: props.operator === 'AND', children: "AND" }), _jsx(Radio, { className: "twa:mr-2", onClick: () => props.onChange('OR'), checked: props.operator === 'OR', children: "OR" })] }
|
|
64
|
-
))
|
|
65
|
-
);
|
|
38
|
+
return (_jsxs(Flex, { className: "twa:flex-1", children: [_jsx(Radio, { className: "twa:mr-2", onClick: () => props.onChange('AND'), checked: props.operator === 'AND', children: "AND" }), _jsx(Radio, { className: "twa:mr-2", onClick: () => props.onChange('OR'), checked: props.operator === 'OR', children: "OR" })] }));
|
|
66
39
|
};
|
|
67
40
|
export const ColumnFilterComponent = (props) => {
|
|
68
41
|
const adaptable = useAdaptable();
|
|
@@ -72,13 +45,9 @@ export const ColumnFilterComponent = (props) => {
|
|
|
72
45
|
React.useEffect(() => {
|
|
73
46
|
if (props.location !== 'columnMenu')
|
|
74
47
|
return;
|
|
75
|
-
// when the location is columnMenu, and this is not displayed
|
|
76
|
-
// inside the ColumnFilterWindow, we want to focus on the first dropdown
|
|
77
48
|
const dropdown = contentWrapperRef.current?.querySelector('[data-name="filter-predicate-dropdown"]');
|
|
78
49
|
dropdown?.focus();
|
|
79
50
|
}, [props.location]);
|
|
80
|
-
// When rendered inside ag-grid's column menu, Tabbing would otherwise escape
|
|
81
|
-
// to the surrounding menu/grid. Trap focus so Tab / Shift+Tab cycle within the filter.
|
|
82
51
|
const handleFocusTrap = React.useCallback((e) => {
|
|
83
52
|
if (props.location !== 'columnMenu') {
|
|
84
53
|
return;
|
|
@@ -91,8 +60,6 @@ export const ColumnFilterComponent = (props) => {
|
|
|
91
60
|
setPredicateNotYetApplied(undefined);
|
|
92
61
|
};
|
|
93
62
|
const onPredicateChange = (predicate) => {
|
|
94
|
-
// even if manuallyApplyColumnFilter is false, when we explicitly clear the filter
|
|
95
|
-
// we want to apply the filter immediately
|
|
96
63
|
if (!manuallyApplyColumnFilter || !predicate) {
|
|
97
64
|
props.onPredicateChange(predicate);
|
|
98
65
|
}
|
|
@@ -108,7 +75,6 @@ export const ColumnFilterComponent = (props) => {
|
|
|
108
75
|
const currentPredicate = currentPredicateRef.current;
|
|
109
76
|
const newPredicate = {
|
|
110
77
|
...currentPredicate,
|
|
111
|
-
// @ts-ignore
|
|
112
78
|
args: [...currentPredicate.args, { operator: predicateDef.operator, args: [] }],
|
|
113
79
|
};
|
|
114
80
|
onPredicateChange(newPredicate);
|
|
@@ -125,15 +91,10 @@ export const ColumnFilterComponent = (props) => {
|
|
|
125
91
|
? props.predicate
|
|
126
92
|
: predicateNotYetApplied ?? props.predicate;
|
|
127
93
|
const currentPredicateRef = React.useRef(currentPredicate);
|
|
128
|
-
//#ref-predicate
|
|
129
94
|
currentPredicateRef.current = currentPredicate;
|
|
130
|
-
// Not sure how to check this but would be nice...
|
|
131
95
|
const isLastPredicateValid = true;
|
|
132
96
|
const filterPredicateDropdown = (_jsx(ColumnFilterPredicateDropdown, { columnId: props.columnId, disabled: props.disabled, predicate: currentPredicate, predicateDefs: props.predicateDefs, onPredicateChange: (predicate) => {
|
|
133
97
|
const predicateDef = props.predicateDefs.find((predicateDef) => predicateDef.operator === predicate.operator);
|
|
134
|
-
// Guard against the select emitting a value that is not a known
|
|
135
|
-
// predicate for the current column (e.g. a stale/reconciled value while
|
|
136
|
-
// switching columns).
|
|
137
98
|
if (!predicateDef) {
|
|
138
99
|
return;
|
|
139
100
|
}
|
|
@@ -169,10 +130,6 @@ export const ColumnFilterComponent = (props) => {
|
|
|
169
130
|
args: newArgs,
|
|
170
131
|
});
|
|
171
132
|
}, columnId: props.columnId, disabled: props.disabled, predicate: predicate, predicateDefs: props.predicateDefs, onPredicateChange: (predicate) => {
|
|
172
|
-
// #ref-predicate - for whatever reason
|
|
173
|
-
// the `currentPredicate` here would be one from an old render
|
|
174
|
-
// if we weren't using a ref. we're not using memo/usecallback here,
|
|
175
|
-
// so I don't understand why this is happening
|
|
176
133
|
const currentPredicate = currentPredicateRef.current;
|
|
177
134
|
const newArgs = [...currentPredicate.args];
|
|
178
135
|
newArgs[index] = predicate;
|
|
@@ -14,12 +14,10 @@ export const ColumnFilterWindow = (props) => {
|
|
|
14
14
|
React.useEffect(() => {
|
|
15
15
|
setColumnId(initialColumnId);
|
|
16
16
|
}, [props.popupProps.value]);
|
|
17
|
-
// when the window is opened, focus on the column selector
|
|
18
17
|
React.useEffect(() => {
|
|
19
18
|
const focusable = columnSelectorWrapperRef.current?.querySelector('[data-name="column-selector"]');
|
|
20
19
|
focusable?.focus();
|
|
21
20
|
}, []);
|
|
22
|
-
// const onChange = props.popupProps.onChange;
|
|
23
21
|
return (_jsxs(Flex, { flexDirection: "column", className: "ab-ColumnFilterWindow twa:flex-1 twa:min-h-0 twa:p-2 twa:h-full", children: [_jsx(Box, { className: "twa:mb-2", ref: columnSelectorWrapperRef, children: _jsx(FormLayout, { children: _jsx(FormRow, { label: "Column", children: _jsx(ColumnSelector, { renderOption: (column) => {
|
|
24
22
|
const columnFilter = api.filterApi.columnFilterApi.getColumnFilterForColumn(column.columnId);
|
|
25
23
|
const label = column.friendlyName ?? column.columnId;
|
|
@@ -12,14 +12,9 @@ import { cn, getFocusableElements } from '../../../lib/utils';
|
|
|
12
12
|
import { Maximize2 } from 'lucide-react';
|
|
13
13
|
export const FloatingFilter = (props) => {
|
|
14
14
|
const adaptable = useAdaptable();
|
|
15
|
-
/**
|
|
16
|
-
* We always have a syntetic predicate with AND or OR, so the logic is easyer.
|
|
17
|
-
* The wrapper is in charge of constructing the correct column filter.
|
|
18
|
-
*/
|
|
19
15
|
const isMultiple = props.predicate?.args?.length > 1;
|
|
20
16
|
const isManualApply = adaptable.api.filterApi.columnFilterApi.internalApi.shouldManuallyApplyColumnFilter(props.columnId);
|
|
21
17
|
const isInlineEditable = !isMultiple && !isManualApply;
|
|
22
|
-
// only used when there is only one filter selected
|
|
23
18
|
let singleFilterPredicateDef = null;
|
|
24
19
|
if (props.predicate.args.length === 1) {
|
|
25
20
|
singleFilterPredicateDef = props.predicateDefs.find((predicateDef) => predicateDef.operator === props.predicate.args[0].operator);
|
|
@@ -50,8 +45,6 @@ export const FloatingFilter = (props) => {
|
|
|
50
45
|
const renderTriggerValue = () => (_jsxs(Flex, { alignItems: "center", className: "twa:min-w-0", children: [_jsx(Box, { className: "twa:flex twa:items-center", children: !isManualApply && singleFilterPredicateDef?.icon ? (singleFilterPredicateDef?.icon) : (_jsx(AdaptableIconComponent, { icon: { name: 'filter' } })) }), showLabel && (_jsx(Box, { className: "ab-FloatingFilter-label twa:ml-2 twa:flex-1 twa:truncate", title: label, children: label }))] }));
|
|
51
46
|
let filterDropdown = null;
|
|
52
47
|
const filterDropdownSelect = (_jsx(SingleSelect, { chevronIcon: null, "data-name": "floating-filter-button", ariaLabel: `Column Filter Operator Dropdown: current operator is ${label}`, size: "small", stopMouseDownPropagation: true, disabled: props.disabled, open: selectOpen, extraWidthChars: 5, onOpenChange: (nextOpen) => {
|
|
53
|
-
// In non-inline mode the select doesn't pick an operator inline; opening it
|
|
54
|
-
// instead opens the full column filter popup, so keep the dropdown closed.
|
|
55
48
|
if (nextOpen && !isInlineEditable) {
|
|
56
49
|
adaptable.api.filterApi.columnFilterApi.internalApi.openColumnFilterPopup(props.columnId);
|
|
57
50
|
return;
|
|
@@ -72,12 +65,6 @@ export const FloatingFilter = (props) => {
|
|
|
72
65
|
const showClearButton = isMultiple ||
|
|
73
66
|
!isPredicateEmpty(props.predicate.args[0], singleFilterPredicateDef);
|
|
74
67
|
return (_jsxs(Flex, { className: "ab-FloatingFilter twa:w-full", onKeyDownCapture: (e) => {
|
|
75
|
-
// AG Grid's header keyboard navigation intercepts Tab and calls preventDefault(),
|
|
76
|
-
// which prevents focus from moving between the controls inside the floating filter
|
|
77
|
-
// (operator select, filter input(s), expand/clear buttons). We handle Tab ourselves
|
|
78
|
-
// in the capture phase (before AG Grid's handlers) and move focus to the next/previous
|
|
79
|
-
// focusable control. At the boundaries we let the event through so AG Grid can move
|
|
80
|
-
// to the adjacent header cell.
|
|
81
68
|
if (e.key !== 'Tab') {
|
|
82
69
|
return;
|
|
83
70
|
}
|
|
@@ -93,24 +80,18 @@ export const FloatingFilter = (props) => {
|
|
|
93
80
|
}
|
|
94
81
|
const nextIndex = currentIndex + (e.shiftKey ? -1 : 1);
|
|
95
82
|
if (nextIndex < 0 || nextIndex >= focusable.length) {
|
|
96
|
-
// boundary reached: let AG Grid navigate between header cells
|
|
97
83
|
return;
|
|
98
84
|
}
|
|
99
85
|
e.preventDefault();
|
|
100
86
|
e.nativeEvent.stopImmediatePropagation();
|
|
101
87
|
focusable[nextIndex]?.focus();
|
|
102
|
-
// Focusing the values combobox's input makes it set isFocused=true, which
|
|
103
|
-
// re-renders and can momentarily recreate the input, dropping focus to <body>.
|
|
104
|
-
// Re-resolve the target after the re-render and restore focus to it.
|
|
105
88
|
requestAnimationFrame(() => {
|
|
106
89
|
if (document.activeElement === document.body || document.activeElement === null) {
|
|
107
90
|
const refreshed = getFocusableElements(wrapper);
|
|
108
91
|
refreshed[Math.min(nextIndex, refreshed.length - 1)]?.focus();
|
|
109
92
|
}
|
|
110
93
|
});
|
|
111
|
-
}, children: [filterDropdown, isInlineEditable && (_jsx(Flex, { className: "twa:flex-1 twa:min-w-0", children: _jsx(FloatingFilterInputList, { onKeyDown: props.onKeydown, columnId: props.columnId, disabled: props.disabled,
|
|
112
|
-
// It works only with a predicate
|
|
113
|
-
predicate: props.predicate.args[0], predicateDefs: props.predicateDefs, onPredicateChange: (predicate) => {
|
|
94
|
+
}, children: [filterDropdown, isInlineEditable && (_jsx(Flex, { className: "twa:flex-1 twa:min-w-0", children: _jsx(FloatingFilterInputList, { onKeyDown: props.onKeydown, columnId: props.columnId, disabled: props.disabled, predicate: props.predicate.args[0], predicateDefs: props.predicateDefs, onPredicateChange: (predicate) => {
|
|
114
95
|
props.onPredicateChange({
|
|
115
96
|
operator: props.predicate.operator,
|
|
116
97
|
args: [predicate],
|
|
@@ -21,12 +21,6 @@ export const ColumnFilterInput = (props) => {
|
|
|
21
21
|
setHasFocus(false);
|
|
22
22
|
}, []);
|
|
23
23
|
React.useEffect(() => {
|
|
24
|
-
// only update if the input is not focused
|
|
25
|
-
// eg: value coming from a sidebar filter
|
|
26
|
-
// should be reflected in the input
|
|
27
|
-
// but if the input is focused, it means the user is typing
|
|
28
|
-
// so we don't want to update the input value from the outside (from state)
|
|
29
|
-
// but we leave liveValue as is in the local component state
|
|
30
24
|
if (!hasFocus) {
|
|
31
25
|
setLiveValue(value);
|
|
32
26
|
}
|
|
@@ -37,11 +31,9 @@ export const ColumnFilterInput = (props) => {
|
|
|
37
31
|
const showDatePicker = filterOptions.showDatePicker;
|
|
38
32
|
const onChange = React.useMemo(() => {
|
|
39
33
|
return debounceOrImmediate((value) => {
|
|
40
|
-
//@ts-ignore
|
|
41
34
|
onChangeProp(value);
|
|
42
35
|
}, debounceTime);
|
|
43
36
|
}, [onChangeProp, debounceTime]);
|
|
44
|
-
// the onClear needs to have the same debounce time as the onChange
|
|
45
37
|
const onClear = React.useMemo(() => {
|
|
46
38
|
return debounceOrImmediate(() => {
|
|
47
39
|
onClearProp();
|
|
@@ -52,9 +44,8 @@ export const ColumnFilterInput = (props) => {
|
|
|
52
44
|
? true
|
|
53
45
|
: value === 'unchecked'
|
|
54
46
|
? false
|
|
55
|
-
:
|
|
47
|
+
:
|
|
56
48
|
null, onChange: (checked) => {
|
|
57
|
-
// sequence: 'checked' -> 'unchecked' -> 'all' -> 'checked'
|
|
58
49
|
const newCheckedValue = value === 'unchecked' && checked === true
|
|
59
50
|
? 'all'
|
|
60
51
|
: checked === true
|
|
@@ -84,7 +75,6 @@ export const ColumnFilterInput = (props) => {
|
|
|
84
75
|
setLiveValue('');
|
|
85
76
|
}
|
|
86
77
|
else {
|
|
87
|
-
// @ts-ignore
|
|
88
78
|
onChange(value);
|
|
89
79
|
setLiveValue(value);
|
|
90
80
|
}
|
|
@@ -96,10 +86,7 @@ export const ColumnFilterInput = (props) => {
|
|
|
96
86
|
padding: 'var(--ab-base-space)',
|
|
97
87
|
border: 'none',
|
|
98
88
|
}
|
|
99
|
-
: {}, "data-name": "floating-filter-input", onFocus: onFocus, onBlur: onBlur, disabled: disabled, type: type === 'number' ? 'text' : type,
|
|
100
|
-
// autoFocus has to be FALSE because if the input receives focus in the init phase,
|
|
101
|
-
// it may scroll the AG Grid header viewport into view and de-synchronize it (relative to the content viewport)
|
|
102
|
-
autoFocus: false, value: liveValue ?? '', onKeyDown: onKeyDown, showClearButton: false, className: 'twa:flex-1', onChange: (e) => {
|
|
89
|
+
: {}, "data-name": "floating-filter-input", onFocus: onFocus, onBlur: onBlur, disabled: disabled, type: type === 'number' ? 'text' : type, autoFocus: false, value: liveValue ?? '', onKeyDown: onKeyDown, showClearButton: false, className: 'twa:flex-1', onChange: (e) => {
|
|
103
90
|
const prevValue = `${liveValue}`;
|
|
104
91
|
const value = e.target.value;
|
|
105
92
|
if (value) {
|
|
@@ -120,7 +107,6 @@ export const ColumnFilterInput = (props) => {
|
|
|
120
107
|
const newValueEndsWithZero = value.endsWith('0');
|
|
121
108
|
const separatorCount = (value.match(/[.,]/g) || []).length;
|
|
122
109
|
if (prevValueHasSeparator && separatorCount > 1) {
|
|
123
|
-
// not a valid number
|
|
124
110
|
return;
|
|
125
111
|
}
|
|
126
112
|
if (newValueEndsWithSeparator) {
|
|
@@ -29,10 +29,7 @@ export const ColumnFilterInputList = (props) => {
|
|
|
29
29
|
operator: props.predicate.operator,
|
|
30
30
|
args: inputs,
|
|
31
31
|
});
|
|
32
|
-
}, value: props.predicate.args,
|
|
33
|
-
// are not known ql operators for now
|
|
34
|
-
// should change when porting, it has knoladge about predicates
|
|
35
|
-
type: props.predicate.operator === 'In' ? 'In' : 'NotIn' }) }));
|
|
32
|
+
}, value: props.predicate.args, type: props.predicate.operator === 'In' ? 'In' : 'NotIn' }) }));
|
|
36
33
|
}
|
|
37
34
|
return (_jsx(_Fragment, { children: (matchingInputs ?? []).map((input, index) => {
|
|
38
35
|
const value = props?.predicate?.args?.[index];
|
|
@@ -26,7 +26,6 @@ export const ColumnFilterMenu = (props) => {
|
|
|
26
26
|
}, []);
|
|
27
27
|
useEffect(() => {
|
|
28
28
|
const onKeyDown = (e) => {
|
|
29
|
-
// Only handle arrow keys and Enter - let other keys (like Tab) pass through
|
|
30
29
|
if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp' && e.key !== 'Enter') {
|
|
31
30
|
return;
|
|
32
31
|
}
|
|
@@ -29,18 +29,13 @@ export const FloatingFilterInputList = (props) => {
|
|
|
29
29
|
operator: props.predicate.operator,
|
|
30
30
|
args: inputs,
|
|
31
31
|
});
|
|
32
|
-
}, value: props.predicate.args,
|
|
33
|
-
// are not known ql operators for now
|
|
34
|
-
// should change when porting, it has knowledge about predicates
|
|
35
|
-
type: props.predicate.operator === 'In' ? 'In' : 'NotIn' }));
|
|
32
|
+
}, value: props.predicate.args, type: props.predicate.operator === 'In' ? 'In' : 'NotIn' }));
|
|
36
33
|
}
|
|
37
34
|
return (_jsx("div", { className: cn('twa:relative twa:w-full twa:flex twa:flex-row twa:[&>*:not(:first-child)]:border-l! twa:[&>*:not(:first-child)]:border-input-border!', {
|
|
38
35
|
'twa:**:[input]:min-h-auto!': 'make all inputs inside not have a height fixed',
|
|
39
|
-
// this is especially for the date picker filter
|
|
40
36
|
'twa:*:[[role=button]]:rounded-input': true,
|
|
41
37
|
'twa:*:[[role=button]]:absolute': 'make date picker absolute filter',
|
|
42
38
|
'twa:*:[[role=button]]:inset-y-0.5 twa:*:[[role=button]]:inset-x-0.5 twa:*:[[role=button]]:h-auto': 'make date picker - and give it some padding, so the focus is not cut off absolute outline filter',
|
|
43
|
-
// and this is for text and number inputs
|
|
44
39
|
'twa:*:[input]:rounded-input': true,
|
|
45
40
|
'twa:*:[input]:absolute': 'make inputs absolute filter',
|
|
46
41
|
'twa:*:[input]:inset-y-0.5 twa:*:[input]:inset-x-0.5 twa:*:[input]:h-auto': 'make inputs - and give it some padding, so the focus is not cut off absolute outline filter',
|