@adaptabletools/adaptable 23.0.0-canary.7 → 23.0.0-canary.9
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/index.css +98 -17
- package/package.json +1 -1
- package/src/{Utilities → AdaptableState/Aggregations}/weightedAverage.js +1 -1
- package/src/AdaptableState/Common/Enums.d.ts +0 -12
- package/src/AdaptableState/Common/Enums.js +0 -15
- package/src/{Utilities → AdaptableState/Common}/MenuItem.d.ts +4 -4
- package/src/{Utilities → AdaptableState/Common}/MenuItem.js +1 -1
- package/src/AdaptableState/StyledColumnState.d.ts +8 -850
- package/src/AdaptableState/StyledColumnState.js +1 -9
- package/src/AdaptableState/StyledColumns/BadgeStyle.d.ts +143 -0
- package/src/AdaptableState/StyledColumns/BadgeStyle.js +9 -0
- package/src/AdaptableState/StyledColumns/BulletChartStyle.d.ts +147 -0
- package/src/AdaptableState/StyledColumns/BulletChartStyle.js +1 -0
- package/src/AdaptableState/StyledColumns/Common/BarStyleProperties.d.ts +84 -0
- package/src/AdaptableState/StyledColumns/Common/BarStyleProperties.js +5 -0
- package/src/AdaptableState/StyledColumns/Common/CellTextOptions.d.ts +13 -0
- package/src/AdaptableState/StyledColumns/Common/CellTextOptions.js +6 -0
- package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.d.ts +79 -0
- package/src/AdaptableState/StyledColumns/Common/NumericStyledColumn.js +9 -0
- package/src/AdaptableState/StyledColumns/GradientStyle.d.ts +48 -0
- package/src/AdaptableState/StyledColumns/GradientStyle.js +1 -0
- package/src/AdaptableState/StyledColumns/IconStyle.d.ts +158 -0
- package/src/AdaptableState/StyledColumns/IconStyle.js +1 -0
- package/src/AdaptableState/StyledColumns/PercentBarStyle.d.ts +32 -0
- package/src/AdaptableState/StyledColumns/PercentBarStyle.js +1 -0
- package/src/AdaptableState/StyledColumns/RangeBarStyle.d.ts +155 -0
- package/src/AdaptableState/StyledColumns/RangeBarStyle.js +1 -0
- package/src/AdaptableState/StyledColumns/RatingStyle.d.ts +111 -0
- package/src/AdaptableState/StyledColumns/RatingStyle.js +1 -0
- package/src/AdaptableState/StyledColumns/SparklineStyle.d.ts +21 -0
- package/src/AdaptableState/StyledColumns/SparklineStyle.js +1 -0
- package/src/Api/ColumnScopeApi.d.ts +1 -1
- package/src/Api/Implementation/AlertApiImpl.js +1 -1
- package/src/Api/Implementation/ChartingApiImpl.js +1 -1
- package/src/Api/Implementation/ColumnScopeApiImpl.d.ts +1 -1
- package/src/Api/Implementation/ExportApiImpl.js +1 -1
- package/src/Api/Implementation/LayoutHelpers.js +1 -1
- package/src/Api/Implementation/QuickSearchApiImpl.js +1 -1
- package/src/Api/Implementation/ThemeApiImpl.js +1 -1
- package/src/Api/Internal/ActionColumnInternalApi.js +1 -1
- package/src/Api/Internal/AlertInternalApi.js +1 -1
- package/src/Api/Internal/ChartingInternalApi.js +1 -1
- package/src/Api/Internal/ColumnInternalApi.js +1 -1
- package/src/Api/Internal/EventInternalApi.js +1 -1
- package/src/Api/Internal/ExportInternalApi.js +1 -1
- package/src/Api/Internal/FormatColumnInternalApi.js +1 -1
- package/src/Api/Internal/GridInternalApi.js +1 -1
- package/src/Api/Internal/StyledColumnInternalApi.d.ts +3 -1
- package/src/Api/Internal/StyledColumnInternalApi.js +1 -1
- package/src/Redux/ActionsReducers/ExportRedux.js +1 -1
- package/src/Redux/ActionsReducers/InternalRedux.js +1 -1
- package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +1 -1
- package/src/Redux/Store/AdaptableReduxMerger.js +2 -4
- package/src/Redux/Store/AdaptableStore.js +3 -3
- package/src/Strategy/AdaptableModuleBase.d.ts +1 -1
- package/src/Strategy/AdaptableModuleBase.js +1 -1
- package/src/Strategy/AlertModule.d.ts +1 -1
- package/src/Strategy/AlertModule.js +2 -2
- package/src/Strategy/BulkUpdateModule.d.ts +1 -1
- package/src/Strategy/CalculatedColumnModule.d.ts +2 -2
- package/src/Strategy/CellSummaryModule.d.ts +2 -2
- package/src/Strategy/ChartingModule.d.ts +1 -1
- package/src/Strategy/ChartingModule.js +1 -1
- package/src/Strategy/ColumnInfoModule.d.ts +2 -2
- package/src/Strategy/CommentModule.d.ts +1 -1
- package/src/Strategy/CustomSortModule.d.ts +1 -1
- package/src/Strategy/ExportModule.js +2 -2
- package/src/Strategy/FlashingCellModule.d.ts +1 -1
- package/src/Strategy/FreeTextColumnModule.d.ts +1 -1
- package/src/Strategy/GridInfoModule.d.ts +2 -2
- package/src/Strategy/LayoutModule.js +1 -1
- package/src/Strategy/NoteModule.d.ts +1 -1
- package/src/Strategy/PlusMinusModule.d.ts +1 -1
- package/src/Strategy/PlusMinusModule.js +1 -1
- package/src/Strategy/SettingsPanelModule.d.ts +2 -2
- package/src/Strategy/SmartEditModule.d.ts +1 -1
- package/src/Strategy/SystemStatusModule.d.ts +2 -2
- package/src/Strategy/TeamSharingModule.js +2 -2
- package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +1 -1
- package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +1 -1
- package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +1 -1
- package/src/Utilities/Extensions/ArrayExtensions.d.ts +32 -0
- package/src/Utilities/Extensions/ArrayExtensions.js +49 -0
- package/src/Utilities/Extensions/NumberExtensions.d.ts +21 -0
- package/src/Utilities/Extensions/NumberExtensions.js +74 -0
- package/src/Utilities/Extensions/ObjectExtensions.d.ts +44 -0
- package/src/Utilities/Extensions/ObjectExtensions.js +271 -0
- package/src/Utilities/Extensions/StringExtensions.d.ts +26 -0
- package/src/Utilities/Extensions/StringExtensions.js +44 -1
- package/src/Utilities/Helpers/AdaptableHelper.js +2 -2
- package/src/Utilities/Helpers/{alertFormHelper.js → AlertHelper.js} +1 -1
- package/src/Utilities/Helpers/DateHelper.js +1 -1
- package/src/Utilities/Helpers/{FormatHelper.js → DisplayFormatHelper.js} +1 -1
- package/src/Utilities/Helpers/Helper.d.ts +0 -6
- package/src/Utilities/Helpers/Helper.js +0 -35
- package/src/Utilities/Helpers/{QuickSearchStyleHelper.js → QuickSearchHelper.js} +1 -1
- package/src/Utilities/Helpers/{ScheduleHelper.d.ts → Scheduling/ScheduleHelper.d.ts} +1 -1
- package/src/Utilities/Helpers/{ScheduleHelper.js → Scheduling/ScheduleHelper.js} +1 -1
- package/src/Utilities/Helpers/{ScheduleJobManager.d.ts → Scheduling/ScheduleJobManager.d.ts} +1 -1
- package/src/Utilities/Helpers/{ScheduleJobRunner.d.ts → Scheduling/ScheduleJobRunner.d.ts} +1 -1
- package/src/Utilities/Helpers/{ScheduledAlertHelper.d.ts → Scheduling/ScheduledAlertHelper.d.ts} +1 -1
- package/src/Utilities/Helpers/{ScheduledAlertHelper.js → Scheduling/ScheduledAlertHelper.js} +4 -4
- package/src/Utilities/Helpers/{ScheduledJobsMiddlewareHelper.d.ts → Scheduling/ScheduledJobsMiddlewareHelper.d.ts} +1 -1
- package/src/Utilities/Helpers/{ScheduledJobsMiddlewareHelper.js → Scheduling/ScheduledJobsMiddlewareHelper.js} +1 -1
- package/src/Utilities/Helpers/{ScheduledReportHelper.d.ts → Scheduling/ScheduledReportHelper.d.ts} +1 -1
- package/src/Utilities/Helpers/{ScheduledReportHelper.js → Scheduling/ScheduledReportHelper.js} +1 -1
- package/src/Utilities/Helpers/SettingsPanelHelper.d.ts +5 -0
- package/src/Utilities/{Defaults/DefaultSettingsPanel.js → Helpers/SettingsPanelHelper.js} +14 -0
- package/src/Utilities/Helpers/StyledColumns/BarStylesHelper.d.ts +63 -0
- package/src/Utilities/Helpers/StyledColumns/BarStylesHelper.js +317 -0
- package/src/Utilities/Helpers/{StyledColumnGradientHelper.d.ts → StyledColumns/GradientStyleHelper.d.ts} +4 -2
- package/src/Utilities/Helpers/{StyledColumnGradientHelper.js → StyledColumns/GradientStyleHelper.js} +3 -3
- package/src/Utilities/Helpers/{IconStylePresets.d.ts → StyledColumns/IconStyleHelper.d.ts} +6 -1
- package/src/Utilities/Helpers/{IconStylePresets.js → StyledColumns/IconStyleHelper.js} +15 -0
- package/src/Utilities/Helpers/{percentBarPreviewHelper.d.ts → StyledColumns/PercentBarStyleHelper.d.ts} +2 -1
- package/src/Utilities/Helpers/{percentBarPreviewHelper.js → StyledColumns/PercentBarStyleHelper.js} +7 -12
- package/src/Utilities/Helpers/{SparklineOptionsHelper.js → StyledColumns/SparklineStyleHelper.js} +1 -1
- package/src/Utilities/Helpers/StyledColumns/StyledColumnHelper.d.ts +52 -0
- package/src/{agGrid/cellRenderers/shouldRenderStyledColumnOnRow.js → Utilities/Helpers/StyledColumns/StyledColumnHelper.js} +64 -2
- package/src/Utilities/Helpers/TimingHelper.d.ts +34 -0
- package/src/Utilities/{utils/debounce.js → Helpers/TimingHelper.js} +23 -9
- package/src/Utilities/ObjectFactory.js +1 -1
- package/src/Utilities/Services/CalculatedColumnExpressionService.d.ts +2 -0
- package/src/Utilities/Services/CalculatedColumnExpressionService.js +114 -1
- package/src/Utilities/Services/LicenseService/index.js +1 -1
- package/src/Utilities/Services/RowSummaryService.d.ts +1 -1
- package/src/Utilities/Services/RowSummaryService.js +4 -4
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +1 -1
- package/src/View/Alert/Utilities/getAlertType.js +1 -1
- package/src/View/Alert/Utilities/getDefaultAlertDefinition.js +1 -1
- package/src/View/Alert/Utilities/mapAlertDefinition.js +1 -1
- package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +1 -1
- package/src/View/Alert/Wizard/AlertButtonsEditor.js +160 -127
- package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +3 -3
- package/src/View/Alert/Wizard/AlertRulesWizardSection.js +1 -1
- package/src/View/Alert/Wizard/AlertScheduledWizardSection.js +1 -1
- package/src/View/Alert/Wizard/AlertScopeWizardSection.js +1 -1
- package/src/View/Alert/Wizard/AlertWizard.js +10 -2
- package/src/View/Alert/Wizard/isValidAlertRules.js +1 -1
- package/src/View/Charting/ChartingWizard/AgChargingWizard/PreviewChartSection.js +1 -1
- package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +1 -1
- package/src/View/Charting/ChartingWizard/ExternalChartingWizard/SettingsSection.js +1 -1
- package/src/View/Comments/CommentsEditor.js +1 -1
- package/src/View/Comments/CommentsPopup.js +1 -1
- package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +3 -2
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +3 -2
- package/src/View/Components/AdaptableObjectList/objectListActionButtonStyles.d.ts +2 -0
- package/src/View/Components/AdaptableObjectList/objectListActionButtonStyles.js +2 -0
- package/src/View/Components/Buttons/EntityListActionButtons.js +1 -1
- package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.d.ts +1 -0
- package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.js +8 -8
- package/src/View/Components/ColumnFilter/ColumnFilter.js +14 -1
- package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +1 -1
- package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +1 -1
- package/src/View/Components/ColumnFilter/components/FloatingFilterInputList.js +1 -1
- package/src/View/Components/Forms/AdaptableFormControlTextClear.js +2 -1
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +1 -1
- package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +1 -1
- package/src/View/Components/Popups/AdaptablePopupAlert.js +1 -1
- package/src/View/Components/Popups/Utilities.js +1 -1
- package/src/View/Components/RangesComponent.d.ts +4 -3
- package/src/View/Components/RangesComponent.js +3 -7
- package/src/View/Components/ToolPanel/AdaptableToolPanel.js +1 -1
- package/src/View/Components/ToolPanel/CustomToolPanelContent.js +1 -1
- package/src/View/Dashboard/CustomDashboardButton.js +1 -1
- package/src/View/Dashboard/Dashboard.js +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryTable.js +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +1 -1
- package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +1 -1
- package/src/View/Export/ExportSchedulesTab.js +3 -4
- package/src/View/Filter/FilterViewPanel.js +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +3 -3
- package/src/View/FormatColumn/Wizard/FormatColumnPreview.js +1 -1
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +1 -1
- package/src/View/Layout/LayoutViewPanel.js +1 -1
- package/src/View/Layout/Wizard/sections/RowSummarySection.js +129 -103
- package/src/View/Note/NoteEditor.js +1 -1
- package/src/View/Note/NotePopup.js +1 -1
- package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +1 -1
- package/src/View/QuickSearch/QuickSearchPopup.js +1 -1
- package/src/View/QuickSearch/useQuickSearchDebounced.js +1 -1
- package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +1 -1
- package/src/View/SpecialColumnSettingsWizardStep.js +1 -1
- package/src/View/StyledColumn/Wizard/BadgePillStyleEditor.d.ts +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +36 -30
- package/src/View/StyledColumn/Wizard/StyledColumnSliceStyleEditors.d.ts +1 -3
- package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +79 -68
- package/src/View/StyledColumn/Wizard/StyledColumnWizardGradientSection.js +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardIconSection.js +39 -12
- package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +92 -52
- package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +2 -2
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarStyleCellTextLayoutEditor.d.ts +9 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarStyleCellTextLayoutEditor.js +33 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarStyleCellTextPreview.d.ts +23 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BarStyleCellTextPreview.js +57 -0
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/BulletRangesSummaryPreview.d.ts +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.d.ts +3 -2
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/GradientSummaryPreview.js +2 -4
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/RangeBarRangesSummaryPreview.d.ts +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBadgePreview.js +3 -2
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.d.ts +2 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnBulletPreview.js +13 -17
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.d.ts +2 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnChartListPreviews.js +5 -5
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnGradientPreview.js +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnIconPreview.js +2 -2
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnPercentBarPreview.js +16 -7
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRangeBarPreview.js +11 -17
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnRatingPreview.d.ts +2 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/Components/StyledColumnSparklinePreview.js +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +20 -60
- package/src/View/UIHelper.js +1 -1
- package/src/View/Wizard/OnePageAdaptableWizard.js +1 -1
- package/src/View/Wizard/OnePageWizards.js +3 -1
- package/src/agGrid/AdaptableAgGrid.js +6 -6
- package/src/agGrid/AgGridColumnAdapter.js +16 -14
- package/src/agGrid/AgGridExportAdapter.js +1 -1
- package/src/agGrid/AgGridMenuAdapter.js +127 -2
- package/src/agGrid/cellRenderers/BadgeRenderer.js +8 -6
- package/src/agGrid/cellRenderers/BulletChartRenderer.js +45 -44
- package/src/agGrid/cellRenderers/IconRenderer.d.ts +2 -1
- package/src/agGrid/cellRenderers/IconRenderer.js +15 -14
- package/src/agGrid/cellRenderers/PercentBarRenderer.js +26 -98
- package/src/agGrid/cellRenderers/RangeBarRenderer.js +52 -50
- package/src/agGrid/cellRenderers/RatingRenderer.js +2 -2
- package/src/agGrid/editors/AdaptableDateEditor/index.js +1 -1
- package/src/components/ColorPicker/ColorPicker.js +1 -1
- package/src/components/Datepicker/index.js +1 -1
- package/src/components/FormLayout/index.js +1 -1
- package/src/components/OverlayTrigger/index.js +1 -1
- package/src/env.js +2 -2
- package/src/layout-manager/src/isLayoutEqual.js +1 -1
- package/src/metamodel/adaptable.metamodel.d.ts +118 -19
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/migration/VersionUpgrade23.d.ts +27 -31
- package/src/migration/VersionUpgrade23.js +110 -29
- package/src/types.d.ts +12 -1
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/src/Utilities/Defaults/DefaultSettingsPanel.d.ts +0 -3
- package/src/Utilities/Helpers/iconStyledColumnColumnSupport.d.ts +0 -5
- package/src/Utilities/Helpers/iconStyledColumnColumnSupport.js +0 -15
- package/src/Utilities/Helpers/resolveSettingsPanelNavigation.d.ts +0 -3
- package/src/Utilities/Helpers/resolveSettingsPanelNavigation.js +0 -15
- package/src/Utilities/Helpers/styledColumnRowKindSupport.d.ts +0 -25
- package/src/Utilities/Helpers/styledColumnRowKindSupport.js +0 -63
- package/src/Utilities/Services/CalculatedColumnSyntheticChange.d.ts +0 -4
- package/src/Utilities/Services/CalculatedColumnSyntheticChange.js +0 -115
- package/src/Utilities/utils/chunk.d.ts +0 -6
- package/src/Utilities/utils/chunk.js +0 -17
- package/src/Utilities/utils/clamp.d.ts +0 -5
- package/src/Utilities/utils/clamp.js +0 -7
- package/src/Utilities/utils/cloneDeepWith.d.ts +0 -9
- package/src/Utilities/utils/cloneDeepWith.js +0 -67
- package/src/Utilities/utils/debounce.d.ts +0 -20
- package/src/Utilities/utils/flatten.d.ts +0 -5
- package/src/Utilities/utils/flatten.js +0 -7
- package/src/Utilities/utils/flattenDeep.d.ts +0 -5
- package/src/Utilities/utils/flattenDeep.js +0 -7
- package/src/Utilities/utils/get.d.ts +0 -6
- package/src/Utilities/utils/get.js +0 -35
- package/src/Utilities/utils/index.d.ts +0 -22
- package/src/Utilities/utils/index.js +0 -22
- package/src/Utilities/utils/isArray.d.ts +0 -6
- package/src/Utilities/utils/isArray.js +0 -6
- package/src/Utilities/utils/isEqual.d.ts +0 -5
- package/src/Utilities/utils/isEqual.js +0 -124
- package/src/Utilities/utils/isObject.d.ts +0 -6
- package/src/Utilities/utils/isObject.js +0 -9
- package/src/Utilities/utils/isPlainObject.d.ts +0 -6
- package/src/Utilities/utils/isPlainObject.js +0 -17
- package/src/Utilities/utils/kebabCase.d.ts +0 -5
- package/src/Utilities/utils/kebabCase.js +0 -8
- package/src/Utilities/utils/merge.d.ts +0 -11
- package/src/Utilities/utils/merge.js +0 -40
- package/src/Utilities/utils/mergeWith.d.ts +0 -7
- package/src/Utilities/utils/mergeWith.js +0 -46
- package/src/Utilities/utils/orderBy.d.ts +0 -8
- package/src/Utilities/utils/orderBy.js +0 -30
- package/src/Utilities/utils/parseInt.d.ts +0 -6
- package/src/Utilities/utils/parseInt.js +0 -9
- package/src/Utilities/utils/sentenceCase.d.ts +0 -6
- package/src/Utilities/utils/sentenceCase.js +0 -15
- package/src/Utilities/utils/startCase.d.ts +0 -5
- package/src/Utilities/utils/startCase.js +0 -11
- package/src/Utilities/utils/throttle.d.ts +0 -17
- package/src/Utilities/utils/throttle.js +0 -19
- package/src/Utilities/utils/toNumber.d.ts +0 -5
- package/src/Utilities/utils/toNumber.js +0 -39
- package/src/Utilities/utils/uniq.d.ts +0 -7
- package/src/Utilities/utils/uniq.js +0 -9
- package/src/Utilities/utils/uniqBy.d.ts +0 -8
- package/src/Utilities/utils/uniqBy.js +0 -22
- package/src/Utilities/utils/words.d.ts +0 -7
- package/src/Utilities/utils/words.js +0 -10
- package/src/agGrid/buildValueAggregationMenuItem.d.ts +0 -19
- package/src/agGrid/buildValueAggregationMenuItem.js +0 -111
- package/src/agGrid/cellRenderers/shouldRenderStyledColumnOnRow.d.ts +0 -30
- package/src/agGrid/createAgGridIcon.d.ts +0 -10
- package/src/agGrid/createAgGridIcon.js +0 -16
- /package/src/{Utilities → AdaptableState/Aggregations}/only.d.ts +0 -0
- /package/src/{Utilities → AdaptableState/Aggregations}/only.js +0 -0
- /package/src/{Utilities → AdaptableState/Aggregations}/weightedAverage.d.ts +0 -0
- /package/src/Utilities/Helpers/{ActionColumnWidthHelper.d.ts → ActionColumnHelper.d.ts} +0 -0
- /package/src/Utilities/Helpers/{ActionColumnWidthHelper.js → ActionColumnHelper.js} +0 -0
- /package/src/Utilities/Helpers/{alertFormHelper.d.ts → AlertHelper.d.ts} +0 -0
- /package/src/Utilities/Helpers/{chartingHelper.d.ts → ChartHelper.d.ts} +0 -0
- /package/src/Utilities/Helpers/{chartingHelper.js → ChartHelper.js} +0 -0
- /package/src/Utilities/Helpers/{FormatHelper.d.ts → DisplayFormatHelper.d.ts} +0 -0
- /package/src/Utilities/Helpers/{plusMinusTriggerKeys.d.ts → PlusMinusHelper.d.ts} +0 -0
- /package/src/Utilities/Helpers/{plusMinusTriggerKeys.js → PlusMinusHelper.js} +0 -0
- /package/src/Utilities/Helpers/{QuickSearchStyleHelper.d.ts → QuickSearchHelper.d.ts} +0 -0
- /package/src/Utilities/Helpers/{ScheduleJobManager.js → Scheduling/ScheduleJobManager.js} +0 -0
- /package/src/Utilities/Helpers/{ScheduleJobRunner.js → Scheduling/ScheduleJobRunner.js} +0 -0
- /package/src/Utilities/Helpers/{SparklineOptionsHelper.d.ts → StyledColumns/SparklineStyleHelper.d.ts} +0 -0
- /package/src/Utilities/Helpers/{ThemeHelpers.d.ts → ThemeHelper.d.ts} +0 -0
- /package/src/Utilities/Helpers/{ThemeHelpers.js → ThemeHelper.js} +0 -0
package/src/Utilities/Helpers/{percentBarPreviewHelper.js → StyledColumns/PercentBarStyleHelper.js}
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { getVariableColor } from '
|
|
2
|
-
import clamp from '
|
|
3
|
-
import { STYLED_COLUMN_PREVIEW_SAMPLE_COUNT, ZERO_CENTRED_PREVIEW_SCALE_MAX, ZERO_CENTRED_PREVIEW_SCALE_MIN, } from './
|
|
1
|
+
import { getVariableColor } from '../StyleHelper';
|
|
2
|
+
import { clamp } from '../../Extensions/NumberExtensions';
|
|
3
|
+
import { STYLED_COLUMN_PREVIEW_SAMPLE_COUNT, ZERO_CENTRED_PREVIEW_SCALE_MAX, ZERO_CENTRED_PREVIEW_SCALE_MIN, } from './GradientStyleHelper';
|
|
4
|
+
import { buildBarStyleCellTextLabels, joinBarStyleCellTextLabels } from './BarStylesHelper';
|
|
4
5
|
const evenlySpacedValues = (min, max, count) => {
|
|
5
6
|
if (count <= 1) {
|
|
6
7
|
return [min];
|
|
@@ -124,14 +125,8 @@ export const getPercentBarPreviewGeometry = (numericValue, pb, min, max) => {
|
|
|
124
125
|
};
|
|
125
126
|
};
|
|
126
127
|
export const formatPercentBarPreviewCellText = (numericValue, percentageValue, pb) => {
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
parts.push(Number.isInteger(numericValue) ? String(numericValue) : numericValue.toFixed(1));
|
|
130
|
-
}
|
|
131
|
-
if (pb.CellText?.includes('PercentageValue')) {
|
|
132
|
-
parts.push(`${percentageValue.toFixed(0)}%`);
|
|
133
|
-
}
|
|
134
|
-
return parts.join(' ');
|
|
128
|
+
const labels = buildBarStyleCellTextLabels(pb.CellTextProperties, Number.isInteger(numericValue) ? String(numericValue) : numericValue.toFixed(1), `${percentageValue.toFixed(0)}%`);
|
|
129
|
+
return joinBarStyleCellTextLabels(labels);
|
|
135
130
|
};
|
|
136
131
|
export const getPercentBarPreviewTrackColor = (pb) => {
|
|
137
132
|
if (pb.ColumnComparison) {
|
|
@@ -139,5 +134,5 @@ export const getPercentBarPreviewTrackColor = (pb) => {
|
|
|
139
134
|
}
|
|
140
135
|
return pb.BackColor ?? undefined;
|
|
141
136
|
};
|
|
142
|
-
export const getPercentBarPreviewResolvedBarColor = (color) => color ? getVariableColor(color) : undefined;
|
|
137
|
+
export const getPercentBarPreviewResolvedBarColor = (color) => (color ? getVariableColor(color) : undefined);
|
|
143
138
|
export const hasPercentBarStylePreview = (styledColumn) => hasPercentBarRangesConfigured(styledColumn.PercentBarStyle);
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { IRowNode } from 'ag-grid-enterprise';
|
|
2
|
+
import type { AdaptableApi } from '../../../Api/AdaptableApi';
|
|
3
|
+
import type { StyledColumn } from '../../../AdaptableState/StyledColumnState';
|
|
4
|
+
import type { RowScope } from '../../../AdaptableState/Common/RowScope';
|
|
5
|
+
/**
|
|
6
|
+
* Row kinds used by {@link RowScope} and the Styled Column Scope wizard.
|
|
7
|
+
* All are available to all Styled Columns with exception of Sparkline (which is data rows only)
|
|
8
|
+
*/
|
|
9
|
+
export type StyledColumnRowKind = 'Data' | 'Group' | 'Summary' | 'Total';
|
|
10
|
+
export declare const STYLED_COLUMN_ROW_KINDS: StyledColumnRowKind[];
|
|
11
|
+
export declare const STYLED_COLUMN_ROW_KIND_EXCLUDE_KEY: Record<StyledColumnRowKind, keyof RowScope>;
|
|
12
|
+
export declare const isStyledColumnRowKindSupported: (styledColumn: StyledColumn, kind: StyledColumnRowKind) => boolean;
|
|
13
|
+
export declare const getStyledColumnRowKindDisabledReason: (styledColumn: StyledColumn, kind: StyledColumnRowKind) => string | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Classifies the AG Grid row node into a single {@link StyledColumnRowKind}.
|
|
16
|
+
* Order matches {@link shouldRenderStyledColumnOnRow}: total before summary,
|
|
17
|
+
* summary before group.
|
|
18
|
+
*/
|
|
19
|
+
export declare const getStyledColumnRowKindForNode: (node: IRowNode, api: AdaptableApi) => StyledColumnRowKind;
|
|
20
|
+
/**
|
|
21
|
+
* Forces `Exclude*` to `true` for row kinds that do not apply to the current
|
|
22
|
+
* Styled Column type, so persisted state cannot contradict the capability
|
|
23
|
+
* matrix. Returns `undefined` when no change is needed.
|
|
24
|
+
*/
|
|
25
|
+
export declare const sanitizeStyledColumnRowScope: (styledColumn: StyledColumn) => RowScope | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Returns `true` when the Styled Column should render on the given row.
|
|
28
|
+
*
|
|
29
|
+
* Single source of truth consulted by every styled-column cell renderer
|
|
30
|
+
* (Badge / Icon / Rating / Percent Bar / Bullet Chart / Range Bar) and
|
|
31
|
+
* by `getStyledColumnStyle` (Gradient / Percent Bar cellStyle).
|
|
32
|
+
*
|
|
33
|
+
* Semantics:
|
|
34
|
+
* - **Type capabilities** first: some types never target certain row kinds
|
|
35
|
+
* (see {@link isStyledColumnRowKindSupported}). Unsupported kinds always
|
|
36
|
+
* return `false` regardless of `RowScope`.
|
|
37
|
+
* - When `StyledColumn.RowScope` is **set**, the explicit `Exclude*`
|
|
38
|
+
* flags win. Unset flags default to "include" — i.e. `RowScope: {}`
|
|
39
|
+
* means "render on every *supported* row kind".
|
|
40
|
+
* - When `StyledColumn.RowScope` is **unset**, the historical per-type
|
|
41
|
+
* default applies:
|
|
42
|
+
* - Badge: render on every row kind (that the type supports).
|
|
43
|
+
* - All other types: render on every row kind *except* group rows
|
|
44
|
+
* (matches the hardcoded "isGroupRowNode → plain text" check that
|
|
45
|
+
* every other styled-column renderer used to carry), again
|
|
46
|
+
* intersected with type capabilities (e.g. Sparkline → data only).
|
|
47
|
+
*
|
|
48
|
+
* The per-type default lets us promote `RowScope` cleanly without
|
|
49
|
+
* altering existing user-visible behaviour: state that doesn't mention
|
|
50
|
+
* `RowScope` keeps rendering exactly as before.
|
|
51
|
+
*/
|
|
52
|
+
export declare const shouldRenderStyledColumnOnRow: (styledColumn: StyledColumn, node: IRowNode, api: AdaptableApi) => boolean;
|
|
@@ -1,4 +1,66 @@
|
|
|
1
|
-
|
|
1
|
+
export const STYLED_COLUMN_ROW_KINDS = ['Data', 'Group', 'Summary', 'Total'];
|
|
2
|
+
export const STYLED_COLUMN_ROW_KIND_EXCLUDE_KEY = {
|
|
3
|
+
Data: 'ExcludeDataRows',
|
|
4
|
+
Group: 'ExcludeGroupRows',
|
|
5
|
+
Summary: 'ExcludeSummaryRows',
|
|
6
|
+
Total: 'ExcludeTotalRows',
|
|
7
|
+
};
|
|
8
|
+
export const isStyledColumnRowKindSupported = (styledColumn, kind) => {
|
|
9
|
+
if (styledColumn.SparklineStyle) {
|
|
10
|
+
return kind === 'Data';
|
|
11
|
+
}
|
|
12
|
+
return true;
|
|
13
|
+
};
|
|
14
|
+
export const getStyledColumnRowKindDisabledReason = (styledColumn, kind) => {
|
|
15
|
+
if (isStyledColumnRowKindSupported(styledColumn, kind)) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
if (styledColumn.SparklineStyle) {
|
|
19
|
+
return 'Sparklines only apply to leaf data rows (cells with a numeric array of points).';
|
|
20
|
+
}
|
|
21
|
+
return undefined;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Classifies the AG Grid row node into a single {@link StyledColumnRowKind}.
|
|
25
|
+
* Order matches {@link shouldRenderStyledColumnOnRow}: total before summary,
|
|
26
|
+
* summary before group.
|
|
27
|
+
*/
|
|
28
|
+
export const getStyledColumnRowKindForNode = (node, api) => {
|
|
29
|
+
if (api.gridApi.isGrandTotalRowNode(node)) {
|
|
30
|
+
return 'Total';
|
|
31
|
+
}
|
|
32
|
+
if (api.gridApi.isSummaryNode(node)) {
|
|
33
|
+
return 'Summary';
|
|
34
|
+
}
|
|
35
|
+
if (api.gridApi.isGroupRowNode(node)) {
|
|
36
|
+
return 'Group';
|
|
37
|
+
}
|
|
38
|
+
return 'Data';
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Forces `Exclude*` to `true` for row kinds that do not apply to the current
|
|
42
|
+
* Styled Column type, so persisted state cannot contradict the capability
|
|
43
|
+
* matrix. Returns `undefined` when no change is needed.
|
|
44
|
+
*/
|
|
45
|
+
export const sanitizeStyledColumnRowScope = (styledColumn) => {
|
|
46
|
+
const scope = styledColumn.RowScope;
|
|
47
|
+
if (!scope) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
let next = { ...scope };
|
|
51
|
+
let changed = false;
|
|
52
|
+
for (const kind of STYLED_COLUMN_ROW_KINDS) {
|
|
53
|
+
if (isStyledColumnRowKindSupported(styledColumn, kind)) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
const key = STYLED_COLUMN_ROW_KIND_EXCLUDE_KEY[kind];
|
|
57
|
+
if (next[key] !== true) {
|
|
58
|
+
next = { ...next, [key]: true };
|
|
59
|
+
changed = true;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return changed ? next : undefined;
|
|
63
|
+
};
|
|
2
64
|
/**
|
|
3
65
|
* Returns `true` when the Styled Column should render on the given row.
|
|
4
66
|
*
|
|
@@ -8,7 +70,7 @@ import { getStyledColumnRowKindForNode, isStyledColumnRowKindSupported, } from '
|
|
|
8
70
|
*
|
|
9
71
|
* Semantics:
|
|
10
72
|
* - **Type capabilities** first: some types never target certain row kinds
|
|
11
|
-
* (see
|
|
73
|
+
* (see {@link isStyledColumnRowKindSupported}). Unsupported kinds always
|
|
12
74
|
* return `false` regardless of `RowScope`.
|
|
13
75
|
* - When `StyledColumn.RowScope` is **set**, the explicit `Exclude*`
|
|
14
76
|
* flags win. Unset flags default to "include" — i.e. `RowScope: {}`
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timing helpers for delaying / rate-limiting function calls.
|
|
3
|
+
*
|
|
4
|
+
* `debounce` and `throttle` are drop-in replacements for the equivalent
|
|
5
|
+
* lodash exports (`debounce` supports `{ leading, trailing, maxWait }`,
|
|
6
|
+
* `throttle` supports `{ leading, trailing }`).
|
|
7
|
+
*
|
|
8
|
+
* Both return an instance of `DebouncedFunction<T>` which exposes
|
|
9
|
+
* `cancel()` and `flush()` for managing pending invocations.
|
|
10
|
+
*/
|
|
11
|
+
export interface DebounceOptions {
|
|
12
|
+
leading?: boolean;
|
|
13
|
+
trailing?: boolean;
|
|
14
|
+
maxWait?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface DebouncedFunction<T extends (...args: any[]) => any> {
|
|
17
|
+
(...args: Parameters<T>): ReturnType<T> | undefined;
|
|
18
|
+
cancel(): void;
|
|
19
|
+
flush(): ReturnType<T> | undefined;
|
|
20
|
+
}
|
|
21
|
+
export declare function debounce<T extends (...args: any[]) => any>(func: T, wait?: number, options?: DebounceOptions): DebouncedFunction<T>;
|
|
22
|
+
export interface ThrottleOptions {
|
|
23
|
+
leading?: boolean;
|
|
24
|
+
trailing?: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Implemented in terms of `debounce` with `maxWait` (same approach as lodash).
|
|
28
|
+
*/
|
|
29
|
+
export declare function throttle<T extends (...args: any[]) => any>(func: T, wait?: number, options?: ThrottleOptions): DebouncedFunction<T>;
|
|
30
|
+
export declare const TimingHelper: {
|
|
31
|
+
debounce: typeof debounce;
|
|
32
|
+
throttle: typeof throttle;
|
|
33
|
+
};
|
|
34
|
+
export default TimingHelper;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* milliseconds have elapsed since the last time the debounced function was
|
|
4
|
-
* invoked. The debounced function comes with a cancel method to cancel
|
|
5
|
-
* delayed func invocations and a flush method to immediately invoke them.
|
|
2
|
+
* Timing helpers for delaying / rate-limiting function calls.
|
|
6
3
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* `debounce` and `throttle` are drop-in replacements for the equivalent
|
|
5
|
+
* lodash exports (`debounce` supports `{ leading, trailing, maxWait }`,
|
|
6
|
+
* `throttle` supports `{ leading, trailing }`).
|
|
7
|
+
*
|
|
8
|
+
* Both return an instance of `DebouncedFunction<T>` which exposes
|
|
9
|
+
* `cancel()` and `flush()` for managing pending invocations.
|
|
9
10
|
*/
|
|
10
|
-
export
|
|
11
|
+
export function debounce(func, wait = 0, options) {
|
|
11
12
|
let lastArgs;
|
|
12
13
|
let lastThis;
|
|
13
14
|
let result;
|
|
@@ -59,7 +60,6 @@ export default function debounce(func, wait = 0, options) {
|
|
|
59
60
|
trailingEdge(time);
|
|
60
61
|
return;
|
|
61
62
|
}
|
|
62
|
-
// Restart the timer
|
|
63
63
|
startTimer(timerExpired, remainingWait(time));
|
|
64
64
|
}
|
|
65
65
|
function trailingEdge(time) {
|
|
@@ -91,7 +91,6 @@ export default function debounce(func, wait = 0, options) {
|
|
|
91
91
|
return result;
|
|
92
92
|
}
|
|
93
93
|
if (maxing) {
|
|
94
|
-
// Handle invocations in a tight loop with maxWait
|
|
95
94
|
cancelTimer();
|
|
96
95
|
startTimer(timerExpired, wait);
|
|
97
96
|
invokeFunc(time);
|
|
@@ -119,3 +118,18 @@ export default function debounce(func, wait = 0, options) {
|
|
|
119
118
|
};
|
|
120
119
|
return debounced;
|
|
121
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Implemented in terms of `debounce` with `maxWait` (same approach as lodash).
|
|
123
|
+
*/
|
|
124
|
+
export function throttle(func, wait = 0, options) {
|
|
125
|
+
return debounce(func, wait, {
|
|
126
|
+
leading: options?.leading ?? true,
|
|
127
|
+
trailing: options?.trailing ?? true,
|
|
128
|
+
maxWait: wait,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
export const TimingHelper = {
|
|
132
|
+
debounce,
|
|
133
|
+
throttle,
|
|
134
|
+
};
|
|
135
|
+
export default TimingHelper;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MathOperation, } from '../AdaptableState/Common/Enums';
|
|
2
2
|
import { createUuid } from '../AdaptableState/Uuid';
|
|
3
|
-
import { buildCronExpression } from './Helpers/ScheduleHelper';
|
|
3
|
+
import { buildCronExpression } from './Helpers/Scheduling/ScheduleHelper';
|
|
4
4
|
import { EMPTY_STRING } from './Constants/GeneralConstants';
|
|
5
5
|
import { ALERT_DEFAULT_MESSAGE_TYPE, ALERT_DEFAULT_SHOW_POPUP, PLUS_MINUS_DEFAULT_NUDGE_VALUE, } from './Constants/ObjectDefaultConstants';
|
|
6
6
|
import { Bounce, Flip, Slide, Zoom } from '../components/Toastify';
|
|
@@ -18,3 +18,5 @@ export declare class CalculatedColumnExpressionService implements ICalculatedCol
|
|
|
18
18
|
createAggregatedScalarLiveValue(calculatedColumn: CalculatedColumn): void;
|
|
19
19
|
destroyAggregatedScalarLiveValue(calculatedColumn: CalculatedColumn): void;
|
|
20
20
|
}
|
|
21
|
+
export declare function buildSyntheticCellDataChangedInfosForCalcColumns(adaptableApi: AdaptableApi, info: CellDataChangedInfo): CellDataChangedInfo[];
|
|
22
|
+
export declare function expandCellDataChangedInfosWithCalculatedColumns(adaptableApi: AdaptableApi, cellDataChangedInfos: CellDataChangedInfo[]): CellDataChangedInfo[];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CalculatedColumnModuleId } from '../Constants/ModuleConstants';
|
|
2
2
|
import { AggregatedScalarLiveValue } from './AggregatedScalarLiveValue';
|
|
3
|
-
import
|
|
3
|
+
import * as parser from '../../parser/src';
|
|
4
|
+
import Helper from '../Helpers/Helper';
|
|
4
5
|
export class CalculatedColumnExpressionService {
|
|
5
6
|
adaptableApi;
|
|
6
7
|
aggregatedScalarLiveValuesMap = new Map();
|
|
@@ -139,3 +140,115 @@ export class CalculatedColumnExpressionService {
|
|
|
139
140
|
this.aggregatedScalarLiveValuesMap.delete(calculatedColumn.Uuid);
|
|
140
141
|
}
|
|
141
142
|
}
|
|
143
|
+
function isScalarCalculatedColumn(calculatedColumn) {
|
|
144
|
+
return !!calculatedColumn.Query?.ScalarExpression;
|
|
145
|
+
}
|
|
146
|
+
function collectDependentScalarCalculatedColumns(adaptableApi, rootColumnId) {
|
|
147
|
+
const collected = [];
|
|
148
|
+
const seenCalcColumnIds = new Set();
|
|
149
|
+
const queue = [rootColumnId];
|
|
150
|
+
while (queue.length > 0) {
|
|
151
|
+
const columnId = queue.shift();
|
|
152
|
+
const adaptableColumn = adaptableApi.columnApi.getColumnWithColumnId(columnId);
|
|
153
|
+
if (!adaptableColumn) {
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
const dependentColumnIds = adaptableApi.calculatedColumnApi.internalApi.getCalculatedColumnsDependentOnColumn(adaptableColumn);
|
|
157
|
+
dependentColumnIds.forEach((dependentColumnId) => {
|
|
158
|
+
if (seenCalcColumnIds.has(dependentColumnId)) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const calculatedColumn = adaptableApi.calculatedColumnApi.getCalculatedColumnForColumnId(dependentColumnId);
|
|
162
|
+
if (!calculatedColumn || !isScalarCalculatedColumn(calculatedColumn)) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
seenCalcColumnIds.add(dependentColumnId);
|
|
166
|
+
collected.push(calculatedColumn);
|
|
167
|
+
queue.push(dependentColumnId);
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
return collected;
|
|
171
|
+
}
|
|
172
|
+
function buildShadowRowData(adaptableApi, info) {
|
|
173
|
+
const shadowData = Helper.cloneObject(info.rowNode?.data ?? info.rowData ?? {});
|
|
174
|
+
const fieldName = info.column.field ?? info.column.columnId;
|
|
175
|
+
adaptableApi.internalApi.setValueUsingField(shadowData, fieldName, info.oldValue);
|
|
176
|
+
return shadowData;
|
|
177
|
+
}
|
|
178
|
+
function evaluateScalarExpressionWithShadowData(adaptableApi, calculatedColumn, rowNode, shadowData) {
|
|
179
|
+
const internalApi = adaptableApi.internalApi;
|
|
180
|
+
const moduleFns = internalApi
|
|
181
|
+
.getQueryLanguageService()
|
|
182
|
+
.getModuleExpressionFunctionsMap(CalculatedColumnModuleId);
|
|
183
|
+
const baseFunctions = { ...moduleFns.booleanFunctions, ...moduleFns.scalarFunctions };
|
|
184
|
+
const resolveColumnValue = (columnId) => {
|
|
185
|
+
const childCalculatedColumn = adaptableApi.calculatedColumnApi.getCalculatedColumnForColumnId(columnId);
|
|
186
|
+
if (childCalculatedColumn?.Query?.ScalarExpression) {
|
|
187
|
+
return evaluateScalarExpressionWithShadowData(adaptableApi, childCalculatedColumn, rowNode, shadowData);
|
|
188
|
+
}
|
|
189
|
+
const adaptableColumn = adaptableApi.columnApi.getColumnWithColumnId(columnId);
|
|
190
|
+
return internalApi.getValueUsingField(shadowData, adaptableColumn?.field ?? columnId);
|
|
191
|
+
};
|
|
192
|
+
const customFunctions = {
|
|
193
|
+
...baseFunctions,
|
|
194
|
+
COL: {
|
|
195
|
+
...baseFunctions.COL,
|
|
196
|
+
handler: (args) => resolveColumnValue(args[0]),
|
|
197
|
+
},
|
|
198
|
+
FIELD: {
|
|
199
|
+
...baseFunctions.FIELD,
|
|
200
|
+
handler: (args) => internalApi.getValueUsingField(shadowData, args[0]),
|
|
201
|
+
},
|
|
202
|
+
};
|
|
203
|
+
return parser.evaluate(calculatedColumn.Query.ScalarExpression, {
|
|
204
|
+
node: { ...rowNode, data: shadowData },
|
|
205
|
+
functions: customFunctions,
|
|
206
|
+
...internalApi.buildBaseContext(),
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
export function buildSyntheticCellDataChangedInfosForCalcColumns(adaptableApi, info) {
|
|
210
|
+
if (!info.rowNode ||
|
|
211
|
+
info.preventEdit ||
|
|
212
|
+
info.trigger === 'undo' ||
|
|
213
|
+
info.trigger === 'aggChange' ||
|
|
214
|
+
info.trigger === 'calculatedColumnChange') {
|
|
215
|
+
return [];
|
|
216
|
+
}
|
|
217
|
+
const calculatedColumns = collectDependentScalarCalculatedColumns(adaptableApi, info.column.columnId);
|
|
218
|
+
if (!calculatedColumns.length) {
|
|
219
|
+
return [];
|
|
220
|
+
}
|
|
221
|
+
const shadowData = buildShadowRowData(adaptableApi, info);
|
|
222
|
+
const expressionService = adaptableApi.internalApi.getCalculatedColumnExpressionService();
|
|
223
|
+
const syntheticEvents = [];
|
|
224
|
+
calculatedColumns.forEach((calculatedColumn) => {
|
|
225
|
+
const oldValue = evaluateScalarExpressionWithShadowData(adaptableApi, calculatedColumn, info.rowNode, shadowData);
|
|
226
|
+
const newValue = expressionService.evaluateCalculatedColumnQuery(calculatedColumn, info.rowNode);
|
|
227
|
+
if (oldValue == newValue) {
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
const column = adaptableApi.columnApi.getColumnWithColumnId(calculatedColumn.ColumnId);
|
|
231
|
+
if (!column) {
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
syntheticEvents.push(adaptableApi.internalApi.buildCellDataChangedInfo({
|
|
235
|
+
oldValue,
|
|
236
|
+
newValue,
|
|
237
|
+
column,
|
|
238
|
+
primaryKeyValue: info.primaryKeyValue,
|
|
239
|
+
rowNode: info.rowNode,
|
|
240
|
+
trigger: 'calculatedColumnChange',
|
|
241
|
+
}));
|
|
242
|
+
});
|
|
243
|
+
return syntheticEvents;
|
|
244
|
+
}
|
|
245
|
+
export function expandCellDataChangedInfosWithCalculatedColumns(adaptableApi, cellDataChangedInfos) {
|
|
246
|
+
if (!cellDataChangedInfos.length) {
|
|
247
|
+
return cellDataChangedInfos;
|
|
248
|
+
}
|
|
249
|
+
const syntheticEvents = cellDataChangedInfos.flatMap((info) => buildSyntheticCellDataChangedInfosForCalcColumns(adaptableApi, info));
|
|
250
|
+
if (!syntheticEvents.length) {
|
|
251
|
+
return cellDataChangedInfos;
|
|
252
|
+
}
|
|
253
|
+
return [...cellDataChangedInfos, ...syntheticEvents];
|
|
254
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{LicenseDisablePersistence as e,LicenseShowWatermark as a}from"../../../Redux/ActionsReducers/InternalRedux";import{PopupShowAlert as t}from"../../../Redux/ActionsReducers/PopupRedux";import i from"../../ObjectFactory";import s
|
|
1
|
+
import{LicenseDisablePersistence as e,LicenseShowWatermark as a}from"../../../Redux/ActionsReducers/InternalRedux";import{PopupShowAlert as t}from"../../../Redux/ActionsReducers/PopupRedux";import i from"../../ObjectFactory";import{clamp as s}from"../../Extensions/NumberExtensions";import{LicenseDocsLink as o}from"../../Constants/DocumentationLinkConstants";import{decode as n,GENERIC_APP_NAME as r}from"../../license/decode";import{shouldLogThankYouMessage as l}from"./shouldLogThankYouMessage";const c="sales@adaptabletools.com",p=10,d=864e5;export var LicenseValidityType;!function(e){e.INVALID_LICENSE="INVALID_LICENSE",e.NO_LICENSE="NO_LICENSE",e.NON_PRODUCTION_VALID="NON_PRODUCTION_VALID",e.NON_PRODUCTION_EXPIRED_IN_SCOPE="NON_PRODUCTION_EXPIRED_IN_SCOPE",e.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE="NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE",e.COMMERCIAL_VALID="COMMERCIAL_VALID",e.COMMERCIAL_EXPIRED_IN_SCOPE="COMMERCIAL_EXPIRED_IN_SCOPE",e.COMMERCIAL_EXPIRED_OUT_OF_SCOPE="COMMERCIAL_EXPIRED_OUT_OF_SCOPE"}(LicenseValidityType||(LicenseValidityType={}));const E=()=>"undefined"!=typeof window?window.location.origin:"",h=()=>{const e=E(),[a,t,i]=Array.from(/(https):\/\/\d+\-\d+\-\d+\-(sandpack\.codesandbox\.io)/g.exec(e)||[]);return"https"===t&&"sandpack.codesandbox.io"===i},I=()=>{const e=E(),[a,t,i]=Array.from(/(https):\/\/\S+(\.csb\.app)/g.exec(e)||[]);return"https"===t&&".csb.app"===i},_=()=>{const e=E(),[a,t,i]=Array.from(/(https):\/\/\S+(\.adaptabletools\.com)/g.exec(e)||[]);return"https"===t&&".adaptabletools.com"===i};export class LicenseService{adaptable;licenseKey;packageDetails;constructor(e,a,t){this.adaptable=e,this.licenseKey=a,this.packageDetails=t,this.adaptable=e,this.adaptable.api.eventApi.on("AdaptableReady",()=>{requestAnimationFrame(()=>{this.adaptable.isDestroyed||this.init()})})}init(){let e=null;if(this.licenseKey)try{e=n(this.licenseKey)}catch(a){e=a}h()||I()||_()||this.handleLicenseValidation(e,this.getValidityType(e,this.packageDetails))}getValidityType(e,a){if(!e)return LicenseValidityType.NO_LICENSE;if(e instanceof Error)return LicenseValidityType.INVALID_LICENSE;const t=new Date(a.publishedAt),i=new Date(e.end),s=i<new Date,o=e.trial;let n=null;return n=s?i>t?o?LicenseValidityType.NON_PRODUCTION_EXPIRED_IN_SCOPE:LicenseValidityType.COMMERCIAL_EXPIRED_IN_SCOPE:o?LicenseValidityType.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE:LicenseValidityType.COMMERCIAL_EXPIRED_OUT_OF_SCOPE:o?LicenseValidityType.NON_PRODUCTION_VALID:LicenseValidityType.COMMERCIAL_VALID,n}handleLicenseValidation(e,a){const t=new Date;t.setHours(0,0,0,0);let i=0;e instanceof Error||!e?.end||(i=Math.floor((e?.end?.getTime()-t.getTime())/d),i=s(i,0,1/0));let n="",E="";!e||e instanceof Error||!e.appName||e.appName==r||(n=e.appName,E=" for application [APP_NAME]");const h=(e,a=o,t=c,s=i,r=n)=>e.replace("[LINK]",a).replace("[EMAIL]",t).replace("[APP_NAME]",r).replace("[DAYS]",`${s}`);switch(a){case"NO_LICENSE":case"NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE":this.adaptable.logger.consoleLogByMessageType(h("This instance of AdapTable does not have a license, and some functionality has therefore been removed. In order to use a fully-featured version of AdapTable, please contact [EMAIL]. You can learn more about the different AdapTable license options at [LINK]."),"Error"),this.showNotification("No AdapTable License found."),this.showWatermark("This instance of AdapTable does not have a license, and some functionality has therefore been removed."),this.disableStatePersistence();break;case"INVALID_LICENSE":this.adaptable.logger.consoleLogByMessageType(h("This instance of AdapTable seems to use a corrupted License, and some functionality has therefore been removed. In order to use a fully-featured version of AdapTable, please contact [EMAIL]. You can learn more about the different AdapTable license options at [LINK]."),"Error"),this.showNotification("Corrupted AdapTable License found."),this.showWatermark("This instance of AdapTable has a corrupted License, and some functionality has therefore been removed."),this.disableStatePersistence();break;case"NON_PRODUCTION_VALID":this.adaptable.logger.consoleLogByMessageType(h("This AdapTable trial license expires in [DAYS] days. Please contact [EMAIL] to upgrade to a commercial version of AdapTable. You can learn more about the different AdapTable license options at [LINK]."),"Info");break;case"NON_PRODUCTION_EXPIRED_IN_SCOPE":this.adaptable.logger.consoleLogByMessageType(h("This AdapTable trial license has now expired. Please contact [EMAIL] to upgrade to a commercial version of AdapTable. You can learn more about the different AdapTable license options at [LINK]."),"Warning"),this.showWatermark("AdapTable License has expired");break;case"COMMERCIAL_VALID":if(i<=p)this.adaptable.logger.consoleLogByMessageType(h(`This AdapTable license${E} expires in [DAYS] days. Please contact [EMAIL] to renew (giving you access to Support and Updates)`),"Info");else try{l()&&this.adaptable.logger.consoleLogByMessageType(h(`Thank you for using a valid AdapTable license${E}. Your license will expire in [DAYS] days.`),"Info")}catch(e){}break;case"COMMERCIAL_EXPIRED_IN_SCOPE":this.adaptable.logger.consoleLogByMessageType(h(`This AdapTable license${E} has expired. Please contact [EMAIL] if you wish to renew (giving you access to Support and Updates)`),"Warning");break;case"COMMERCIAL_EXPIRED_OUT_OF_SCOPE":this.adaptable.logger.consoleLogByMessageType(h(`This AdapTable license${E} has expired. Adaptable version was published after the license expired. Please contact [EMAIL] if you wish to renew your license.`),"Error"),this.showNotification("Adaptable License has expired"),this.showWatermark("Adaptable License has expired")}}showNotification(e){this.adaptable.api.internalApi.dispatchReduxAction(t({alertType:"generic",header:"License Error",message:e,alertDefinition:i.CreateInternalAlertDefinitionForMessages("Error")}))}showWatermark(e){this.adaptable.api.internalApi.dispatchReduxAction(a(e))}disableStatePersistence(){this.adaptable.api.internalApi.dispatchReduxAction(e())}destroy(){}}
|
|
@@ -19,7 +19,7 @@ export declare class RowSummaryService {
|
|
|
19
19
|
*
|
|
20
20
|
* @param colId optional to evaluate only one column
|
|
21
21
|
*/
|
|
22
|
-
_throttledEvaluateRowSummary: import("../
|
|
22
|
+
_throttledEvaluateRowSummary: import("../Helpers/TimingHelper").DebouncedFunction<(reason?: {
|
|
23
23
|
columnIds: string[];
|
|
24
24
|
}) => void>;
|
|
25
25
|
private evaluateRowSummary;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ROW_SUMMARY_ROW_ID, WEIGHTED_AVERAGE_AGGREGATED_FUNCTION, } from '../../AdaptableState/Common/RowSummary';
|
|
2
2
|
import { RowSummarySet } from '../../Redux/ActionsReducers/InternalRedux';
|
|
3
3
|
import * as ModuleConstants from '../../Utilities/Constants/ModuleConstants';
|
|
4
|
-
import
|
|
4
|
+
import { roundNumber } from '../Extensions/NumberExtensions';
|
|
5
5
|
import { AggregatedScalarLiveValue } from './AggregatedScalarLiveValue';
|
|
6
6
|
import { isObjectEmpty } from '../Extensions/ObjectExtensions';
|
|
7
|
-
import throttle from '../
|
|
8
|
-
import isEqual from '../
|
|
7
|
+
import { throttle } from '../Helpers/TimingHelper';
|
|
8
|
+
import { isEqual } from '../Extensions/ObjectExtensions';
|
|
9
9
|
/**
|
|
10
10
|
* The logic is extracted here to make it easier to follow
|
|
11
11
|
*/
|
|
@@ -155,7 +155,7 @@ export class RowSummaryService {
|
|
|
155
155
|
if (expressionLiveValue) {
|
|
156
156
|
value = expressionLiveValue.getGlobalAggregatedValue();
|
|
157
157
|
if (typeof value === 'number' && !isNaN(value)) {
|
|
158
|
-
value =
|
|
158
|
+
value = roundNumber(value, 2);
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
const column = this.api.columnApi.getColumnWithColumnId(columnId);
|
|
@@ -9,7 +9,7 @@ import { useRef, useState } from 'react';
|
|
|
9
9
|
import StringExtensions from '../../../Utilities/Extensions/StringExtensions';
|
|
10
10
|
import { DataSource, InfiniteTableGrid, } from '../../../components/InfiniteTable';
|
|
11
11
|
import { Box, Flex } from '../../../components/Flex';
|
|
12
|
-
import throttle from '../../../Utilities/
|
|
12
|
+
import { throttle } from '../../../Utilities/Helpers/TimingHelper';
|
|
13
13
|
import { twMerge } from '../../../twMerge';
|
|
14
14
|
const dataTypes = [
|
|
15
15
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OBSERVABLE_EXPRESSION_ROW_ADDED, OBSERVABLE_EXPRESSION_ROW_REMOVED, } from './../../../Utilities/Constants/GeneralConstants';
|
|
2
|
-
import { getRuleAlertProperties, isScheduledAlertDefinition, } from '../../../Utilities/Helpers/ScheduledAlertHelper';
|
|
2
|
+
import { getRuleAlertProperties, isScheduledAlertDefinition, } from '../../../Utilities/Helpers/Scheduling/ScheduledAlertHelper';
|
|
3
3
|
export var AlertType;
|
|
4
4
|
(function (AlertType) {
|
|
5
5
|
AlertType["DataChange"] = "DataChange";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import ObjectFactory from '../../../Utilities/ObjectFactory';
|
|
2
|
-
import { CreateEmptyScheduledAlertDefinition } from '../../../Utilities/Helpers/ScheduledAlertHelper';
|
|
2
|
+
import { CreateEmptyScheduledAlertDefinition } from '../../../Utilities/Helpers/Scheduling/ScheduledAlertHelper';
|
|
3
3
|
import { AlertType } from './getAlertType';
|
|
4
4
|
/**
|
|
5
5
|
* This logic should be moved into Object factory once we have types on alert definitions
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isRuleBasedAlertDefinition } from '../../../Utilities/Helpers/ScheduledAlertHelper';
|
|
1
|
+
import { isRuleBasedAlertDefinition } from '../../../Utilities/Helpers/Scheduling/ScheduledAlertHelper';
|
|
2
2
|
export const mapAlertDefinition = (api, alertDefinition) => {
|
|
3
3
|
if (!isRuleBasedAlertDefinition(alertDefinition)) {
|
|
4
4
|
return alertDefinition;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { isRuleBasedAlertDefinition } from '../../../Utilities/Helpers/ScheduledAlertHelper';
|
|
2
|
+
import { isRuleBasedAlertDefinition } from '../../../Utilities/Helpers/Scheduling/ScheduledAlertHelper';
|
|
3
3
|
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
|
|
4
4
|
import { CheckBox } from '../../../components/CheckBox';
|
|
5
5
|
import { CodeBlock } from '../../../components/CodeBlock';
|