@adaptabletools/adaptable 22.1.1-canary.1 → 23.0.0-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/devtools.d.ts +70 -0
- package/icons/bullet-chart.svg +1 -0
- package/icons/horizontal-lines.svg +1 -1
- package/icons/icon-style.svg +1 -0
- package/icons/percent-tag.svg +1 -1
- package/icons/range-bar.svg +1 -0
- package/icons/star.svg +1 -0
- package/index.css +2253 -342
- package/package.json +10 -5
- package/src/AdaptableInterfaces/IAdaptable.d.ts +5 -2
- package/src/AdaptableOptions/ActionColumnOptions.d.ts +27 -1
- package/src/AdaptableOptions/ChartingOptions.d.ts +7 -0
- package/src/AdaptableOptions/ColumnMenuOptions.d.ts +30 -0
- package/src/AdaptableOptions/ContextMenuOptions.d.ts +30 -0
- package/src/AdaptableOptions/DashboardOptions.d.ts +56 -2
- package/src/AdaptableOptions/DefaultAdaptableOptions.js +13 -6
- package/src/AdaptableOptions/EditOptions.d.ts +34 -4
- package/src/AdaptableOptions/NotificationsOptions.d.ts +1 -1
- package/src/AdaptableOptions/RowFormOptions.d.ts +46 -2
- package/src/AdaptableOptions/UserInterfaceOptions.d.ts +3 -3
- package/src/AdaptableState/AdaptableState.d.ts +0 -2
- package/src/AdaptableState/AlertState.d.ts +65 -24
- package/src/AdaptableState/CalculatedColumnState.d.ts +1 -1
- package/src/AdaptableState/ChartingState.d.ts +2 -2
- package/src/AdaptableState/Common/AdaptableButton.d.ts +5 -0
- package/src/AdaptableState/Common/AdaptableColumn.d.ts +5 -0
- package/src/AdaptableState/Common/AdaptableForm.d.ts +304 -16
- package/src/AdaptableState/Common/AdaptableForm.js +211 -2
- package/src/AdaptableState/Common/AdaptableIcon.d.ts +1 -1
- package/src/AdaptableState/Common/AdaptablePredicate.js +22 -2
- package/src/AdaptableState/Common/AdaptableStyle.d.ts +48 -18
- package/src/AdaptableState/Common/AggregationColumns.d.ts +6 -1
- package/src/AdaptableState/Common/AggregationColumns.js +2 -4
- package/src/AdaptableState/Common/Enums.d.ts +1 -4
- package/src/AdaptableState/Common/Enums.js +0 -3
- package/src/AdaptableState/Common/ExtendedLayout.d.ts +3 -3
- package/src/AdaptableState/Common/Menu.d.ts +1 -1
- package/src/AdaptableState/Common/Menu.js +11 -0
- package/src/AdaptableState/Common/Schedule.d.ts +7 -29
- package/src/AdaptableState/Common/Types.d.ts +4 -4
- package/src/AdaptableState/Common/Types.js +0 -2
- package/src/AdaptableState/DashboardState.d.ts +0 -5
- package/src/AdaptableState/ExportState.d.ts +19 -6
- package/src/AdaptableState/IPushPullState.d.ts +0 -14
- package/src/AdaptableState/InitialState.d.ts +2 -6
- package/src/AdaptableState/LayoutState.d.ts +17 -0
- package/src/AdaptableState/OpenFinState.d.ts +0 -14
- package/src/AdaptableState/PlusMinusState.d.ts +8 -0
- package/src/AdaptableState/StyledColumnState.d.ts +742 -18
- package/src/Aggregation/ParameterizedAggregationRegistry.d.ts +35 -0
- package/src/Aggregation/ParameterizedAggregationRegistry.js +63 -0
- package/src/Aggregation/definitions/weightedAverageAggregationDefinition.d.ts +3 -0
- package/src/Aggregation/definitions/weightedAverageAggregationDefinition.js +55 -0
- package/src/Aggregation/parameterizedAggregationColumnMenu.d.ts +8 -0
- package/src/Aggregation/parameterizedAggregationColumnMenu.js +137 -0
- package/src/Aggregation/parameterizedAggregationHeader.d.ts +13 -0
- package/src/Aggregation/parameterizedAggregationHeader.js +60 -0
- package/src/Aggregation/parameterizedAggregationHelpers.d.ts +23 -0
- package/src/Aggregation/parameterizedAggregationHelpers.js +111 -0
- package/src/Aggregation/parameterizedAggregationWizardHelpers.d.ts +9 -0
- package/src/Aggregation/parameterizedAggregationWizardHelpers.js +66 -0
- package/src/Aggregation/validateParameterizedAggregations.d.ts +4 -0
- package/src/Aggregation/validateParameterizedAggregations.js +20 -0
- package/src/Api/AdaptableApi.d.ts +0 -5
- package/src/Api/AlertApi.d.ts +7 -3
- package/src/Api/ChartingApi.d.ts +1 -1
- package/src/Api/ColumnFilterApi.d.ts +4 -0
- package/src/Api/ColumnMenuApi.d.ts +1 -1
- package/src/Api/ColumnScopeApi.d.ts +6 -2
- package/src/Api/DashboardApi.d.ts +13 -0
- package/src/Api/EventApi.d.ts +7 -8
- package/src/Api/Events/ReportScheduleRan.d.ts +11 -0
- package/src/Api/ExportApi.d.ts +42 -1
- package/src/Api/GridApi.d.ts +2 -2
- package/src/Api/GridFilterApi.d.ts +10 -3
- package/src/Api/IPushPullApi.d.ts +1 -5
- package/src/Api/Implementation/AdaptableApiImpl.d.ts +0 -2
- package/src/Api/Implementation/AdaptableApiImpl.js +0 -4
- package/src/Api/Implementation/AlertApiImpl.d.ts +7 -6
- package/src/Api/Implementation/AlertApiImpl.js +26 -6
- package/src/Api/Implementation/ApiBase.d.ts +1 -2
- package/src/Api/Implementation/ApiBase.js +0 -3
- package/src/Api/Implementation/ChartingApiImpl.d.ts +1 -1
- package/src/Api/Implementation/ChartingApiImpl.js +24 -2
- package/src/Api/Implementation/ColumnFilterApiImpl.d.ts +1 -0
- package/src/Api/Implementation/ColumnFilterApiImpl.js +3 -0
- package/src/Api/Implementation/ColumnScopeApiImpl.js +20 -26
- package/src/Api/Implementation/DashboardApiImpl.d.ts +1 -0
- package/src/Api/Implementation/DashboardApiImpl.js +5 -2
- package/src/Api/Implementation/ExportApiImpl.d.ts +12 -1
- package/src/Api/Implementation/ExportApiImpl.js +37 -0
- package/src/Api/Implementation/GridFilterApiImpl.d.ts +1 -1
- package/src/Api/Implementation/GridFilterApiImpl.js +6 -0
- package/src/Api/Implementation/LayoutApiImpl.d.ts +2 -0
- package/src/Api/Implementation/LayoutApiImpl.js +31 -36
- package/src/Api/Implementation/LayoutHelpers.js +7 -13
- package/src/Api/Implementation/QuickSearchApiImpl.d.ts +5 -3
- package/src/Api/Implementation/QuickSearchApiImpl.js +10 -3
- package/src/Api/Implementation/SmartEditApiImpl.js +1 -1
- package/src/Api/Implementation/StateApiImpl.d.ts +5 -3
- package/src/Api/Implementation/StateApiImpl.js +21 -18
- package/src/Api/Implementation/StyledColumnApiImpl.d.ts +3 -0
- package/src/Api/Implementation/StyledColumnApiImpl.js +15 -0
- package/src/Api/Implementation/UserInterfaceApiImpl.js +11 -12
- package/src/Api/Internal/ActionColumnInternalApi.js +7 -1
- package/src/Api/Internal/AdaptableInternalApi.d.ts +1 -0
- package/src/Api/Internal/AdaptableInternalApi.js +3 -0
- package/src/Api/Internal/AlertInternalApi.d.ts +4 -4
- package/src/Api/Internal/AlertInternalApi.js +28 -10
- package/src/Api/Internal/ChartingInternalApi.js +8 -3
- package/src/Api/Internal/DashboardInternalApi.d.ts +27 -0
- package/src/Api/Internal/DashboardInternalApi.js +41 -0
- package/src/Api/Internal/EventInternalApi.d.ts +2 -3
- package/src/Api/Internal/EventInternalApi.js +4 -4
- package/src/Api/Internal/FormatColumnInternalApi.d.ts +6 -0
- package/src/Api/Internal/FormatColumnInternalApi.js +6 -0
- package/src/Api/Internal/GridInternalApi.js +3 -2
- package/src/Api/Internal/LayoutInternalApi.js +4 -1
- package/src/Api/Internal/RowFormInternalApi.js +23 -1
- package/src/Api/Internal/StateInternalApi.d.ts +10 -0
- package/src/Api/Internal/StateInternalApi.js +84 -0
- package/src/Api/Internal/StyledColumnInternalApi.d.ts +2 -0
- package/src/Api/Internal/StyledColumnInternalApi.js +104 -30
- package/src/Api/LayoutApi.d.ts +8 -1
- package/src/Api/OpenFinApi.d.ts +1 -5
- package/src/Api/PlusMinusApi.d.ts +3 -1
- package/src/Api/QuickSearchApi.d.ts +18 -7
- package/src/Api/StateApi.d.ts +4 -15
- package/src/Api/StyledColumnApi.d.ts +16 -0
- package/src/Redux/ActionsReducers/DashboardRedux.d.ts +0 -8
- package/src/Redux/ActionsReducers/DashboardRedux.js +0 -13
- package/src/Redux/ActionsReducers/ExportRedux.d.ts +40 -1
- package/src/Redux/ActionsReducers/ExportRedux.js +99 -2
- package/src/Redux/ActionsReducers/InternalRedux.d.ts +0 -5
- package/src/Redux/ActionsReducers/InternalRedux.js +9 -7
- package/src/Redux/ActionsReducers/QuickSearchRedux.d.ts +27 -2
- package/src/Redux/ActionsReducers/QuickSearchRedux.js +38 -4
- package/src/Redux/Store/AdaptableStore.js +58 -59
- package/src/Strategy/AlertModule.d.ts +4 -1
- package/src/Strategy/AlertModule.js +43 -6
- package/src/Strategy/CalculatedColumnModule.d.ts +1 -1
- package/src/Strategy/CellSummaryModule.d.ts +1 -1
- package/src/Strategy/ChartingModule.d.ts +2 -1
- package/src/Strategy/ChartingModule.js +24 -1
- package/src/Strategy/ColumnFilterModule.d.ts +1 -1
- package/src/Strategy/ColumnInfoModule.d.ts +1 -1
- package/src/Strategy/ExportModule.d.ts +5 -1
- package/src/Strategy/ExportModule.js +49 -6
- package/src/Strategy/FlashingCellModule.d.ts +1 -1
- package/src/Strategy/FormatColumnModule.d.ts +1 -1
- package/src/Strategy/FreeTextColumnModule.d.ts +1 -1
- package/src/Strategy/GridInfoModule.d.ts +1 -1
- package/src/Strategy/Interface/IAlertModule.d.ts +5 -0
- package/src/Strategy/Interface/IExportModule.d.ts +4 -0
- package/src/Strategy/Interface/IModule.d.ts +16 -1
- package/src/Strategy/LayoutModule.d.ts +1 -1
- package/src/Strategy/LayoutModule.js +11 -26
- package/src/Strategy/PlusMinusModule.d.ts +6 -1
- package/src/Strategy/PlusMinusModule.js +78 -26
- package/src/Strategy/QuickSearchModule.js +0 -12
- package/src/Strategy/SettingsPanelModule.d.ts +1 -1
- package/src/Strategy/ShortcutModule.js +1 -1
- package/src/Strategy/StyledColumnModule.d.ts +1 -1
- package/src/Strategy/StyledColumnModule.js +199 -24
- package/src/Strategy/SystemStatusModule.d.ts +1 -1
- package/src/Strategy/Utilities/Alert/getAlertPreviewViewItems.js +3 -3
- package/src/Strategy/Utilities/Export/formatScheduledReportSummary.d.ts +2 -0
- package/src/Strategy/Utilities/Export/formatScheduledReportSummary.js +6 -0
- package/src/Strategy/Utilities/Export/getExportRowsViewItems.js +3 -3
- package/src/Strategy/Utilities/Export/getReportSchedulesViewItems.d.ts +2 -0
- package/src/Strategy/Utilities/Export/getReportSchedulesViewItems.js +5 -0
- package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +1 -1
- package/src/Utilities/Constants/DocumentationLinkConstants.js +1 -1
- package/src/Utilities/Constants/ModuleConstants.d.ts +0 -3
- package/src/Utilities/Constants/ModuleConstants.js +0 -3
- package/src/Utilities/Constants/ReduxConstants.d.ts +3 -1
- package/src/Utilities/Constants/ReduxConstants.js +6 -4
- package/src/Utilities/Defaults/DefaultSettingsPanel.js +0 -1
- package/src/Utilities/Extensions/NumberExtensions.js +1 -1
- package/src/Utilities/Helpers/ActionColumnWidthHelper.d.ts +6 -0
- package/src/Utilities/Helpers/ActionColumnWidthHelper.js +56 -0
- package/src/Utilities/Helpers/IconStylePresets.d.ts +6 -0
- package/src/Utilities/Helpers/IconStylePresets.js +132 -0
- package/src/Utilities/Helpers/QuickSearchStyleHelper.d.ts +12 -0
- package/src/Utilities/Helpers/QuickSearchStyleHelper.js +76 -0
- package/src/Utilities/Helpers/ScheduleHelper.d.ts +22 -0
- package/src/Utilities/Helpers/ScheduleHelper.js +234 -0
- package/src/Utilities/Helpers/ScheduleJobManager.d.ts +11 -0
- package/src/Utilities/Helpers/ScheduleJobManager.js +25 -0
- package/src/Utilities/Helpers/ScheduleJobRunner.d.ts +8 -0
- package/src/Utilities/Helpers/ScheduleJobRunner.js +27 -0
- package/src/Utilities/Helpers/ScheduledAlertHelper.d.ts +8 -0
- package/src/Utilities/Helpers/ScheduledAlertHelper.js +50 -0
- package/src/Utilities/Helpers/ScheduledJobsMiddlewareHelper.d.ts +3 -0
- package/src/Utilities/Helpers/ScheduledJobsMiddlewareHelper.js +9 -0
- package/src/Utilities/Helpers/ScheduledReportHelper.d.ts +16 -0
- package/src/Utilities/Helpers/ScheduledReportHelper.js +49 -0
- package/src/Utilities/Helpers/StyleHelper.d.ts +35 -0
- package/src/Utilities/Helpers/StyleHelper.js +83 -0
- package/src/Utilities/Helpers/StyledColumnGradientHelper.d.ts +30 -0
- package/src/Utilities/Helpers/StyledColumnGradientHelper.js +41 -0
- package/src/Utilities/Helpers/alertFormHelper.d.ts +2 -0
- package/src/Utilities/Helpers/alertFormHelper.js +11 -0
- package/src/Utilities/Helpers/chartingHelper.d.ts +14 -0
- package/src/Utilities/Helpers/chartingHelper.js +112 -0
- package/src/Utilities/Helpers/iconStyledColumnColumnSupport.d.ts +5 -0
- package/src/Utilities/Helpers/iconStyledColumnColumnSupport.js +15 -0
- package/src/Utilities/Helpers/plusMinusTriggerKeys.d.ts +41 -0
- package/src/Utilities/Helpers/plusMinusTriggerKeys.js +90 -0
- package/src/Utilities/Helpers/styledColumnRowKindSupport.d.ts +25 -0
- package/src/Utilities/Helpers/styledColumnRowKindSupport.js +63 -0
- package/src/Utilities/ObjectFactory.d.ts +7 -28
- package/src/Utilities/ObjectFactory.js +19 -103
- package/src/Utilities/Services/AlertService.js +3 -0
- package/src/Utilities/Services/ModuleService.js +0 -2
- package/src/Utilities/Services/QueryLanguageService.js +1 -1
- package/src/Utilities/Services/ValidationService.js +9 -3
- package/src/Utilities/createAgStatusPanelComponent.js +3 -2
- package/src/Utilities/getExpressionViewItems.js +2 -3
- package/src/Utilities/getObjectTagsViewItems.js +2 -1
- package/src/View/AdaptableComputedCSSVarsContext.js +4 -5
- package/src/View/AdaptablePopover/index.js +10 -19
- package/src/View/AdaptableView.js +8 -18
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/AdaptableOptionsForm.js +15 -25
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +32 -43
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/Components/FormBox.js +2 -2
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +7 -6
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizardColumnsStep.js +2 -2
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/EntitlementsForm.js +11 -18
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/GridOptionsForm.js +22 -32
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsSidebarForm.js +6 -12
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +7 -19
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UiOptionsForm.js +2 -10
- package/src/View/AdaptableWizardView/Wizard.js +3 -6
- package/src/View/AdaptableWizardView/index.js +2 -2
- package/src/View/Alert/ActiveAlertsPanel.js +2 -2
- package/src/View/Alert/ActiveAlertsPanelItemLabel.js +3 -5
- package/src/View/Alert/AlertEmptyView.js +2 -2
- package/src/View/Alert/AlertStatusSubPanel.js +3 -2
- package/src/View/Alert/AlertViewPanel.js +4 -8
- package/src/View/Alert/Utilities/getAlertType.d.ts +2 -1
- package/src/View/Alert/Utilities/getAlertType.js +10 -2
- package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +17 -3
- package/src/View/Alert/Utilities/getDefaultAlertDefinition.js +8 -0
- package/src/View/Alert/Utilities/mapAlertDefinition.d.ts +1 -1
- package/src/View/Alert/Utilities/mapAlertDefinition.js +4 -0
- package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +67 -97
- package/src/View/Alert/Wizard/AlertButtonsEditor.js +112 -159
- package/src/View/Alert/Wizard/AlertMessageWizardSection.d.ts +1 -1
- package/src/View/Alert/Wizard/AlertMessageWizardSection.js +24 -37
- package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +95 -62
- package/src/View/Alert/Wizard/AlertRulesWizardSection.js +24 -38
- package/src/View/Alert/Wizard/AlertScheduledWizardSection.d.ts +9 -0
- package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +31 -0
- package/src/View/Alert/Wizard/AlertScopeWizardSection.js +9 -5
- package/src/View/Alert/Wizard/AlertTypeWizardSection.js +3 -24
- package/src/View/Alert/Wizard/AlertWizard.js +36 -31
- package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.d.ts +1 -3
- package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +13 -17
- package/src/View/Alert/Wizard/isValidAlertMessage.d.ts +3 -0
- package/src/View/Alert/Wizard/isValidAlertMessage.js +14 -0
- package/src/View/Alert/Wizard/isValidAlertRules.js +4 -0
- package/src/View/BulkUpdate/BulkUpdatePopup.js +11 -25
- package/src/View/BulkUpdate/BulkUpdateViewPanel.js +9 -14
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +9 -30
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +14 -19
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +8 -18
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnTypeSection.js +2 -9
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +9 -17
- package/src/View/CellSummary/CellSummaryDetails.js +2 -3
- package/src/View/CellSummary/CellSummaryPopover.js +2 -2
- package/src/View/CellSummary/CellSummaryPopup.js +2 -2
- package/src/View/CellSummary/CellSummaryStatusBarSubPanelPopover.js +4 -5
- package/src/View/CellSummary/CellSummaryStatusPanel.js +2 -1
- package/src/View/CellSummary/CellSummaryViewPanel.js +8 -12
- package/src/View/Charting/ChartingStatusBarPopover.js +2 -8
- package/src/View/Charting/ChartingViewPanel.js +3 -17
- package/src/View/Charting/ChartingWizard/AgChargingWizard/AgChargingWizard.js +5 -7
- package/src/View/Charting/ChartingWizard/AgChargingWizard/PreviewChartSection.js +2 -1
- package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +4 -18
- package/src/View/Charting/ChartingWizard/ChartingWizard.js +3 -3
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/ExternalChartingWizard.js +5 -6
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +5 -14
- package/src/View/Charting/DeleteChartButton.js +2 -2
- package/src/View/Charting/EditChartButton.js +2 -2
- package/src/View/Charting/ShowChartButton.js +9 -10
- package/src/View/Charting/useChartingElements.js +8 -7
- package/src/View/ColumnInfo/ColumnInfo.js +11 -26
- package/src/View/ColumnInfo/ColumnInfoPopup.js +2 -4
- package/src/View/Comments/CommentsEditor.js +44 -61
- package/src/View/Comments/CommentsPopup.js +12 -30
- package/src/View/Components/AdaptableButton/AdaptableButtonComponent.d.ts +4 -0
- package/src/View/Components/AdaptableButton/AdaptableButtonComponent.js +13 -0
- package/src/View/Components/AdaptableButton/AdaptableButtonView.d.ts +58 -0
- package/src/View/Components/AdaptableButton/AdaptableButtonView.js +48 -0
- package/src/View/Components/AdaptableButton/index.d.ts +3 -3
- package/src/View/Components/AdaptableButton/index.js +2 -13
- package/src/View/Components/AdaptableDateInput/index.js +2 -1
- package/src/View/Components/AdaptableIconComponent/index.js +2 -2
- package/src/View/Components/AdaptableIconSelector/index.js +2 -2
- package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.js +6 -2
- package/src/View/Components/AdaptableInput/index.js +3 -2
- package/src/View/Components/AdaptableObjectCollection/index.js +5 -8
- package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +9 -21
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.d.ts +1 -0
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +26 -44
- package/src/View/Components/AdaptableObjectRow/index.js +3 -2
- package/src/View/Components/Badge/index.d.ts +17 -3
- package/src/View/Components/Badge/index.js +67 -9
- package/src/View/Components/Buttons/ButtonApply.js +2 -1
- package/src/View/Components/Buttons/ButtonBase/index.js +10 -20
- package/src/View/Components/Buttons/ButtonClear.js +2 -1
- package/src/View/Components/Buttons/ButtonClone.js +2 -2
- package/src/View/Components/Buttons/ButtonClose.js +2 -1
- package/src/View/Components/Buttons/ButtonConfigure.js +2 -1
- package/src/View/Components/Buttons/ButtonDelete.js +2 -2
- package/src/View/Components/Buttons/ButtonEdit.js +2 -2
- package/src/View/Components/Buttons/ButtonExpand.js +3 -1
- package/src/View/Components/Buttons/ButtonExport.js +2 -1
- package/src/View/Components/Buttons/ButtonInfo.js +2 -2
- package/src/View/Components/Buttons/ButtonInvalid.js +2 -1
- package/src/View/Components/Buttons/ButtonLogin.js +2 -1
- package/src/View/Components/Buttons/ButtonLogout.js +2 -1
- package/src/View/Components/Buttons/ButtonMaximise.js +2 -1
- package/src/View/Components/Buttons/ButtonMinimise.js +2 -1
- package/src/View/Components/Buttons/ButtonNew.js +2 -2
- package/src/View/Components/Buttons/ButtonNewPage.js +2 -1
- package/src/View/Components/Buttons/ButtonOpen.js +2 -1
- package/src/View/Components/Buttons/ButtonPause.js +2 -2
- package/src/View/Components/Buttons/ButtonPlay.js +2 -2
- package/src/View/Components/Buttons/ButtonSave.js +2 -1
- package/src/View/Components/Buttons/ButtonSchedule.js +2 -2
- package/src/View/Components/Buttons/ButtonShare.js +5 -6
- package/src/View/Components/Buttons/ButtonStop.js +2 -1
- package/src/View/Components/Buttons/ButtonUnsuspend.js +2 -1
- package/src/View/Components/Buttons/EntityListActionButtons.js +2 -6
- package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.js +2 -1
- package/src/View/Components/CellPopup/index.js +2 -1
- package/src/View/Components/ColumnFilter/AdaptableColumnFilter.d.ts +4 -1
- package/src/View/Components/ColumnFilter/AdaptableColumnFilter.js +9 -3
- package/src/View/Components/ColumnFilter/AdaptableFloatingFilter.js +2 -1
- package/src/View/Components/ColumnFilter/ColumnFilter.js +57 -66
- package/src/View/Components/ColumnFilter/ColumnFilterWindow.js +16 -17
- package/src/View/Components/ColumnFilter/FloatingFilter.js +28 -31
- package/src/View/Components/ColumnFilter/LayoutColumnFilter.js +2 -2
- package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +9 -10
- package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +22 -24
- package/src/View/Components/ColumnFilter/components/ColumnFilterMenu.js +9 -11
- package/src/View/Components/ColumnFilter/components/FloatingFilterInputList.js +32 -24
- package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +7 -47
- package/src/View/Components/ColumnGroupTag/index.js +2 -4
- package/src/View/Components/ColumnSelector/index.js +3 -5
- package/src/View/Components/EntityRowItem.js +2 -3
- package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicateEditor.js +5 -12
- package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +9 -25
- package/src/View/Components/EntityRulesEditor/index.js +17 -38
- package/src/View/Components/ExternalRenderer.js +2 -2
- package/src/View/Components/FilterForm/ListBoxFilterForm.d.ts +3 -2
- package/src/View/Components/FilterForm/ListBoxFilterForm.js +81 -27
- package/src/View/Components/Forms/AdaptableFormControlTextClear.js +23 -25
- package/src/View/Components/ModuleProfile.js +4 -7
- package/src/View/Components/ModuleSummary/ModuleDetail.js +6 -5
- package/src/View/Components/ModuleSummary/ModuleHeader.js +4 -4
- package/src/View/Components/ModuleSummary/SummaryRowItem.js +2 -2
- package/src/View/Components/ModuleValueSelector/index.js +2 -2
- package/src/View/Components/NewScopeComponent.js +15 -46
- package/src/View/Components/Panels/PanelDashboard/index.js +2 -1
- package/src/View/Components/Panels/PanelToolPanel/index.js +3 -6
- package/src/View/Components/Panels/PanelWithButton.js +3 -11
- package/src/View/Components/Panels/PanelWithImage.js +5 -13
- package/src/View/Components/Panels/PanelWithRow.js +5 -5
- package/src/View/Components/Popups/AdaptableLoadingScreen.js +2 -4
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +7 -12
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupBody.js +2 -2
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupDialog.js +7 -7
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +20 -19
- package/src/View/Components/Popups/AdaptablePopup/CustomSettingsPanelView.js +2 -2
- package/src/View/Components/Popups/AdaptablePopup/Navigation.js +15 -19
- package/src/View/Components/Popups/AdaptablePopup/PopupPanel.js +3 -12
- package/src/View/Components/Popups/AdaptablePopup/TopBar.js +6 -8
- package/src/View/Components/Popups/AdaptablePopupAlert.js +20 -26
- package/src/View/Components/Popups/AdaptablePopupConfirmation.js +7 -19
- package/src/View/Components/Popups/AdaptablePopupPrompt.js +4 -15
- package/src/View/Components/Popups/AdaptablePopupTeamSharing.js +2 -27
- package/src/View/Components/Popups/AdaptableToaster.js +2 -2
- package/src/View/Components/Popups/FormPopups/FormPopups.js +6 -7
- package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +15 -17
- package/src/View/Components/Popups/WindowPopups/WindowPopups.js +42 -42
- package/src/View/Components/Popups/WindowPopups/windowFactory.js +0 -2
- package/src/View/Components/PredicateEditor/PredicateEditor.js +15 -24
- package/src/View/Components/PreviewResultsPanel.js +4 -9
- package/src/View/Components/RangesComponent.d.ts +31 -5
- package/src/View/Components/RangesComponent.js +137 -83
- package/src/View/Components/ReorderDraggable/index.js +10 -18
- package/src/View/Components/Selectors/BulkUpdateValueSelector.js +13 -17
- package/src/View/Components/Selectors/ColumnSelector.d.ts +1 -2
- package/src/View/Components/Selectors/ColumnSelector.js +21 -7
- package/src/View/Components/Selectors/FieldSelector.d.ts +0 -2
- package/src/View/Components/Selectors/FieldSelector.js +5 -5
- package/src/View/Components/Selectors/PermittedValuesSelector.d.ts +0 -2
- package/src/View/Components/Selectors/PermittedValuesSelector.js +31 -2
- package/src/View/Components/SharedProps/EditableConfigEntityState.js +0 -1
- package/src/View/Components/SharedProps/ModuleViewPopupProps.d.ts +1 -1
- package/src/View/Components/StyleComponent.d.ts +0 -2
- package/src/View/Components/StyleComponent.js +27 -131
- package/src/View/Components/StyleVisualItem.js +4 -4
- package/src/View/Components/TagValueSelector/index.js +3 -3
- package/src/View/Components/ToolPanel/AdaptableToolPanel.js +18 -40
- package/src/View/Components/ToolPanel/CustomToolPanelContent.js +11 -27
- package/src/View/Components/ToolPanel/ToolPanelPopup.js +2 -12
- package/src/View/Components/ToolPanel/ToolPanelWrapper.js +16 -17
- package/src/View/Components/ValueSelector/index.js +87 -100
- package/src/View/Components/WizardSummaryPage.js +2 -4
- package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +9 -29
- package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +8 -11
- package/src/View/CustomSort/Wizard/CustomSortWizard.js +6 -10
- package/src/View/Dashboard/CustomDashboardButton.d.ts +1 -2
- package/src/View/Dashboard/CustomDashboardButton.js +4 -22
- package/src/View/Dashboard/CustomToolbar.js +85 -33
- package/src/View/Dashboard/Dashboard.d.ts +0 -1
- package/src/View/Dashboard/Dashboard.js +11 -23
- package/src/View/Dashboard/DashboardPopup.js +2 -23
- package/src/View/Dashboard/DashboardToolbarFactory.js +6 -5
- package/src/View/Dashboard/DashboardViewPanel.js +2 -7
- package/src/View/Dashboard/ModuleToolbarWrapper.js +3 -3
- package/src/View/Dashboard/PinnedDashboard.js +5 -7
- package/src/View/Dashboard/PinnedToolbarsSelector.js +2 -1
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +2 -2
- package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +7 -32
- package/src/View/DataChangeHistory/DataChangeHistoryStatusBarContent.js +2 -2
- package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +4 -18
- package/src/View/DataImport/DataImportPopup.js +8 -12
- package/src/View/DataImport/DataImportWizard/DataImportWizard.js +6 -10
- package/src/View/DataImport/DataImportWizard/sections/ColumnsSection.js +18 -26
- package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +8 -11
- package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadFileSection.js +2 -2
- package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadSection.js +2 -11
- package/src/View/DataImport/DataImportWizard/sections/UploadSection/UploadTextSection.js +2 -4
- package/src/View/DataImport/DataImportWizard/sections/ValidationSection.js +4 -14
- package/src/View/DataSet/DataSetSelector.js +2 -1
- package/src/View/DataSet/DataSetStatusPanelPopover.js +2 -1
- package/src/View/DataSet/DataSetViewPanel.js +3 -3
- package/src/View/Export/ExportDestinationPicker.js +4 -5
- package/src/View/Export/ExportSchedulesTab.d.ts +2 -0
- package/src/View/Export/ExportSchedulesTab.js +54 -0
- package/src/View/Export/ExportStatusBar.js +2 -6
- package/src/View/Export/ExportViewPanel.js +27 -29
- package/src/View/Export/ReportFormatSelector.d.ts +0 -1
- package/src/View/Export/ReportFormatSelector.js +4 -5
- package/src/View/Export/ReportListItem.js +2 -4
- package/src/View/Export/ReportNameSelector.js +3 -4
- package/src/View/Export/Wizard/ExportPopupWizardRouter.d.ts +4 -0
- package/src/View/Export/Wizard/ExportPopupWizardRouter.js +10 -0
- package/src/View/Export/Wizard/NewReportWizard.js +7 -10
- package/src/View/Export/Wizard/ReportColumnsWizardSection.js +27 -51
- package/src/View/Export/Wizard/ReportNameWizardSection.js +8 -18
- package/src/View/Export/Wizard/ReportRowsWizardSection.js +11 -38
- package/src/View/Export/Wizard/ScheduledReportSettings.d.ts +11 -0
- package/src/View/Export/Wizard/ScheduledReportSettings.js +29 -0
- package/src/View/Export/Wizard/ScheduledReportSettingsSummary.d.ts +7 -0
- package/src/View/Export/Wizard/ScheduledReportSettingsSummary.js +27 -0
- package/src/View/Export/Wizard/ScheduledReportWizard.d.ts +10 -0
- package/src/View/Export/Wizard/ScheduledReportWizard.js +75 -0
- package/src/View/Export/Wizard/isReportScheduledSettingsValid.d.ts +3 -0
- package/src/View/Export/Wizard/isReportScheduledSettingsValid.js +15 -0
- package/src/View/Filter/ActiveFiltersPanel.js +2 -2
- package/src/View/Filter/FilterStatusBarSubPanelPopover.js +2 -2
- package/src/View/Filter/FilterViewPanel.js +5 -9
- package/src/View/FlashingCell/FlashingCellStyle.js +2 -11
- package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +8 -28
- package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +3 -3
- package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +9 -41
- package/src/View/FlashingCell/Wizard/FlashingCellStyleWizardSection.js +5 -30
- package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +9 -13
- package/src/View/FormatColumn/MoveFormatColumn.js +3 -4
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +61 -203
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +6 -15
- package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +92 -0
- package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +39 -49
- package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +3 -3
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +12 -26
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +21 -54
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +5 -8
- package/src/View/GridFilter/GridFilterExpressionEditor.js +14 -21
- package/src/View/GridFilter/GridFilterPopup.js +2 -2
- package/src/View/GridFilter/GridFilterPopupUI/index.js +2 -18
- package/src/View/GridFilter/GridFilterStatusbar.js +2 -2
- package/src/View/GridFilter/GridFilterViewPanel.js +16 -26
- package/src/View/GridFilter/GridFilterWindowPopup.js +2 -2
- package/src/View/GridFilter/NamedQuerySelector.js +13 -21
- package/src/View/GridInfo/GridInfoPopup/AdaptableObjectsSummary.js +11 -13
- package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +7 -23
- package/src/View/KeyHint.js +3 -3
- package/src/View/Layout/EditCurrentLayoutButton.js +2 -1
- package/src/View/Layout/LayoutCloneButton.js +2 -1
- package/src/View/Layout/LayoutRadioSelector.js +2 -1
- package/src/View/Layout/LayoutStatusBarSubPanelPopover.js +5 -6
- package/src/View/Layout/LayoutViewPanel.js +41 -32
- package/src/View/Layout/PivotDetailsPopoup.js +2 -2
- package/src/View/Layout/TransposedPopup.js +2 -8
- package/src/View/Layout/Wizard/LayoutWizard.js +42 -60
- package/src/View/Layout/Wizard/getGridFilterPreview.js +2 -3
- package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +3 -2
- package/src/View/Layout/Wizard/sections/AggregationsSection.js +29 -150
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +131 -187
- package/src/View/Layout/Wizard/sections/FilterSection.js +32 -37
- package/src/View/Layout/Wizard/sections/GridFilterSection.js +4 -3
- package/src/View/Layout/Wizard/sections/ParameterizedAggFuncPicker.d.ts +12 -0
- package/src/View/Layout/Wizard/sections/ParameterizedAggFuncPicker.js +43 -0
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.d.ts +2 -1
- package/src/View/Layout/Wizard/sections/PivotAggregationsSection.js +77 -197
- package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +8 -12
- package/src/View/Layout/Wizard/sections/PivotRowGroupingSection.js +5 -13
- package/src/View/Layout/Wizard/sections/RowGroupingSection.js +21 -44
- package/src/View/Layout/Wizard/sections/RowSelectionSection.js +5 -72
- package/src/View/Layout/Wizard/sections/RowSummarySection.js +106 -140
- package/src/View/Layout/Wizard/sections/SettingsSection.js +3 -26
- package/src/View/Layout/Wizard/sections/SortSection.js +4 -9
- package/src/View/License/LicenseWatermark.js +1 -1
- package/src/View/NamedQuery/EditCurrentQueryButton.js +2 -1
- package/src/View/NamedQuery/Wizard/NamedQueryExpressionWizardSection.js +3 -5
- package/src/View/NamedQuery/Wizard/NamedQuerySettingsWizardSection.js +3 -11
- package/src/View/NamedQuery/Wizard/NamedQueryWizard.js +6 -8
- package/src/View/Note/NoteEditor.js +9 -10
- package/src/View/Note/NotePopup.js +4 -5
- package/src/View/PlusMinus/MovePlusMinus.js +3 -4
- package/src/View/PlusMinus/Wizard/PlusMinusRuleWizardSection.js +6 -15
- package/src/View/PlusMinus/Wizard/PlusMinusScopeWizardSection.js +2 -1
- package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +78 -31
- package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +7 -9
- package/src/View/QuickSearch/FloatingQuickSearch/FloatingQuickSearch.js +3 -5
- package/src/View/QuickSearch/QuickSearchInput.js +2 -3
- package/src/View/QuickSearch/QuickSearchPopup.d.ts +6 -2
- package/src/View/QuickSearch/QuickSearchPopup.js +18 -28
- package/src/View/QuickSearch/QuickSearchStatusBarContent.js +2 -2
- package/src/View/QuickSearch/QuickSearchViewPanel.js +2 -2
- package/src/View/Schedule/Wizard/ScheduleScheduleSummary.js +2 -4
- package/src/View/Schedule/Wizard/ScheduleScheduleWizard.d.ts +8 -7
- package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +136 -103
- package/src/View/Shortcut/Wizard/ShortcutScopeWizardSection.js +2 -1
- package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +4 -38
- package/src/View/Shortcut/Wizard/ShortcutWizard.js +8 -18
- package/src/View/SmartEdit/SmartEditPopup.js +11 -17
- package/src/View/SmartEdit/SmartEditViewPanel.js +12 -17
- package/src/View/SpecialColumnSettingsWizardStep.js +6 -29
- package/src/View/StateManagement/StateManagementPopup.js +2 -18
- package/src/View/StateManagement/StateManagementViewPanel.js +3 -8
- package/src/View/StateManagement/components/ClearButton.js +2 -2
- package/src/View/StateManagement/components/ExportDropdown.js +2 -2
- package/src/View/StateManagement/components/LoadButton.js +13 -16
- package/src/View/StatusBar/AdaptableStatusBar.js +22 -20
- package/src/View/StatusBar/StatusBarPanel.js +3 -5
- package/src/View/StatusBar/StatusBarPopup.js +7 -6
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +26 -0
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.js +64 -0
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +150 -93
- package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.d.ts +49 -0
- package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.js +138 -0
- package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.d.ts +12 -0
- package/src/View/StyledColumn/Wizard/StyledColumnSparklineSettingsSection.js +107 -172
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +194 -60
- package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.d.ts +14 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +301 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.d.ts +10 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +90 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.d.ts +20 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +282 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.d.ts +26 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +310 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.d.ts +8 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRatingSection.js +211 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.d.ts +12 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +238 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.d.ts +22 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.js +71 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarColumnComparisonPreview.js +6 -14
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarRangesPreview.js +2 -9
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/PercentBarStylePreview.js +2 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.d.ts +5 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +26 -13
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgeSettings.js +20 -19
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.d.ts +16 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.js +61 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardRangesSection.d.ts +12 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardRangesSection.js +153 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.d.ts +10 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +140 -283
- package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.d.ts +13 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +101 -27
- package/src/View/SystemStatus/SystemStatusEntityRow.js +4 -8
- package/src/View/SystemStatus/SystemStatusPopup.js +4 -4
- package/src/View/SystemStatus/SystemStatusStatusBarContent.js +2 -2
- package/src/View/SystemStatus/SystemStatusViewPanel.js +2 -2
- package/src/View/TeamSharing/SharedEntityDependencies.js +7 -11
- package/src/View/TeamSharing/SharedEntityObjectView.js +9 -21
- package/src/View/TeamSharing/TeamSharingApplyButton.js +2 -1
- package/src/View/Theme/ThemePopup.js +2 -27
- package/src/View/Theme/ThemeSelector.d.ts +1 -2
- package/src/View/Theme/ThemeSelector.js +3 -3
- package/src/View/Theme/ThemeStatusbar.d.ts +1 -1
- package/src/View/Theme/ThemeStatusbar.js +3 -4
- package/src/View/Theme/ThemeViewPanel.js +3 -4
- package/src/View/Theme/VariantSelector.js +2 -4
- package/src/View/UIHelper.d.ts +15 -25
- package/src/View/UIHelper.js +40 -116
- package/src/View/Wizard/ObjectTagsWizardSection.js +3 -6
- package/src/View/Wizard/OnePageAdaptableWizard.d.ts +13 -0
- package/src/View/Wizard/OnePageAdaptableWizard.js +21 -28
- package/src/View/Wizard/OnePageWizards.js +54 -70
- package/src/View/Wizard/TypeRadio.d.ts +2 -0
- package/src/View/Wizard/TypeRadio.js +6 -5
- package/src/View/renderWithAdaptableContext.js +3 -4
- package/src/agGrid/AdaptableAgGrid.d.ts +5 -2
- package/src/agGrid/AdaptableAgGrid.js +79 -39
- package/src/agGrid/AdaptableLogger.d.ts +1 -0
- package/src/agGrid/AdaptableLogger.js +8 -0
- package/src/agGrid/AgGridAdapter.d.ts +1 -0
- package/src/agGrid/AgGridAdapter.js +16 -4
- package/src/agGrid/AgGridColumnAdapter.d.ts +26 -0
- package/src/agGrid/AgGridColumnAdapter.js +333 -100
- package/src/agGrid/AgGridMenuAdapter.d.ts +2 -0
- package/src/agGrid/AgGridMenuAdapter.js +120 -6
- package/src/agGrid/cellRenderers/ActionColumnRenderer.d.ts +1 -0
- package/src/agGrid/cellRenderers/ActionColumnRenderer.js +87 -88
- package/src/agGrid/cellRenderers/BadgeRenderer.d.ts +2 -2
- package/src/agGrid/cellRenderers/BadgeRenderer.js +44 -28
- package/src/agGrid/cellRenderers/BulletChartRenderer.d.ts +4 -0
- package/src/agGrid/cellRenderers/BulletChartRenderer.js +391 -0
- package/src/agGrid/cellRenderers/IconRenderer.d.ts +23 -0
- package/src/agGrid/cellRenderers/IconRenderer.js +274 -0
- package/src/agGrid/cellRenderers/PercentBarRenderer.js +234 -65
- package/src/agGrid/cellRenderers/RangeBarRenderer.d.ts +4 -0
- package/src/agGrid/cellRenderers/RangeBarRenderer.js +352 -0
- package/src/agGrid/cellRenderers/RatingRenderer.d.ts +4 -0
- package/src/agGrid/cellRenderers/RatingRenderer.js +157 -0
- package/src/agGrid/cellRenderers/shouldRenderStyledColumnOnRow.d.ts +30 -0
- package/src/agGrid/cellRenderers/shouldRenderStyledColumnOnRow.js +54 -0
- package/src/agGrid/editors/AdaptableDateEditor/InternalAdaptableDateEditor.js +3 -4
- package/src/agGrid/editors/AdaptableDateEditor/index.js +4 -4
- package/src/agGrid/editors/AdaptableNumberEditor/InternalAdaptableNumberEditor.js +17 -19
- package/src/agGrid/editors/AdaptableNumberEditor/index.js +4 -4
- package/src/agGrid/editors/AdaptablePercentageEditor/InternalAdaptablePercentageEditor.js +21 -24
- package/src/agGrid/editors/AdaptablePercentageEditor/index.js +4 -4
- package/src/components/Accordion.js +7 -8
- package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +364 -86
- package/src/components/Card/index.js +8 -8
- package/src/components/CheckBox/index.d.ts +3 -1
- package/src/components/CheckBox/index.js +12 -15
- package/src/components/CodeBlock/index.js +2 -2
- package/src/components/ColorPicker/ColorPicker.js +14 -19
- package/src/components/Combobox/VirtualizedList.d.ts +12 -0
- package/src/components/Combobox/VirtualizedList.js +62 -0
- package/src/components/Combobox/comboboxUtils.d.ts +82 -0
- package/src/components/Combobox/comboboxUtils.js +25 -0
- package/src/components/Combobox/index.d.ts +38 -0
- package/src/components/Combobox/index.js +527 -0
- package/src/components/Dashboard/Dashboard.d.ts +0 -3
- package/src/components/Dashboard/Dashboard.js +15 -42
- package/src/components/Dashboard/DashboardManager.js +2 -1
- package/src/components/Dashboard/DashboardToolbar.js +2 -7
- package/src/components/Datepicker/index.js +243 -106
- package/src/components/Dialog/index.js +7 -9
- package/src/components/DragAndDropContext/ModuleManager.js +2 -8
- package/src/components/DragAndDropContext/TabList.js +27 -41
- package/src/components/DragAndDropContext/UnusedPanel.js +8 -13
- package/src/components/Drawer/index.js +2 -1
- package/src/components/Dropdown/Arrows.js +3 -5
- package/src/components/Dropdown/index.js +15 -20
- package/src/components/DropdownButton/index.js +21 -29
- package/src/components/DropdownButton/renderItem.js +5 -6
- package/src/components/EmptyContent/index.js +3 -4
- package/src/components/ErrorBox/index.js +2 -2
- package/src/components/ExpressionEditor/BaseEditorInput.js +49 -90
- package/src/components/ExpressionEditor/DataTableEditor.js +19 -23
- package/src/components/ExpressionEditor/EditorButton.js +2 -2
- package/src/components/ExpressionEditor/EditorInput.js +2 -2
- package/src/components/ExpressionEditor/EditorInputWithWhereClause.js +8 -15
- package/src/components/ExpressionEditor/ExpressionFunctionDocumentation.js +2 -14
- package/src/components/ExpressionEditor/ExpressionPreview.js +6 -5
- package/src/components/ExpressionEditor/NamedQueryEditor.js +4 -10
- package/src/components/ExpressionEditor/QueryBuilder/QueryBuilder.js +9 -22
- package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +35 -53
- package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +112 -133
- package/src/components/ExpressionEditor/index.js +49 -95
- package/src/components/FieldWrap/index.js +3 -2
- package/src/components/FileDroppable/index.js +17 -28
- package/src/components/Flex.js +3 -2
- package/src/components/FlexWithFooter.js +2 -5
- package/src/components/FormLayout/index.js +7 -7
- package/src/components/HelpBlock/index.js +2 -2
- package/src/components/Icon/index.js +4 -4
- package/src/components/IconSelector/IconSelector.js +12 -23
- package/src/components/InfiniteTable/index.js +2 -2
- package/src/components/Input/NumberInput.js +2 -1
- package/src/components/Input/index.d.ts +1 -0
- package/src/components/Input/index.js +6 -4
- package/src/components/InputGroup/InputGroup.js +2 -2
- package/src/components/Loader/Loader.js +3 -5
- package/src/components/Logo/index.js +2 -9
- package/src/components/Modal/Backdrop.js +2 -1
- package/src/components/Modal/index.js +2 -5
- package/src/components/NewDropdownButton/index.d.ts +26 -0
- package/src/components/NewDropdownButton/index.js +24 -0
- package/src/components/NewSelect/index.d.ts +64 -0
- package/src/components/NewSelect/index.js +70 -0
- package/src/components/NewTooltip/index.d.ts +8 -0
- package/src/components/NewTooltip/index.js +8 -0
- package/src/components/NotifyResize/index.js +2 -1
- package/src/components/OverlayTrigger/Overlay.js +2 -1
- package/src/components/OverlayTrigger/index.js +11 -13
- package/src/components/Panel/index.js +10 -11
- package/src/components/PopupWithFooter.js +3 -3
- package/src/components/ProgressIndicator/ProgressIndicator.js +14 -19
- package/src/components/Radio/index.js +5 -10
- package/src/components/ResizeObserver/index.js +2 -2
- package/src/components/Select/CSSNumericVariableWatch.js +3 -3
- package/src/components/SelectList.js +2 -2
- package/src/components/SelectableList/index.js +3 -2
- package/src/components/SimpleButton/index.d.ts +1 -1
- package/src/components/SimpleButton/index.js +14 -18
- package/src/components/SizedContainer/index.js +6 -8
- package/src/components/StylePreview.js +2 -2
- package/src/components/Table/index.js +2 -2
- package/src/components/Tabs/index.js +5 -10
- package/src/components/Tag/Tag.js +4 -3
- package/src/components/Textarea/index.js +2 -1
- package/src/components/Toggle/Toggle.js +3 -4
- package/src/components/Toggle/ToggleGroup.js +3 -3
- package/src/components/ToggleButton/index.js +14 -17
- package/src/components/Tooltip/index.js +2 -2
- package/src/components/Tree/TreeDropdown/index.d.ts +44 -26
- package/src/components/Tree/TreeDropdown/index.js +503 -265
- package/src/components/Tree/treeUtils.d.ts +10 -0
- package/src/components/Tree/treeUtils.js +25 -0
- package/src/components/WarningBox/index.js +2 -2
- package/src/components/WindowModal/WindowModal.js +4 -4
- package/src/components/WizardPanel/index.js +2 -2
- package/src/components/icons/DefaultIcon.js +2 -2
- package/src/components/icons/add-row.js +2 -3
- package/src/components/icons/alert.js +2 -3
- package/src/components/icons/align-center.js +2 -3
- package/src/components/icons/align-justify.js +2 -3
- package/src/components/icons/align-left.js +2 -3
- package/src/components/icons/align-right.js +2 -3
- package/src/components/icons/analysis.js +2 -4
- package/src/components/icons/application.js +2 -3
- package/src/components/icons/arrow-down-long.js +2 -3
- package/src/components/icons/arrow-down.js +2 -3
- package/src/components/icons/arrow-expand.js +2 -3
- package/src/components/icons/arrow-left.js +2 -4
- package/src/components/icons/arrow-right.js +2 -3
- package/src/components/icons/arrow-up-long.js +2 -3
- package/src/components/icons/arrow-up.js +2 -3
- package/src/components/icons/attach-file.js +2 -4
- package/src/components/icons/badge.js +2 -3
- package/src/components/icons/blanks.js +2 -3
- package/src/components/icons/bold.js +2 -3
- package/src/components/icons/boolean-list.js +2 -3
- package/src/components/icons/brush.js +2 -3
- package/src/components/icons/build.js +2 -4
- package/src/components/icons/bulk-update.js +2 -3
- package/src/components/icons/bullet-chart.d.ts +3 -0
- package/src/components/icons/bullet-chart.js +7 -0
- package/src/components/icons/calculated-column.js +2 -4
- package/src/components/icons/calendar.js +2 -3
- package/src/components/icons/call.js +2 -3
- package/src/components/icons/campaign.js +2 -3
- package/src/components/icons/case-lower.js +2 -3
- package/src/components/icons/case-sentence.js +2 -4
- package/src/components/icons/case-upper.js +2 -3
- package/src/components/icons/cell-summary.js +2 -3
- package/src/components/icons/cell-validation.js +2 -3
- package/src/components/icons/chart.js +2 -3
- package/src/components/icons/chat.js +2 -4
- package/src/components/icons/check-box-outline.js +2 -3
- package/src/components/icons/check-box.js +2 -3
- package/src/components/icons/check-circle.js +2 -3
- package/src/components/icons/check.js +2 -3
- package/src/components/icons/clone.js +2 -3
- package/src/components/icons/close.js +2 -3
- package/src/components/icons/cloud-upload.js +2 -3
- package/src/components/icons/collapse-all.js +2 -3
- package/src/components/icons/collapse.js +2 -3
- package/src/components/icons/column-add.js +2 -6
- package/src/components/icons/column-chooser.js +2 -3
- package/src/components/icons/column-filter.js +2 -3
- package/src/components/icons/column-info.js +2 -3
- package/src/components/icons/column-outline.js +2 -3
- package/src/components/icons/comment.js +2 -3
- package/src/components/icons/comments.js +2 -3
- package/src/components/icons/contact.js +2 -4
- package/src/components/icons/contains.js +2 -3
- package/src/components/icons/copy.js +2 -3
- package/src/components/icons/csv.js +2 -3
- package/src/components/icons/custom-sort.js +2 -3
- package/src/components/icons/dashboard.js +2 -3
- package/src/components/icons/data-object.js +2 -3
- package/src/components/icons/data-set.js +2 -3
- package/src/components/icons/date-range.js +2 -4
- package/src/components/icons/delete.js +2 -3
- package/src/components/icons/division.js +2 -3
- package/src/components/icons/dock.js +2 -3
- package/src/components/icons/dollar.js +2 -3
- package/src/components/icons/drag.js +2 -3
- package/src/components/icons/edit.js +2 -3
- package/src/components/icons/ends-with.js +2 -3
- package/src/components/icons/equal.js +2 -3
- package/src/components/icons/equation.js +2 -3
- package/src/components/icons/error.js +2 -3
- package/src/components/icons/excel.js +2 -4
- package/src/components/icons/expand-all.js +2 -3
- package/src/components/icons/expand.js +2 -3
- package/src/components/icons/exponent.js +2 -3
- package/src/components/icons/export.js +2 -3
- package/src/components/icons/fast-backward.js +2 -3
- package/src/components/icons/fast-forward.js +2 -3
- package/src/components/icons/fdc3.js +2 -5
- package/src/components/icons/filter-off.js +2 -3
- package/src/components/icons/filter.js +2 -3
- package/src/components/icons/flashing-cell.js +2 -3
- package/src/components/icons/folder-open.js +2 -3
- package/src/components/icons/folder-shared.js +2 -3
- package/src/components/icons/folder.js +2 -3
- package/src/components/icons/format-column.js +2 -3
- package/src/components/icons/freetext-column.js +2 -7
- package/src/components/icons/function.js +2 -3
- package/src/components/icons/gradient-column.js +2 -3
- package/src/components/icons/gradient.js +2 -3
- package/src/components/icons/greater-than-or-equal.js +2 -3
- package/src/components/icons/greater-than.js +2 -3
- package/src/components/icons/grid-filter.js +2 -3
- package/src/components/icons/grid-info.js +2 -3
- package/src/components/icons/hide-column.js +2 -4
- package/src/components/icons/history.js +2 -3
- package/src/components/icons/home.js +2 -3
- package/src/components/icons/icon-style.d.ts +3 -0
- package/src/components/icons/icon-style.js +7 -0
- package/src/components/icons/import-export.js +2 -3
- package/src/components/icons/import.js +2 -3
- package/src/components/icons/index.d.ts +1 -1
- package/src/components/icons/index.js +202 -7
- package/src/components/icons/info.js +2 -3
- package/src/components/icons/inspector.js +2 -4
- package/src/components/icons/instrument.js +2 -4
- package/src/components/icons/interactions.js +2 -4
- package/src/components/icons/invalid.js +2 -4
- package/src/components/icons/ipushpull.js +2 -4
- package/src/components/icons/italic.js +2 -3
- package/src/components/icons/justify.js +2 -3
- package/src/components/icons/layout.js +2 -3
- package/src/components/icons/less-than-or-equal.js +2 -3
- package/src/components/icons/less-than.js +2 -3
- package/src/components/icons/list.js +2 -3
- package/src/components/icons/login.js +2 -3
- package/src/components/icons/logout copy.js +2 -4
- package/src/components/icons/logout.js +2 -4
- package/src/components/icons/mail.js +2 -3
- package/src/components/icons/menu.js +2 -3
- package/src/components/icons/minus.js +2 -3
- package/src/components/icons/money.js +2 -4
- package/src/components/icons/multiplication.js +2 -3
- package/src/components/icons/newpage.js +2 -4
- package/src/components/icons/news.js +2 -4
- package/src/components/icons/non-blanks.js +2 -3
- package/src/components/icons/not-contains.js +2 -3
- package/src/components/icons/not-equal.js +2 -3
- package/src/components/icons/note.js +2 -3
- package/src/components/icons/open-in-new.js +2 -3
- package/src/components/icons/order.js +2 -3
- package/src/components/icons/organisation.js +2 -4
- package/src/components/icons/overline.js +2 -3
- package/src/components/icons/pause.js +2 -3
- package/src/components/icons/percent-bar.js +2 -8
- package/src/components/icons/percent.js +2 -3
- package/src/components/icons/person.js +2 -3
- package/src/components/icons/pie-chart.js +2 -3
- package/src/components/icons/play.js +2 -4
- package/src/components/icons/plus-minus.js +2 -3
- package/src/components/icons/plus.js +2 -3
- package/src/components/icons/query.js +2 -3
- package/src/components/icons/quick-search.js +2 -3
- package/src/components/icons/quote.js +2 -4
- package/src/components/icons/range-bar.d.ts +3 -0
- package/src/components/icons/range-bar.js +8 -0
- package/src/components/icons/refresh.js +2 -3
- package/src/components/icons/regex.js +2 -3
- package/src/components/icons/reminder.js +2 -3
- package/src/components/icons/resume.js +2 -3
- package/src/components/icons/rows.js +2 -3
- package/src/components/icons/save.js +2 -3
- package/src/components/icons/schedule.js +2 -6
- package/src/components/icons/science.js +2 -3
- package/src/components/icons/select-all.js +2 -3
- package/src/components/icons/select-fwd.js +2 -3
- package/src/components/icons/select-off.js +2 -3
- package/src/components/icons/settings.js +2 -3
- package/src/components/icons/shortcut.js +2 -3
- package/src/components/icons/show-column.js +2 -4
- package/src/components/icons/smart-edit.js +2 -3
- package/src/components/icons/sort-asc.js +2 -6
- package/src/components/icons/sort-desc.js +2 -6
- package/src/components/icons/spark-line.js +2 -3
- package/src/components/icons/star.d.ts +3 -0
- package/src/components/icons/star.js +4 -0
- package/src/components/icons/starts-with.js +2 -3
- package/src/components/icons/state-management.js +2 -3
- package/src/components/icons/statusbar.js +2 -4
- package/src/components/icons/stop.js +2 -3
- package/src/components/icons/strikethrough.js +2 -3
- package/src/components/icons/styled-grid.js +2 -4
- package/src/components/icons/sync.js +2 -3
- package/src/components/icons/system-status.js +2 -3
- package/src/components/icons/tab-unselected.js +2 -3
- package/src/components/icons/table-arrow-right.js +2 -3
- package/src/components/icons/team-share.js +2 -3
- package/src/components/icons/theme.js +2 -4
- package/src/components/icons/tool-panel.js +2 -3
- package/src/components/icons/track-changes.js +2 -4
- package/src/components/icons/triangle-down.js +2 -3
- package/src/components/icons/triangle-up.js +2 -3
- package/src/components/icons/unchecked.js +2 -3
- package/src/components/icons/underline.js +2 -3
- package/src/components/icons/undo.js +2 -3
- package/src/components/icons/updated-row.js +2 -3
- package/src/components/icons/upload.js +2 -4
- package/src/components/icons/user-filter.js +2 -3
- package/src/components/icons/visibility-off.js +2 -3
- package/src/components/icons/visibility.js +2 -4
- package/src/components/icons/warning.js +2 -3
- package/src/components/twUtils.d.ts +3 -0
- package/src/components/twUtils.js +9 -3
- package/src/components/ui/button.d.ts +8 -0
- package/src/components/ui/button.js +34 -0
- package/src/components/ui/calendar.d.ts +7 -0
- package/src/components/ui/calendar.js +104 -0
- package/src/components/ui/combobox.d.ts +48 -0
- package/src/components/ui/combobox.js +100 -0
- package/src/components/ui/dropdown-menu.d.ts +29 -0
- package/src/components/ui/dropdown-menu.js +50 -0
- package/src/components/ui/input-group.d.ts +18 -0
- package/src/components/ui/input-group.js +57 -0
- package/src/components/ui/input.d.ts +3 -0
- package/src/components/ui/input.js +7 -0
- package/src/components/ui/popover.d.ts +9 -0
- package/src/components/ui/popover.js +22 -0
- package/src/components/ui/select.d.ts +26 -0
- package/src/components/ui/select.js +38 -0
- package/src/components/ui/textarea.d.ts +3 -0
- package/src/components/ui/textarea.js +6 -0
- package/src/components/ui/tooltip.d.ts +6 -0
- package/src/components/ui/tooltip.js +16 -0
- package/src/env.js +2 -2
- package/src/layout-manager/src/index.d.ts +2 -2
- package/src/layout-manager/src/index.js +11 -4
- package/src/lib/utils.d.ts +3 -0
- package/src/lib/utils.js +6 -0
- package/src/metamodel/adaptable.metamodel.d.ts +381 -59
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/migration/AdaptableUpgradeHelper.js +3 -1
- package/src/migration/VersionUpgrade22.js +11 -21
- package/src/migration/VersionUpgrade23.d.ts +85 -0
- package/src/migration/VersionUpgrade23.js +237 -0
- package/src/setupDevTools.d.ts +3 -0
- package/src/setupDevTools.js +410 -0
- package/src/types.d.ts +13 -12
- package/src/types.js +1 -0
- package/themes/dark.css +27 -7
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/fonts/glyphicons-halflings-regular.eot +0 -0
- package/fonts/glyphicons-halflings-regular.svg +0 -288
- package/fonts/glyphicons-halflings-regular.ttf +0 -0
- package/fonts/glyphicons-halflings-regular.woff +0 -0
- package/fonts/glyphicons-halflings-regular.woff2 +0 -0
- package/src/AdaptableState/ScheduleState.d.ts +0 -52
- package/src/Api/Events/ScheduleTriggered.d.ts +0 -11
- package/src/Api/Implementation/ScheduleApiImpl.d.ts +0 -51
- package/src/Api/Implementation/ScheduleApiImpl.js +0 -199
- package/src/Api/ScheduleApi.d.ts +0 -224
- package/src/Api/ScheduleApi.js +0 -1
- package/src/Redux/ActionsReducers/ScheduleRedux.d.ts +0 -191
- package/src/Redux/ActionsReducers/ScheduleRedux.js +0 -390
- package/src/Strategy/Interface/IScheduleModule.d.ts +0 -4
- package/src/Strategy/Interface/IScheduleModule.js +0 -1
- package/src/Strategy/ScheduleModule.d.ts +0 -21
- package/src/Strategy/ScheduleModule.js +0 -269
- package/src/View/FormatColumn/Wizard/FormatColumnColumnScopeWizardSection.js +0 -46
- package/src/View/FormatColumn/Wizard/FormatColumnRowScopeWizardSection.d.ts +0 -8
- package/src/View/FormatColumn/Wizard/FormatColumnRowScopeWizardSection.js +0 -80
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsIPushPull.d.ts +0 -11
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsIPushPull.js +0 -73
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsOpenFin.d.ts +0 -9
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsOpenFin.js +0 -36
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.d.ts +0 -8
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +0 -75
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.d.ts +0 -12
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +0 -65
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsSummary.d.ts +0 -7
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsSummary.js +0 -86
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsWizard.d.ts +0 -7
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsWizard.js +0 -30
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/index.d.ts +0 -3
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/index.js +0 -3
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.d.ts +0 -3
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.js +0 -53
- package/src/View/Schedule/Wizard/ScheduleWizard.d.ts +0 -6
- package/src/View/Schedule/Wizard/ScheduleWizard.js +0 -109
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeRowsSection.d.ts +0 -8
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeRowsSection.js +0 -101
- package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.d.ts +0 -9
- package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +0 -89
- package/src/View/Theme/ThemeEditor.d.ts +0 -8
- package/src/View/Theme/ThemeEditor.js +0 -160
- package/src/View/Theme/ThemeEditorWindow.d.ts +0 -2
- package/src/View/Theme/ThemeEditorWindow.js +0 -10
- package/src/View/Theme/ThemeField.d.ts +0 -11
- package/src/View/Theme/ThemeField.js +0 -34
- package/src/components/Select/Select.d.ts +0 -53
- package/src/components/Select/Select.js +0 -765
- package/src/components/Select/index.d.ts +0 -1
- package/src/components/Select/index.js +0 -1
- package/src/components/Tree/TreeList/index.d.ts +0 -25
- package/src/components/Tree/TreeList/index.js +0 -31
- /package/{src/AdaptableState/ScheduleState.js → devtools.js} +0 -0
- /package/src/Api/Events/{ScheduleTriggered.js → ReportScheduleRan.js} +0 -0
- /package/src/{Api/Internal/ScheduleInternalApi.d.ts → Strategy/Interface/IAlertModule.js} +0 -0
- /package/src/{Api/Internal/ScheduleInternalApi.js → Strategy/Interface/IExportModule.js} +0 -0
- /package/src/View/FormatColumn/Wizard/{FormatColumnColumnScopeWizardSection.d.ts → FormatColumnScopeWizardSection.d.ts} +0 -0
|
@@ -1,59 +1,163 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
2
|
import * as React from 'react';
|
|
3
|
+
import { flattenAdaptableFormFields, isAdaptableFormFieldDisabled, isAdaptableFormFieldGroup, isAdaptableFormFieldGroupHidden, isAdaptableFormFieldHidden, validateAdaptableForm, } from '../../AdaptableState/Common/AdaptableForm';
|
|
2
4
|
import FormLayout, { FormRow } from '../FormLayout';
|
|
3
5
|
import Input from '../Input';
|
|
4
|
-
import
|
|
6
|
+
import { AdaptableButtonView, } from '../../View/Components/AdaptableButton';
|
|
5
7
|
import AdaptableInput from '../../View/Components/AdaptableInput';
|
|
6
|
-
import { useMemo } from 'react';
|
|
8
|
+
import { useEffect, useId, useMemo, useState } from 'react';
|
|
7
9
|
import { useAdaptable } from '../../View/AdaptableContext';
|
|
8
|
-
import { Select } from '../Select';
|
|
9
10
|
import { Box, Flex } from '../Flex';
|
|
10
11
|
import { twMerge } from '../../twMerge';
|
|
12
|
+
import { MultiCombobox, SingleCombobox } from '../Combobox';
|
|
11
13
|
export function AdaptableFormComponentButtons({ formDef, onClick, defaultTone, disabledButtons, api, context, focusFirstButton = true, }) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
: {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
: {
|
|
25
|
-
...api.internalApi.buildBaseContext(),
|
|
26
|
-
});
|
|
27
|
-
let buttonTooltip = api.internalApi.getTooltipForButton(button, context
|
|
28
|
-
? context
|
|
29
|
-
: {
|
|
30
|
-
...api.internalApi.buildBaseContext(),
|
|
31
|
-
});
|
|
32
|
-
return (React.createElement(SimpleButton, { autoFocus: focusFirstButton && index === 0, disabled: disabledButtons[index], key: index, tooltip: buttonTooltip, icon: buttonIcon, tone: buttonStyle?.tone ?? defaultTone, variant: buttonStyle?.variant, "data-text": buttonLabel, className: twMerge(index ? 'twa:ml-2' : '', buttonStyle?.className), onClick: () => {
|
|
33
|
-
onClick(button);
|
|
34
|
-
} }, buttonLabel));
|
|
35
|
-
})));
|
|
14
|
+
const formContext = context ??
|
|
15
|
+
{
|
|
16
|
+
...api.internalApi.buildBaseContext(),
|
|
17
|
+
};
|
|
18
|
+
return (_jsx(_Fragment, { children: formDef.buttons.map((button, index) => {
|
|
19
|
+
const buttonLabel = api.internalApi.getLabelForButton(button, formContext) ?? '';
|
|
20
|
+
const buttonStyle = api.internalApi.getStyleForButton(button, formContext);
|
|
21
|
+
return (_jsx(AdaptableButtonView, { button: button, context: formContext, api: api, defaults: {
|
|
22
|
+
tone: defaultTone,
|
|
23
|
+
variant: buttonStyle?.variant,
|
|
24
|
+
}, rerenderOnClick: false, iconSize: { height: 15, width: 15 }, autoFocus: focusFirstButton && index === 0, disabled: disabledButtons?.[index], "data-text": buttonLabel, className: twMerge(index ? 'twa:ml-2' : '', buttonStyle?.className), onClick: () => onClick(button) }, index));
|
|
25
|
+
}) }));
|
|
36
26
|
}
|
|
37
27
|
export function AdaptableFormComponent({ formDef, data, onChange, onButtonClick, displayTitle, api, context, focusFirstButton, }) {
|
|
38
28
|
const getFieldValue = (key) => data[key];
|
|
39
29
|
const setFieldValue = (key, value) => {
|
|
40
30
|
const newData = { ...data, [key]: value };
|
|
41
31
|
onChange(newData);
|
|
32
|
+
// Per-field `onValueChange` hook. We resolve the field by name from the
|
|
33
|
+
// form definition so callers (e.g. number-input keyDown handler) can use
|
|
34
|
+
// the same setter and still get the per-field callback fired.
|
|
35
|
+
//
|
|
36
|
+
// We enrich the host-supplied `context` with the freshly-computed
|
|
37
|
+
// `newData` as `formData` so consumers (e.g. CustomToolbarFormContext)
|
|
38
|
+
// see the updated values immediately - without having to wait for a
|
|
39
|
+
// React re-render to flush the new `data` prop into a rebuilt context.
|
|
40
|
+
const changedField = flatFields.find((f) => f.name === key);
|
|
41
|
+
if (changedField?.onValueChange) {
|
|
42
|
+
const enrichedContext = { ...(context ?? {}), formData: newData };
|
|
43
|
+
changedField.onValueChange(value, enrichedContext);
|
|
44
|
+
}
|
|
42
45
|
};
|
|
43
46
|
const adaptable = useAdaptable();
|
|
47
|
+
// Stable form-instance id used to namespace every field's id so that
|
|
48
|
+
// multiple AdaptableForms on the same page (Alerts + a Custom Toolbar +
|
|
49
|
+
// a wizard, say) don't generate clashing DOM ids - and so screen readers
|
|
50
|
+
// can correctly resolve `htmlFor` / `aria-describedby` references.
|
|
51
|
+
const formInstanceId = useId();
|
|
52
|
+
const fieldDomId = (field) => `${formInstanceId}-${field.name}`;
|
|
53
|
+
const fieldLabelId = (field) => `${formInstanceId}-${field.name}-label`;
|
|
54
|
+
const fieldHelpId = (field) => `${formInstanceId}-${field.name}-help`;
|
|
55
|
+
const fieldErrorId = (field) => `${formInstanceId}-${field.name}-error`;
|
|
56
|
+
// Flat list of fields - shared by validation, options resolution, etc.
|
|
57
|
+
// Flattens both inline-row arrays and field groups.
|
|
58
|
+
const flatFields = useMemo(() => flattenAdaptableFormFields(formDef), [formDef]);
|
|
59
|
+
// Cache for async options resolution. Populated by the effect below.
|
|
60
|
+
const [asyncOptionsCache, setAsyncOptionsCache] = useState({});
|
|
61
|
+
// Kick off resolution of any function-form `options` that return a
|
|
62
|
+
// Promise. Synchronous functions are still resolved during render
|
|
63
|
+
// (via `resolveOptions`) so there's no first-paint lag for them.
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
let cancelled = false;
|
|
66
|
+
flatFields.forEach((field) => {
|
|
67
|
+
const usesOptions = field.fieldType === 'select' || field.fieldType === 'radio';
|
|
68
|
+
if (usesOptions && typeof field.options === 'function') {
|
|
69
|
+
const result = field.options(data, context);
|
|
70
|
+
if (result instanceof Promise) {
|
|
71
|
+
result
|
|
72
|
+
.then((resolved) => {
|
|
73
|
+
if (!cancelled) {
|
|
74
|
+
setAsyncOptionsCache((prev) => ({ ...prev, [field.name]: resolved }));
|
|
75
|
+
}
|
|
76
|
+
})
|
|
77
|
+
.catch(() => {
|
|
78
|
+
/* swallow - leave the previous cache entry in place */
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
return () => {
|
|
84
|
+
cancelled = true;
|
|
85
|
+
};
|
|
86
|
+
}, [flatFields, data, context]);
|
|
87
|
+
const resolveOptions = (field) => {
|
|
88
|
+
const opts = field.options;
|
|
89
|
+
if (!opts)
|
|
90
|
+
return [];
|
|
91
|
+
if (Array.isArray(opts))
|
|
92
|
+
return opts;
|
|
93
|
+
const result = opts(data, context);
|
|
94
|
+
if (result instanceof Promise) {
|
|
95
|
+
return asyncOptionsCache[field.name] ?? [];
|
|
96
|
+
}
|
|
97
|
+
return result;
|
|
98
|
+
};
|
|
99
|
+
// Run validation once per render so errors can be rendered inline AND
|
|
100
|
+
// exposed to button-level handlers via context (`formIsValid`,
|
|
101
|
+
// `formErrors`).
|
|
102
|
+
const formErrors = useMemo(() => validateAdaptableForm(formDef, data, context),
|
|
103
|
+
// intentionally include formDef so dynamic hidden/disabled functions
|
|
104
|
+
// re-evaluate when the form definition changes
|
|
105
|
+
[formDef, data, context]);
|
|
106
|
+
const formIsValid = Object.keys(formErrors).length === 0;
|
|
107
|
+
// Context enriched with the freshly-computed form data + validity, so
|
|
108
|
+
// that button hidden/disabled/onClick callbacks see consistent values.
|
|
109
|
+
const buttonContext = useMemo(() => ({
|
|
110
|
+
...(context ?? {}),
|
|
111
|
+
formData: data,
|
|
112
|
+
formIsValid,
|
|
113
|
+
formErrors,
|
|
114
|
+
}), [context, data, formIsValid, formErrors]);
|
|
44
115
|
const disabledButtons = useMemo(() => formDef.buttons?.map((button) => {
|
|
45
116
|
// defensive programming: conventionally context should ALWAYS be present for validating buttons
|
|
46
|
-
const isValid = !!button.disabled && !!
|
|
117
|
+
const isValid = !!button.disabled && !!buttonContext ? !button.disabled(button, buttonContext) : true;
|
|
47
118
|
return !isValid;
|
|
48
|
-
}) ?? [], [
|
|
119
|
+
}) ?? [], [buttonContext, formDef.buttons]);
|
|
49
120
|
const renderLabel = (field) => {
|
|
50
|
-
|
|
121
|
+
const required = field.required;
|
|
122
|
+
// For radio groups we render a `<div>` (the radiogroup container has
|
|
123
|
+
// no single focusable element to associate the label with), but for
|
|
124
|
+
// every other field type we wire the label to the field's input with
|
|
125
|
+
// `htmlFor` so clicking the label focuses the control and so screen
|
|
126
|
+
// readers announce it correctly.
|
|
127
|
+
const useFor = field.fieldType !== 'radio' && field.fieldType !== 'textOutput';
|
|
128
|
+
const requiredMarker = required ? (_jsx("span", { className: "ab-Form_required-marker", "aria-hidden": "true", children: ' *' })) : null;
|
|
129
|
+
if (useFor) {
|
|
130
|
+
return (_jsxs("label", { id: fieldLabelId(field), htmlFor: fieldDomId(field), className: "ab-FormLayout_column--label", style: { textAlign: 'end' }, title: field.tooltip, children: [field.label, requiredMarker] }));
|
|
131
|
+
}
|
|
132
|
+
return (_jsxs(Box, { id: fieldLabelId(field), className: "ab-FormLayout_column--label", style: { textAlign: 'end' }, title: field.tooltip, children: [field.label, requiredMarker] }));
|
|
51
133
|
};
|
|
52
134
|
const renderField = (field) => {
|
|
53
135
|
const value = getFieldValue(field.name) ?? '';
|
|
136
|
+
const isDisabled = isAdaptableFormFieldDisabled(field, data, context);
|
|
137
|
+
const error = formErrors[field.name];
|
|
138
|
+
// Accessibility: every editable input gets a stable id (so the label's
|
|
139
|
+
// `htmlFor` resolves) plus `aria-*` attributes that announce required
|
|
140
|
+
// state, validity and link the help / error text via
|
|
141
|
+
// `aria-describedby`.
|
|
142
|
+
const inputId = fieldDomId(field);
|
|
143
|
+
const helpId = field.helpText ? fieldHelpId(field) : undefined;
|
|
144
|
+
const errorId = error ? fieldErrorId(field) : undefined;
|
|
145
|
+
const describedBy = [errorId, helpId].filter(Boolean).join(' ') || undefined;
|
|
146
|
+
const a11yProps = {
|
|
147
|
+
id: inputId,
|
|
148
|
+
'aria-required': field.required ? true : undefined,
|
|
149
|
+
'aria-invalid': error ? true : undefined,
|
|
150
|
+
'aria-describedby': describedBy,
|
|
151
|
+
};
|
|
54
152
|
const onChange = (event) => {
|
|
55
153
|
if (field.fieldType === 'number') {
|
|
56
|
-
const
|
|
154
|
+
const rawValue = event.target.value;
|
|
155
|
+
// Empty string -> null (so `required` validation can detect it)
|
|
156
|
+
if (rawValue === '') {
|
|
157
|
+
setFieldValue(field.name, null);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
const numberValue = Number(rawValue);
|
|
57
161
|
if (isNaN(numberValue)) {
|
|
58
162
|
setFieldValue(field.name, null);
|
|
59
163
|
}
|
|
@@ -65,78 +169,252 @@ export function AdaptableFormComponent({ formDef, data, onChange, onButtonClick,
|
|
|
65
169
|
setFieldValue(field.name, event.target.value);
|
|
66
170
|
}
|
|
67
171
|
};
|
|
172
|
+
let control;
|
|
68
173
|
switch (field.fieldType) {
|
|
69
174
|
case 'text':
|
|
70
175
|
case 'number':
|
|
71
176
|
case 'date':
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
177
|
+
control = (_jsx(AdaptableInput, { type: field.fieldType, className: "twa:w-full", name: field.name, value: value, onChange: onChange, disabled: isDisabled, placeholder: field.placeholder, min: field.min, max: field.max, step: field.step, minLength: field.fieldType === 'text' ? field.minLength : undefined, maxLength: field.fieldType === 'text' ? field.maxLength : undefined, pattern: field.fieldType === 'text' ? field.pattern : undefined, ...a11yProps }));
|
|
178
|
+
break;
|
|
179
|
+
case 'time':
|
|
180
|
+
control = (_jsx(Input, { type: "time", className: "twa:w-full", name: field.name, value: value, onChange: onChange, disabled: isDisabled, placeholder: field.placeholder, min: field.min, max: field.max, step: field.step, ...a11yProps }));
|
|
181
|
+
break;
|
|
182
|
+
case 'datetime':
|
|
183
|
+
control = (_jsx(Input, { type: "datetime-local", className: "twa:w-full", name: field.name, value: value, onChange: onChange, disabled: isDisabled, placeholder: field.placeholder, min: field.min, max: field.max, step: field.step, ...a11yProps }));
|
|
184
|
+
break;
|
|
185
|
+
case 'color':
|
|
186
|
+
control = (_jsx(Input, { type: "color", name: field.name, value: value || '#000000', onChange: onChange, disabled: isDisabled, ...a11yProps }));
|
|
187
|
+
break;
|
|
188
|
+
case 'textarea': {
|
|
189
|
+
const rows = field.rows ?? 3;
|
|
190
|
+
control = (_jsx("textarea", { id: inputId, name: field.name, value: value, disabled: isDisabled, placeholder: field.placeholder, minLength: field.minLength, maxLength: field.maxLength, rows: rows, "aria-required": field.required ? true : undefined, "aria-invalid": error ? true : undefined, "aria-describedby": describedBy, onChange: (e) => setFieldValue(field.name, e.target.value), className: twMerge('ab-Input', 'twa:box-border', 'twa:rounded-input', 'twa:w-full', 'twa:p-2', isDisabled
|
|
191
|
+
? 'twa:bg-(--ab-cmp-input--disabled__background)'
|
|
192
|
+
: 'twa:bg-input-background') }));
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
case 'slider': {
|
|
196
|
+
const min = typeof field.min === 'number' ? field.min : 0;
|
|
197
|
+
const max = typeof field.max === 'number' ? field.max : 100;
|
|
198
|
+
const step = field.step ?? 1;
|
|
199
|
+
const numericValue = typeof value === 'number' ? value : Number(value) || min;
|
|
200
|
+
control = (_jsxs(Flex, { flexDirection: "row", alignItems: "center", style: { columnGap: 'var(--ab-base-space)', minWidth: 160 }, children: [_jsx(Input, { type: "range", name: field.name, value: numericValue, disabled: isDisabled, min: min, max: max, step: step, "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": numericValue, onChange: (e) => {
|
|
201
|
+
const next = Number(e.target.value);
|
|
202
|
+
setFieldValue(field.name, Number.isNaN(next) ? null : next);
|
|
203
|
+
}, className: "twa:flex-1", ...a11yProps }), _jsx(Box, { className: "twa:text-xs twa:tabular-nums", style: { minWidth: 32, textAlign: 'right' }, "aria-hidden": "true", children: numericValue })] }));
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
case 'select': {
|
|
207
|
+
const items = resolveOptions(field).map((item) => ({
|
|
75
208
|
value: item.value,
|
|
76
209
|
label: item.label,
|
|
77
|
-
onClick: () => setFieldValue(field.name, item.value),
|
|
78
210
|
}));
|
|
79
|
-
|
|
211
|
+
// The underlying SingleCombobox / MultiCombobox manage their own
|
|
212
|
+
// popup-based focus; we wrap them in a labelled `role="group"` so
|
|
213
|
+
// assistive tech announces "<label> group" when focus enters and
|
|
214
|
+
// can read out the help/error text via `aria-describedby`.
|
|
215
|
+
const groupProps = {
|
|
216
|
+
id: inputId,
|
|
217
|
+
role: 'group',
|
|
218
|
+
'aria-labelledby': fieldLabelId(field),
|
|
219
|
+
'aria-required': field.required ? true : undefined,
|
|
220
|
+
'aria-invalid': error ? true : undefined,
|
|
221
|
+
'aria-describedby': describedBy,
|
|
222
|
+
};
|
|
223
|
+
if (field.multi) {
|
|
224
|
+
// For multi-selects the canonical value is an array. Coerce
|
|
225
|
+
// anything else (e.g. legacy string defaults) to [] so the
|
|
226
|
+
// underlying combobox never receives a non-array value.
|
|
227
|
+
const selected = Array.isArray(value) ? value : [];
|
|
228
|
+
control = (_jsx(Box, { ...groupProps, children: _jsx(MultiCombobox, { items: items, onValueChange: (newValues) => setFieldValue(field.name, newValues), value: selected, disabled: isDisabled, placeholder: field.placeholder }) }));
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
control = (_jsx(Box, { ...groupProps, children: _jsx(SingleCombobox, { items: items, onValueChange: (newValue) => setFieldValue(field.name, newValue), value: value, disabled: isDisabled, placeholder: field.placeholder }) }));
|
|
232
|
+
}
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
case 'radio': {
|
|
236
|
+
const items = resolveOptions(field);
|
|
237
|
+
const groupName = `${formInstanceId}-radio-${field.name}`;
|
|
238
|
+
control = (_jsx(Flex, { id: inputId, role: "radiogroup", "aria-labelledby": fieldLabelId(field), "aria-required": field.required ? true : undefined, "aria-invalid": error ? true : undefined, "aria-describedby": describedBy, flexDirection: "row", alignItems: "center", flexWrap: "wrap", style: { columnGap: 'var(--ab-base-space-2)', rowGap: 'var(--ab-base-space)' }, children: items.map((item) => {
|
|
239
|
+
const optionId = `${groupName}-${String(item.value)}`;
|
|
240
|
+
const checked = value === item.value;
|
|
241
|
+
return (_jsxs("label", { htmlFor: optionId, className: "twa:flex twa:flex-row twa:items-center twa:box-border", style: {
|
|
242
|
+
columnGap: 'var(--ab-base-space)',
|
|
243
|
+
cursor: isDisabled ? 'not-allowed' : 'pointer',
|
|
244
|
+
}, children: [_jsx(Input, { type: "radio", id: optionId, name: groupName, value: String(item.value), checked: checked, disabled: isDisabled, onChange: () => setFieldValue(field.name, item.value) }), _jsx(Box, { children: item.label })] }, optionId));
|
|
245
|
+
}) }));
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
80
248
|
case 'checkbox':
|
|
81
|
-
|
|
249
|
+
control = (_jsx(Input, { type: "checkbox", name: field.name, checked: value, disabled: isDisabled, onChange: (event) => {
|
|
82
250
|
setFieldValue(field.name, event.target.checked);
|
|
83
|
-
} }));
|
|
251
|
+
}, ...a11yProps }));
|
|
252
|
+
break;
|
|
84
253
|
case 'textOutput':
|
|
85
|
-
|
|
254
|
+
control = _jsx(Box, { className: "twa:pl-2 twa:text-left", children: value });
|
|
255
|
+
break;
|
|
256
|
+
case 'custom':
|
|
257
|
+
// The consumer renders whatever they like; we keep the wiring
|
|
258
|
+
// controlled by routing reads/writes through `setFieldValue`.
|
|
259
|
+
control = field.render ? (field.render({
|
|
260
|
+
value,
|
|
261
|
+
setValue: (newValue) => setFieldValue(field.name, newValue),
|
|
262
|
+
field,
|
|
263
|
+
formData: data,
|
|
264
|
+
context,
|
|
265
|
+
disabled: isDisabled,
|
|
266
|
+
error,
|
|
267
|
+
})) : (_jsx(Box, { className: "twa:text-xs twa:opacity-60", children: "custom field requires a `render` function" }));
|
|
268
|
+
break;
|
|
86
269
|
default:
|
|
87
|
-
|
|
88
|
-
"Unknown field type: ",
|
|
89
|
-
field.fieldType);
|
|
270
|
+
control = _jsxs("div", { children: ["Unknown field type: ", field.fieldType] });
|
|
90
271
|
}
|
|
272
|
+
// No surrounding wrapper if there's nothing extra to show - keeps the
|
|
273
|
+
// existing simple cases visually identical.
|
|
274
|
+
if (!field.helpText && !error) {
|
|
275
|
+
return control;
|
|
276
|
+
}
|
|
277
|
+
return (_jsxs(Box, { children: [control, field.helpText && !error ? (_jsx(Box, { id: helpId, className: "ab-Form_help twa:text-xs twa:opacity-70 twa:mt-1", children: field.helpText })) : null, error ? (_jsx(Box, { id: errorId, role: "alert", "aria-live": "polite", className: "ab-Form_error twa:text-xs twa:mt-1", style: { color: 'var(--ab-color-error, #c00)' }, children: error })) : null] }));
|
|
91
278
|
};
|
|
92
279
|
// by default we have 2 columns: label & input
|
|
93
280
|
const columns = formDef.config?.columns ?? [1, 2];
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
281
|
+
// Form-level Enter-to-submit. Shift+Enter or Enter inside a textarea
|
|
282
|
+
// inserts a newline rather than submitting; this matches user
|
|
283
|
+
// expectations for multi-line inputs. We explicitly don't trigger on
|
|
284
|
+
// submit when a select dropdown is open (Enter selects an option),
|
|
285
|
+
// which the SingleCombobox/MultiCombobox handle internally by
|
|
286
|
+
// stopping propagation.
|
|
287
|
+
const handleFormKeyDown = (event) => {
|
|
288
|
+
handleKeyDownForNumberFields(event);
|
|
289
|
+
if (!formDef.onSubmit) {
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
if (event.key !== 'Enter') {
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
if (event.shiftKey) {
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
const target = event.target;
|
|
299
|
+
if (target && target.tagName === 'TEXTAREA') {
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
if (!formIsValid) {
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
event.preventDefault();
|
|
306
|
+
formDef.onSubmit(data, buttonContext);
|
|
307
|
+
};
|
|
308
|
+
const handleKeyDownForNumberFields = (event) => {
|
|
309
|
+
const target = event.target;
|
|
310
|
+
const targetName = target.name;
|
|
311
|
+
const field = flatFields.find((f) => f.name === targetName);
|
|
312
|
+
if (field && field.fieldType === 'number') {
|
|
313
|
+
// for number fields
|
|
314
|
+
// hook them up to the CellEditorKeyDown event
|
|
315
|
+
// so Shortcuts work as expected
|
|
316
|
+
const value = event.target.value;
|
|
317
|
+
adaptable._emit('CellEditorKeyDown', {
|
|
318
|
+
keyDownEvent: event,
|
|
319
|
+
cellValue: value,
|
|
320
|
+
columnId: field.name,
|
|
321
|
+
updateValueCallback: (updatedValue) => {
|
|
322
|
+
setFieldValue(field.name, updatedValue);
|
|
323
|
+
},
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
};
|
|
327
|
+
// `inline` lays fields out on a single horizontal row, with each field
|
|
328
|
+
// rendered as `<label> <input>` side-by-side. Designed for compact hosts
|
|
329
|
+
// like Dashboard Custom Toolbars; the standard popup/wizard layout (rows
|
|
330
|
+
// with label-on-left grid) is preserved for everything else.
|
|
331
|
+
const isInlineLayout = formDef.layout === 'inline';
|
|
332
|
+
// Inline-layout entries: groups are flattened (their title/description
|
|
333
|
+
// skipped because there's no vertical room) but inline-row arrays are
|
|
334
|
+
// also flattened so every visible field becomes its own cell.
|
|
335
|
+
const renderInlineEntries = () => {
|
|
336
|
+
const items = [];
|
|
337
|
+
for (const entry of formDef.fields ?? []) {
|
|
338
|
+
if (isAdaptableFormFieldGroup(entry)) {
|
|
339
|
+
if (isAdaptableFormFieldGroupHidden(entry, data, context))
|
|
340
|
+
continue;
|
|
341
|
+
for (const inner of entry.fields) {
|
|
342
|
+
if (Array.isArray(inner))
|
|
343
|
+
items.push(...inner);
|
|
344
|
+
else
|
|
345
|
+
items.push(inner);
|
|
123
346
|
}
|
|
124
|
-
}
|
|
125
|
-
if (Array.isArray(
|
|
126
|
-
|
|
127
|
-
field.map((fieldItem, index) => {
|
|
128
|
-
const rowFieldIndex = 2 * index + 1;
|
|
129
|
-
rowFields[rowFieldIndex] = renderLabel(fieldItem);
|
|
130
|
-
rowFields[rowFieldIndex + 1] = renderField(fieldItem);
|
|
131
|
-
});
|
|
132
|
-
return React.createElement(FormRow, { key: index, ...rowFields });
|
|
347
|
+
}
|
|
348
|
+
else if (Array.isArray(entry)) {
|
|
349
|
+
items.push(...entry);
|
|
133
350
|
}
|
|
134
351
|
else {
|
|
135
|
-
|
|
136
|
-
renderLabel(field),
|
|
137
|
-
renderField(field)));
|
|
352
|
+
items.push(entry);
|
|
138
353
|
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
|
|
354
|
+
}
|
|
355
|
+
return items
|
|
356
|
+
.filter((field) => !isAdaptableFormFieldHidden(field, data, context))
|
|
357
|
+
.map((field) => {
|
|
358
|
+
const useFor = field.fieldType !== 'radio' && field.fieldType !== 'textOutput';
|
|
359
|
+
const requiredMarker = field.required ? (_jsx("span", { className: "ab-Form_required-marker", "aria-hidden": "true", children: ' *' })) : null;
|
|
360
|
+
return (_jsxs(Flex, { flexDirection: "row", alignItems: "center", style: { columnGap: 'var(--ab-base-space)' }, children: [field.label ? (useFor ? (_jsxs("label", { id: fieldLabelId(field), htmlFor: fieldDomId(field), className: "ab-FormLayout--inline_field-label", title: field.tooltip, children: [field.label, requiredMarker] })) : (_jsxs(Box, { id: fieldLabelId(field), className: "ab-FormLayout--inline_field-label", title: field.tooltip, children: [field.label, requiredMarker] }))) : null, renderField(field)] }, field.name));
|
|
361
|
+
});
|
|
362
|
+
};
|
|
363
|
+
const renderRowsEntry = (entry, index) => {
|
|
364
|
+
if (isAdaptableFormFieldGroup(entry)) {
|
|
365
|
+
if (isAdaptableFormFieldGroupHidden(entry, data, context)) {
|
|
366
|
+
return null;
|
|
367
|
+
}
|
|
368
|
+
// Render inner items using the same row/inline-row logic that
|
|
369
|
+
// top-level entries use, just nested below the group header.
|
|
370
|
+
const innerNodes = entry.fields.map((inner, innerIndex) => {
|
|
371
|
+
if (Array.isArray(inner)) {
|
|
372
|
+
const visible = inner.filter((f) => !isAdaptableFormFieldHidden(f, data, context));
|
|
373
|
+
if (visible.length === 0)
|
|
374
|
+
return null;
|
|
375
|
+
// `renderField` returns `React.ReactNode` (custom fields may
|
|
376
|
+
// produce strings/fragments) so we widen the row-bag to match.
|
|
377
|
+
const rowFields = {};
|
|
378
|
+
visible.map((fieldItem, idx) => {
|
|
379
|
+
const rowFieldIndex = 2 * idx + 1;
|
|
380
|
+
rowFields[rowFieldIndex] = renderLabel(fieldItem);
|
|
381
|
+
rowFields[rowFieldIndex + 1] = renderField(fieldItem);
|
|
382
|
+
});
|
|
383
|
+
return _jsx(FormRow, { ...rowFields }, `g${index}-r${innerIndex}`);
|
|
384
|
+
}
|
|
385
|
+
if (isAdaptableFormFieldHidden(inner, data, context))
|
|
386
|
+
return null;
|
|
387
|
+
return (_jsxs(FormRow, { children: [renderLabel(inner), renderField(inner)] }, `g${index}-${inner.name}`));
|
|
388
|
+
});
|
|
389
|
+
const hasHeader = entry.title || entry.description;
|
|
390
|
+
return (_jsxs(React.Fragment, { children: [hasHeader ? (_jsxs(Box, { "data-name": "form-group-header", className: "ab-Form_group-header", style: {
|
|
391
|
+
gridColumn: '1 / -1',
|
|
392
|
+
marginTop: index === 0 ? 0 : 'var(--ab-base-space-2)',
|
|
393
|
+
marginBottom: 'var(--ab-base-space)',
|
|
394
|
+
paddingBottom: 'var(--ab-base-space-half)',
|
|
395
|
+
borderBottom: '1px solid var(--ab-color-divider, rgba(0,0,0,0.08))',
|
|
396
|
+
}, children: [entry.title ? (_jsx(Box, { className: "ab-Form_group-title twa:text-4 twa:font-bold", children: entry.title })) : null, entry.description ? (_jsx(Box, { className: "ab-Form_group-description twa:text-xs twa:opacity-70 twa:mt-1", children: entry.description })) : null] })) : null, innerNodes] }, `group-${index}`));
|
|
397
|
+
}
|
|
398
|
+
if (Array.isArray(entry)) {
|
|
399
|
+
// `renderField` returns `React.ReactNode` (custom fields may
|
|
400
|
+
// produce strings/fragments) so we widen the row-bag to match.
|
|
401
|
+
const rowFields = {};
|
|
402
|
+
const visible = entry.filter((f) => !isAdaptableFormFieldHidden(f, data, context));
|
|
403
|
+
if (visible.length === 0)
|
|
404
|
+
return null;
|
|
405
|
+
visible.map((fieldItem, idx) => {
|
|
406
|
+
const rowFieldIndex = 2 * idx + 1;
|
|
407
|
+
rowFields[rowFieldIndex] = renderLabel(fieldItem);
|
|
408
|
+
rowFields[rowFieldIndex + 1] = renderField(fieldItem);
|
|
409
|
+
});
|
|
410
|
+
return _jsx(FormRow, { ...rowFields }, index);
|
|
411
|
+
}
|
|
412
|
+
if (isAdaptableFormFieldHidden(entry, data, context)) {
|
|
413
|
+
return null;
|
|
414
|
+
}
|
|
415
|
+
return (_jsxs(FormRow, { children: [renderLabel(entry), renderField(entry)] }, entry.name));
|
|
416
|
+
};
|
|
417
|
+
return (_jsxs(_Fragment, { children: [displayTitle && formDef.title && (_jsx(Box, { "data-name": "form-title", className: "twa:text-5 twa:mb-2 twa:font-bold", children: formDef.title })), formDef.description && (_jsx(Box, { "data-name": "form-description", className: "twa:mb-3", children: formDef.description })), isInlineLayout ? (_jsx(Flex, { "data-name": "form-content", className: "ab-FormLayout--inline", flexDirection: "row", alignItems: "center", flexWrap: "wrap", style: { columnGap: 'var(--ab-base-space-2)', rowGap: 'var(--ab-base-space)' }, onKeyDown: handleFormKeyDown, children: renderInlineEntries() })) : (_jsx(FormLayout, { onKeyDown: handleFormKeyDown, "data-name": "form-content", columns: columns, className: "twa:pr-1 twa:overflow-auto", children: formDef.fields?.map((entry, index) => renderRowsEntry(entry, index)) })), formDef.buttons ? (_jsx(Flex, { "data-name": "form-buttons", className: isInlineLayout ? '' : 'twa:mt-3', flexDirection: "row", alignItems: "center", justifyContent: isInlineLayout ? 'space-start' : 'center', style: isInlineLayout
|
|
418
|
+
? { marginLeft: 'var(--ab-base-space-2)', columnGap: 'var(--ab-base-space)' }
|
|
419
|
+
: undefined, children: _jsx(AdaptableFormComponentButtons, { focusFirstButton: focusFirstButton, onClick: onButtonClick, disabledButtons: disabledButtons, defaultTone: "success", formDef: formDef, api: api, context: buttonContext }) })) : null] }));
|
|
142
420
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { twMerge } from '../../twMerge';
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import { Box } from '../Flex';
|
|
5
5
|
export function Card(props) {
|
|
6
6
|
const { shadow = true, children, className, style, gap = 2 } = props;
|
|
7
|
-
return (
|
|
7
|
+
return (_jsx(Box, { className: clsx('twa:bg-defaultbackground twa:text-foreground', 'ab-Card', 'twa:text-3', 'twa:rounded-standard twa:p-2', 'twa:flex twa:flex-col', {
|
|
8
8
|
'twa:shadow-sm': shadow,
|
|
9
9
|
'twa:gap-0': gap === 0,
|
|
10
10
|
'twa:gap-1': gap === 1,
|
|
@@ -12,34 +12,34 @@ export function Card(props) {
|
|
|
12
12
|
'twa:gap-3': gap === 3,
|
|
13
13
|
'twa:gap-4': gap === 4,
|
|
14
14
|
'twa:gap-8': gap === 8,
|
|
15
|
-
}, className), style: style
|
|
15
|
+
}, className), style: style, children: children }));
|
|
16
16
|
}
|
|
17
17
|
const CardTitle = (props) => {
|
|
18
18
|
const { children, className, gap = 2, border = true } = props;
|
|
19
|
-
return (
|
|
19
|
+
return (_jsx("div", { className: twMerge(clsx('ab-Card__title', {
|
|
20
20
|
'twa:flex twa:flex-row': true,
|
|
21
21
|
'twa:items-center': true,
|
|
22
22
|
'twa:text-4 twa:px-2': true,
|
|
23
23
|
'twa:pb-2 twa:border-b': border,
|
|
24
|
-
'twa:border-b-
|
|
24
|
+
'twa:border-b-foreground/20': true,
|
|
25
25
|
'twa:gap-0': gap === 0,
|
|
26
26
|
'twa:gap-1': gap === 1,
|
|
27
27
|
'twa:gap-2': gap === 2,
|
|
28
28
|
'twa:gap-3': gap === 3,
|
|
29
29
|
'twa:gap-4': gap === 4,
|
|
30
30
|
'twa:gap-8': gap === 8,
|
|
31
|
-
}, className))
|
|
31
|
+
}, className)), children: children }));
|
|
32
32
|
};
|
|
33
33
|
const CardBody = (props) => {
|
|
34
34
|
const { children, gap, className } = props;
|
|
35
|
-
return (
|
|
35
|
+
return (_jsx("div", { className: clsx('ab-Card__body', 'twa:overflow-auto twa:min-h-0', 'twa:flex-1 twa:flex twa:flex-col', {
|
|
36
36
|
'twa:gap-0': gap === 0,
|
|
37
37
|
'twa:gap-1': gap === 1,
|
|
38
38
|
'twa:gap-2': gap === 2,
|
|
39
39
|
'twa:gap-3': gap === 3,
|
|
40
40
|
'twa:gap-4': gap === 4,
|
|
41
41
|
'twa:gap-8': gap === 8,
|
|
42
|
-
}, className)
|
|
42
|
+
}, className), children: children }));
|
|
43
43
|
};
|
|
44
44
|
Card.Title = CardTitle;
|
|
45
45
|
Card.Body = CardBody;
|
|
@@ -13,11 +13,13 @@ type TypeProps = {
|
|
|
13
13
|
children?: ReactNode;
|
|
14
14
|
gapDistance?: number | string;
|
|
15
15
|
childrenPosition?: 'start' | 'end';
|
|
16
|
+
checkSquareClassName?: string;
|
|
16
17
|
};
|
|
17
18
|
export interface CheckBoxProps extends TypeProps, Omit<React.HTMLProps<HTMLDivElement>, keyof TypeProps | 'ref'> {
|
|
18
19
|
}
|
|
19
|
-
declare const CheckBox: ({ children, checked, onChange, value, name, disabled, readOnly, variant, gapDistance, childrenPosition, as, ...props }: CheckBoxProps) => React.JSX.Element;
|
|
20
|
+
declare const CheckBox: ({ children, checked, onChange, value, name, disabled, readOnly, variant, gapDistance, childrenPosition, checkSquareClassName, tabIndex, as, ...props }: CheckBoxProps) => React.JSX.Element;
|
|
20
21
|
export declare const CheckBoxGroup: (props: FlexProps & {
|
|
21
22
|
orientation: "horizontal" | "vertical";
|
|
23
|
+
children?: ReactNode;
|
|
22
24
|
}) => React.JSX.Element;
|
|
23
25
|
export { CheckBox };
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
2
|
import * as React from 'react';
|
|
2
3
|
import { useRef, useState } from 'react';
|
|
3
4
|
import { Box, Flex } from '../Flex';
|
|
4
5
|
import clsx from 'clsx';
|
|
6
|
+
import { cn } from '../../lib/utils';
|
|
7
|
+
import { targetPeer } from '../twUtils';
|
|
5
8
|
const Square = (props) => {
|
|
6
|
-
return
|
|
9
|
+
return (_jsx("div", { className: cn(`ab-CheckBox__square ab-CheckBox__square--${props.type}`, targetPeer.focusVisibleOutline, props.className) }));
|
|
7
10
|
};
|
|
8
|
-
const CheckBox = ({ children, checked, onChange, value, name, disabled, readOnly, variant = 'default', gapDistance = 'var(--ab-base-space)', childrenPosition = 'end', as = 'label', ...props }) => {
|
|
11
|
+
const CheckBox = ({ children, checked, onChange, value, name, disabled, readOnly, variant = 'default', gapDistance = 'var(--ab-base-space)', childrenPosition = 'end', checkSquareClassName, tabIndex, as = 'label', ...props }) => {
|
|
9
12
|
const [stateChecked, setStateChecked] = useState(false);
|
|
10
13
|
const computedChecked = checked !== undefined ? checked : stateChecked;
|
|
11
14
|
const onInputChange = (event) => {
|
|
@@ -25,13 +28,13 @@ const CheckBox = ({ children, checked, onChange, value, name, disabled, readOnly
|
|
|
25
28
|
: computedChecked === false
|
|
26
29
|
? 'unchecked'
|
|
27
30
|
: 'indeterminate';
|
|
28
|
-
const gap =
|
|
29
|
-
children = children ? (
|
|
31
|
+
const gap = _jsx("div", { style: { marginLeft: gapDistance, display: 'inline-block' } });
|
|
32
|
+
children = children ? (_jsx("div", { style: {
|
|
30
33
|
display: 'inline-block',
|
|
31
34
|
whiteSpace: 'nowrap',
|
|
32
35
|
overflow: 'hidden',
|
|
33
36
|
textOverflow: 'ellipsis',
|
|
34
|
-
}
|
|
37
|
+
}, children: children })) : null;
|
|
35
38
|
const before = childrenPosition === 'start' ? children : null;
|
|
36
39
|
const beforeGap = childrenPosition === 'start' && children ? gap : null;
|
|
37
40
|
const after = childrenPosition === 'end' ? children : null;
|
|
@@ -41,19 +44,13 @@ const CheckBox = ({ children, checked, onChange, value, name, disabled, readOnly
|
|
|
41
44
|
React.useEffect(() => {
|
|
42
45
|
checkboxRef.current.indeterminate = indeterminate;
|
|
43
46
|
}, [indeterminate]);
|
|
44
|
-
let input = (
|
|
47
|
+
let input = (_jsx("input", { className: clsx(`ab-CheckBox-input twa:peer twa:align-middle twa:opacity-0`, {
|
|
45
48
|
'twa:cursor-pointer': !readOnly && !disabled,
|
|
46
|
-
}), ref: checkboxRef, disabled: disabled, readOnly: readOnly, checked: !!computedChecked, type: "checkbox", name: name, value: value, onChange: onInputChange }));
|
|
47
|
-
return (
|
|
48
|
-
before,
|
|
49
|
-
beforeGap,
|
|
50
|
-
input,
|
|
51
|
-
React.createElement(Square, { type: type }),
|
|
52
|
-
afterGap,
|
|
53
|
-
after));
|
|
49
|
+
}), ref: checkboxRef, disabled: disabled, readOnly: readOnly, checked: !!computedChecked, tabIndex: tabIndex, type: "checkbox", name: name, value: value, onChange: onInputChange }));
|
|
50
|
+
return (_jsxs(Box, { ...props, className: clsx('twa:my-2', 'ab-CheckBox', `ab-CheckBox--${type}`, `ab-CheckBox--variant-${variant}`, disabled ? 'ab-CheckBox--disabled' : '', readOnly ? 'ab-CheckBox--readonly' : '', props.className), style: props.style, as: as, children: [before, beforeGap, input, _jsx(Square, { type: type, className: checkSquareClassName }), afterGap, after] }));
|
|
54
51
|
};
|
|
55
52
|
export const CheckBoxGroup = (props) => {
|
|
56
53
|
const { orientation, ...flexProps } = props;
|
|
57
|
-
return (
|
|
54
|
+
return (_jsx(Flex, { className: `ab-CheckBoxGroup ${orientation === 'horizontal' ? 'twa:items-center' : 'twa:items-start'}`, flexDirection: orientation == 'horizontal' ? 'row' : 'column', ...flexProps }));
|
|
58
55
|
};
|
|
59
56
|
export { CheckBox };
|