@adaptabletools/adaptable 23.0.4-canary.0 → 23.0.5-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agGrid.js +0 -31
- package/index.js +0 -31
- package/package.json +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +0 -2
- package/src/AdaptableOptions/AdaptablePlugin.js +1 -9
- package/src/AdaptableOptions/DefaultAdaptableOptions.js +3 -39
- package/src/AdaptableOptions/SettingsPanelOptions.d.ts +44 -16
- package/src/AdaptableState/Aggregations/only.js +0 -11
- package/src/AdaptableState/Aggregations/weightedAverage.js +0 -26
- package/src/AdaptableState/Common/AdaptableColumn.js +0 -1
- package/src/AdaptableState/Common/AdaptableForm.js +0 -49
- package/src/AdaptableState/Common/AdaptableFormatPresets.js +0 -13
- package/src/AdaptableState/Common/AdaptablePredicate.js +3 -125
- package/src/AdaptableState/Common/AggregationColumns.js +0 -10
- package/src/AdaptableState/Common/Enums.js +0 -3
- package/src/AdaptableState/Common/Menu.js +1 -7
- package/src/AdaptableState/Common/MenuItem.js +0 -2
- package/src/AdaptableState/Common/Types.js +2 -5
- package/src/AdaptableState/StatusBarState.js +0 -3
- package/src/AdaptableState/StyledColumns/BadgeStyle.js +0 -1
- package/src/AdaptableState/StyledColumns/Common/BarStyleProperties.js +0 -4
- package/src/AdaptableState/StyledColumns/Common/CellTextOptions.js +0 -5
- package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.js +0 -8
- package/src/AdaptableState/Uuid.js +0 -1
- package/src/Api/Implementation/AdaptableApiImpl.js +0 -4
- package/src/Api/Implementation/AlertApiImpl.js +0 -21
- package/src/Api/Implementation/ApiBase.js +0 -24
- package/src/Api/Implementation/CalculatedColumnApiImpl.js +0 -1
- package/src/Api/Implementation/ChartingApiImpl.js +0 -3
- package/src/Api/Implementation/ColumnApiImpl.js +1 -15
- package/src/Api/Implementation/ColumnFilterApiImpl.js +0 -9
- package/src/Api/Implementation/ColumnScopeApiImpl.js +0 -21
- package/src/Api/Implementation/DashboardApiImpl.js +0 -1
- package/src/Api/Implementation/EntitlementApiImpl.js +0 -1
- package/src/Api/Implementation/ExportApiImpl.js +0 -10
- package/src/Api/Implementation/ExpressionApiImpl.js +0 -1
- package/src/Api/Implementation/FormatColumnApiImpl.js +0 -3
- package/src/Api/Implementation/FreeTextColumnApiImpl.js +0 -2
- package/src/Api/Implementation/GridApiImpl.js +1 -22
- package/src/Api/Implementation/GridFilterApiImpl.js +0 -2
- package/src/Api/Implementation/LayoutApiImpl.js +0 -18
- package/src/Api/Implementation/LayoutHelpers.js +0 -16
- package/src/Api/Implementation/NamedQueryApiImpl.js +0 -1
- package/src/Api/Implementation/PredicateApiImpl.js +0 -5
- package/src/Api/Implementation/RowFormApiImpl.js +0 -2
- package/src/Api/Implementation/StateApiImpl.js +0 -7
- package/src/Api/Implementation/SystemStatusApiImpl.js +0 -2
- package/src/Api/Implementation/TeamSharingApiImpl.js +0 -3
- package/src/Api/Implementation/UserInterfaceApiImpl.js +0 -1
- package/src/Api/Internal/ActionColumnInternalApi.js +0 -1
- package/src/Api/Internal/AdaptableInternalApi.d.ts +0 -2
- package/src/Api/Internal/AdaptableInternalApi.js +1 -39
- package/src/Api/Internal/AlertInternalApi.js +1 -102
- package/src/Api/Internal/CalculatedColumnInternalApi.js +0 -17
- package/src/Api/Internal/ChartingInternalApi.js +0 -1
- package/src/Api/Internal/ColumnFilterInternalApi.js +0 -52
- package/src/Api/Internal/ColumnInternalApi.js +0 -32
- package/src/Api/Internal/CustomSortInternalApi.js +0 -5
- package/src/Api/Internal/DashboardInternalApi.js +0 -23
- package/src/Api/Internal/DataImportInternalApi.js +0 -1
- package/src/Api/Internal/EventInternalApi.js +0 -2
- package/src/Api/Internal/ExportInternalApi.js +1 -16
- package/src/Api/Internal/ExpressionInternalApi.js +0 -23
- package/src/Api/Internal/Fdc3InternalApi.js +0 -9
- package/src/Api/Internal/FlashingCellInternalApi.js +0 -5
- package/src/Api/Internal/FormatColumnInternalApi.js +5 -107
- package/src/Api/Internal/FreeTextColumnInternalApi.js +0 -8
- package/src/Api/Internal/GridFilterInternalApi.js +0 -3
- package/src/Api/Internal/GridInternalApi.js +0 -37
- package/src/Api/Internal/LayoutInternalApi.js +0 -18
- package/src/Api/Internal/NamedQueryInternalApi.js +0 -9
- package/src/Api/Internal/PredicateInternalApi.js +0 -23
- package/src/Api/Internal/RowFormInternalApi.js +0 -18
- package/src/Api/Internal/StateInternalApi.js +0 -25
- package/src/Api/Internal/StyledColumnInternalApi.js +0 -62
- package/src/Api/Internal/TeamSharingInternalApi.js +0 -9
- package/src/Redux/ActionsReducers/AlertRedux.js +0 -24
- package/src/Redux/ActionsReducers/ApplicationRedux.js +0 -9
- package/src/Redux/ActionsReducers/BulkUpdateRedux.js +0 -6
- package/src/Redux/ActionsReducers/CalculatedColumnRedux.js +1 -16
- package/src/Redux/ActionsReducers/ChartingRedux.js +0 -24
- package/src/Redux/ActionsReducers/CommentsRedux.js +0 -24
- package/src/Redux/ActionsReducers/CustomSortRedux.js +0 -24
- package/src/Redux/ActionsReducers/DashboardRedux.js +0 -33
- package/src/Redux/ActionsReducers/ExportRedux.js +0 -36
- package/src/Redux/ActionsReducers/FlashingCellRedux.js +0 -24
- package/src/Redux/ActionsReducers/FormatColumnRedux.js +0 -36
- package/src/Redux/ActionsReducers/FreeTextColumnRedux.js +1 -20
- package/src/Redux/ActionsReducers/InternalRedux.js +0 -42
- package/src/Redux/ActionsReducers/LayoutRedux.js +1 -67
- package/src/Redux/ActionsReducers/NamedQueryRedux.js +0 -15
- package/src/Redux/ActionsReducers/NoteRedux.js +0 -14
- package/src/Redux/ActionsReducers/PluginsRedux.js +0 -3
- package/src/Redux/ActionsReducers/PlusMinusRedux.js +0 -34
- package/src/Redux/ActionsReducers/PopupRedux.js +2 -6
- package/src/Redux/ActionsReducers/QuickSearchRedux.js +0 -15
- package/src/Redux/ActionsReducers/ShortcutRedux.js +0 -24
- package/src/Redux/ActionsReducers/SmartEditRedux.js +0 -6
- package/src/Redux/ActionsReducers/StatusBarRedux.js +0 -6
- package/src/Redux/ActionsReducers/StyledColumnRedux.js +0 -27
- package/src/Redux/ActionsReducers/SystemStatusRedux.js +0 -6
- package/src/Redux/ActionsReducers/TeamSharingRedux.js +0 -1
- package/src/Redux/ActionsReducers/ThemeRedux.js +0 -26
- package/src/Redux/ActionsReducers/ToolPanelRedux.js +0 -22
- package/src/Redux/ActionsReducers/UserInterfaceRedux.js +0 -3
- package/src/Redux/ActionsReducers/utils.js +0 -6
- package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +0 -1
- package/src/Redux/Store/AdaptableReduxMerger.js +0 -25
- package/src/Redux/Store/AdaptableStore.js +5 -301
- package/src/Strategy/AdaptableModuleBase.js +0 -35
- package/src/Strategy/AlertModule.js +0 -9
- package/src/Strategy/CellSummaryModule.js +0 -12
- package/src/Strategy/ChartingModule.js +0 -1
- package/src/Strategy/ColumnFilterModule.js +1 -11
- package/src/Strategy/CommentModule.js +0 -2
- package/src/Strategy/DashboardModule.js +0 -4
- package/src/Strategy/ExportModule.js +0 -1
- package/src/Strategy/FlashingCellModule.js +0 -8
- package/src/Strategy/FormatColumnModule.js +0 -3
- package/src/Strategy/FreeTextColumnModule.js +0 -3
- package/src/Strategy/LayoutModule.js +0 -26
- package/src/Strategy/NoteModule.js +0 -3
- package/src/Strategy/PlusMinusModule.js +0 -3
- package/src/Strategy/SettingsPanelModule.js +0 -1
- package/src/Strategy/ShortcutModule.js +0 -1
- package/src/Strategy/SmartEditModule.js +0 -5
- package/src/Strategy/StatusBarModule.js +0 -7
- package/src/Strategy/StyledColumnModule.js +1 -16
- package/src/Strategy/TeamSharingModule.js +0 -9
- package/src/Strategy/Utilities/Layout/columnsSummaryHelpers.js +0 -5
- package/src/Utilities/Constants/DocumentationLinkConstants.js +0 -1
- package/src/Utilities/Constants/GeneralConstants.js +0 -10
- package/src/Utilities/Constants/ObjectDefaultConstants.js +0 -3
- package/src/Utilities/Constants/ReduxConstants.js +4 -8
- package/src/Utilities/Emitter.js +0 -9
- package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +0 -8
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +0 -15
- package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.js +0 -3
- package/src/Utilities/ExpressionFunctions/deepMap.js +0 -16
- package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +0 -9
- package/src/Utilities/ExpressionFunctions/groupingMap.js +0 -9
- package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +7 -78
- package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +0 -9
- package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +2 -16
- package/src/Utilities/Extensions/ArrayExtensions.js +1 -63
- package/src/Utilities/Extensions/NumberExtensions.js +0 -27
- package/src/Utilities/Extensions/ObjectExtensions.js +0 -36
- package/src/Utilities/Extensions/StringExtensions.js +0 -27
- package/src/Utilities/Helpers/ActionColumnHelper.js +0 -4
- package/src/Utilities/Helpers/AdaptableHelper.js +0 -8
- package/src/Utilities/Helpers/DateHelper.js +0 -10
- package/src/Utilities/Helpers/DisplayFormatHelper.js +0 -8
- package/src/Utilities/Helpers/Helper.js +3 -9
- package/src/Utilities/Helpers/PlusMinusHelper.js +0 -20
- package/src/Utilities/Helpers/QuickSearchHelper.js +0 -5
- package/src/Utilities/Helpers/Scheduling/CronExpression.js +0 -43
- package/src/Utilities/Helpers/Scheduling/ScheduledReportHelper.js +0 -4
- package/src/Utilities/Helpers/SettingsPanelHelper.js +40 -4
- package/src/Utilities/Helpers/StyleHelper.js +0 -56
- package/src/Utilities/Helpers/StyledColumns/BarStylesHelper.js +0 -46
- package/src/Utilities/Helpers/StyledColumns/GradientStyleHelper.js +0 -38
- package/src/Utilities/Helpers/StyledColumns/IconStyleHelper.js +0 -39
- package/src/Utilities/Helpers/StyledColumns/PercentBarStyleHelper.js +0 -1
- package/src/Utilities/Helpers/StyledColumns/SparklineStyleHelper.js +0 -5
- package/src/Utilities/Helpers/StyledColumns/StyledColumnHelper.js +0 -37
- package/src/Utilities/Helpers/TimingHelper.js +0 -13
- package/src/Utilities/ObjectFactory.js +2 -4
- package/src/Utilities/Services/AggregatedScalarLiveValue.js +0 -7
- package/src/Utilities/Services/AlertService.js +0 -1
- package/src/Utilities/Services/AnnotationsService.js +0 -22
- package/src/Utilities/Services/CalculatedColumnExpressionService.js +0 -8
- package/src/Utilities/Services/ChartingService.js +0 -9
- package/src/Utilities/Services/DataService.js +0 -11
- package/src/Utilities/Services/Fdc3Service.js +0 -3
- package/src/Utilities/Services/FlashingCellService.js +0 -6
- package/src/Utilities/Services/ModuleService.js +0 -8
- package/src/Utilities/Services/QueryLanguageService.js +2 -25
- package/src/Utilities/Services/RowFormService.js +0 -1
- package/src/Utilities/Services/RowSummaryService.js +1 -20
- package/src/Utilities/Services/TeamSharingService.js +0 -15
- package/src/Utilities/Services/ThemeService.js +0 -7
- package/src/Utilities/Services/ValidationService.js +0 -21
- package/src/Utilities/createAgStatusPanelComponent.js +0 -3
- package/src/Utilities/getExpressionViewItems.js +0 -2
- package/src/Utilities/getObjectTagsViewItems.js +0 -1
- package/src/Utilities/getScrollbarSize.js +0 -1
- package/src/Utilities/logDeprecation.js +0 -3
- package/src/Utilities/resolveContainerElement.js +0 -21
- package/src/Utilities/runIfNotResolvedIn.js +0 -7
- package/src/Utilities/sortColumnStateForVisibleColumns.js +2 -12
- package/src/Utilities/waitForTimeout.js +0 -1
- package/src/Utilities/wizardSelection.js +0 -2
- package/src/View/AdaptablePopover/index.js +1 -1
- package/src/View/AdaptableView.js +1 -5
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +0 -4
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +0 -23
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/EntitlementsForm.js +0 -2
- package/src/View/AdaptableWizardView/Wizard.js +0 -12
- package/src/View/AdaptableWizardView/helper.js +0 -11
- package/src/View/Alert/ActiveAlertsPanel.js +0 -2
- package/src/View/Alert/AlertStatusSubPanel.js +0 -8
- package/src/View/Alert/Utilities/getAlertType.js +0 -7
- package/src/View/Alert/Utilities/getDefaultAlertDefinition.js +0 -5
- package/src/View/Alert/Utilities/mapAlertDefinition.js +0 -3
- package/src/View/Alert/Wizard/AlertWizard.js +0 -2
- package/src/View/Alert/Wizard/isValidAlertRules.js +0 -1
- package/src/View/BulkUpdate/BulkUpdatePopup.js +0 -1
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -3
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +0 -1
- package/src/View/CalculatedColumn/utils.d.ts +1 -1
- package/src/View/CellSummary/CellSummaryPopup.js +0 -3
- package/src/View/CellSummary/CellSummaryStatusBarSubPanelPopover.js +1 -7
- package/src/View/Charting/EditChartButton.js +1 -4
- package/src/View/Charting/ShowChartButton.js +0 -3
- package/src/View/Charting/useAgChartState.js +0 -5
- package/src/View/Charting/useChartingElements.js +0 -4
- package/src/View/Charting/useExternalChartState.js +0 -6
- package/src/View/ColumnInfo/ColumnInfo.js +7 -17
- package/src/View/Comments/CommentsEditor.js +1 -16
- package/src/View/Components/AdaptableButton/AdaptableButtonComponent.js +0 -1
- package/src/View/Components/AdaptableButton/AdaptableButtonView.js +0 -3
- package/src/View/Components/AdaptableDateInput/index.js +2 -9
- package/src/View/Components/AdaptableIconComponent/index.js +0 -4
- package/src/View/Components/AdaptableIconSelector/index.js +0 -3
- package/src/View/Components/AdaptableInput/index.js +0 -2
- package/src/View/Components/Badge/index.js +0 -8
- package/src/View/Components/Buttons/ButtonNewPage.js +1 -2
- package/src/View/Components/Buttons/EntityListActionButtons.js +0 -1
- package/src/View/Components/CellPopup/index.js +1 -2
- package/src/View/Components/ColumnFilter/AdaptableColumnFilter.js +0 -4
- package/src/View/Components/ColumnFilter/AdaptableFloatingFilter.js +0 -4
- package/src/View/Components/ColumnFilter/ColumnFilter.js +3 -46
- package/src/View/Components/ColumnFilter/ColumnFilterWindow.js +0 -2
- package/src/View/Components/ColumnFilter/FloatingFilter.js +1 -20
- package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +2 -16
- package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +1 -4
- package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +0 -1
- package/src/View/Components/ColumnFilter/components/FloatingFilterInputList.js +1 -6
- package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +0 -20
- package/src/View/Components/ColumnFilter/useAdaptableFilterWrapper.js +0 -5
- package/src/View/Components/ColumnFilter/utils.js +2 -9
- package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicateEditor.js +0 -2
- package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +0 -1
- package/src/View/Components/EntityRulesEditor/index.js +1 -11
- package/src/View/Components/ExternalRenderer.js +1 -3
- package/src/View/Components/FilterForm/ListBoxFilterForm.js +1 -52
- package/src/View/Components/ModuleValueSelector/index.js +0 -2
- package/src/View/Components/Panels/PanelWithImage.js +1 -5
- package/src/View/Components/Panels/PanelWithRow.js +0 -3
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +0 -6
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupBody.js +0 -3
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +0 -6
- package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +1 -2
- package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +0 -1
- package/src/View/Components/Popups/AdaptablePopupAlert.js +0 -3
- package/src/View/Components/Popups/AdaptableToaster.js +0 -2
- package/src/View/Components/Popups/WindowPopups/WindowPopups.js +0 -8
- package/src/View/Components/RangesComponent.js +0 -57
- package/src/View/Components/Selectors/BulkUpdateValueSelector.js +0 -3
- package/src/View/Components/Selectors/PermittedValuesSelector.js +1 -6
- package/src/View/Components/ToolPanel/AdaptableToolPanel.js +1 -18
- package/src/View/Components/ToolPanel/ToolPanelPopupSections.js +0 -4
- package/src/View/Components/ToolPanel/ToolPanelWrapper.js +1 -4
- package/src/View/Components/ValueSelector/index.js +0 -4
- package/src/View/Components/wizardColumnListStyles.js +0 -5
- package/src/View/Dashboard/CustomToolbar.js +1 -25
- package/src/View/Dashboard/PinnedToolbarsSelector.js +0 -1
- package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -22
- package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +0 -1
- package/src/View/DataImport/systemFileHandlers.js +1 -1
- package/src/View/FlashingCell/Wizard/isValidFlashingCellRules.js +0 -1
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +0 -27
- package/src/View/FormatColumn/Wizard/FormatColumnPreview.js +0 -1
- package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +0 -7
- package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +0 -12
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +0 -10
- package/src/View/GridFilter/GridFilterPopup.js +0 -1
- package/src/View/GridFilter/useGridFilterExpressionEditor.js +0 -2
- package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +1 -31
- package/src/View/Layout/LayoutViewPanel.js +0 -2
- package/src/View/Layout/PivotDetailsPopoup.js +0 -2
- package/src/View/Layout/TransposedPopup.js +0 -7
- package/src/View/Layout/Wizard/LayoutWizard.js +1 -6
- package/src/View/Layout/Wizard/sections/AggregationsSection.js +0 -2
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -32
- package/src/View/Layout/Wizard/sections/RowSummarySection.js +0 -3
- package/src/View/Layout/Wizard/sections/columnLayoutHelpers.js +0 -2
- package/src/View/Layout/Wizard/sections/layoutWizardColumns.js +0 -4
- package/src/View/Note/NotePopup.js +0 -1
- package/src/View/QuickSearch/QuickSearchPopup.js +0 -1
- package/src/View/StatusBar/AdaptableStatusBar.js +0 -4
- package/src/View/StatusBar/StatusBarPanel.js +0 -8
- package/src/View/StatusBar/StatusBarPopup.js +0 -2
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +0 -11
- package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +0 -28
- package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +0 -13
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +1 -25
- package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +0 -26
- package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +0 -3
- package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +0 -40
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +0 -55
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +0 -15
- package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +0 -21
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarStyleCellTextPreview.js +0 -10
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.js +0 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.js +0 -4
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +0 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +0 -3
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.js +0 -13
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +0 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.js +0 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.js +0 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardRangesSection.js +0 -13
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +1 -13
- package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +0 -21
- package/src/View/SystemStatus/SystemStatusPopup.js +0 -1
- package/src/View/TeamSharing/SharedEntityObjectView.js +0 -1
- package/src/View/Theme/ThemeSelector.js +0 -1
- package/src/View/UIHelper.js +0 -6
- package/src/View/UIInterfaces.js +0 -1
- package/src/View/Wizard/CollapsibleWizardCard.js +1 -8
- package/src/View/Wizard/OnePageWizards.js +2 -9
- package/src/View/Wizard/SummaryColorTag.js +0 -1
- package/src/View/Wizard/useKeyboardNavigation.js +1 -3
- package/src/agGrid/Adaptable.js +0 -12
- package/src/agGrid/AdaptableAgGrid.d.ts +0 -2
- package/src/agGrid/AdaptableAgGrid.js +3 -482
- package/src/agGrid/AdaptableFilterHandler.js +0 -5
- package/src/agGrid/AdaptableLogger.js +0 -6
- package/src/agGrid/AgGridAdapter.js +3 -90
- package/src/agGrid/AgGridColumnAdapter.js +6 -168
- package/src/agGrid/AgGridExportAdapter.js +4 -106
- package/src/agGrid/AgGridFilterAdapter.js +0 -5
- package/src/agGrid/AgGridFloatingFilterAdapter.js +0 -10
- package/src/agGrid/AgGridMenuAdapter.js +0 -143
- package/src/agGrid/AgGridModulesAdapter.js +0 -2
- package/src/agGrid/AgGridOptionsService.js +0 -2
- package/src/agGrid/AgGridThemeAdapter.js +0 -7
- package/src/agGrid/agGridDataTypeDefinitions.js +0 -8
- package/src/agGrid/cellRenderers/BadgeRenderer.js +0 -10
- package/src/agGrid/cellRenderers/BulletChartRenderer.js +1 -96
- package/src/agGrid/cellRenderers/IconRenderer.js +0 -55
- package/src/agGrid/cellRenderers/PercentBarRenderer.js +0 -51
- package/src/agGrid/cellRenderers/RangeBarRenderer.js +1 -50
- package/src/agGrid/cellRenderers/RatingRenderer.js +0 -40
- package/src/agGrid/editors/AdaptableDateEditor/index.js +0 -18
- package/src/agGrid/editors/AdaptableNumberEditor/InternalAdaptableNumberEditor.js +0 -3
- package/src/agGrid/editors/AdaptableNumberEditor/index.js +0 -11
- package/src/agGrid/editors/AdaptablePercentageEditor/index.js +0 -9
- package/src/agGrid/index.js +1 -9
- package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +1 -73
- package/src/components/ColorPicker/ColorPicker.js +0 -6
- package/src/components/Combobox/VirtualizedList.js +0 -5
- package/src/components/Combobox/index.js +5 -63
- package/src/components/Dashboard/Dashboard.js +1 -4
- package/src/components/Datepicker/index.js +2 -97
- package/src/components/DragAndDropContext/TabList.js +2 -6
- package/src/components/Drawer/index.js +0 -7
- package/src/components/Dropdown/index.js +0 -1
- package/src/components/DropdownButton/index.js +0 -1
- package/src/components/ExpressionEditor/BaseEditorInput.js +1 -16
- package/src/components/ExpressionEditor/EditorButton.js +0 -1
- package/src/components/ExpressionEditor/EditorInput.js +1 -7
- package/src/components/ExpressionEditor/EditorInputWithWhereClause.js +0 -1
- package/src/components/ExpressionEditor/ExpressionPreview.js +4 -14
- package/src/components/ExpressionEditor/NamedQueryContext.js +0 -1
- package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +1 -6
- package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +0 -12
- package/src/components/ExpressionEditor/QueryBuilder/utils.js +0 -4
- package/src/components/ExpressionEditor/index.js +5 -14
- package/src/components/Icon/index.js +0 -2
- package/src/components/Input/NumberInput.js +0 -10
- package/src/components/Modal/Backdrop.js +0 -1
- package/src/components/OverlayTrigger/Overlay.js +0 -1
- package/src/components/OverlayTrigger/index.js +3 -15
- package/src/components/ProgressIndicator/ProgressIndicator.js +3 -16
- package/src/components/ResizeObserver/index.js +0 -7
- package/src/components/SelectableList/index.js +0 -7
- package/src/components/SimpleButton/index.js +2 -16
- package/src/components/Tabs/index.js +0 -3
- package/src/components/Tag/Tag.js +0 -1
- package/src/components/Tag/columnScopeTagHelpers.js +0 -2
- package/src/components/Textarea/index.js +1 -8
- package/src/components/Toggle/Toggle.js +1 -5
- package/src/components/Toggle/ToggleGroup.js +1 -3
- package/src/components/ToggleButton/index.js +1 -3
- package/src/components/Tree/TreeDropdown/index.js +2 -130
- package/src/components/Tree/treeUtils.js +0 -4
- package/src/components/WindowModal/WindowModal.js +1 -14
- package/src/components/WindowModal/useStacking.js +0 -7
- package/src/components/icons/bullet-chart.js +0 -4
- package/src/components/icons/icon-style.js +0 -4
- package/src/components/icons/index.js +26 -36
- package/src/components/icons/range-bar.js +0 -5
- package/src/components/icons/star.js +0 -1
- package/src/components/twUtils.js +3 -12
- package/src/components/ui/calendar.js +1 -9
- package/src/components/ui/combobox.js +0 -4
- package/src/components/utils/captureTabNavigation/getFocusableChildren.js +0 -1
- package/src/components/utils/useDraggable.js +0 -4
- package/src/components/utils/useProperty.js +0 -18
- package/src/devTools/index.js +0 -1
- package/src/env.js +2 -2
- package/src/layout-manager/src/LMEmitter.js +0 -5
- package/src/layout-manager/src/destructurePivotColumnId.js +0 -19
- package/src/layout-manager/src/index.js +2 -182
- package/src/layout-manager/src/isLayoutEqual.js +0 -1
- package/src/layout-manager/src/isPivotColumnTotal.js +0 -2
- package/src/layout-manager/src/normalizeLayoutModel.js +0 -27
- package/src/layout-manager/src/simplifyLayoutModel.js +0 -11
- package/src/layout-manager/src/sortColumnIdsByOrder.js +2 -12
- package/src/lib/utils.js +0 -1
- package/src/migration/AdaptableUpgradeHelper.js +0 -2
- package/src/migration/VersionUpgrade17.js +0 -33
- package/src/migration/VersionUpgrade20.js +1 -21
- package/src/migration/VersionUpgrade21.js +0 -3
- package/src/migration/VersionUpgrade22.js +0 -11
- package/src/migration/VersionUpgrade23.js +0 -73
- package/src/parser/src/evaluator.js +0 -1
- package/src/parser/src/index.js +0 -1
- package/src/parser/src/parser.js +4 -103
- package/src/parser/src/predicate/mapExpressionToQlPredicate.js +0 -5
- package/src/parser/src/predicate/mapQlPredicateToExpression.js +0 -2
- package/src/parser/src/tokenizer.js +0 -2
- package/src/parser/src/utils.js +0 -1
- package/src/renderReactRoot.js +0 -12
- package/src/setupDevTools.js +0 -6
- package/src/twMerge.js +0 -1
- package/src/types.d.ts +1 -1
- package/src/types.js +0 -2
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/src/Utilities/Services/Interface/IMetamodelService.d.ts +0 -20
- package/src/Utilities/Services/Interface/IMetamodelService.js +0 -1
- package/src/Utilities/Services/MetamodelService.d.ts +0 -17
- package/src/Utilities/Services/MetamodelService.js +0 -162
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.d.ts +0 -6
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +0 -99
- package/src/metamodel/adaptable-metamodel-model.d.ts +0 -26
- package/src/metamodel/adaptable-metamodel-model.js +0 -1
- package/src/metamodel/adaptable.metamodel.d.ts +0 -6244
- package/src/metamodel/adaptable.metamodel.js +0 -1
|
@@ -21,16 +21,6 @@ const DEFAULT_ZERO_CENTRED_COLORS = {
|
|
|
21
21
|
PositiveColor: 'rgba(40, 167, 69, 0.55)',
|
|
22
22
|
};
|
|
23
23
|
const hasConfiguredRanges = (ranges) => (ranges?.length ?? 0) > 0;
|
|
24
|
-
/**
|
|
25
|
-
* Decide which range tab should be active given the current props.
|
|
26
|
-
*
|
|
27
|
-
* Precedence:
|
|
28
|
-
* 1. `columnComparison` set → Column Comparison tab
|
|
29
|
-
* 2. Zero Centred set + supported → Zero Centred tab
|
|
30
|
-
* 3. `allowEmptyRanges` + no bands → No Ranges tab
|
|
31
|
-
* 4. `rangeValueType === 'Percentage'` → Percentage Range tab
|
|
32
|
-
* 5. otherwise → Number Range tab (default for new styles)
|
|
33
|
-
*/
|
|
34
24
|
function deriveInitialRangesType(props) {
|
|
35
25
|
if (props.columnComparison) {
|
|
36
26
|
return 'ColumnComparison';
|
|
@@ -43,14 +33,6 @@ function deriveInitialRangesType(props) {
|
|
|
43
33
|
}
|
|
44
34
|
return props.rangeValueType === 'Percentage' ? 'PercentageRange' : 'NumberRange';
|
|
45
35
|
}
|
|
46
|
-
/**
|
|
47
|
-
* A single Column Comparison bound (Min or Max). The user picks whether the
|
|
48
|
-
* bound is a fixed `Value` (a number applied to every row) or a `Column`
|
|
49
|
-
* (read from another column and evaluated per row). The underlying
|
|
50
|
-
* `ColumnComparison.MinValue`/`MaxValue` stays a `number | string` — number =>
|
|
51
|
-
* fixed value, non-numeric string => columnId — so the type is derived from the
|
|
52
|
-
* stored value via `isNaN`, mirroring how the runtime resolver discriminates it.
|
|
53
|
-
*/
|
|
54
36
|
const ColumnComparisonBoundInput = ({ value, disabled, onChange }) => {
|
|
55
37
|
const [type, setType] = React.useState(value != null && value !== '' && isNaN(Number(value)) ? 'column' : 'value');
|
|
56
38
|
const typeOptions = [
|
|
@@ -64,22 +46,12 @@ const ColumnComparisonBoundInput = ({ value, disabled, onChange }) => {
|
|
|
64
46
|
},
|
|
65
47
|
];
|
|
66
48
|
const editor = type === 'value' ? (_jsx(NumberInput, { className: "twa:w-full", disabled: disabled, type: "number", value: value != null && !isNaN(Number(value)) ? Number(value) : '', onChange: (v) => onChange(v) })) : (_jsx(ColumnSelector, { disabled: disabled, type: "number", value: value != null && isNaN(Number(value)) ? String(value) : undefined, onChange: (columnId) => onChange(columnId || undefined) }));
|
|
67
|
-
// The select trigger, the `NumberInput` (`.ab-Input`) and the `ColumnSelector`
|
|
68
|
-
// (a Combobox that does NOT forward `className`, rendering its border on a
|
|
69
|
-
// `[data-slot="input-group"]` wrapper) all hard-code `rounded-input`, so the
|
|
70
|
-
// InputGroup CSS-variable joining has no effect. We flatten the touching
|
|
71
|
-
// corners directly (important, to beat `rounded-input`) and overlap the shared
|
|
72
|
-
// border via `-ml-px` so the two controls read as a single block. The editor
|
|
73
|
-
// side targets both inner border elements through descendant arbitrary
|
|
74
|
-
// variants and forces them to fill the flex item.
|
|
75
49
|
const editorWrapperClassName = [
|
|
76
50
|
'twa:flex-1 twa:basis-0 twa:min-w-0 twa:-ml-px',
|
|
77
51
|
'twa:[&_.ab-Input]:w-full twa:[&_.ab-Input]:rounded-l-none!',
|
|
78
52
|
'twa:[&_[data-slot=input-group]]:w-full! twa:[&_[data-slot=input-group]]:rounded-l-none!',
|
|
79
53
|
].join(' ');
|
|
80
54
|
return (_jsxs(InputGroup, { Component: Flex, className: "twa:items-stretch twa:max-w-[20rem]", children: [_jsx(SingleSelect, { className: "twa:w-[120px] twa:max-w-none twa:shrink-0 twa:box-border twa:rounded-r-none!", disabled: disabled, value: type, items: typeOptions, onValueChange: (next) => {
|
|
81
|
-
// Switching type clears the stale bound so a fixed number can never
|
|
82
|
-
// be misread as a columnId (or vice versa).
|
|
83
55
|
onChange(undefined);
|
|
84
56
|
setType(next);
|
|
85
57
|
} }), _jsx(Box, { className: editorWrapperClassName, children: editor })] }));
|
|
@@ -93,14 +65,8 @@ export class RangesComponent extends React.Component {
|
|
|
93
65
|
let comparisonColor = this.props.columnComparison != null && this.props.columnComparison.Color != null
|
|
94
66
|
? this.props.columnComparison.Color
|
|
95
67
|
: undefined;
|
|
96
|
-
// Number / Percentage is now expressed at the tab level (Number Range tab
|
|
97
|
-
// vs Percentage Range tab) instead of an inline radio. The inner content
|
|
98
|
-
// is shared between the two range tabs and parameterised on this flag.
|
|
99
68
|
const isRangeValueTypeNumber = this.state.rangesType === 'NumberRange';
|
|
100
69
|
const renderNoneContent = () => (_jsx(Box, { className: "twa:text-2 twa:opacity-70 twa:py-2 twa:max-w-[520px]", children: "No coloured bands configured" }));
|
|
101
|
-
// Columns: Min, Max, Colour, [Reverse Gradient], Delete. Using one shared
|
|
102
|
-
// grid (rows are `display: contents`) keeps every band's cells aligned and
|
|
103
|
-
// spacing uniform via grid gaps, even with a single row.
|
|
104
70
|
const rangeGridTemplateColumns = [
|
|
105
71
|
'max-content',
|
|
106
72
|
'max-content',
|
|
@@ -152,20 +118,14 @@ export class RangesComponent extends React.Component {
|
|
|
152
118
|
const isComparison = !!this.props.columnComparison;
|
|
153
119
|
const wasZc = !!prevProps.zeroCentred;
|
|
154
120
|
const isZc = !!this.props.zeroCentred;
|
|
155
|
-
// External mutations to columnComparison drive the tab.
|
|
156
121
|
if (wasComparison !== isComparison) {
|
|
157
122
|
this.setState({ rangesType: deriveInitialRangesType(this.props) });
|
|
158
123
|
return;
|
|
159
124
|
}
|
|
160
|
-
// External mutations to zeroCentred drive the tab (when not in CC mode).
|
|
161
125
|
if (!isComparison && wasZc !== isZc) {
|
|
162
126
|
this.setState({ rangesType: deriveInitialRangesType(this.props) });
|
|
163
127
|
return;
|
|
164
128
|
}
|
|
165
|
-
// External flips of RangeValueType while the user is sitting on a range
|
|
166
|
-
// tab — keep the active tab in sync. We deliberately do NOT react when the
|
|
167
|
-
// user is on Zero Centred / Column Comparison tabs (parent code can still
|
|
168
|
-
// set RangeValueType: 'Number' as part of those flows).
|
|
169
129
|
if ((this.state.rangesType === 'NumberRange' || this.state.rangesType === 'PercentageRange') &&
|
|
170
130
|
prevProps.rangeValueType !== this.props.rangeValueType) {
|
|
171
131
|
this.setState({
|
|
@@ -210,9 +170,6 @@ export class RangesComponent extends React.Component {
|
|
|
210
170
|
this.props.onApplyZeroCentred?.(this.props.zeroCentred ?? DEFAULT_ZERO_CENTRED_COLORS);
|
|
211
171
|
return;
|
|
212
172
|
}
|
|
213
|
-
// Switching to a range tab — let the parent reseed CellRanges + the right
|
|
214
|
-
// RangeValueType (and clear ColumnComparison / ZeroCentred). Tab switches
|
|
215
|
-
// wipe any previously configured ranges by design.
|
|
216
173
|
this.props.onRangeValueTypeChange(value === 'PercentageRange' ? 'Percentage' : 'Number');
|
|
217
174
|
}
|
|
218
175
|
changeRangeMin(index, value) {
|
|
@@ -252,7 +209,6 @@ export class RangesComponent extends React.Component {
|
|
|
252
209
|
removeRange(index) {
|
|
253
210
|
let ranges = [...this.props.ranges];
|
|
254
211
|
ranges.splice(index, 1);
|
|
255
|
-
// Max 100 is always disabled, this prevents from having a Max range lower than 100
|
|
256
212
|
if (this.props.rangeValueType === 'Percentage' && ranges.length === 1) {
|
|
257
213
|
ranges[0] = {
|
|
258
214
|
...ranges[0],
|
|
@@ -288,13 +244,6 @@ export class RangesComponent extends React.Component {
|
|
|
288
244
|
this.props.updateRanges(newRanges);
|
|
289
245
|
}
|
|
290
246
|
addRange() {
|
|
291
|
-
// Most callers seed `ranges` with at least one entry, but Range Bar
|
|
292
|
-
// legitimately leaves `CellRanges` undefined (bands are optional). Handle
|
|
293
|
-
// both cases so the "Add Range" button always works.
|
|
294
|
-
//
|
|
295
|
-
// When starting from empty we seed TWO bands split at the midpoint — a
|
|
296
|
-
// single full-width band would just look like a back colour and wouldn't
|
|
297
|
-
// communicate the "qualitative scale" idea bands are intended for.
|
|
298
247
|
const existingRanges = this.props.ranges ?? [];
|
|
299
248
|
if (existingRanges.length === 0) {
|
|
300
249
|
const isPercentage = this.props.rangeValueType === 'Percentage';
|
|
@@ -326,8 +275,6 @@ export class RangesComponent extends React.Component {
|
|
|
326
275
|
this.props.updateRanges(seedRanges);
|
|
327
276
|
return;
|
|
328
277
|
}
|
|
329
|
-
// Splitting a single full-width band at the midpoint is easier to reason
|
|
330
|
-
// about than anchoring the break at the column maximum (e.g. tradeId 1–200 → 100).
|
|
331
278
|
if (existingRanges.length === 1) {
|
|
332
279
|
const splitAtMidpoint = this.splitFullSpanRangeAtMidpoint(existingRanges[0]);
|
|
333
280
|
if (splitAtMidpoint) {
|
|
@@ -356,10 +303,6 @@ export class RangesComponent extends React.Component {
|
|
|
356
303
|
const newRanges = [...existingRanges.slice(0, -1), previousRange, newRange];
|
|
357
304
|
this.props.updateRanges(newRanges);
|
|
358
305
|
}
|
|
359
|
-
/**
|
|
360
|
-
* When there is exactly one band spanning the full scale (Col-Min→Col-Max or
|
|
361
|
-
* 0→100), split at the midpoint instead of at the column maximum.
|
|
362
|
-
*/
|
|
363
306
|
splitFullSpanRangeAtMidpoint(onlyRange) {
|
|
364
307
|
const isPercentage = this.props.rangeValueType === 'Percentage';
|
|
365
308
|
if (isPercentage) {
|
|
@@ -16,9 +16,6 @@ export const BulkUpdateValueSelector = (props) => {
|
|
|
16
16
|
const columnDataType = props.selectedColumn?.dataType;
|
|
17
17
|
const isDateType = props.selectedColumn && columnDataType === 'date';
|
|
18
18
|
const columnId = props.selectedColumn?.columnId;
|
|
19
|
-
// TODO = this seems to be called whenever we edit a cell
|
|
20
|
-
// which is then triggering a get all values
|
|
21
|
-
// not sure that we need to
|
|
22
19
|
const permittedValueSelector = (_jsx(Box, { className: 'twa:flex-1', children: _jsx(PermittedValuesSelector, { allowNewValues: true, searchable: 'inline', disabled: props.disabled || !props.selectedColumn, value: props.selectedColumnValue === '' ? null : props.selectedColumnValue, columnId: columnId, placeholder: 'Select value', loadValues: useCallback(({ currentSearchValue }) => {
|
|
23
20
|
if (!columnId || !props.selectedGridCells.length) {
|
|
24
21
|
return Promise.resolve([]);
|
|
@@ -37,9 +37,7 @@ export const PermittedValuesSelector = function (props) {
|
|
|
37
37
|
return currentSearchValue;
|
|
38
38
|
},
|
|
39
39
|
});
|
|
40
|
-
const distinctColumnValues = await runIfNotResolvedIn(
|
|
41
|
-
// we are here ALWAYS getting Filter values but sometimes we want to get other things!!!
|
|
42
|
-
p, () => {
|
|
40
|
+
const distinctColumnValues = await runIfNotResolvedIn(p, () => {
|
|
43
41
|
setIsLoading(true);
|
|
44
42
|
});
|
|
45
43
|
setSearchValueWasUsedWhenFiltering(searchValueUsedInFilterValue);
|
|
@@ -50,7 +48,6 @@ export const PermittedValuesSelector = function (props) {
|
|
|
50
48
|
const isCreatable = (props.allowNewValues && !dataType) || ['text', 'number'].includes(dataType);
|
|
51
49
|
const handleSingleValueChange = (value) => {
|
|
52
50
|
if (isCreatable) {
|
|
53
|
-
// try to convert to correct type, when there is not type, e.g. field
|
|
54
51
|
if (!dataType && typeof value === 'string' && !isNaN(parseFloat(value))) {
|
|
55
52
|
props.onChange(parseFloat(value));
|
|
56
53
|
}
|
|
@@ -82,7 +79,6 @@ export const PermittedValuesSelector = function (props) {
|
|
|
82
79
|
}
|
|
83
80
|
};
|
|
84
81
|
const handleOnChange = (value) => {
|
|
85
|
-
// convert numbers
|
|
86
82
|
if (props.isMulti) {
|
|
87
83
|
handleMultiValueChange(value);
|
|
88
84
|
}
|
|
@@ -120,7 +116,6 @@ export const PermittedValuesSelector = function (props) {
|
|
|
120
116
|
virtualized: true,
|
|
121
117
|
resizable: true,
|
|
122
118
|
showClear: true,
|
|
123
|
-
// showClear: false,
|
|
124
119
|
onFocus: props.onFocus,
|
|
125
120
|
onBlur: props.onBlur,
|
|
126
121
|
};
|
|
@@ -25,12 +25,10 @@ const AdaptableToolPanelComponent = (props) => {
|
|
|
25
25
|
const toolPanelOptions = adaptableOptions.toolPanelOptions;
|
|
26
26
|
const settingsPanelOptions = adaptableOptions.settingsPanelOptions;
|
|
27
27
|
if (props.api.entitlementApi.isModuleHiddenEntitlement('ToolPanel')) {
|
|
28
|
-
// do NOT show any toolPanel content if the required entitlements are missing
|
|
29
28
|
return _jsx(HelpBlock, { className: "twa:my-2 twa:p-2 twa:text-3", children: "Not enough rights" });
|
|
30
29
|
}
|
|
31
30
|
const availableModuleItems = props.MainMenuItems.filter((menuItem) => menuItem.isVisible);
|
|
32
31
|
const availableModules = availableModuleItems.map((menuItem) => menuItem.category);
|
|
33
|
-
// 'Dashboard' is a special case because it's not available in the dashboard menu items, s we have to add it manually
|
|
34
32
|
if (!props.api.entitlementApi.isModuleHiddenEntitlement('Dashboard')) {
|
|
35
33
|
availableModules.push('Dashboard');
|
|
36
34
|
}
|
|
@@ -58,15 +56,12 @@ const AdaptableToolPanelComponent = (props) => {
|
|
|
58
56
|
const visibleToolPanels = [];
|
|
59
57
|
const visibleToolPanelControls = (props.ToolPanels ?? []).map((toolPanelDefinition) => {
|
|
60
58
|
const visibilityMode = toolPanelDefinition.VisibilityMode ?? 'collapsed';
|
|
61
|
-
// 1. check if it is a custom toolPanel
|
|
62
59
|
const customToolPanel = props.api.toolPanelApi.getCustomToolPanelByName(toolPanelDefinition.Name);
|
|
63
60
|
if (customToolPanel) {
|
|
64
61
|
visibleToolPanels.push(customToolPanel.name);
|
|
65
62
|
return (_jsx(ToolPanelWrapper, { customToolPanel: customToolPanel, visibilityMode: visibilityMode, onVisibilityModeChange: (state) => onStateChange(customToolPanel.name, state) }, customToolPanel.name));
|
|
66
63
|
}
|
|
67
|
-
// 2. check if it's an available module toolPanel
|
|
68
64
|
if (availableModuleToolPanels.some((module) => module === toolPanelDefinition.Name)) {
|
|
69
|
-
// assertion is safe as if just checked it in the if clause
|
|
70
65
|
const moduleToolPanel = toolPanelDefinition.Name;
|
|
71
66
|
visibleToolPanels.push(moduleToolPanel);
|
|
72
67
|
return (_jsx(ToolPanelWrapper, { adaptableToolPanel: moduleToolPanel, visibilityMode: visibilityMode, onVisibilityModeChange: (state) => onStateChange(moduleToolPanel, state) }, moduleToolPanel));
|
|
@@ -95,17 +90,14 @@ const AdaptableToolPanelComponent = (props) => {
|
|
|
95
90
|
label: (_jsx(CheckBox, { className: "ab-dd-checkbox twa:my-0", value: toolPanel, checked: isVisible, onMouseDown: preventDefault, children: toolPanel }, toolPanel)),
|
|
96
91
|
};
|
|
97
92
|
};
|
|
98
|
-
// 1. process custom tool panels
|
|
99
93
|
props.api.toolPanelApi.getCustomToolPanels().forEach((customToolPanel) => {
|
|
100
94
|
const customToolPanelName = customToolPanel.name;
|
|
101
95
|
toolpanelItems.push(buildDropdownButtonItem(customToolPanelName, customToolPanelName, isItemVisible(customToolPanelName)));
|
|
102
96
|
});
|
|
103
|
-
// 2. process module tool panels
|
|
104
97
|
availableModuleToolPanels.forEach((toolPanel) => {
|
|
105
98
|
let moduleName = moduleService.getModuleInfoByModule(toolPanel).FriendlyName;
|
|
106
99
|
toolpanelItems.push(buildDropdownButtonItem(toolPanel, moduleName, isItemVisible(toolPanel)));
|
|
107
100
|
});
|
|
108
|
-
// 3. sort the dropdown items alphabetically
|
|
109
101
|
toolpanelItems.sort((first, second) => {
|
|
110
102
|
if (first.label < second.label) {
|
|
111
103
|
return -1;
|
|
@@ -162,13 +154,7 @@ const AdaptableToolPanelComponent = (props) => {
|
|
|
162
154
|
} }));
|
|
163
155
|
};
|
|
164
156
|
const toolPanelButtons = renderToolPanelButtons();
|
|
165
|
-
return (_jsxs(Flex
|
|
166
|
-
// the inner-width is smaller
|
|
167
|
-
// minWidth: 'var(--ab-cmp-toolpanel__width)',
|
|
168
|
-
, {
|
|
169
|
-
// the inner-width is smaller
|
|
170
|
-
// minWidth: 'var(--ab-cmp-toolpanel__width)',
|
|
171
|
-
className: "ab-ToolPanel twa:p-2 twa:w-full", "data-name": "adaptable-tool-panel", flexDirection: "column", justifyContent: "center", children: [_jsxs(Flex, { className: "ab-ToolPanel__header twa:p-1 twa:w-full twa:justify-start", flexDirection: "row", flexWrap: "wrap", children: [isToolPanelModuleConfigurable && renderToolPanelDropdowns(), toolPanelButtons, isToolPanelModuleConfigurable && renderToolPanelConfigureButton()] }), Boolean(props.api.toolPanelApi.getCustomToolPanelButtons().length) && (_jsx(Flex, { className: "ab-ToolPanel__header__buttons twa:p-1 twa:justify-start", flexDirection: "row", flexWrap: "wrap", children: renderCustomToolPanelButtons() })), visibleToolPanelControls] }));
|
|
157
|
+
return (_jsxs(Flex, { className: "ab-ToolPanel twa:p-2 twa:w-full", "data-name": "adaptable-tool-panel", flexDirection: "column", justifyContent: "center", children: [_jsxs(Flex, { className: "ab-ToolPanel__header twa:p-1 twa:w-full twa:justify-start", flexDirection: "row", flexWrap: "wrap", children: [isToolPanelModuleConfigurable && renderToolPanelDropdowns(), toolPanelButtons, isToolPanelModuleConfigurable && renderToolPanelConfigureButton()] }), Boolean(props.api.toolPanelApi.getCustomToolPanelButtons().length) && (_jsx(Flex, { className: "ab-ToolPanel__header__buttons twa:p-1 twa:justify-start", flexDirection: "row", flexWrap: "wrap", children: renderCustomToolPanelButtons() })), visibleToolPanelControls] }));
|
|
172
158
|
};
|
|
173
159
|
function mapStateToProps(state) {
|
|
174
160
|
return {
|
|
@@ -210,10 +196,8 @@ export const getAdaptableToolPanelAgGridComponent = (adaptable) => {
|
|
|
210
196
|
const api = adaptable.api;
|
|
211
197
|
this.gui = document.createElement('div');
|
|
212
198
|
this.gui.id = getContainerId();
|
|
213
|
-
// preserve AG Grid naming convention
|
|
214
199
|
this.gui.className = 'ag-adaptable-panel';
|
|
215
200
|
Object.keys(toolPanelContainerStyle).forEach((key) => {
|
|
216
|
-
//@ts-ignore
|
|
217
201
|
this.gui.style[key] = toolPanelContainerStyle[key];
|
|
218
202
|
});
|
|
219
203
|
this.unmountReactRoot = adaptable.renderReactRoot(renderWithAdaptableContext(_jsx(ConnectedAdaptableToolPanel, { api: api, teamSharingActivated: false }), adaptable), this.gui);
|
|
@@ -225,7 +209,6 @@ export const getAdaptableToolPanelAgGridComponent = (adaptable) => {
|
|
|
225
209
|
return this.gui;
|
|
226
210
|
}
|
|
227
211
|
refresh() {
|
|
228
|
-
// no refresh logic needed
|
|
229
212
|
}
|
|
230
213
|
destroy() {
|
|
231
214
|
this.unmountReactRoot?.();
|
|
@@ -14,10 +14,6 @@ export var ToolPanelConfigView;
|
|
|
14
14
|
})(ToolPanelConfigView || (ToolPanelConfigView = {}));
|
|
15
15
|
export const ToolPanelPopupSections = (props) => {
|
|
16
16
|
const { api } = useAdaptable();
|
|
17
|
-
// Start with both cards collapsed so the user sees the popup's full
|
|
18
|
-
// summary at a glance and explicitly chooses which to edit. `initialTab`
|
|
19
|
-
// is still accepted on the props for backwards compatibility but no
|
|
20
|
-
// longer pre-expands a card.
|
|
21
17
|
const { bindCard, hasExpandedCard, expandedFillsSpace } = useWizardCardAccordion(null);
|
|
22
18
|
const selectedModuleButtons = [];
|
|
23
19
|
if (ArrayExtensions.IsNotNullOrEmpty(props.ToolPanelState.ModuleButtons)) {
|
|
@@ -25,7 +25,6 @@ export const ToolPanelWrapper = (props) => {
|
|
|
25
25
|
];
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
|
-
// custom toolPanel
|
|
29
28
|
return [
|
|
30
29
|
customToolPanel.name,
|
|
31
30
|
customToolPanel?.title ?? customToolPanel.name,
|
|
@@ -35,9 +34,7 @@ export const ToolPanelWrapper = (props) => {
|
|
|
35
34
|
};
|
|
36
35
|
const [toolPanelName, toolPanelHeader, toolPanelContent, moduleInfo] = getToolPanelConfiguration();
|
|
37
36
|
const isMinimised = visibilityMode === 'collapsed';
|
|
38
|
-
const isConfigurable =
|
|
39
|
-
// only module toolPanels are configurable
|
|
40
|
-
!!moduleInfo && toolPanelName !== 'OpenFin' && toolPanelName !== 'IPushPull';
|
|
37
|
+
const isConfigurable = !!moduleInfo && toolPanelName !== 'OpenFin' && toolPanelName !== 'IPushPull';
|
|
41
38
|
const isToolPanelModuleConfigurable = api.internalApi
|
|
42
39
|
.getModuleService()
|
|
43
40
|
.getModuleById(ToolPanelModuleId)
|
|
@@ -32,7 +32,6 @@ function useValuesMap({ options, value, toIdentifier, selectedMap, }) {
|
|
|
32
32
|
return { selectedMap: result, optionsMap };
|
|
33
33
|
}
|
|
34
34
|
const baseClassName = 'ab-ValueSelector';
|
|
35
|
-
/** Clicks on these targets must not toggle row selection (`toggleSelectionOnRowClick`). */
|
|
36
35
|
const ROW_CLICK_IGNORE_SELECTOR = 'button, input, select, textarea, a, [data-drag-handle], [data-slot=select-trigger], [data-slot=select-content], [data-slot=select-item], .ab-Select';
|
|
37
36
|
const ROW_TOGGLE_SUPPRESS_MS = 150;
|
|
38
37
|
export function ValueSelector(props) {
|
|
@@ -241,9 +240,6 @@ export const renderSelectionSection = (props) => {
|
|
|
241
240
|
props.onClear();
|
|
242
241
|
}
|
|
243
242
|
}, children: "Select All" })), hideShowSelectedOnly ? null : (_jsx(Box, { className: "twa:shrink-0 twa:text-2 twa:font-normal", children: props.showOnlySelectedCheckbox })), showFilterInput && filter ? (_jsxs(_Fragment, { children: [compactFilterUsesSpacer ? _jsx(Box, { className: "twa:flex-1 twa:min-w-0" }) : null, _jsx(AdaptableFormControlTextClear, { value: searchInputValue ?? '', OnTextChange: setSearchInputValue ?? (() => undefined), placeholder: filterPlaceholder ?? 'Search...', className: compactFilterClass })] })) : null] })) : (_jsx(Box, { className: "twa:flex twa:flex-col twa:gap-2 twa:py-2", children: _jsxs(Box, { className: headerRowClassName, children: [singleSelect ? (_jsx(Box, { className: "twa:flex twa:flex-row twa:text-3 twa:font-normal twa:items-center", children: (() => {
|
|
244
|
-
// For single-select we show the *name* of the selected option
|
|
245
|
-
// rather than a (1 of N) counter — useful when the list is
|
|
246
|
-
// long enough to scroll past the chosen row.
|
|
247
243
|
if (!value.length) {
|
|
248
244
|
return _jsx("span", { className: "twa:opacity-70", children: "(none selected)" });
|
|
249
245
|
}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
/** ValueSelector row sizing — matches Visibility and Order list rows. */
|
|
2
1
|
export const WIZARD_COLUMN_LIST_OPTION_CLASS = 'twa:!py-1 twa:!px-1.5';
|
|
3
|
-
/** Single-select column lists — ~50% taller than multi-select compact rows. */
|
|
4
2
|
export const WIZARD_COLUMN_LIST_OPTION_CLASS_SINGLE_SELECT = 'twa:!py-1.5 twa:!px-1.5';
|
|
5
|
-
/** Taller rows when ultra-compact one-line cards are not required (e.g. Custom Sort wizard). */
|
|
6
3
|
export const WIZARD_COLUMN_LIST_OPTION_CLASS_RELAXED = 'twa:!py-2 twa:!px-2';
|
|
7
|
-
/** Compact list header — spacing between Select All, Show Selected Only, and search. */
|
|
8
4
|
export const WIZARD_COLUMN_LIST_HEADER_CLASS = 'twa:gap-4';
|
|
9
|
-
/** Narrow search field (matches Visibility list column width, not full card width). */
|
|
10
5
|
export const WIZARD_COLUMN_LIST_SEARCH_CLASS = 'twa:w-[12rem] twa:shrink-0 twa:min-w-0';
|
|
@@ -7,7 +7,6 @@ import { AdaptableFormComponent } from '../../components/AdaptableFormComponent/
|
|
|
7
7
|
import { getDefaultAdaptableFormData, validateAdaptableForm, } from '../../AdaptableState/Common/AdaptableForm';
|
|
8
8
|
export const CustomToolbarCmp = (props) => {
|
|
9
9
|
const { api } = useAdaptable();
|
|
10
|
-
// dummy object which is used to force a re-render of the toolbar
|
|
11
10
|
const [componentRevision, setComponentRevision] = useState(1);
|
|
12
11
|
const renderContentContainerId = api.dashboardApi.internalApi.getCustomToolbarRenderContainerId(props.customToolbar.name);
|
|
13
12
|
const renderContentContainerRef = useRef(null);
|
|
@@ -16,17 +15,9 @@ export const CustomToolbarCmp = (props) => {
|
|
|
16
15
|
const componentContainerId = api.dashboardApi.internalApi.getCustomToolbarComponentContainerId(props.customToolbar.name);
|
|
17
16
|
const componentContainerRef = useRef(null);
|
|
18
17
|
const formContainerId = `${buttonsContainerId}-form`;
|
|
19
|
-
// Local form state for `customToolbar.toolbarForm`.
|
|
20
|
-
// Defaults are seeded from the form's field `defaultValue`s (if any) on
|
|
21
|
-
// first mount; subsequent definition swaps (different toolbar instance) are
|
|
22
|
-
// re-seeded too because the dependency includes the form definition.
|
|
23
18
|
const [toolbarFormData, setToolbarFormData] = useState(() => props.customToolbar.toolbarForm
|
|
24
19
|
? getDefaultAdaptableFormData(props.customToolbar.toolbarForm)
|
|
25
20
|
: {});
|
|
26
|
-
// Register a reset callback so `dashboardApi.resetCustomToolbarFormData(name)`
|
|
27
|
-
// can wipe this toolbar's state back to its declared defaults without
|
|
28
|
-
// forcing a re-mount. The unregister guard inside the internal API
|
|
29
|
-
// ensures a stale unmount can't clobber a fresh registration.
|
|
30
21
|
useEffect(() => {
|
|
31
22
|
if (!props.customToolbar.toolbarForm) {
|
|
32
23
|
return;
|
|
@@ -34,9 +25,6 @@ export const CustomToolbarCmp = (props) => {
|
|
|
34
25
|
const resetter = () => {
|
|
35
26
|
const next = getDefaultAdaptableFormData(props.customToolbar.toolbarForm);
|
|
36
27
|
setToolbarFormData(next);
|
|
37
|
-
// Mirror the public form-change callback so consumer code (e.g. a
|
|
38
|
-
// grid-filter helper) can rebuild itself from the cleared data
|
|
39
|
-
// without re-implementing default-seeding.
|
|
40
28
|
if (props.customToolbar.onToolbarFormChange) {
|
|
41
29
|
props.customToolbar.onToolbarFormChange(next, buildToolbarFormContext(next));
|
|
42
30
|
}
|
|
@@ -45,8 +33,6 @@ export const CustomToolbarCmp = (props) => {
|
|
|
45
33
|
return () => {
|
|
46
34
|
api.dashboardApi.internalApi.unregisterCustomToolbarFormResetter(props.customToolbar.name, resetter);
|
|
47
35
|
};
|
|
48
|
-
// We deliberately depend on the toolbar identity + form definition so
|
|
49
|
-
// that a re-render with the same toolbar doesn't churn the registration.
|
|
50
36
|
}, [api, props.customToolbar.name, props.customToolbar.toolbarForm]);
|
|
51
37
|
const buildToolbarFormContext = (data) => {
|
|
52
38
|
const baseCtx = {
|
|
@@ -55,9 +41,6 @@ export const CustomToolbarCmp = (props) => {
|
|
|
55
41
|
formData: data,
|
|
56
42
|
...api.internalApi.buildBaseContext(),
|
|
57
43
|
};
|
|
58
|
-
// Validate against the same context the consumer will see, then attach
|
|
59
|
-
// the results so button hidden/disabled/onClick callbacks can gate on
|
|
60
|
-
// form validity (e.g. a "Submit" button disabled while invalid).
|
|
61
44
|
const formErrors = props.customToolbar.toolbarForm
|
|
62
45
|
? validateAdaptableForm(props.customToolbar.toolbarForm, data, baseCtx)
|
|
63
46
|
: {};
|
|
@@ -80,7 +63,6 @@ export const CustomToolbarCmp = (props) => {
|
|
|
80
63
|
useLayoutEffect(() => {
|
|
81
64
|
const element = renderContentContainerRef.current;
|
|
82
65
|
const adaptableApi = api;
|
|
83
|
-
// cleanup runs in a separate effect, this way it's executed only once on unmount
|
|
84
66
|
return () => {
|
|
85
67
|
if (props.customToolbar.render) {
|
|
86
68
|
props.customToolbar.render({
|
|
@@ -116,13 +98,7 @@ export const CustomToolbarCmp = (props) => {
|
|
|
116
98
|
...api.internalApi.buildBaseContext(),
|
|
117
99
|
};
|
|
118
100
|
return (_jsx(AdaptableButtonView, { button: button, context: dashboardContext, api: api, defaults: ADAPTABLE_BUTTON_SURFACE_DEFAULTS.customToolbar, rerenderOnClick: false, style: { marginLeft: index ? 'var(--ab-base-space)' : 0 }, onAfterClick: () => setComponentRevision(componentRevision + 1) }, index));
|
|
119
|
-
}) })), props.customToolbar.toolbarForm && (_jsx("div", { id: formContainerId, className: `ab-CustomToolbar__form ab-CustomToolbar--${props.customToolbar.name}`, style: { minHeight: 22 }, children: _jsx(AdaptableFormComponent
|
|
120
|
-
// ensure the form uses the inline (toolbar-friendly) layout even
|
|
121
|
-
// if the consumer forgot to set it explicitly
|
|
122
|
-
, {
|
|
123
|
-
// ensure the form uses the inline (toolbar-friendly) layout even
|
|
124
|
-
// if the consumer forgot to set it explicitly
|
|
125
|
-
formDef: { ...props.customToolbar.toolbarForm, layout: 'inline' }, data: toolbarFormData, displayTitle: false, api: api, context: buildToolbarFormContext(toolbarFormData), focusFirstButton: false, onChange: (newData) => {
|
|
101
|
+
}) })), props.customToolbar.toolbarForm && (_jsx("div", { id: formContainerId, className: `ab-CustomToolbar__form ab-CustomToolbar--${props.customToolbar.name}`, style: { minHeight: 22 }, children: _jsx(AdaptableFormComponent, { formDef: { ...props.customToolbar.toolbarForm, layout: 'inline' }, data: toolbarFormData, displayTitle: false, api: api, context: buildToolbarFormContext(toolbarFormData), focusFirstButton: false, onChange: (newData) => {
|
|
126
102
|
setToolbarFormData(newData);
|
|
127
103
|
if (props.customToolbar.onToolbarFormChange) {
|
|
128
104
|
props.customToolbar.onToolbarFormChange(newData, buildToolbarFormContext(newData));
|
|
@@ -16,9 +16,6 @@ export const DataImportWizard = (props) => {
|
|
|
16
16
|
const [rowData, setRowData] = React.useState(null);
|
|
17
17
|
const [file, setFile] = React.useState(null);
|
|
18
18
|
const [text, setText] = React.useState('');
|
|
19
|
-
// This needs to be called only when:
|
|
20
|
-
// - columnsMap changes
|
|
21
|
-
// - new data is loaded
|
|
22
19
|
const [importType, setImportType] = React.useState('file');
|
|
23
20
|
const primaryKey = adaptableApi.optionsApi.getPrimaryKey();
|
|
24
21
|
const hasDynamicallyAddedPrimaryKey = typeof dataImportOptions._getPrimaryKeyValue === 'function';
|
|
@@ -38,7 +35,6 @@ export const DataImportWizard = (props) => {
|
|
|
38
35
|
rowData,
|
|
39
36
|
});
|
|
40
37
|
}
|
|
41
|
-
// by default just trim the keys
|
|
42
38
|
let processedRowData = {};
|
|
43
39
|
if (rowData) {
|
|
44
40
|
processedRowData = Object.keys(rowData).reduce((acc, key) => {
|
|
@@ -48,11 +44,9 @@ export const DataImportWizard = (props) => {
|
|
|
48
44
|
}
|
|
49
45
|
return processedRowData;
|
|
50
46
|
};
|
|
51
|
-
// ---- COLUMNS ----
|
|
52
47
|
const [columnsMap, setColumnsMap] = React.useState(null);
|
|
53
48
|
const mappedRowDataToColumns = React.useMemo(() => {
|
|
54
49
|
return (rowData ?? []).map((row) => {
|
|
55
|
-
// pick only included columns, and need to map to abColumn.field
|
|
56
50
|
return columnsMap?.reduce((acc, colMap) => {
|
|
57
51
|
if (colMap.include && colMap.abColumn && colMap.abColumn.field) {
|
|
58
52
|
acc[colMap.abColumn.field] = row[colMap.field];
|
|
@@ -84,24 +78,19 @@ export const DataImportWizard = (props) => {
|
|
|
84
78
|
const allAbColumns = adaptableApi.columnApi.getColumns();
|
|
85
79
|
const columnsMap = Array.from(fields).map((field) => {
|
|
86
80
|
const abColumn = allAbColumns.find((c) => {
|
|
87
|
-
// exact field match
|
|
88
81
|
if (c.field === field) {
|
|
89
82
|
return true;
|
|
90
83
|
}
|
|
91
|
-
// based on friendly name
|
|
92
84
|
const friendlyName = c.friendlyName;
|
|
93
85
|
if (typeof friendlyName !== 'string') {
|
|
94
86
|
return false;
|
|
95
87
|
}
|
|
96
|
-
// exact match
|
|
97
88
|
if (friendlyName === field) {
|
|
98
89
|
return true;
|
|
99
90
|
}
|
|
100
|
-
// match without case
|
|
101
91
|
if (friendlyName.toLowerCase() === field.toLowerCase()) {
|
|
102
92
|
return true;
|
|
103
93
|
}
|
|
104
|
-
// match without spaces and case, and special characters: ' ', '-', '_'
|
|
105
94
|
if (friendlyName.replace(/\s|-|_/g, '').toLowerCase() === field.toLowerCase()) {
|
|
106
95
|
return true;
|
|
107
96
|
}
|
|
@@ -126,12 +115,10 @@ export const DataImportWizard = (props) => {
|
|
|
126
115
|
}, []);
|
|
127
116
|
const handleChangeImportType = React.useCallback((importType) => {
|
|
128
117
|
setImportType(importType);
|
|
129
|
-
// clear data
|
|
130
118
|
handleNewRowData(null);
|
|
131
119
|
setFile(null);
|
|
132
120
|
setText('');
|
|
133
121
|
}, []);
|
|
134
|
-
// ---- FILE HANDLERS ----
|
|
135
122
|
const fileHandlers = React.useMemo(() => {
|
|
136
123
|
const userDefinedHandlers = adaptableApi.optionsApi.getDataImportOptions()?.fileHandlers ?? [];
|
|
137
124
|
return [...userDefinedHandlers, ...systemFileHandlers];
|
|
@@ -158,13 +145,10 @@ export const DataImportWizard = (props) => {
|
|
|
158
145
|
}
|
|
159
146
|
}, [adaptable]);
|
|
160
147
|
const fileMessage = file ? (_jsxs(HelpBlock, { className: "twa:mb-2", children: ["File ", _jsx(Tag, { children: file.name }), " is ready to be imported."] })) : (_jsxs(HelpBlock, { className: "twa:mb-2", children: ["Supported file types: ", supportedFileFormats] }));
|
|
161
|
-
// ---- TEXT IMPORT ----
|
|
162
148
|
const [textError, setTextError] = React.useState(null);
|
|
163
149
|
const handleTextChange = React.useCallback(async (text) => {
|
|
164
|
-
//
|
|
165
150
|
let textHandler = adaptableApi.optionsApi.getDataImportOptions()?.textHandler;
|
|
166
151
|
if (!textHandler) {
|
|
167
|
-
// regex to test for json
|
|
168
152
|
const jsonRegex = /^\s*[\[{]/;
|
|
169
153
|
if (text && jsonRegex.test(text)) {
|
|
170
154
|
textHandler = JSON.parse;
|
|
@@ -196,7 +180,6 @@ export const DataImportWizard = (props) => {
|
|
|
196
180
|
}
|
|
197
181
|
}, []);
|
|
198
182
|
const textMessage = textError ?? (!rowData ? 'Paste your data here' : '');
|
|
199
|
-
// ---- VALIDATION ----
|
|
200
183
|
const errors = React.useMemo(() => {
|
|
201
184
|
if (!dataImportOptions?.validate) {
|
|
202
185
|
return null;
|
|
@@ -237,11 +220,7 @@ export const DataImportWizard = (props) => {
|
|
|
237
220
|
},
|
|
238
221
|
details: 'Upload the data',
|
|
239
222
|
render: () => {
|
|
240
|
-
return (_jsx(UploadSection, { importType: importType, onImportTypeChange: handleChangeImportType,
|
|
241
|
-
// FILE
|
|
242
|
-
readFile: readFile, supportedFileFormats: supportedFileFormats, fileMessage: fileMessage,
|
|
243
|
-
// TEXT
|
|
244
|
-
text: text, onTextChange: handleTextChange, textMessage: textMessage }));
|
|
223
|
+
return (_jsx(UploadSection, { importType: importType, onImportTypeChange: handleChangeImportType, readFile: readFile, supportedFileFormats: supportedFileFormats, fileMessage: fileMessage, text: text, onTextChange: handleTextChange, textMessage: textMessage }));
|
|
245
224
|
},
|
|
246
225
|
},
|
|
247
226
|
{
|
|
@@ -16,7 +16,7 @@ export const parseCSV = (content) => {
|
|
|
16
16
|
const item = {};
|
|
17
17
|
for (let j = 0; j < headers.length; j++) {
|
|
18
18
|
const value = values[j];
|
|
19
|
-
item[headers[j]] = value === '' || isNaN(Number(value)) ? value : Number(value);
|
|
19
|
+
item[headers[j]] = value === '' || isNaN(Number(value)) ? value : Number(value);
|
|
20
20
|
}
|
|
21
21
|
data.push(item);
|
|
22
22
|
}
|
|
@@ -7,7 +7,6 @@ export const isValidFlashingCellRules = (flashingCell, api, context) => {
|
|
|
7
7
|
if (typeof isRuleValid === 'string') {
|
|
8
8
|
return isRuleValid;
|
|
9
9
|
}
|
|
10
|
-
// boolean expressions may also be saved as named queries
|
|
11
10
|
if (context.namedQuery != false) {
|
|
12
11
|
const isValidName = api.namedQueryApi.isValidNamedQuery(context.namedQuery);
|
|
13
12
|
if (!isValidName.valid) {
|