@adaptabletools/adaptable-cjs 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 +0 -6
- package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +1 -73
- package/src/components/ColorPicker/ColorPicker.js +0 -6
- package/src/components/Combobox/VirtualizedList.js +0 -5
- package/src/components/Combobox/index.js +5 -63
- package/src/components/Dashboard/Dashboard.js +1 -4
- package/src/components/Datepicker/index.js +2 -97
- package/src/components/DragAndDropContext/TabList.js +2 -6
- package/src/components/Drawer/index.js +0 -7
- package/src/components/Dropdown/index.js +0 -1
- package/src/components/DropdownButton/index.js +0 -1
- package/src/components/ExpressionEditor/BaseEditorInput.js +1 -16
- package/src/components/ExpressionEditor/EditorButton.js +0 -1
- package/src/components/ExpressionEditor/EditorInput.js +1 -7
- package/src/components/ExpressionEditor/EditorInputWithWhereClause.js +0 -1
- package/src/components/ExpressionEditor/ExpressionPreview.js +4 -14
- package/src/components/ExpressionEditor/NamedQueryContext.js +0 -1
- package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +1 -6
- package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +0 -12
- package/src/components/ExpressionEditor/QueryBuilder/utils.js +0 -4
- package/src/components/ExpressionEditor/index.js +5 -14
- package/src/components/Icon/index.js +0 -2
- package/src/components/Input/NumberInput.js +0 -10
- package/src/components/Modal/Backdrop.js +0 -1
- package/src/components/OverlayTrigger/Overlay.js +0 -1
- package/src/components/OverlayTrigger/index.js +3 -15
- package/src/components/ProgressIndicator/ProgressIndicator.js +3 -16
- package/src/components/ResizeObserver/index.js +0 -7
- package/src/components/SelectableList/index.js +0 -7
- package/src/components/SimpleButton/index.js +2 -16
- package/src/components/Tabs/index.js +0 -3
- package/src/components/Tag/Tag.js +0 -1
- package/src/components/Tag/columnScopeTagHelpers.js +0 -2
- package/src/components/Textarea/index.js +1 -8
- package/src/components/Toggle/Toggle.js +1 -5
- package/src/components/Toggle/ToggleGroup.js +1 -3
- package/src/components/ToggleButton/index.js +1 -3
- package/src/components/Tree/TreeDropdown/index.js +2 -130
- package/src/components/Tree/treeUtils.js +0 -4
- package/src/components/WindowModal/WindowModal.js +1 -14
- package/src/components/WindowModal/useStacking.js +0 -7
- package/src/components/icons/bullet-chart.js +0 -4
- package/src/components/icons/icon-style.js +0 -4
- package/src/components/icons/index.js +26 -36
- package/src/components/icons/range-bar.js +0 -5
- package/src/components/icons/star.js +0 -1
- package/src/components/twUtils.js +3 -12
- package/src/components/ui/calendar.js +1 -9
- package/src/components/ui/combobox.js +0 -4
- package/src/components/utils/captureTabNavigation/getFocusableChildren.js +0 -1
- package/src/components/utils/useDraggable.js +0 -4
- package/src/components/utils/useProperty.js +0 -18
- package/src/devTools/index.js +0 -1
- package/src/env.js +2 -2
- package/src/layout-manager/src/LMEmitter.js +0 -5
- package/src/layout-manager/src/destructurePivotColumnId.js +0 -19
- package/src/layout-manager/src/index.js +2 -182
- package/src/layout-manager/src/isLayoutEqual.js +0 -1
- package/src/layout-manager/src/isPivotColumnTotal.js +0 -2
- package/src/layout-manager/src/normalizeLayoutModel.js +0 -27
- package/src/layout-manager/src/simplifyLayoutModel.js +0 -11
- package/src/layout-manager/src/sortColumnIdsByOrder.js +2 -12
- package/src/lib/utils.js +0 -1
- package/src/migration/AdaptableUpgradeHelper.js +0 -2
- package/src/migration/VersionUpgrade17.js +0 -33
- package/src/migration/VersionUpgrade20.js +1 -21
- package/src/migration/VersionUpgrade21.js +0 -3
- package/src/migration/VersionUpgrade22.js +0 -11
- package/src/migration/VersionUpgrade23.js +0 -73
- package/src/parser/src/evaluator.js +0 -1
- package/src/parser/src/index.js +0 -1
- package/src/parser/src/parser.js +4 -103
- package/src/parser/src/predicate/mapExpressionToQlPredicate.js +0 -5
- package/src/parser/src/predicate/mapQlPredicateToExpression.js +0 -2
- package/src/parser/src/tokenizer.js +0 -2
- package/src/parser/src/utils.js +0 -1
- package/src/renderReactRoot.js +0 -12
- package/src/setupDevTools.js +0 -6
- package/src/twMerge.js +0 -1
- package/src/types.d.ts +1 -1
- package/src/types.js +0 -2
- package/tsconfig.cjs.tsbuildinfo +1 -1
- package/src/Utilities/Services/Interface/IMetamodelService.d.ts +0 -20
- package/src/Utilities/Services/Interface/IMetamodelService.js +0 -2
- package/src/Utilities/Services/MetamodelService.d.ts +0 -17
- package/src/Utilities/Services/MetamodelService.js +0 -167
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.d.ts +0 -6
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +0 -104
- package/src/metamodel/adaptable-metamodel-model.d.ts +0 -26
- package/src/metamodel/adaptable-metamodel-model.js +0 -2
- package/src/metamodel/adaptable.metamodel.d.ts +0 -6244
- package/src/metamodel/adaptable.metamodel.js +0 -1
|
@@ -70,7 +70,6 @@ const OverlayTrigger = React.forwardRef((givenProps, ref) => {
|
|
|
70
70
|
(0, exports.ensurePortalElement)();
|
|
71
71
|
const adaptable = (0, AdaptableContext_1.useAdaptable)();
|
|
72
72
|
let { visible: _, showTriangle, showEvent, hideEvent, render, targetOffset, preventPortalEventPropagation = false, anchor, hideDelay = 0, opacityTransitionDuration, onVisibleChange, alignPosition = [
|
|
73
|
-
// overlay - target
|
|
74
73
|
['TopLeft', 'BottomLeft'],
|
|
75
74
|
['TopRight', 'BottomRight'],
|
|
76
75
|
['TopCenter', 'BottomCenter'],
|
|
@@ -96,14 +95,7 @@ const OverlayTrigger = React.forwardRef((givenProps, ref) => {
|
|
|
96
95
|
const overlayRef = (0, react_1.useRef)(null);
|
|
97
96
|
const [visible, doSetVisible] = (0, useProperty_1.default)(props, 'visible', false);
|
|
98
97
|
const hideTimeoutRef = (0, react_1.useRef)(null);
|
|
99
|
-
const setVisible = React.useCallback(
|
|
100
|
-
// visible state may quickly change from true -> false -> true
|
|
101
|
-
// when moving the mouse cursor from the trigger to the overlay
|
|
102
|
-
// for this case we debounce the visible change for a very small amount of time
|
|
103
|
-
(0, TimingHelper_1.debounce)((visible) => {
|
|
104
|
-
// if (!visible) {
|
|
105
|
-
// return;
|
|
106
|
-
// }
|
|
98
|
+
const setVisible = React.useCallback((0, TimingHelper_1.debounce)((visible) => {
|
|
107
99
|
onVisibleChange?.(visible);
|
|
108
100
|
if (!visible) {
|
|
109
101
|
hideTimeoutRef.current = setTimeout(() => {
|
|
@@ -122,9 +114,6 @@ const OverlayTrigger = React.forwardRef((givenProps, ref) => {
|
|
|
122
114
|
const onShow = React.useCallback((event) => {
|
|
123
115
|
const target = targetRef.current;
|
|
124
116
|
if (event && preventPortalEventPropagation && !(0, contains_1.default)(target, event.target)) {
|
|
125
|
-
// because of how React portals behave - see https://github.com/facebook/react/issues/11387
|
|
126
|
-
// after the portal is rendered, even though an item is in a separate dom parent, if it's in the portal,
|
|
127
|
-
// events from it are propagated to the components in the portal and thus break some stuff
|
|
128
117
|
return;
|
|
129
118
|
}
|
|
130
119
|
(0, batchUpdate_1.default)(() => {
|
|
@@ -209,12 +198,11 @@ const OverlayTrigger = React.forwardRef((givenProps, ref) => {
|
|
|
209
198
|
if (constrainTo) {
|
|
210
199
|
preparedConstrainTo = (0, exports.getConstrainElement)(targetRef.current, constrainTo);
|
|
211
200
|
}
|
|
212
|
-
// show only if visible or if it was visible and now it is invisible
|
|
213
201
|
const alignToRect = (0, utils_1.getRect)(target, targetOffset ?? 0);
|
|
214
202
|
const showOverlayOptions = {
|
|
215
|
-
id: 'overlay-trigger',
|
|
203
|
+
id: 'overlay-trigger',
|
|
216
204
|
alignPosition,
|
|
217
|
-
constrainTo: preparedConstrainTo?.getBoundingClientRect?.() ?? true,
|
|
205
|
+
constrainTo: preparedConstrainTo?.getBoundingClientRect?.() ?? true,
|
|
218
206
|
alignTo: alignToRect,
|
|
219
207
|
};
|
|
220
208
|
showOverlay(() => overlayContent, showOverlayOptions);
|
|
@@ -43,8 +43,6 @@ const ProgressIndicator = () => {
|
|
|
43
43
|
disableAdaptableGrid(adaptable.getAdaptableContainerElement(), active);
|
|
44
44
|
disableAdaptableGrid(adaptable.getAgGridContainerElement(), active);
|
|
45
45
|
updateGridContainerCoordinates(adaptable.getAgGridContainerElement());
|
|
46
|
-
// #raf_progress_indicator
|
|
47
|
-
// without rAF the progress indicator would be rendered instantly, without the 'transition-delay' defined via CSS
|
|
48
46
|
requestAnimationFrame(() => {
|
|
49
47
|
setVisible(active);
|
|
50
48
|
});
|
|
@@ -53,20 +51,9 @@ const ProgressIndicator = () => {
|
|
|
53
51
|
if (render || frameworkComponent) {
|
|
54
52
|
customEl = (0, jsx_runtime_1.jsx)(ExternalRenderer_1.ExternalRenderer, { render: render, frameworkComponent: frameworkComponent });
|
|
55
53
|
}
|
|
56
|
-
// Check if we should replace the default content
|
|
57
54
|
const replaceContent = renderMode === 'dialog' && customEl;
|
|
58
|
-
return ((0, jsx_runtime_1.jsx)(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
style: progressIndicatorCoordinates,
|
|
62
|
-
}, children: replaceContent ? (
|
|
63
|
-
// If renderMode is 'dialog', replace the entire content with custom element
|
|
64
|
-
customEl) : (
|
|
65
|
-
// Otherwise use the default Flex layout
|
|
66
|
-
((0, jsx_runtime_1.jsxs)(
|
|
67
|
-
Flex_1.Flex,
|
|
68
|
-
{ alignItems: "center", flexDirection: "column", className: "ab-ProgressIndicator-body twa:p-3", children: [(0, jsx_runtime_1.jsx)(Loader_1.LoaderSpinner, {}), (0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:mt-3", children: [text && (0, jsx_runtime_1.jsx)(Flex_1.Box, { children: text }), customEl] })] }
|
|
69
|
-
))) })) }
|
|
70
|
-
));
|
|
55
|
+
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: active && ((0, jsx_runtime_1.jsx)(Dialog_1.default, { modal: true, isOpen: true, showCloseButton: false, className: `ab-ProgressIndicator ${visible ? 'ab-ProgressIndicator--visible' : ''}`, modalProps: {
|
|
56
|
+
style: progressIndicatorCoordinates,
|
|
57
|
+
}, children: replaceContent ? (customEl) : ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { alignItems: "center", flexDirection: "column", className: "ab-ProgressIndicator-body twa:p-3", children: [(0, jsx_runtime_1.jsx)(Loader_1.LoaderSpinner, {}), (0, jsx_runtime_1.jsxs)(Flex_1.Box, { className: "twa:mt-3", children: [text && (0, jsx_runtime_1.jsx)(Flex_1.Box, { children: text }), customEl] })] })) })) }));
|
|
71
58
|
};
|
|
72
59
|
exports.ProgressIndicator = ProgressIndicator;
|
|
@@ -17,7 +17,6 @@ const setupResizeObserver = (node, callback) => {
|
|
|
17
17
|
width = entry.borderBoxSize[0].inlineSize;
|
|
18
18
|
}
|
|
19
19
|
else {
|
|
20
|
-
// this is needed for Safari and other browsers that don't have borderBoxSize on the entry object
|
|
21
20
|
const rect = node.getBoundingClientRect();
|
|
22
21
|
height = rect.height;
|
|
23
22
|
width = rect.width;
|
|
@@ -30,12 +29,6 @@ const setupResizeObserver = (node, callback) => {
|
|
|
30
29
|
};
|
|
31
30
|
};
|
|
32
31
|
exports.setupResizeObserver = setupResizeObserver;
|
|
33
|
-
/**
|
|
34
|
-
* A hook that notifies you when a certain DOM element has changed it's size
|
|
35
|
-
*
|
|
36
|
-
* @param ref A React ref to a DOM element
|
|
37
|
-
* @param callback The function to be called when the element is resized.
|
|
38
|
-
*/
|
|
39
32
|
const useResizeObserver = (ref, callback, config = { earlyAttach: false }) => {
|
|
40
33
|
const sizeRef = (0, react_1.useRef)({
|
|
41
34
|
width: 0,
|
|
@@ -25,7 +25,6 @@ const useSelectionEvent = () => {
|
|
|
25
25
|
metaKey = true;
|
|
26
26
|
}
|
|
27
27
|
if (metaKey) {
|
|
28
|
-
// as if shift key is not pressed
|
|
29
28
|
shiftKey = false;
|
|
30
29
|
}
|
|
31
30
|
let itemId = `${getItemId(index)}`;
|
|
@@ -33,18 +32,13 @@ const useSelectionEvent = () => {
|
|
|
33
32
|
if (!shiftKey) {
|
|
34
33
|
clickInfoRef.current.lastClickIndexWithoutShift = index;
|
|
35
34
|
if (!metaKey && !toggleOnSimpleClick) {
|
|
36
|
-
// a simple click, no key modifiers
|
|
37
|
-
// so reset the selection
|
|
38
|
-
// and only add one item, the currently clicked item
|
|
39
35
|
newSelection = { [itemId]: true };
|
|
40
36
|
}
|
|
41
37
|
else {
|
|
42
38
|
const currentRowSelected = selected[itemId];
|
|
43
39
|
newSelection = { ...selected };
|
|
44
40
|
if (currentRowSelected) {
|
|
45
|
-
// unselected the current row
|
|
46
41
|
delete newSelection[itemId];
|
|
47
|
-
// also, when unselecting, the click position should not be remembered, so need to revert it back
|
|
48
42
|
clickInfoRef.current.lastClickIndexWithoutShift = lastClickIndexWithoutShift;
|
|
49
43
|
}
|
|
50
44
|
else {
|
|
@@ -60,7 +54,6 @@ const useSelectionEvent = () => {
|
|
|
60
54
|
newSelection = { ...selected };
|
|
61
55
|
if (lastShiftSelectionRange) {
|
|
62
56
|
let { start, end } = lastShiftSelectionRange;
|
|
63
|
-
// clear previous shift selection
|
|
64
57
|
for (; start <= end; start++) {
|
|
65
58
|
delete newSelection[getItemId(start)];
|
|
66
59
|
}
|
|
@@ -41,10 +41,6 @@ const SimpleButton = React.forwardRef((givenProps, theRef) => {
|
|
|
41
41
|
iconPosition === 'start' ? ((0, jsx_runtime_1.jsxs)(React.Fragment, { children: [icon, children] })) : ((0, jsx_runtime_1.jsxs)(React.Fragment, { children: [children, icon] }));
|
|
42
42
|
}
|
|
43
43
|
if (buttonProps.as == 'div') {
|
|
44
|
-
// we have some cases when we want to nest a SimpleButton inside an html Button
|
|
45
|
-
// so the SimpleButton cannot render a <button> tag
|
|
46
|
-
// so we want it to be a DIV tag
|
|
47
|
-
// but still keep the same keyboard accessibility
|
|
48
44
|
buttonProps.tabIndex = buttonProps.tabIndex === undefined ? 0 : buttonProps.tabIndex;
|
|
49
45
|
buttonProps.role = buttonProps.role || 'button';
|
|
50
46
|
const onKeyDown = buttonProps.onKeyDown;
|
|
@@ -77,15 +73,7 @@ const SimpleButton = React.forwardRef((givenProps, theRef) => {
|
|
|
77
73
|
if (ariaLabel != null && ariaLabel !== '') {
|
|
78
74
|
extraButtonProps['aria-label'] = ariaLabel;
|
|
79
75
|
}
|
|
80
|
-
const btn = ((0, jsx_runtime_1.jsx)(Flex_1.Box, { ...buttonProps, ...extraButtonProps, as: buttonProps.as || 'button', disabled: disabled, className: (0, utils_1.cn)(exports.baseClassName, 'twa:p-1', 'twa:rounded-button', 'twa:inline-flex twa:flex-row twa:flex-none twa:items-center', 'twa:fill-current', 'twa:overflow-hidden twa:relative twa:align-middle',
|
|
81
|
-
// direct children should be above the before pseudo element
|
|
82
|
-
'twa:*:z-1',
|
|
83
|
-
// all svgs inside should be aligned middle
|
|
84
|
-
'twa:[&_svg]:align-middle',
|
|
85
|
-
// 'twa:text-primary-foreground',
|
|
86
|
-
// the text variant has the background applied on the before pseudo element
|
|
87
|
-
// so let's configure the before pseudo element for all buttons here
|
|
88
|
-
'twa:before:content-[""] twa:before:absolute twa:before:inset-0 twa:before:block', 'twa:before:z-0 twa:before:pointer-events-none twa:before:rounded-[inherit]', 'twa:outline-none twa:focus-visible:border-ring twa:focus-visible:ring-3 twa:focus-visible:ring-ring/50', disabled ? `${exports.baseClassName}--disabled` : '', `${exports.baseClassName}--variant-${variant}`, `${exports.baseClassName}--tone-${tone}`, 'twa:transition-opacity twa:duration-200', {
|
|
76
|
+
const btn = ((0, jsx_runtime_1.jsx)(Flex_1.Box, { ...buttonProps, ...extraButtonProps, as: buttonProps.as || 'button', disabled: disabled, className: (0, utils_1.cn)(exports.baseClassName, 'twa:p-1', 'twa:rounded-button', 'twa:inline-flex twa:flex-row twa:flex-none twa:items-center', 'twa:fill-current', 'twa:overflow-hidden twa:relative twa:align-middle', 'twa:*:z-1', 'twa:[&_svg]:align-middle', 'twa:before:content-[""] twa:before:absolute twa:before:inset-0 twa:before:block', 'twa:before:z-0 twa:before:pointer-events-none twa:before:rounded-[inherit]', 'twa:outline-none twa:focus-visible:border-ring twa:focus-visible:ring-3 twa:focus-visible:ring-ring/50', disabled ? `${exports.baseClassName}--disabled` : '', `${exports.baseClassName}--variant-${variant}`, `${exports.baseClassName}--tone-${tone}`, 'twa:transition-opacity twa:duration-200', {
|
|
89
77
|
'twa:text-primary-foreground': tone == 'neutral',
|
|
90
78
|
'twa:text-inherit': tone === 'none',
|
|
91
79
|
'twa:text-success': tone === 'success',
|
|
@@ -108,9 +96,7 @@ const SimpleButton = React.forwardRef((givenProps, theRef) => {
|
|
|
108
96
|
'twa:bg-warn twa:text-warn-foreground': tone == 'warning',
|
|
109
97
|
'twa:bg-info twa:text-info-foreground': tone == 'info',
|
|
110
98
|
}
|
|
111
|
-
: '',
|
|
112
|
-
// opacity transitioning for the background applied on the before pseudo element
|
|
113
|
-
variant === 'outlined' || variant === 'text'
|
|
99
|
+
: '', variant === 'outlined' || variant === 'text'
|
|
114
100
|
? {
|
|
115
101
|
'twa:before:opacity-0 twa:before:transition-opacity twa:before:duration-200': true,
|
|
116
102
|
'twa:hover:before:opacity-15 twa:hover:before:bg-current': !disabled,
|
|
@@ -30,7 +30,6 @@ const Tabs = (props) => {
|
|
|
30
30
|
const tabs = allChildren.filter(isTab).map((tab, index) => {
|
|
31
31
|
values.push(tab.props.value);
|
|
32
32
|
return React.cloneElement(tab, {
|
|
33
|
-
// @ts-ignore ignore
|
|
34
33
|
index,
|
|
35
34
|
keyboardNavigation,
|
|
36
35
|
autoFocus,
|
|
@@ -88,8 +87,6 @@ const Tab = (props) => {
|
|
|
88
87
|
}, [active, autoFocus]);
|
|
89
88
|
const mountedRef = React.useRef(false);
|
|
90
89
|
React.useEffect(() => {
|
|
91
|
-
// don't focus initially,
|
|
92
|
-
// so we don't steal focus, if autoFocus is false
|
|
93
90
|
if (!mountedRef.current) {
|
|
94
91
|
return;
|
|
95
92
|
}
|
|
@@ -10,7 +10,6 @@ const twMerge_1 = require("../../twMerge");
|
|
|
10
10
|
const Flex_1 = require("../Flex");
|
|
11
11
|
const COLUMN_TAG_CLASS = 'ab-Tag--column';
|
|
12
12
|
exports.Tag = React.forwardRef(({ variant = 'default', className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(Flex_1.Flex, { ...props, ref: ref, className: (0, twMerge_1.twMerge)(`ab-Tag twa:text-2 twa:py-2 twa:px-2 twa:inline-flex twa:w-fit twa:rounded-standard`, variant === 'column' ? COLUMN_TAG_CLASS : 'twa:bg-primary', className), style: props.style })));
|
|
13
|
-
/** Tag styled for column names — accent tint and left stripe for quick recognition. */
|
|
14
13
|
exports.ColumnTag = React.forwardRef((props, ref) => (0, jsx_runtime_1.jsx)(exports.Tag, { ...props, ref: ref, variant: "column" }));
|
|
15
14
|
const TagBox = (props) => {
|
|
16
15
|
return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: (0, utils_1.cn)('twa:flex twa:flex-wrap twa:flex-row twa:gap-1', props.className), children: props.children }));
|
|
@@ -2,10 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getScopeViewItemsTagVariant = exports.reportColumnTagsUseColumnVariant = exports.isBracketedScopeTagLabel = void 0;
|
|
4
4
|
const BRACKETED_SCOPE_LABEL = /^\[[^\]]+\]$/;
|
|
5
|
-
/** True when a tag label is a scope placeholder (e.g. `[All Columns]`), not a column name. */
|
|
6
5
|
const isBracketedScopeTagLabel = (value) => BRACKETED_SCOPE_LABEL.test(value.trim());
|
|
7
6
|
exports.isBracketedScopeTagLabel = isBracketedScopeTagLabel;
|
|
8
|
-
/** True when export column tags are actual column friendly names. */
|
|
9
7
|
const reportColumnTagsUseColumnVariant = (report) => report.ReportColumnScope === 'ScopeColumns' && 'ColumnIds' in (report.Scope ?? {});
|
|
10
8
|
exports.reportColumnTagsUseColumnVariant = reportColumnTagsUseColumnVariant;
|
|
11
9
|
const getScopeViewItemsTagVariant = (scope) => 'ColumnIds' in scope && Array.isArray(scope.ColumnIds) ? 'column' : undefined;
|
|
@@ -20,7 +20,7 @@ const Textarea = React.forwardRef((props, ref) => {
|
|
|
20
20
|
}
|
|
21
21
|
const expandToFitContent = () => {
|
|
22
22
|
if (autoResizeOnFocus && initialHeight.current !== null && internalRef.current) {
|
|
23
|
-
internalRef.current.style.height = `0px`;
|
|
23
|
+
internalRef.current.style.height = `0px`;
|
|
24
24
|
const height = internalRef.current.scrollHeight;
|
|
25
25
|
internalRef.current.style.height = `${height}px`;
|
|
26
26
|
}
|
|
@@ -41,16 +41,9 @@ const Textarea = React.forwardRef((props, ref) => {
|
|
|
41
41
|
shrinkToInitialHeight();
|
|
42
42
|
props.onBlur?.(e);
|
|
43
43
|
}, ref: (elRef) => {
|
|
44
|
-
// SAVE INITIAL HEIGHT
|
|
45
|
-
// if (elRef && initialHeight.current === null) {
|
|
46
|
-
// const height = elRef.getBoundingClientRect().height;
|
|
47
|
-
// initialHeight.current = isNaN(height) ? 'auto' : height;
|
|
48
|
-
// }
|
|
49
|
-
// SAVE REF
|
|
50
44
|
if (internalRef) {
|
|
51
45
|
internalRef.current = elRef;
|
|
52
46
|
}
|
|
53
|
-
// CALL EXTERNAL REF
|
|
54
47
|
if (ref) {
|
|
55
48
|
if (typeof ref === 'function') {
|
|
56
49
|
ref(elRef);
|
|
@@ -46,17 +46,13 @@ const Toggle = ({ onPressedChange, pressed, icon, standalone = false, children,
|
|
|
46
46
|
'twa:not-first:after:content-[""] twa:not-first:after:border-l-2 twa:not-first:after:border-accent-foreground twa:not-first:after:h-[10px] twa:not-first:after:absolute twa:not-first:after:-left-px twa:not-first:after:top-1/2 twa:not-first:after:-translate-y-1/2', standalone && [
|
|
47
47
|
'ab-Toggle--standalone',
|
|
48
48
|
'twa:shadow-sm twa:rounded-standard twa:bg-primary twa:text-primary-foreground',
|
|
49
|
-
],
|
|
50
|
-
// backgrounds
|
|
51
|
-
{
|
|
49
|
+
], {
|
|
52
50
|
'twa:text-inherit twa:bg-transparent': !pressed,
|
|
53
51
|
'twa:hover:bg-primarylight twa:hover:text-primary-foreground': !pressed,
|
|
54
52
|
[`${baseClassName}--pressed`]: pressed,
|
|
55
53
|
'twa:bg-accent twa:hover:bg-accent/90 twa:text-accent-foreground': pressed,
|
|
56
54
|
}, !standalone && {
|
|
57
55
|
'twa:before:rounded-standard twa:before:content-[""] twa:before:absolute twa:before:inset-1 twa:before:z-20 twa:before:pointer-events-none': true,
|
|
58
|
-
// let's display a shadow on the before pseudo element
|
|
59
|
-
// when the toggle is active
|
|
60
56
|
'twa:before:shadow-(--ab-focus-light__box-shadow)': isActive && pressed,
|
|
61
57
|
'twa:before:shadow-(--ab-focus__box-shadow)': isActive && !pressed,
|
|
62
58
|
}, standalone &&
|
|
@@ -24,9 +24,7 @@ const ToggleGroup = (props) => {
|
|
|
24
24
|
activeIndex: index,
|
|
25
25
|
}));
|
|
26
26
|
}, []);
|
|
27
|
-
return ((0, jsx_runtime_1.jsx)(exports.ToggleGroupContext.Provider, { value: context, children: (0, jsx_runtime_1.jsx)(Flex_1.Flex, { ref: ref, tabIndex: 0, className: (0, utils_1.cn)('ab-Toggle-Group twa:shadow-sm', 'twa:bg-primary twa:text-primary-foreground', 'twa:rounded-standard twa:overflow-hidden', 'twa:inline-flex twa:w-fit', 'twa:focus:outline-0',
|
|
28
|
-
// make the shadow of child Toggle buttons invisible when the group is not focused
|
|
29
|
-
'twa:not-focus-within:[--ab-focus-light__box-shadow:none]', 'twa:not-focus-within:[--ab-focus__box-shadow:none]'), onMouseDown: (event) => {
|
|
27
|
+
return ((0, jsx_runtime_1.jsx)(exports.ToggleGroupContext.Provider, { value: context, children: (0, jsx_runtime_1.jsx)(Flex_1.Flex, { ref: ref, tabIndex: 0, className: (0, utils_1.cn)('ab-Toggle-Group twa:shadow-sm', 'twa:bg-primary twa:text-primary-foreground', 'twa:rounded-standard twa:overflow-hidden', 'twa:inline-flex twa:w-fit', 'twa:focus:outline-0', 'twa:not-focus-within:[--ab-focus-light__box-shadow:none]', 'twa:not-focus-within:[--ab-focus__box-shadow:none]'), onMouseDown: (event) => {
|
|
30
28
|
const index = context.toggleButtons.findIndex((btn) => (0, contains_1.default)(btn.node, event.target));
|
|
31
29
|
if (index !== -1) {
|
|
32
30
|
setActiveIndex(index);
|
|
@@ -25,9 +25,7 @@ const ToggleButton = ({ checked, onChange, disabled, className, children, style
|
|
|
25
25
|
'twa:justify-start': isChecked,
|
|
26
26
|
'twa:justify-end': !isChecked,
|
|
27
27
|
'twa:opacity-50': disabled,
|
|
28
|
-
},
|
|
29
|
-
// the :before pseudo element
|
|
30
|
-
'twa:before:absolute twa:before:content-[""] twa:before:size-[24px]', 'twa:before:rounded-standard twa:before:bg-white'), children: (0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)(`${baseClassName}__text`, 'twa:font-semibold', 'twa:pr-2', 'twa:text-1', {
|
|
28
|
+
}, 'twa:before:absolute twa:before:content-[""] twa:before:size-[24px]', 'twa:before:rounded-standard twa:before:bg-white'), children: (0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)(`${baseClassName}__text`, 'twa:font-semibold', 'twa:pr-2', 'twa:text-1', {
|
|
31
29
|
'twa:text-(--ab-cmp-toggle-button__color)': !isChecked,
|
|
32
30
|
'twa:text-(--ab-cmp-toggle-button--checked__color)': isChecked,
|
|
33
31
|
'twa:pl-2': isChecked,
|
|
@@ -44,8 +44,6 @@ function flattenOptions(options, primaryKey, labelField, parentPath = [], result
|
|
|
44
44
|
function TreeItemLabel(props) {
|
|
45
45
|
const { node, isExpanded, onToggleExpand, selected, reserveExpandSpace } = props;
|
|
46
46
|
const handleChevronMouseDown = (e) => {
|
|
47
|
-
// Prevent the combobox from stealing focus or treating the chevron click
|
|
48
|
-
// as a selection toggle on the row.
|
|
49
47
|
e.preventDefault();
|
|
50
48
|
e.stopPropagation();
|
|
51
49
|
};
|
|
@@ -54,12 +52,6 @@ function TreeItemLabel(props) {
|
|
|
54
52
|
e.stopPropagation();
|
|
55
53
|
onToggleExpand(node.path);
|
|
56
54
|
};
|
|
57
|
-
// These elements are rendered as `children` of the `ComboboxItem`, which is
|
|
58
|
-
// a flex container. The built-in indicator is suppressed via
|
|
59
|
-
// `renderCheckboxIndicator` on the list, so we render our own tri-state checkbox
|
|
60
|
-
// at `order: 0` (middle). Chevron goes before (`-1`), label after (`1`).
|
|
61
|
-
// Rendering the indicator here lets it reflect `null`/indeterminate state
|
|
62
|
-
// that base-ui's boolean indicator can't.
|
|
63
55
|
const indent = node.depth > 0 ? `calc(${node.depth} * var(--ab-tree-indent-size))` : 0;
|
|
64
56
|
const iconProps = {
|
|
65
57
|
className: 'twa:size-4',
|
|
@@ -70,8 +62,6 @@ function TreeDropdown(props) {
|
|
|
70
62
|
const { isLoading = false } = props;
|
|
71
63
|
const labelField = (props.labelField ?? 'label');
|
|
72
64
|
const primaryKey = (props.primaryKey ?? 'id');
|
|
73
|
-
// Walk the tree once to get every node. This is independent of expand and
|
|
74
|
-
// selection state, so it only recomputes when the options change.
|
|
75
65
|
const allNodes = (0, react_1.useMemo)(() => {
|
|
76
66
|
return flattenOptions(props.items, primaryKey, labelField);
|
|
77
67
|
}, [props.items, primaryKey, labelField]);
|
|
@@ -82,20 +72,12 @@ function TreeDropdown(props) {
|
|
|
82
72
|
}
|
|
83
73
|
return map;
|
|
84
74
|
}, [allNodes]);
|
|
85
|
-
// All paths in the tree, used to configure TreeSelectionState so it can
|
|
86
|
-
// resolve tri-state selection across branches.
|
|
87
75
|
const treePaths = (0, react_1.useMemo)(() => allNodes.map((n) => n.path), [allNodes]);
|
|
88
|
-
// --- Selection state (backed by TreeSelectionStateObject) ----------------
|
|
89
76
|
const [internalSelection, setInternalSelection] = (0, react_1.useState)(() => ({
|
|
90
77
|
defaultSelection: false,
|
|
91
78
|
selectedPaths: normalizePaths(props.value ?? props.defaultValue),
|
|
92
79
|
deselectedPaths: [],
|
|
93
80
|
}));
|
|
94
|
-
// When used in controlled mode, sync external value into internal state
|
|
95
|
-
// whenever the caller swaps the reference. We compare against the last
|
|
96
|
-
// `value` we observed (captured in a state-paired variable, as recommended
|
|
97
|
-
// for derived-from-props state) so we don't fight the caller on every
|
|
98
|
-
// re-render while still ignoring our own onChange-driven updates.
|
|
99
81
|
const [lastPropsValue, setLastPropsValue] = (0, react_1.useState)(props.value);
|
|
100
82
|
if (props.value !== undefined && props.value !== lastPropsValue) {
|
|
101
83
|
setLastPropsValue(props.value);
|
|
@@ -111,7 +93,6 @@ function TreeDropdown(props) {
|
|
|
111
93
|
strictCheckPaths: false,
|
|
112
94
|
});
|
|
113
95
|
}, [internalSelection, treePaths]);
|
|
114
|
-
// --- Expand state (backed by TreeExpandStateObject) ----------------------
|
|
115
96
|
const [internalExpand, setInternalExpand] = (0, react_1.useState)(() => ({
|
|
116
97
|
defaultExpanded: false,
|
|
117
98
|
expandedPaths: [],
|
|
@@ -125,13 +106,7 @@ function TreeDropdown(props) {
|
|
|
125
106
|
next.setNodeExpanded(path, !next.isNodeExpanded(path));
|
|
126
107
|
setInternalExpand(next.getState());
|
|
127
108
|
}, [internalExpand]);
|
|
128
|
-
// Precompute branch nodes once so the Expand All / Collapse All toggle
|
|
129
|
-
// can decide which action to offer without walking the tree on every render.
|
|
130
109
|
const branchNodes = (0, react_1.useMemo)(() => allNodes.filter((n) => n.hasChildren), [allNodes]);
|
|
131
|
-
// The toggle acts as "Collapse all" whenever *anything* is expanded, so a
|
|
132
|
-
// single click after a partial expand (e.g. branches opened by a search)
|
|
133
|
-
// collapses the whole tree. Only when every branch is already collapsed
|
|
134
|
-
// does the toggle switch to "Expand all".
|
|
135
110
|
const anyBranchExpanded = (0, react_1.useMemo)(() => {
|
|
136
111
|
for (const n of branchNodes) {
|
|
137
112
|
if (expandState.isNodeExpanded(n.path)) {
|
|
@@ -150,18 +125,7 @@ function TreeDropdown(props) {
|
|
|
150
125
|
}
|
|
151
126
|
setInternalExpand(next.getState());
|
|
152
127
|
}, [internalExpand, anyBranchExpanded]);
|
|
153
|
-
// --- Search state --------------------------------------------------------
|
|
154
|
-
// We track the search query ourselves so a query change can drive expand
|
|
155
|
-
// state updates: when the user types, every branch on the path to a match
|
|
156
|
-
// (and every branch within a matching subtree) is force-expanded so the
|
|
157
|
-
// matches surface in the items list. The user can then collapse a branch
|
|
158
|
-
// mid-search to hide that subtree again — and the next keystroke
|
|
159
|
-
// re-expands everything matching, restoring the full filtered view.
|
|
160
128
|
const [searchQuery, setSearchQuery] = (0, react_1.useState)('');
|
|
161
|
-
// Set of pathKeys for every node that either matches the query or is an
|
|
162
|
-
// ancestor of a matching node. Used by the filter callback so an ancestor
|
|
163
|
-
// whose own label doesn't match still passes when one of its descendants
|
|
164
|
-
// matches.
|
|
165
129
|
const matchAncestorKeys = (0, react_1.useMemo)(() => {
|
|
166
130
|
if (!searchQuery) {
|
|
167
131
|
return null;
|
|
@@ -177,11 +141,6 @@ function TreeDropdown(props) {
|
|
|
177
141
|
}
|
|
178
142
|
return keys;
|
|
179
143
|
}, [allNodes, searchQuery]);
|
|
180
|
-
// Expand every branch needed to display the current search's matches.
|
|
181
|
-
// Called from the search input's onChange (so it's tied to user typing,
|
|
182
|
-
// not to incidental re-renders) and only mutates expand state when there
|
|
183
|
-
// is something new to expand — leaving any branches the user collapsed
|
|
184
|
-
// mid-search untouched until the next keystroke.
|
|
185
144
|
const expandPathsForQuery = (0, react_1.useCallback)((query) => {
|
|
186
145
|
if (!query) {
|
|
187
146
|
return;
|
|
@@ -205,10 +164,6 @@ function TreeDropdown(props) {
|
|
|
205
164
|
next.setNodeExpanded(node.path, true);
|
|
206
165
|
mutated = true;
|
|
207
166
|
}
|
|
208
|
-
// allNodes is in depth-first order, so descendants of `node` are the
|
|
209
|
-
// contiguous run of nodes with depth > node.depth that immediately
|
|
210
|
-
// follow it. Walk that run and force every nested branch open so the
|
|
211
|
-
// entire matching subtree (not just its first level) is visible.
|
|
212
167
|
for (let j = i + 1; j < allNodes.length; j++) {
|
|
213
168
|
const desc = allNodes[j];
|
|
214
169
|
if (desc.depth <= node.depth) {
|
|
@@ -228,22 +183,6 @@ function TreeDropdown(props) {
|
|
|
228
183
|
setSearchQuery(value);
|
|
229
184
|
expandPathsForQuery(value);
|
|
230
185
|
}, [expandPathsForQuery]);
|
|
231
|
-
// --- Combobox items & value ---------------------------------------------
|
|
232
|
-
// Only nodes whose ancestors are currently expanded are surfaced to the
|
|
233
|
-
// combobox. base-ui's `filter` prop is skipped when the search query is
|
|
234
|
-
// empty (it shows every item verbatim), so collapsing a branch has to be
|
|
235
|
-
// reflected directly in the items array rather than via a filter callback.
|
|
236
|
-
//
|
|
237
|
-
// Search doesn't override the items list directly. Instead, typing in the
|
|
238
|
-
// search input expands every branch on the path to (and inside) any match
|
|
239
|
-
// via `expandPathsForQuery`, which makes the matches part of `items`
|
|
240
|
-
// naturally. Collapsing a branch mid-search hides that subtree again, even
|
|
241
|
-
// if it contains matches — until the next keystroke re-expands everything.
|
|
242
|
-
//
|
|
243
|
-
// If no item anywhere in the tree has children (equivalent to "no top-level
|
|
244
|
-
// item has children", since deeper branches can only exist under a
|
|
245
|
-
// branching root), the tree is flat and leaf rows don't need to reserve
|
|
246
|
-
// space for a chevron placeholder.
|
|
247
186
|
const reserveExpandSpace = branchNodes.length > 0;
|
|
248
187
|
const items = (0, react_1.useMemo)(() => {
|
|
249
188
|
const visible = [];
|
|
@@ -259,9 +198,6 @@ function TreeDropdown(props) {
|
|
|
259
198
|
continue;
|
|
260
199
|
}
|
|
261
200
|
const isExpanded = expandState.isNodeExpanded(node.path);
|
|
262
|
-
// Read tri-state from TreeSelectionState so branches with partial
|
|
263
|
-
// selection render the indeterminate state (base-ui's built-in
|
|
264
|
-
// indicator, suppressed via `renderCheckboxIndicator`, only knows boolean).
|
|
265
201
|
const selected = selectionState.isNodeSelected(node.path);
|
|
266
202
|
visible.push({
|
|
267
203
|
value: node.pathKey,
|
|
@@ -275,17 +211,6 @@ function TreeDropdown(props) {
|
|
|
275
211
|
}
|
|
276
212
|
return visible;
|
|
277
213
|
}, [allNodes, expandState, toggleExpand, selectionState, reserveExpandSpace]);
|
|
278
|
-
// Combobox `value` is the set of path keys for currently-visible nodes that
|
|
279
|
-
// are fully selected (`TreeSelectionState.isNodeSelected(path) === true`).
|
|
280
|
-
//
|
|
281
|
-
// IMPORTANT: this must only contain *visible* items. Base-ui's combobox
|
|
282
|
-
// filters `value` through its `itemByValue` map (built from visible items),
|
|
283
|
-
// silently dropping any value whose item isn't present. If we then diffed
|
|
284
|
-
// `onValueChange`'s result against a value that included hidden items, those
|
|
285
|
-
// hidden items would look "removed" and we'd incorrectly deselect them —
|
|
286
|
-
// e.g. expanding `fruits` → strawberry is selected, collapsing fruits and
|
|
287
|
-
// clicking the `fruits` branch would select the subtree but then carve
|
|
288
|
-
// strawberry back out in the second diff loop.
|
|
289
214
|
const value = (0, react_1.useMemo)(() => {
|
|
290
215
|
const result = [];
|
|
291
216
|
for (const item of items) {
|
|
@@ -296,9 +221,6 @@ function TreeDropdown(props) {
|
|
|
296
221
|
return result;
|
|
297
222
|
}, [items, selectionState]);
|
|
298
223
|
const valueSet = (0, react_1.useMemo)(() => new Set(value), [value]);
|
|
299
|
-
// Translate combobox value changes into TreeSelectionState mutations:
|
|
300
|
-
// clicking a branch selects the whole subtree, clicking a leaf toggles
|
|
301
|
-
// just that leaf, and Select All / Select None take the fast path.
|
|
302
224
|
const { onValueChange: onValueChangeFromProps } = props;
|
|
303
225
|
const onValueChange = (0, react_1.useCallback)((nextValues) => {
|
|
304
226
|
const next = new InfiniteTable_1.TreeSelectionState(internalSelection, {
|
|
@@ -324,19 +246,6 @@ function TreeDropdown(props) {
|
|
|
324
246
|
setInternalSelection(next.getState());
|
|
325
247
|
onValueChangeFromProps?.(next.getSelectedLeafNodePaths());
|
|
326
248
|
}, [internalSelection, treePaths, valueSet, onValueChangeFromProps]);
|
|
327
|
-
// --- Filtering: search query narrows the flattened items ---------------
|
|
328
|
-
// Keep a node visible when:
|
|
329
|
-
// 1. its own label matches the query, or
|
|
330
|
-
// 2. any ancestor's label matches (so a whole matching subtree shows
|
|
331
|
-
// alongside the branch the user typed), or
|
|
332
|
-
// 3. any descendant's label matches (so parents of a deeply-nested match
|
|
333
|
-
// stay in the list to convey the hierarchy, even if they were
|
|
334
|
-
// collapsed when the search started).
|
|
335
|
-
//
|
|
336
|
-
// Rule (3) relies on `matchAncestorKeys`, which contains every ancestor of
|
|
337
|
-
// every match. Combined with `items` returning the full flattened tree when
|
|
338
|
-
// `searchQuery` is non-empty, this lets us surface matches buried inside
|
|
339
|
-
// collapsed branches without implicitly expanding them.
|
|
340
249
|
const filter = (0, react_1.useCallback)((item, query) => {
|
|
341
250
|
const q = query.toLowerCase();
|
|
342
251
|
if (item.textLabel.toLowerCase().includes(q)) {
|
|
@@ -353,7 +262,6 @@ function TreeDropdown(props) {
|
|
|
353
262
|
}
|
|
354
263
|
return false;
|
|
355
264
|
}, [nodeByKey, matchAncestorKeys]);
|
|
356
|
-
// --- Chips: one per selected leaf path (mirrors withSelectedLeafNodesOnly)
|
|
357
265
|
const selectedLeafPaths = (0, react_1.useMemo)(() => {
|
|
358
266
|
return selectionState.getSelectedLeafNodePaths();
|
|
359
267
|
}, [selectionState]);
|
|
@@ -369,10 +277,6 @@ function TreeDropdown(props) {
|
|
|
369
277
|
})
|
|
370
278
|
.join('-');
|
|
371
279
|
}, [nodeByKey, toDisplayValue]);
|
|
372
|
-
// Deselect a single leaf path. Used by chip remove buttons — we can't rely on
|
|
373
|
-
// base-ui's built-in `ChipRemove` because the combobox's `selectedValue`
|
|
374
|
-
// contains both branches and leaves, so index-based removal would typically
|
|
375
|
-
// target a branch and collapse its entire subtree.
|
|
376
280
|
const deselectLeafPath = (0, react_1.useCallback)((path) => {
|
|
377
281
|
const next = new InfiniteTable_1.TreeSelectionState(internalSelection, {
|
|
378
282
|
treePaths,
|
|
@@ -385,8 +289,6 @@ function TreeDropdown(props) {
|
|
|
385
289
|
const showRemoveChip = showClear !== false;
|
|
386
290
|
const { renderSelectedValues } = props;
|
|
387
291
|
const renderInputValues = (0, react_1.useCallback)(() => {
|
|
388
|
-
// Callers can swap out the default chip rendering (see
|
|
389
|
-
// `GridFilterTreeDropdown` which renders a comma-separated summary).
|
|
390
292
|
if (renderSelectedValues) {
|
|
391
293
|
return renderSelectedValues({
|
|
392
294
|
selectedLeafPaths,
|
|
@@ -402,12 +304,6 @@ function TreeDropdown(props) {
|
|
|
402
304
|
return ((0, jsx_runtime_1.jsx)(combobox_1.ComboboxChip, { showRemove: showRemoveChip, onRemove: () => deselectLeafPath(path), className: 'twa:overflow-hidden', "aria-label": labelText, children: labelText }, key));
|
|
403
305
|
}) }));
|
|
404
306
|
}, [renderSelectedValues, selectedLeafPaths, chipLabelForPath, showRemoveChip, deselectLeafPath]);
|
|
405
|
-
// --- Tree-aware Select All ----------------------------------------------
|
|
406
|
-
// The built-in Select All reads `selectedItems.length === allItems.length`.
|
|
407
|
-
// Since `allItems` here only contains nodes visible under the current
|
|
408
|
-
// expand state, its tri-state would change as branches are expanded or
|
|
409
|
-
// collapsed. Compute the state from every leaf in the tree instead so it
|
|
410
|
-
// stays stable regardless of what's visible.
|
|
411
307
|
const allLeafPaths = (0, react_1.useMemo)(() => allNodes.filter((n) => !n.hasChildren).map((n) => n.path), [allNodes]);
|
|
412
308
|
const selectAllChecked = (0, react_1.useMemo)(() => {
|
|
413
309
|
if (allLeafPaths.length === 0) {
|
|
@@ -441,23 +337,18 @@ function TreeDropdown(props) {
|
|
|
441
337
|
setInternalSelection(next.getState());
|
|
442
338
|
onValueChangeFromProps?.(next.getSelectedLeafNodePaths());
|
|
443
339
|
}, [internalSelection, treePaths, onValueChangeFromProps]);
|
|
444
|
-
// --- Search-input trailing slot (Expand All / Collapse All toggle) ------
|
|
445
340
|
const renderSearchInputTrailing = (0, react_1.useCallback)(() => {
|
|
446
341
|
if (branchNodes.length === 0) {
|
|
447
342
|
return null;
|
|
448
343
|
}
|
|
449
344
|
const title = anyBranchExpanded ? 'Collapse all' : 'Expand all';
|
|
450
345
|
return ((0, jsx_runtime_1.jsx)("button", { type: "button", "data-name": "tree-expand-all-toggle", title: title, "aria-label": title, onMouseDown: (e) => {
|
|
451
|
-
// Keep focus on the search input so typing isn't interrupted.
|
|
452
346
|
e.preventDefault();
|
|
453
347
|
}, onClick: (e) => {
|
|
454
348
|
e.preventDefault();
|
|
455
349
|
toggleExpandAll();
|
|
456
|
-
}, className: (0, utils_1.cn)('ab-NewTreeDropdown-expand-all', 'twa:inline-flex twa:shrink-0 twa:items-center twa:justify-center', 'twa:bg-background', 'twa:size-6 twa:rounded-md twa:text-muted-foreground', 'twa:hover:text-foreground twa:hover:bg-ring/50 twa:cursor-pointer'
|
|
457
|
-
// 'twa:-mr-1'
|
|
458
|
-
), children: anyBranchExpanded ? ((0, jsx_runtime_1.jsx)(lucide_react_1.ChevronsDownUpIcon, { className: "twa:size-4" })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.ChevronsUpDownIcon, { className: "twa:size-4" })) }));
|
|
350
|
+
}, className: (0, utils_1.cn)('ab-NewTreeDropdown-expand-all', 'twa:inline-flex twa:shrink-0 twa:items-center twa:justify-center', 'twa:bg-background', 'twa:size-6 twa:rounded-md twa:text-muted-foreground', 'twa:hover:text-foreground twa:hover:bg-ring/50 twa:cursor-pointer'), children: anyBranchExpanded ? ((0, jsx_runtime_1.jsx)(lucide_react_1.ChevronsDownUpIcon, { className: "twa:size-4" })) : ((0, jsx_runtime_1.jsx)(lucide_react_1.ChevronsUpDownIcon, { className: "twa:size-4" })) }));
|
|
459
351
|
}, [branchNodes.length, anyBranchExpanded, toggleExpandAll]);
|
|
460
|
-
// --- Open/close callbacks -----------------------------------------------
|
|
461
352
|
const comboboxProps = {
|
|
462
353
|
isLoading,
|
|
463
354
|
items,
|
|
@@ -465,30 +356,19 @@ function TreeDropdown(props) {
|
|
|
465
356
|
onValueChange,
|
|
466
357
|
searchable: 'menulist',
|
|
467
358
|
virtualized: true,
|
|
468
|
-
// Built-in Select All's default value is `visibleItems.length === totalCount`,
|
|
469
|
-
// which would swing with expand/collapse. Override it with a tree-aware
|
|
470
|
-
// value/handler computed from the full leaf set so it stays stable.
|
|
471
359
|
showSelectAllCheckbox: true,
|
|
472
360
|
selectAllCheckboxValue: selectAllChecked,
|
|
473
361
|
onSelectAllCheckboxChange: onSelectAllChange,
|
|
474
|
-
// Suppress base-ui's boolean checkbox indicator; `TreeItemLabel` renders
|
|
475
|
-
// its own tri-state checkbox so partially-selected branches display the
|
|
476
|
-
// indeterminate state.
|
|
477
362
|
renderCheckboxIndicator: () => null,
|
|
478
363
|
resizable: props.resizable,
|
|
479
364
|
placeholder: props.placeholder,
|
|
480
365
|
showClear: showRemoveChip,
|
|
481
|
-
//@ts-ignore ignore
|
|
482
366
|
'data-name': props['data-name'] ?? 'Select Values',
|
|
483
367
|
renderItemLabel: (defaultLabel) => {
|
|
484
368
|
return defaultLabel;
|
|
485
369
|
},
|
|
486
370
|
filter,
|
|
487
371
|
onInputValueChange: handleSearchInputChange,
|
|
488
|
-
// Reset the search query on close so the next open starts with no active
|
|
489
|
-
// filter narrowing. The expand state itself is intentionally preserved
|
|
490
|
-
// (the user explicitly expanded matches by typing), so re-opening the
|
|
491
|
-
// dropdown keeps the previously-revealed branches open.
|
|
492
372
|
onOpenChange: (open) => {
|
|
493
373
|
if (!open) {
|
|
494
374
|
setSearchQuery('');
|
|
@@ -499,15 +379,7 @@ function TreeDropdown(props) {
|
|
|
499
379
|
renderSearchInputTrailing,
|
|
500
380
|
className: (0, utils_1.cn)('ab-NewTreeDropdown', props.className),
|
|
501
381
|
};
|
|
502
|
-
return (
|
|
503
|
-
// <div
|
|
504
|
-
// className={cn('ab-NewTreeDropdown-wrap', 'twa:w-full')}
|
|
505
|
-
// style={{ ...props.fieldStyle, ...props.style }}
|
|
506
|
-
// onMouseDown={props.onMouseDown}
|
|
507
|
-
// >
|
|
508
|
-
// </div>
|
|
509
|
-
((0, jsx_runtime_1.jsx)(Combobox_1.MultiCombobox, { ...comboboxProps }))
|
|
510
|
-
);
|
|
382
|
+
return ((0, jsx_runtime_1.jsx)(Combobox_1.MultiCombobox, { ...comboboxProps }));
|
|
511
383
|
}
|
|
512
384
|
function GridFilterTreeDropdown(props) {
|
|
513
385
|
const { showSelectedCount = false, placeholder = 'Select...', className, ...rest } = props;
|
|
@@ -8,10 +8,6 @@ function toDisplayValueDefault(value) {
|
|
|
8
8
|
}
|
|
9
9
|
return value.map((v) => (Array.isArray(v) ? v.join('-') : v)).join(', ');
|
|
10
10
|
}
|
|
11
|
-
/**
|
|
12
|
-
* Formats the closed TreeDropdown input using each option's `label` for the stored `value` path
|
|
13
|
-
* segments (same shape as {@link toDisplayValueDefault}, but resolves raw values to labels).
|
|
14
|
-
*/
|
|
15
11
|
function toDisplayValueFromOptionTree(paths, options) {
|
|
16
12
|
const valueToLabel = new Map();
|
|
17
13
|
const walk = (node) => {
|