@adaptabletools/adaptable 18.0.0-canary.3 → 18.0.0-canary.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agGrid.d.ts +4 -21
- package/agGrid.js +9 -26
- package/base.css +27 -21
- package/base.css.map +1 -1
- package/index.css +108 -88
- package/index.css.map +1 -1
- package/package.json +4 -5
- package/src/AdaptableInterfaces/IAdaptable.d.ts +61 -109
- package/src/AdaptableOptions/AdaptableFrameworkComponent.d.ts +3 -0
- package/src/AdaptableOptions/AdaptableOptions.d.ts +7 -7
- package/src/AdaptableOptions/AdaptablePlugin.d.ts +2 -0
- package/src/AdaptableOptions/AdaptablePlugin.js +2 -0
- package/src/AdaptableOptions/ColumnFilterOptions.d.ts +11 -4
- package/src/AdaptableOptions/ColumnOptions.d.ts +9 -4
- package/src/AdaptableOptions/CommentOptions.d.ts +39 -0
- package/src/AdaptableOptions/DataImportOptions.d.ts +2 -2
- package/src/AdaptableOptions/GroupingOptions.d.ts +0 -26
- package/src/AdaptableOptions/MenuOptions.d.ts +11 -71
- package/src/AdaptableOptions/MenuOptions.js +1 -99
- package/src/AdaptableOptions/NoteOptions.d.ts +25 -0
- package/src/AdaptableOptions/StateOptions.d.ts +6 -0
- package/src/AdaptableOptions/UserInterfaceOptions.d.ts +17 -0
- package/src/Api/AdaptableApi.d.ts +9 -4
- package/src/Api/BulkUpdateApi.d.ts +0 -5
- package/src/Api/ColumnApi.d.ts +13 -0
- package/src/Api/CommentApi.d.ts +20 -22
- package/src/Api/ConfigApi.d.ts +4 -5
- package/src/Api/EventApi.d.ts +7 -9
- package/src/Api/Events/AdaptableReady.d.ts +3 -3
- package/src/Api/Events/CommentChanged.d.ts +11 -0
- package/src/Api/Events/GridDataChanged.d.ts +4 -4
- package/src/Api/GridApi.d.ts +42 -14
- package/src/Api/Implementation/ActionColumnApiImpl.d.ts +2 -0
- package/src/Api/Implementation/ActionColumnApiImpl.js +30 -0
- package/src/Api/Implementation/ActionRowApiImpl.js +3 -7
- package/src/Api/Implementation/AdaptableApiImpl.d.ts +3 -2
- package/src/Api/Implementation/AdaptableApiImpl.js +5 -2
- package/src/Api/Implementation/AlertApiImpl.js +5 -10
- package/src/Api/Implementation/ApiBase.d.ts +5 -3
- package/src/Api/Implementation/ApiBase.js +8 -2
- package/src/Api/Implementation/BulkUpdateApiImpl.d.ts +0 -1
- package/src/Api/Implementation/BulkUpdateApiImpl.js +0 -4
- package/src/Api/Implementation/CalendarApiImpl.js +1 -6
- package/src/Api/Implementation/CellSummaryApiImpl.d.ts +0 -5
- package/src/Api/Implementation/CellSummaryApiImpl.js +2 -23
- package/src/Api/Implementation/ChartingApiImpl.js +3 -3
- package/src/Api/Implementation/ColumnApiImpl.d.ts +5 -0
- package/src/Api/Implementation/ColumnApiImpl.js +45 -15
- package/src/Api/Implementation/ColumnFilterApiImpl.js +7 -7
- package/src/Api/Implementation/CommentsApiImpl.d.ts +8 -5
- package/src/Api/Implementation/CommentsApiImpl.js +12 -6
- package/src/Api/Implementation/ConfigApiImpl.d.ts +2 -2
- package/src/Api/Implementation/ConfigApiImpl.js +34 -30
- package/src/Api/Implementation/DashboardApiImpl.js +1 -6
- package/src/Api/Implementation/ExportApiImpl.js +5 -10
- package/src/Api/Implementation/ExpressionApiImpl.js +14 -19
- package/src/Api/Implementation/Fdc3ApiImpl.js +1 -1
- package/src/Api/Implementation/FlashingCellApiImpl.js +3 -8
- package/src/Api/Implementation/FormatColumnApiImpl.js +4 -4
- package/src/Api/Implementation/FreeTextColumnApiImpl.js +1 -1
- package/src/Api/Implementation/GridApiImpl.d.ts +10 -3
- package/src/Api/Implementation/GridApiImpl.js +78 -23
- package/src/Api/Implementation/LayoutApiImpl.d.ts +4 -7
- package/src/Api/Implementation/LayoutApiImpl.js +19 -13
- package/src/Api/Implementation/NoteApiImpl.d.ts +18 -0
- package/src/Api/Implementation/NoteApiImpl.js +40 -0
- package/src/Api/Implementation/OptionsApiImpl.d.ts +4 -4
- package/src/Api/Implementation/OptionsApiImpl.js +4 -4
- package/src/Api/Implementation/PredicateApiImpl.js +2 -2
- package/src/Api/Implementation/ScheduleApiImpl.js +6 -6
- package/src/Api/Implementation/ScopeApiImpl.d.ts +2 -0
- package/src/Api/Implementation/ScopeApiImpl.js +64 -18
- package/src/Api/Implementation/StatusBarApiImpl.d.ts +0 -1
- package/src/Api/Implementation/StatusBarApiImpl.js +0 -3
- package/src/Api/Implementation/TeamSharingApiImpl.js +3 -15
- package/src/Api/Implementation/ThemeApiImpl.js +2 -7
- package/src/Api/Implementation/ToolPanelApiImpl.js +6 -6
- package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +14 -8
- package/src/Api/Implementation/UserInterfaceApiImpl.js +30 -25
- package/src/Api/Internal/ActionRowInternalApi.d.ts +6 -1
- package/src/Api/Internal/ActionRowInternalApi.js +117 -38
- package/src/Api/Internal/AdaptableInternalApi.d.ts +6 -8
- package/src/Api/Internal/AdaptableInternalApi.js +25 -37
- package/src/Api/Internal/AlertInternalApi.js +4 -17
- package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +2 -0
- package/src/Api/Internal/CalculatedColumnInternalApi.js +78 -14
- package/src/Api/Internal/ChartingInternalApi.js +13 -13
- package/src/Api/Internal/ColumnFilterInternalApi.d.ts +2 -0
- package/src/Api/Internal/ColumnFilterInternalApi.js +35 -31
- package/src/Api/Internal/ColumnInternalApi.d.ts +6 -1
- package/src/Api/Internal/ColumnInternalApi.js +19 -1
- package/src/Api/Internal/CommentsInternalApi.d.ts +4 -0
- package/src/Api/Internal/CommentsInternalApi.js +14 -0
- package/src/Api/Internal/CustomSortInternalApi.d.ts +3 -2
- package/src/Api/Internal/CustomSortInternalApi.js +33 -2
- package/src/Api/Internal/DashboardInternalApi.js +5 -11
- package/src/Api/Internal/DataImportInternalApi.js +3 -9
- package/src/Api/Internal/DataSetInternalApi.js +3 -8
- package/src/Api/Internal/ExportInternalApi.d.ts +2 -1
- package/src/Api/Internal/ExportInternalApi.js +8 -5
- package/src/Api/Internal/ExpressionInternalApi.js +2 -12
- package/src/Api/Internal/Fdc3InternalApi.js +3 -12
- package/src/Api/Internal/FormatColumnInternalApi.d.ts +1 -4
- package/src/Api/Internal/FormatColumnInternalApi.js +26 -28
- package/src/Api/Internal/FreeTextColumnInternalApi.d.ts +2 -0
- package/src/Api/Internal/FreeTextColumnInternalApi.js +61 -1
- package/src/Api/Internal/GridFilterInternalApi.d.ts +5 -0
- package/src/Api/Internal/GridFilterInternalApi.js +9 -9
- package/src/Api/Internal/GridInternalApi.d.ts +23 -3
- package/src/Api/Internal/GridInternalApi.js +151 -44
- package/src/Api/Internal/LayoutInternalApi.d.ts +2 -0
- package/src/Api/Internal/LayoutInternalApi.js +26 -19
- package/src/Api/Internal/NoteInternalApi.d.ts +4 -0
- package/src/Api/Internal/NoteInternalApi.js +14 -0
- package/src/Api/Internal/PredicateInternalApi.js +5 -40
- package/src/Api/Internal/ScheduleInternalApi.js +1 -6
- package/src/Api/Internal/StyledColumnInternalApi.js +5 -5
- package/src/Api/Internal/SystemStatusInternalApi.js +1 -7
- package/src/Api/Internal/TeamSharingInternalApi.js +3 -8
- package/src/Api/Internal/ThemeInternalApi.js +1 -1
- package/src/Api/Internal/UserInterfaceInternalApi.js +1 -1
- package/src/Api/InteropioPluginApi.d.ts +2 -2
- package/src/Api/LayoutApi.d.ts +17 -9
- package/src/Api/NoteApi.d.ts +48 -0
- package/src/Api/OptionsApi.d.ts +8 -8
- package/src/Api/ScopeApi.d.ts +10 -0
- package/src/Api/UserInterfaceApi.d.ts +15 -13
- package/src/EnvVars.d.ts +3 -0
- package/src/EnvVars.js +4 -0
- package/src/PredefinedConfig/AdaptableState.d.ts +2 -2
- package/src/PredefinedConfig/CommentState.d.ts +27 -23
- package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +4 -0
- package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
- package/src/PredefinedConfig/Common/AdaptableScope.d.ts +4 -1
- package/src/PredefinedConfig/Common/AggregationColumns.d.ts +1 -0
- package/src/PredefinedConfig/Common/AggregationColumns.js +3 -0
- package/src/PredefinedConfig/Common/CellSummary.d.ts +5 -14
- package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +4 -0
- package/src/PredefinedConfig/Common/Enums.d.ts +4 -1
- package/src/PredefinedConfig/Common/Enums.js +3 -0
- package/src/PredefinedConfig/Common/Fdc3Intent.d.ts +2 -2
- package/src/PredefinedConfig/Common/Menu.d.ts +15 -1
- package/src/PredefinedConfig/Common/Menu.js +116 -1
- package/src/PredefinedConfig/Common/RowSummary.d.ts +21 -0
- package/src/PredefinedConfig/Common/RowSummary.js +17 -0
- package/src/PredefinedConfig/Common/TransposeConfig.d.ts +30 -0
- package/src/PredefinedConfig/Common/Types.d.ts +4 -4
- package/src/PredefinedConfig/Common/Types.js +4 -1
- package/src/PredefinedConfig/FormatColumnState.d.ts +6 -1
- package/src/PredefinedConfig/LayoutState.d.ts +5 -0
- package/src/PredefinedConfig/{NotesState.d.ts → NoteState.d.ts} +12 -22
- package/src/PredefinedConfig/PopupState.d.ts +1 -2
- package/src/PredefinedConfig/PredefinedConfig.d.ts +3 -3
- package/src/PredefinedConfig/Selection/GridCell.d.ts +13 -0
- package/src/PredefinedConfig/StyledColumnState.d.ts +5 -0
- package/src/PredefinedConfig/SystemState.d.ts +12 -4
- package/src/Redux/ActionsReducers/CommentsRedux.d.ts +0 -4
- package/src/Redux/ActionsReducers/CommentsRedux.js +0 -34
- package/src/Redux/ActionsReducers/LayoutRedux.d.ts +9 -0
- package/src/Redux/ActionsReducers/LayoutRedux.js +32 -10
- package/src/Redux/ActionsReducers/NoteRedux.d.ts +38 -0
- package/src/Redux/ActionsReducers/{NotesRedux.js → NoteRedux.js} +29 -28
- package/src/Redux/ActionsReducers/PopupRedux.d.ts +5 -13
- package/src/Redux/ActionsReducers/PopupRedux.js +0 -19
- package/src/Redux/ActionsReducers/SystemRedux.d.ts +15 -4
- package/src/Redux/ActionsReducers/SystemRedux.js +24 -9
- package/src/Redux/Store/AdaptableStore.d.ts +4 -6
- package/src/Redux/Store/AdaptableStore.js +70 -80
- package/src/Redux/Store/Interface/IAdaptableStore.d.ts +8 -2
- package/src/Strategy/AdaptableModuleBase.d.ts +11 -12
- package/src/Strategy/AdaptableModuleBase.js +17 -23
- package/src/Strategy/AlertModule.d.ts +2 -3
- package/src/Strategy/AlertModule.js +4 -57
- package/src/Strategy/BulkUpdateModule.d.ts +1 -1
- package/src/Strategy/BulkUpdateModule.js +2 -1
- package/src/Strategy/CalculatedColumnModule.d.ts +4 -5
- package/src/Strategy/CalculatedColumnModule.js +8 -28
- package/src/Strategy/CellSummaryModule.d.ts +10 -8
- package/src/Strategy/CellSummaryModule.js +85 -70
- package/src/Strategy/ChartingModule.d.ts +0 -1
- package/src/Strategy/ChartingModule.js +2 -22
- package/src/Strategy/ColumnFilterModule.d.ts +3 -4
- package/src/Strategy/ColumnFilterModule.js +37 -121
- package/src/Strategy/ColumnInfoModule.d.ts +2 -2
- package/src/Strategy/ColumnInfoModule.js +6 -4
- package/src/Strategy/CommentModule.d.ts +11 -0
- package/src/Strategy/CommentModule.js +70 -0
- package/src/Strategy/CustomSortModule.d.ts +1 -1
- package/src/Strategy/CustomSortModule.js +4 -3
- package/src/Strategy/DashboardModule.d.ts +3 -4
- package/src/Strategy/DashboardModule.js +11 -28
- package/src/Strategy/DataChangeHistoryModule.d.ts +1 -0
- package/src/Strategy/DataChangeHistoryModule.js +3 -1
- package/src/Strategy/DataImportModule.d.ts +4 -4
- package/src/Strategy/DataImportModule.js +8 -8
- package/src/Strategy/DataSetModule.d.ts +1 -1
- package/src/Strategy/DataSetModule.js +1 -1
- package/src/Strategy/ExportModule.d.ts +1 -2
- package/src/Strategy/ExportModule.js +39 -42
- package/src/Strategy/Fdc3Module.d.ts +1 -1
- package/src/Strategy/Fdc3Module.js +3 -13
- package/src/Strategy/FlashingCellModule.d.ts +3 -4
- package/src/Strategy/FlashingCellModule.js +8 -21
- package/src/Strategy/FormatColumnModule.d.ts +1 -3
- package/src/Strategy/FormatColumnModule.js +27 -91
- package/src/Strategy/FreeTextColumnModule.d.ts +1 -2
- package/src/Strategy/FreeTextColumnModule.js +2 -32
- package/src/Strategy/GridFilterModule.d.ts +0 -1
- package/src/Strategy/GridFilterModule.js +0 -37
- package/src/Strategy/GridInfoModule.d.ts +2 -2
- package/src/Strategy/GridInfoModule.js +5 -3
- package/src/Strategy/Interface/IModule.d.ts +3 -4
- package/src/Strategy/LayoutModule.d.ts +5 -6
- package/src/Strategy/LayoutModule.js +77 -122
- package/src/Strategy/NamedQueryModule.d.ts +0 -1
- package/src/Strategy/NamedQueryModule.js +0 -19
- package/src/Strategy/{NotesModule.d.ts → NoteModule.d.ts} +3 -3
- package/src/Strategy/NoteModule.js +55 -0
- package/src/Strategy/PlusMinusModule.d.ts +2 -2
- package/src/Strategy/PlusMinusModule.js +3 -3
- package/src/Strategy/ScheduleModule.d.ts +1 -1
- package/src/Strategy/ScheduleModule.js +1 -1
- package/src/Strategy/SettingsPanelModule.d.ts +3 -3
- package/src/Strategy/SettingsPanelModule.js +6 -6
- package/src/Strategy/ShortcutModule.d.ts +1 -1
- package/src/Strategy/ShortcutModule.js +1 -1
- package/src/Strategy/SmartEditModule.d.ts +1 -1
- package/src/Strategy/SmartEditModule.js +2 -1
- package/src/Strategy/StyledColumnModule.d.ts +2 -2
- package/src/Strategy/StyledColumnModule.js +45 -40
- package/src/Strategy/SystemStatusModule.d.ts +2 -2
- package/src/Strategy/SystemStatusModule.js +4 -3
- package/src/Strategy/TeamSharingModule.d.ts +1 -0
- package/src/Strategy/TeamSharingModule.js +5 -5
- package/src/Strategy/ToolPanelModule.d.ts +0 -1
- package/src/Strategy/ToolPanelModule.js +0 -23
- package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +1 -0
- package/src/Strategy/Utilities/getScopeViewItems.js +3 -0
- package/src/Utilities/Constants/DocumentationLinkConstants.js +1 -1
- package/src/Utilities/Constants/GeneralConstants.d.ts +2 -0
- package/src/Utilities/Constants/GeneralConstants.js +2 -0
- package/src/Utilities/Constants/ModuleConstants.d.ts +6 -6
- package/src/Utilities/Constants/ModuleConstants.js +6 -6
- package/src/Utilities/Defaults/DefaultSettingsPanel.js +7 -6
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +3 -2
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +433 -3
- package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -3
- package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +1 -1
- package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -1
- package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +15 -0
- package/src/Utilities/Extensions/ArrayExtensions.d.ts +2 -0
- package/src/Utilities/Extensions/ArrayExtensions.js +4 -0
- package/src/Utilities/Helpers/AdaptableHelper.d.ts +3 -4
- package/src/Utilities/Helpers/AdaptableHelper.js +19 -58
- package/src/Utilities/Helpers/Helper.d.ts +2 -0
- package/src/Utilities/Helpers/Helper.js +4 -0
- package/src/Utilities/Interface/MessagePopups.d.ts +0 -3
- package/src/Utilities/MenuItem.d.ts +7 -4
- package/src/Utilities/MenuItem.js +6 -3
- package/src/Utilities/ObjectFactory.d.ts +3 -3
- package/src/Utilities/ObjectFactory.js +6 -24
- package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +4 -2
- package/src/Utilities/Services/AggregatedScalarLiveValue.js +26 -19
- package/src/Utilities/Services/CellPopupService.js +2 -3
- package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +1 -1
- package/src/Utilities/Services/Interface/IReportService.d.ts +1 -4
- package/src/Utilities/Services/LicenseService/index.d.ts +3 -0
- package/src/Utilities/Services/LicenseService/index.js +1 -181
- package/src/Utilities/Services/MetamodelService.d.ts +1 -1
- package/src/Utilities/Services/MetamodelService.js +6 -3
- package/src/Utilities/Services/ModuleService.js +6 -2
- package/src/Utilities/Services/QueryLanguageService.d.ts +1 -1
- package/src/Utilities/Services/QueryLanguageService.js +4 -3
- package/src/Utilities/Services/ReportService.d.ts +7 -5
- package/src/Utilities/Services/ReportService.js +243 -24
- package/src/Utilities/Services/RowEditService.d.ts +3 -2
- package/src/Utilities/Services/RowEditService.js +3 -1
- package/src/Utilities/Services/RowSummaryService.d.ts +22 -0
- package/src/Utilities/Services/RowSummaryService.js +141 -0
- package/src/Utilities/adaptableQlUtils.d.ts +2 -0
- package/src/Utilities/adaptableQlUtils.js +14 -0
- package/src/Utilities/license/decode.js +1 -65
- package/src/Utilities/license/hashing.js +1 -43
- package/src/View/AdaptableView.js +1 -3
- package/src/View/AdaptableViewFactory.js +2 -2
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +2 -2
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +1 -1
- package/src/View/BulkUpdate/BulkUpdatePopup.js +1 -1
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.d.ts +1 -1
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +3 -3
- package/src/View/CalculatedColumn/utils.d.ts +1 -1
- package/src/View/CellSummary/CellSummaryPopup.js +1 -1
- package/src/View/Comments/CommentsEditor.js +28 -17
- package/src/View/Comments/CommentsPopup.js +25 -13
- package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
- package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.d.ts +5 -0
- package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.js +42 -0
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +5 -2
- package/src/View/Components/CellPopup/index.d.ts +1 -0
- package/src/View/Components/CellPopup/index.js +6 -3
- package/src/View/Components/FilterForm/FilterForm.js +20 -12
- package/src/View/Components/FilterForm/QuickFilterForm.js +15 -8
- package/src/View/Components/FilterForm/QuickFilterValues.js +39 -23
- package/src/View/Components/NewScopeComponent.js +34 -1
- package/src/View/Components/Popups/AdaptableLoadingScreen.d.ts +6 -5
- package/src/View/Components/Popups/AdaptableLoadingScreen.js +19 -9
- package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +9 -1
- package/src/View/Components/Popups/AdaptableToaster.js +1 -1
- package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +7 -7
- package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +1 -0
- package/src/View/Components/Popups/WindowPopups/windowFactory.js +3 -0
- package/src/View/Components/Selectors/PermittedValuesSelector.js +2 -2
- package/src/View/Components/ValueSelector/index.d.ts +1 -0
- package/src/View/Components/ValueSelector/index.js +2 -2
- package/src/View/CustomSort/CustomSortSummary.js +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +8 -9
- package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +19 -6
- package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +11 -7
- package/src/View/FreeTextColumn/FreeTextColumnSummary.js +1 -1
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +3 -1
- package/src/View/GridFilter/GridFilterViewPanel.js +9 -5
- package/src/View/GridFilter/useGridFilterExpressionEditor.js +1 -1
- package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -3
- package/src/View/Layout/LayoutViewPanel.js +2 -1
- package/src/View/Layout/TransposedPopup.d.ts +3 -0
- package/src/View/Layout/TransposedPopup.js +195 -0
- package/src/View/Layout/Wizard/LayoutWizard.js +38 -3
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
- package/src/View/Layout/Wizard/sections/FilterSection.js +1 -1
- package/src/View/Layout/Wizard/sections/RowGroupingSection.js +17 -1
- package/src/View/Layout/Wizard/sections/RowSummarySection.d.ts +9 -0
- package/src/View/Layout/Wizard/sections/RowSummarySection.js +174 -0
- package/src/View/License/LicenseWatermark.js +1 -61
- package/src/View/Note/NotePopup.d.ts +2 -0
- package/src/View/{Notes/NotesPopup.js → Note/NotePopup.js} +20 -17
- package/src/View/SpecialColumnSettingsWizardStep.js +4 -4
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.js +14 -10
- package/src/View/Theme/ThemeSelector.js +3 -3
- package/src/agGrid/ActionColumnRenderer.js +7 -6
- package/src/agGrid/Adaptable.d.ts +3 -455
- package/src/agGrid/Adaptable.js +8 -5292
- package/src/agGrid/AdaptableAgGrid.d.ts +346 -0
- package/src/agGrid/AdaptableAgGrid.js +3910 -0
- package/src/agGrid/AdaptableLogger.js +77 -11
- package/src/agGrid/AgGridAdapter.d.ts +64 -0
- package/src/agGrid/AgGridAdapter.js +589 -0
- package/src/agGrid/AgGridColumnAdapter.d.ts +54 -0
- package/src/agGrid/AgGridColumnAdapter.js +794 -0
- package/src/agGrid/AgGridMenuAdapter.d.ts +44 -0
- package/src/agGrid/AgGridMenuAdapter.js +600 -0
- package/src/agGrid/AgGridOptionsService.d.ts +15 -0
- package/src/agGrid/AgGridOptionsService.js +76 -0
- package/src/agGrid/BadgeRenderer.js +8 -2
- package/src/agGrid/CheckboxRenderer.js +1 -1
- package/src/agGrid/FilterWrapper.d.ts +2 -2
- package/src/agGrid/FilterWrapper.js +1 -1
- package/src/agGrid/PercentBarRenderer.js +3 -1
- package/src/agGrid/attachAddaptableColumnTypes.d.ts +12 -12
- package/src/agGrid/buildSortedColumnStateForLayout.d.ts +7 -0
- package/src/agGrid/buildSortedColumnStateForLayout.js +120 -0
- package/src/agGrid/defaultAdaptableOptions.d.ts +3 -0
- package/src/{Utilities/Defaults/DefaultAdaptableOptions.js → agGrid/defaultAdaptableOptions.js} +71 -18
- package/src/agGrid/editors/AdaptableDateEditor/index.d.ts +1 -1
- package/src/agGrid/editors/AdaptableDateEditor/index.js +3 -3
- package/src/agGrid/editors/AdaptableNumberEditor/index.d.ts +2 -2
- package/src/agGrid/editors/AdaptableNumberEditor/index.js +2 -2
- package/src/agGrid/sortColumnStateForVisibleColumns.d.ts +12 -0
- package/src/agGrid/sortColumnStateForVisibleColumns.js +46 -0
- package/src/agGrid/weightedAverage.d.ts +0 -2
- package/src/agGrid/weightedAverage.js +0 -54
- package/src/components/CheckBox/index.js +1 -1
- package/src/components/ColorPicker/ColorPicker.d.ts +1 -1
- package/src/components/Datepicker/index.d.ts +1 -1
- package/src/components/Datepicker/index.js +10 -2
- package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +2 -1
- package/src/components/ExpressionEditor/QueryBuilder/utils.d.ts +0 -1
- package/src/components/ExpressionEditor/QueryBuilder/utils.js +1 -14
- package/src/components/InfiniteTable/index.js +2 -2
- package/src/components/Input/index.d.ts +1 -2
- package/src/components/List/ListGroupItem/index.d.ts +1 -1
- package/src/components/Modal/index.d.ts +1 -0
- package/src/components/Modal/index.js +4 -3
- package/src/components/ProgressIndicator/ProgressIndicator.js +15 -6
- package/src/components/Select/Select.d.ts +3 -1
- package/src/components/Select/Select.js +4 -2
- package/src/components/Textarea/index.d.ts +2 -2
- package/src/components/icons/copy.d.ts +3 -0
- package/src/components/icons/copy.js +4 -0
- package/src/components/icons/filter-off.d.ts +3 -0
- package/src/components/icons/filter-off.js +4 -0
- package/src/components/icons/grid-info.d.ts +3 -0
- package/src/components/icons/grid-info.js +4 -0
- package/src/components/icons/index.js +14 -0
- package/src/components/icons/note.js +2 -2
- package/src/components/icons/rows.d.ts +3 -0
- package/src/components/icons/rows.js +4 -0
- package/src/components/icons/select-all.d.ts +3 -0
- package/src/components/icons/select-all.js +4 -0
- package/src/components/icons/select-fwd.d.ts +3 -0
- package/src/components/icons/select-fwd.js +4 -0
- package/src/components/icons/select-off.d.ts +3 -0
- package/src/components/icons/select-off.js +4 -0
- package/src/env.js +2 -2
- package/src/metamodel/adaptable.metamodel.d.ts +203 -47
- package/src/metamodel/adaptable.metamodel.js +1 -9313
- package/src/migration/AdaptableUpgradeHelper.d.ts +38 -0
- package/src/migration/AdaptableUpgradeHelper.js +48 -0
- package/src/migration/VersionUpgrade.d.ts +8 -0
- package/src/migration/VersionUpgrade.js +11 -0
- package/src/migration/VersionUpgrade17.d.ts +18 -0
- package/src/migration/VersionUpgrade17.js +342 -0
- package/src/migration/VersionUpgrade18.d.ts +5 -0
- package/src/migration/VersionUpgrade18.js +6 -0
- package/src/parser/src/parser.js +576 -553
- package/src/parser/src/predicate/mapExpressionToQlPredicate.js +1 -1
- package/src/parser/src/predicate/mapQlPredicateToExpression.js +3 -4
- package/src/parser/src/types.d.ts +7 -2
- package/src/parser/src/types.js +1 -2
- package/src/types.d.ts +27 -20
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/src/AdaptableOptions/CommentsOptions.d.ts +0 -28
- package/src/AdaptableOptions/NotesOptions.d.ts +0 -16
- package/src/Api/Events/CommentsChangedInfo.d.ts +0 -5
- package/src/Api/Implementation/NotesApiImpl.d.ts +0 -16
- package/src/Api/Implementation/NotesApiImpl.js +0 -39
- package/src/Api/NotesApi.d.ts +0 -48
- package/src/PredefinedConfig/CellAddress.d.ts +0 -13
- package/src/PredefinedConfig/CellAddress.js +0 -4
- package/src/Redux/ActionsReducers/NotesRedux.d.ts +0 -39
- package/src/Strategy/CommentsModule.d.ts +0 -16
- package/src/Strategy/CommentsModule.js +0 -77
- package/src/Strategy/NotesModule.js +0 -57
- package/src/Utilities/Defaults/DefaultAdaptableOptions.d.ts +0 -2
- package/src/Utilities/Services/Interface/IRowEditService.d.ts +0 -3
- package/src/View/Components/ScopeComponent.d.ts +0 -24
- package/src/View/Components/ScopeComponent.js +0 -133
- package/src/View/Export/Wizard/ReportScopeWizard.d.ts +0 -17
- package/src/View/Export/Wizard/ReportScopeWizard.js +0 -47
- package/src/View/Notes/NotesPopup.d.ts +0 -2
- package/src/agGrid/agGridHelper.d.ts +0 -57
- package/src/agGrid/agGridHelper.js +0 -686
- package/src/agGrid/agGridMenuHelper.d.ts +0 -46
- package/src/agGrid/agGridMenuHelper.js +0 -668
- /package/src/AdaptableOptions/{CommentsOptions.js → CommentOptions.js} +0 -0
- /package/src/AdaptableOptions/{NotesOptions.js → NoteOptions.js} +0 -0
- /package/src/Api/Events/{CommentsChangedInfo.js → CommentChanged.js} +0 -0
- /package/src/Api/{NotesApi.js → NoteApi.js} +0 -0
- /package/src/PredefinedConfig/{NotesState.js → Common/TransposeConfig.js} +0 -0
- /package/src/{Utilities/Services/Interface/IRowEditService.js → PredefinedConfig/NoteState.js} +0 -0
- /package/src/View/{Notes → Note}/NoteEditor.d.ts +0 -0
- /package/src/View/{Notes → Note}/NoteEditor.js +0 -0
|
@@ -1,181 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { PopupShowAlert } from '../../../Redux/ActionsReducers/PopupRedux';
|
|
3
|
-
import ObjectFactory from '../../ObjectFactory';
|
|
4
|
-
import clamp from 'lodash/clamp';
|
|
5
|
-
import { LicenseDocsLink } from '../../Constants/DocumentationLinkConstants';
|
|
6
|
-
import { decode as decodeLicense, GENERIC_APP_NAME } from '../../license/decode';
|
|
7
|
-
import { shouldLogThankYouMessage } from './shouldLogThankYouMessage';
|
|
8
|
-
const EMAIL = 'sales@adaptabletools.com';
|
|
9
|
-
const COMMERCIAL_LICENSE_SHOW_INFO_DAYS_BEFORE_EXPIRE = 10;
|
|
10
|
-
const DAY_IN_MS = 1000 * 60 * 60 * 24;
|
|
11
|
-
export var LicenseValidityType;
|
|
12
|
-
(function (LicenseValidityType) {
|
|
13
|
-
LicenseValidityType["INVALID_LICENSE"] = "INVALID_LICENSE";
|
|
14
|
-
LicenseValidityType["NO_LICENSE"] = "NO_LICENSE";
|
|
15
|
-
LicenseValidityType["NON_PRODUCTION_VALID"] = "NON_PRODUCTION_VALID";
|
|
16
|
-
LicenseValidityType["NON_PRODUCTION_EXPIRED_IN_SCOPE"] = "NON_PRODUCTION_EXPIRED_IN_SCOPE";
|
|
17
|
-
LicenseValidityType["NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE"] = "NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE";
|
|
18
|
-
LicenseValidityType["COMMERCIAL_VALID"] = "COMMERCIAL_VALID";
|
|
19
|
-
LicenseValidityType["COMMERCIAL_EXPIRED_IN_SCOPE"] = "COMMERCIAL_EXPIRED_IN_SCOPE";
|
|
20
|
-
LicenseValidityType["COMMERCIAL_EXPIRED_OUT_OF_SCOPE"] = "COMMERCIAL_EXPIRED_OUT_OF_SCOPE";
|
|
21
|
-
})(LicenseValidityType || (LicenseValidityType = {}));
|
|
22
|
-
const SANDPACK_REGEX = /(https):\/\/\d+\-\d+\-\d+\-(sandpack\.codesandbox\.io)/g;
|
|
23
|
-
const SANDBOX_REGEX = /(https):\/\/\S+(\.csb\.app)/g;
|
|
24
|
-
const DEMO_REGEX = /(https):\/\/\S+(\.adaptabletools\.com)/g;
|
|
25
|
-
const origin = typeof window !== 'undefined' ? window.location.origin : '';
|
|
26
|
-
const isInsideSandpack = () => {
|
|
27
|
-
const [_fullUrl, protocol, sandpackUrl] = Array.from(SANDPACK_REGEX.exec(origin) || []);
|
|
28
|
-
return protocol === 'https' && sandpackUrl === 'sandpack.codesandbox.io';
|
|
29
|
-
};
|
|
30
|
-
const isInsideSandbox = () => {
|
|
31
|
-
const [_fullUrl, protocol, sandboxUrl] = Array.from(SANDBOX_REGEX.exec(origin) || []);
|
|
32
|
-
return protocol === 'https' && sandboxUrl === '.csb.app';
|
|
33
|
-
};
|
|
34
|
-
const isDemoApp = () => {
|
|
35
|
-
const [_fullUrl, protocol, demoAppUrl] = Array.from(DEMO_REGEX.exec(origin) || []);
|
|
36
|
-
return protocol === 'https' && demoAppUrl === '.adaptabletools.com';
|
|
37
|
-
};
|
|
38
|
-
export class LicenseService {
|
|
39
|
-
constructor(adaptable, licenseKey, packageDetails) {
|
|
40
|
-
this.adaptable = adaptable;
|
|
41
|
-
this.adaptable = adaptable;
|
|
42
|
-
let details = null;
|
|
43
|
-
if (licenseKey) {
|
|
44
|
-
try {
|
|
45
|
-
details = decodeLicense(licenseKey);
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
details = error;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
if (!isInsideSandpack() && !isInsideSandbox() && !isDemoApp()) {
|
|
52
|
-
this.handleLicenseValidation(details, this.getValidityType(details, packageDetails));
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
getValidityType(details, packageDetails) {
|
|
56
|
-
if (!details) {
|
|
57
|
-
return LicenseValidityType.NO_LICENSE;
|
|
58
|
-
}
|
|
59
|
-
if (details instanceof Error) {
|
|
60
|
-
return LicenseValidityType.INVALID_LICENSE;
|
|
61
|
-
}
|
|
62
|
-
const currentVersionReleaseDate = new Date(packageDetails.publishedAt);
|
|
63
|
-
const licenseEndDate = new Date(details.end);
|
|
64
|
-
const currentDate = new Date();
|
|
65
|
-
const isExpired = licenseEndDate < currentDate;
|
|
66
|
-
const isTrial = details.trial;
|
|
67
|
-
const isScope = licenseEndDate > currentVersionReleaseDate;
|
|
68
|
-
let validityType = null;
|
|
69
|
-
if (isExpired) {
|
|
70
|
-
if (isScope) {
|
|
71
|
-
if (isTrial) {
|
|
72
|
-
validityType = LicenseValidityType.NON_PRODUCTION_EXPIRED_IN_SCOPE;
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
validityType = LicenseValidityType.COMMERCIAL_EXPIRED_IN_SCOPE;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
if (isTrial) {
|
|
80
|
-
validityType = LicenseValidityType.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE;
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
validityType = LicenseValidityType.COMMERCIAL_EXPIRED_OUT_OF_SCOPE;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
if (isTrial) {
|
|
89
|
-
validityType = LicenseValidityType.NON_PRODUCTION_VALID;
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
validityType = LicenseValidityType.COMMERCIAL_VALID;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return validityType;
|
|
96
|
-
}
|
|
97
|
-
handleLicenseValidation(details, validityType) {
|
|
98
|
-
var _a;
|
|
99
|
-
const nowAtMidnight = new Date();
|
|
100
|
-
nowAtMidnight.setHours(0, 0, 0, 0);
|
|
101
|
-
let daysLeft = 0;
|
|
102
|
-
if (!(details instanceof Error) && (details === null || details === void 0 ? void 0 : details.end)) {
|
|
103
|
-
daysLeft = Math.floor((((_a = details === null || details === void 0 ? void 0 : details.end) === null || _a === void 0 ? void 0 : _a.getTime()) - nowAtMidnight.getTime()) / DAY_IN_MS);
|
|
104
|
-
daysLeft = clamp(daysLeft, 0, Infinity);
|
|
105
|
-
}
|
|
106
|
-
let APP_NAME = '';
|
|
107
|
-
let forApp = '';
|
|
108
|
-
if (details &&
|
|
109
|
-
!(details instanceof Error) &&
|
|
110
|
-
details.appName &&
|
|
111
|
-
details.appName != GENERIC_APP_NAME) {
|
|
112
|
-
APP_NAME = details.appName;
|
|
113
|
-
forApp = ` for application [APP_NAME]`;
|
|
114
|
-
}
|
|
115
|
-
const annotateMessage = (message, link = LicenseDocsLink, email = EMAIL, days = daysLeft, appName = APP_NAME) => {
|
|
116
|
-
return message
|
|
117
|
-
.replace('[LINK]', link)
|
|
118
|
-
.replace('[EMAIL]', email)
|
|
119
|
-
.replace('[APP_NAME]', appName)
|
|
120
|
-
.replace('[DAYS]', `${days}`);
|
|
121
|
-
};
|
|
122
|
-
switch (validityType) {
|
|
123
|
-
case 'NO_LICENSE':
|
|
124
|
-
case 'NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE':
|
|
125
|
-
this.adaptable.logger.consoleLogByMessageType(annotateMessage('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');
|
|
126
|
-
this.showNotification('No AdapTable License found.');
|
|
127
|
-
this.showWatermark('This instance of AdapTable does not have a license, and some functionality has therefore been removed.');
|
|
128
|
-
this.disableStatePersistence();
|
|
129
|
-
break;
|
|
130
|
-
case 'INVALID_LICENSE':
|
|
131
|
-
this.adaptable.logger.consoleLogByMessageType(annotateMessage('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');
|
|
132
|
-
this.showNotification('Corrupted AdapTable License found.');
|
|
133
|
-
this.showWatermark(`This instance of AdapTable has a corrupted License, and some functionality has therefore been removed.`);
|
|
134
|
-
this.disableStatePersistence();
|
|
135
|
-
break;
|
|
136
|
-
case 'NON_PRODUCTION_VALID':
|
|
137
|
-
this.adaptable.logger.consoleLogByMessageType(annotateMessage('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');
|
|
138
|
-
break;
|
|
139
|
-
case 'NON_PRODUCTION_EXPIRED_IN_SCOPE':
|
|
140
|
-
this.adaptable.logger.consoleLogByMessageType(annotateMessage('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');
|
|
141
|
-
this.showWatermark('AdapTable License has expired');
|
|
142
|
-
break;
|
|
143
|
-
case 'COMMERCIAL_VALID':
|
|
144
|
-
if (daysLeft <= COMMERCIAL_LICENSE_SHOW_INFO_DAYS_BEFORE_EXPIRE) {
|
|
145
|
-
this.adaptable.logger.consoleLogByMessageType(annotateMessage(`This AdapTable license${forApp} expires in [DAYS] days. Please contact [EMAIL] to renew (giving you access to Support and Updates)`), 'Info');
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
try {
|
|
149
|
-
if (shouldLogThankYouMessage()) {
|
|
150
|
-
this.adaptable.logger.consoleLogByMessageType(annotateMessage(`Thank you for using a valid AdapTable license${forApp}. Your license will expire in [DAYS] days.`), 'Info');
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
catch (ex) { }
|
|
154
|
-
}
|
|
155
|
-
break;
|
|
156
|
-
case 'COMMERCIAL_EXPIRED_IN_SCOPE':
|
|
157
|
-
this.adaptable.logger.consoleLogByMessageType(annotateMessage(`This AdapTable license${forApp} has expired. Please contact [EMAIL] if you wish to renew (giving you access to Support and Updates)`), 'Warning');
|
|
158
|
-
break;
|
|
159
|
-
case 'COMMERCIAL_EXPIRED_OUT_OF_SCOPE':
|
|
160
|
-
this.adaptable.logger.consoleLogByMessageType(annotateMessage(`This AdapTable license${forApp} has expired. Adaptable version was published after the license expired. Please contact [EMAIL] if you wish to renew your license.`), 'Error');
|
|
161
|
-
this.showNotification('Adaptable License has expired');
|
|
162
|
-
this.showWatermark('Adaptable License has expired');
|
|
163
|
-
break;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
showNotification(text) {
|
|
167
|
-
this.adaptable.api.internalApi.dispatchReduxAction(PopupShowAlert({
|
|
168
|
-
alertType: 'generic',
|
|
169
|
-
header: 'License Error',
|
|
170
|
-
message: text,
|
|
171
|
-
alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
|
|
172
|
-
}));
|
|
173
|
-
}
|
|
174
|
-
showWatermark(text) {
|
|
175
|
-
this.adaptable.api.internalApi.dispatchReduxAction(SystemLicenseShowWatermark(text));
|
|
176
|
-
}
|
|
177
|
-
disableStatePersistence() {
|
|
178
|
-
this.adaptable.api.internalApi.dispatchReduxAction(SystemLicenseDisablePersistence());
|
|
179
|
-
}
|
|
180
|
-
destroy() { }
|
|
181
|
-
}
|
|
1
|
+
import{SystemLicenseDisablePersistence as e,SystemLicenseShowWatermark as a}from"../../../Redux/ActionsReducers/SystemRedux";import{PopupShowAlert as t}from"../../../Redux/ActionsReducers/PopupRedux";import i from"../../ObjectFactory";import s from"lodash/clamp";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",d=10,p=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 h=()=>"undefined"!=typeof window?window.location.origin:"",E=()=>{const e=h(),[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=h(),[a,t,i]=Array.from(/(https):\/\/\S+(\.csb\.app)/g.exec(e)||[]);return"https"===t&&".csb.app"===i},_=()=>{const e=h(),[a,t,i]=Array.from(/(https):\/\/\S+(\.adaptabletools\.com)/g.exec(e)||[]);return"https"===t&&".adaptabletools.com"===i};export class LicenseService{constructor(e,a,t){this.adaptable=e,this.licenseKey=a,this.packageDetails=t,this.adaptable=e,this.adaptable.api.eventApi.on("AdaptableReady",(()=>{requestAnimationFrame((()=>{this.init()}))}))}init(){let e=null;if(this.licenseKey)try{e=n(this.licenseKey)}catch(a){e=a}E()||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){var t;const i=new Date;i.setHours(0,0,0,0);let n=0;e instanceof Error||!(null==e?void 0:e.end)||(n=Math.floor(((null===(t=null==e?void 0:e.end)||void 0===t?void 0:t.getTime())-i.getTime())/p),n=s(n,0,1/0));let h="",E="";!e||e instanceof Error||!e.appName||e.appName==r||(h=e.appName,E=" for application [APP_NAME]");const I=(e,a=o,t=c,i=n,s=h)=>e.replace("[LINK]",a).replace("[EMAIL]",t).replace("[APP_NAME]",s).replace("[DAYS]",`${i}`);switch(a){case"NO_LICENSE":case"NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE":this.adaptable.logger.consoleLogByMessageType(I("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(I("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(I("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(I("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(n<=d)this.adaptable.logger.consoleLogByMessageType(I(`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(I(`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(I(`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(I(`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(){}}
|
|
@@ -3,7 +3,7 @@ import { AdaptableOptions } from '../../../types';
|
|
|
3
3
|
export declare class MetamodelService implements IMetamodelService {
|
|
4
4
|
private gridInfoOptions;
|
|
5
5
|
getAdaptableOptions: () => AdaptableOptions;
|
|
6
|
-
constructor(getAdaptableOptions: () => AdaptableOptions);
|
|
6
|
+
constructor(getAdaptableOptions: () => AdaptableOptions, validateOptions?: boolean);
|
|
7
7
|
getGridInfoOptions(): GridInfoOptions;
|
|
8
8
|
getGridInfoNoCodeOptions(): GridInfoOptions;
|
|
9
9
|
validateAdaptableOptionsValues(): void;
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { ADAPTABLE_METAMODEL } from '../../metamodel/adaptable.metamodel';
|
|
2
|
-
import { DefaultAdaptableOptions } from '../Defaults/DefaultAdaptableOptions';
|
|
3
2
|
import { AdaptableOptionsDocsLink } from '../Constants/DocumentationLinkConstants';
|
|
4
3
|
import StringExtensions from '../Extensions/StringExtensions';
|
|
5
4
|
import { AdaptableLogger } from '../../agGrid/AdaptableLogger';
|
|
5
|
+
import { getDefaultAdaptableOptions } from '../../agGrid/defaultAdaptableOptions';
|
|
6
6
|
const supportedMetamodelTypes = ['s', 'n', 'b', 'a', 'f', 'R'];
|
|
7
7
|
export class MetamodelService {
|
|
8
|
-
constructor(getAdaptableOptions) {
|
|
8
|
+
constructor(getAdaptableOptions, validateOptions) {
|
|
9
9
|
this.gridInfoOptions = new Map();
|
|
10
10
|
this.getAdaptableOptions = () => null;
|
|
11
11
|
this.getAdaptableOptions = getAdaptableOptions;
|
|
12
12
|
this.gridInfoOptions = this.buildGridInfoOptions();
|
|
13
|
+
if (validateOptions) {
|
|
14
|
+
this.validateAdaptableOptionsValues();
|
|
15
|
+
}
|
|
13
16
|
}
|
|
14
17
|
getGridInfoOptions() {
|
|
15
18
|
return this.gridInfoOptions;
|
|
@@ -140,7 +143,7 @@ export class MetamodelService {
|
|
|
140
143
|
});
|
|
141
144
|
}
|
|
142
145
|
getAdaptableOptionsDefaultValues() {
|
|
143
|
-
return
|
|
146
|
+
return getDefaultAdaptableOptions();
|
|
144
147
|
}
|
|
145
148
|
getAdaptableMetamodel() {
|
|
146
149
|
return ADAPTABLE_METAMODEL;
|
|
@@ -10,13 +10,13 @@ export class ModuleService {
|
|
|
10
10
|
const settingsPanelMenuItems = [];
|
|
11
11
|
const buttonMenuItems = [];
|
|
12
12
|
this.getModuleCollection().forEach((module) => {
|
|
13
|
-
const settingsPanelMenuItem = module.
|
|
13
|
+
const settingsPanelMenuItem = module.createModuleMenuItem('ModuleMenu');
|
|
14
14
|
if (Helper.objectExists(settingsPanelMenuItem)) {
|
|
15
15
|
if (settingsPanelMenuItems.findIndex((m) => m.module == settingsPanelMenuItem.module) == -1) {
|
|
16
16
|
settingsPanelMenuItems.push(settingsPanelMenuItem);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
const buttonMenuItem = module.
|
|
19
|
+
const buttonMenuItem = module.createModuleMenuItem('ModuleButton');
|
|
20
20
|
if (Helper.objectExists(buttonMenuItem)) {
|
|
21
21
|
if (buttonMenuItems.findIndex((m) => m.module == buttonMenuItem.module) == -1) {
|
|
22
22
|
buttonMenuItems.push(buttonMenuItem);
|
|
@@ -101,6 +101,8 @@ export class ModuleService {
|
|
|
101
101
|
return learnUrl + 'handbook-exporting';
|
|
102
102
|
case 'ColumnFilter':
|
|
103
103
|
return learnUrl + 'handbook-column-filter';
|
|
104
|
+
case 'Comment':
|
|
105
|
+
return learnUrl + 'handbook-comments';
|
|
104
106
|
case 'GridFilter':
|
|
105
107
|
return learnUrl + 'handbook-grid-filter';
|
|
106
108
|
case 'FlashingCell':
|
|
@@ -113,6 +115,8 @@ export class ModuleService {
|
|
|
113
115
|
return learnUrl + 'handbook-monitoring-grid-info';
|
|
114
116
|
case 'Layout':
|
|
115
117
|
return learnUrl + 'handbook-layouts';
|
|
118
|
+
case 'Note':
|
|
119
|
+
return learnUrl + 'handbook-notes';
|
|
116
120
|
case 'PlusMinus':
|
|
117
121
|
return learnUrl + 'handbook-editing-plus-minus';
|
|
118
122
|
case 'NamedQuery':
|
|
@@ -16,7 +16,7 @@ export declare class QueryLanguageService implements IQueryLanguageService {
|
|
|
16
16
|
constructor(adaptableApi: AdaptableApi);
|
|
17
17
|
evaluateBooleanExpression(expression: string, module: AdaptableModule, rowNode: any): any;
|
|
18
18
|
evaluateScalarExpression(expression: string, module: AdaptableModule, rowNode: IRowNode): any;
|
|
19
|
-
evaluateAggregatedScalarExpression(expression: string, module: AdaptableModule): ScalarAggregationParameter;
|
|
19
|
+
evaluateAggregatedScalarExpression(expression: string, module: AdaptableModule, getRowNodes?: () => IRowNode[]): ScalarAggregationParameter;
|
|
20
20
|
evaluateObservableExpression(reactiveExpression: string, module: AdaptableModule): Observable<CellDataChangedInfo | GridDataChangedInfo>;
|
|
21
21
|
evaluateAggregatedBooleanExpression(aggregationExpression: string, module: AdaptableModule): BooleanAggregationParameter;
|
|
22
22
|
validateBoolean(expressionInput: string, module: AdaptableModule, config?: {
|
|
@@ -32,7 +32,7 @@ export class QueryLanguageService {
|
|
|
32
32
|
// currently scalar and boolean expressions are evaluated the same
|
|
33
33
|
return this.evaluateBooleanExpression(expression, module, rowNode);
|
|
34
34
|
}
|
|
35
|
-
evaluateAggregatedScalarExpression(expression, module) {
|
|
35
|
+
evaluateAggregatedScalarExpression(expression, module, getRowNodes) {
|
|
36
36
|
const aggregatedScalarFunctions = this.getModuleExpressionFunctionsMap(module).aggregatedScalarFunctions;
|
|
37
37
|
return parser.evaluate(expression, {
|
|
38
38
|
node: null,
|
|
@@ -41,13 +41,14 @@ export class QueryLanguageService {
|
|
|
41
41
|
adaptableId: this.adaptableApi.optionsApi.getAdaptableId(),
|
|
42
42
|
functions: aggregatedScalarFunctions,
|
|
43
43
|
evaluateCustomQueryVariable: this.evaluateCustomQueryVariable,
|
|
44
|
+
getRowNodes,
|
|
44
45
|
});
|
|
45
46
|
}
|
|
46
47
|
evaluateObservableExpression(reactiveExpression, module) {
|
|
47
48
|
const moduleExpressionFunctions = this.getModuleExpressionFunctionsMap(module);
|
|
48
49
|
const booleanAndScalarFunctions = this.getBooleanAndScalarFunctions(moduleExpressionFunctions);
|
|
49
50
|
const reactiveExpression$ = parser.evaluate(reactiveExpression, {
|
|
50
|
-
node:
|
|
51
|
+
node: this.adaptableApi.gridApi.getFirstRowNode(),
|
|
51
52
|
adaptableApi: this.adaptableApi,
|
|
52
53
|
userName: this.adaptableApi.optionsApi.getUserName(),
|
|
53
54
|
adaptableId: this.adaptableApi.optionsApi.getAdaptableId(),
|
|
@@ -61,7 +62,7 @@ export class QueryLanguageService {
|
|
|
61
62
|
const moduleExpressionFunctionsMap = this.getModuleExpressionFunctionsMap(module);
|
|
62
63
|
const booleanAndScalarFunctions = this.getBooleanAndScalarFunctions(moduleExpressionFunctionsMap);
|
|
63
64
|
const aggregationEvaluation = parser.evaluate(aggregationExpression, {
|
|
64
|
-
node:
|
|
65
|
+
node: this.adaptableApi.gridApi.getFirstRowNode(),
|
|
65
66
|
adaptableApi: this.adaptableApi,
|
|
66
67
|
userName: this.adaptableApi.optionsApi.getUserName(),
|
|
67
68
|
adaptableId: this.adaptableApi.optionsApi.getAdaptableId(),
|
|
@@ -10,11 +10,8 @@ export declare class ReportService implements IReportService {
|
|
|
10
10
|
private cellClassKey2excelStyleIdMap;
|
|
11
11
|
private excelStylesWithFormattedDate;
|
|
12
12
|
constructor(adaptableApi: AdaptableApi);
|
|
13
|
-
|
|
14
|
-
registerExcelStyle(excelStyle: Partial<ExcelStyle>, cellClassKey: string): void;
|
|
15
|
-
getRegisteredExcelStyles(): ExcelStyle[];
|
|
13
|
+
destroy(): void;
|
|
16
14
|
getExcelStyleIdForCellClassKey(cellClassKey: string): string;
|
|
17
|
-
registerExcelStyleWithFormattedDate(cellClassId: string, isoFormattedValue: string): void;
|
|
18
15
|
getExcelStyleWithFormattedDate(cellClassId: string): string;
|
|
19
16
|
CreateSystemReport(systemReportName: SystemReportName): Report;
|
|
20
17
|
IsSystemReport(reportName: string): boolean;
|
|
@@ -33,7 +30,12 @@ export declare class ReportService implements IReportService {
|
|
|
33
30
|
getCellExportValueFromRowNode(rowNode: IRowNode, columnId: string): any;
|
|
34
31
|
getCellExportValueFromRawValue(rowNode: IRowNode, cellRawValue: any, columnId: string): any;
|
|
35
32
|
getReportFileName(reportName: string, destination: SystemExportDestination | CustomDestination): string;
|
|
36
|
-
destroy(): void;
|
|
37
33
|
private getCustomExportDateFormat;
|
|
38
34
|
private getCellExportValueFromRawValueByType;
|
|
35
|
+
buildExcelStylesForVisualReports(): ExcelStyle[];
|
|
36
|
+
createExcelStyleMemoization(): void;
|
|
37
|
+
private convertCSSToExcelStyle;
|
|
38
|
+
private resetExcelStyleMemoization;
|
|
39
|
+
private registerExcelStyle;
|
|
40
|
+
private registerExcelStyleWithFormattedDate;
|
|
39
41
|
}
|
|
@@ -7,6 +7,8 @@ import StringExtensions from '../Extensions/StringExtensions';
|
|
|
7
7
|
import { ExportModuleId } from '../Constants/ModuleConstants';
|
|
8
8
|
import { createUuid } from '../../components/utils/uuid';
|
|
9
9
|
import { createBaseContext } from '../ObjectFactory';
|
|
10
|
+
import { convertCSSAbsoluteFontSizeToPt, getVariableColor, sanitizeStyle, } from '../Helpers/StyleHelper';
|
|
11
|
+
import tinycolor from 'tinycolor2';
|
|
10
12
|
export class ReportService {
|
|
11
13
|
constructor(adaptableApi) {
|
|
12
14
|
this.adaptableApi = adaptableApi;
|
|
@@ -15,29 +17,12 @@ export class ReportService {
|
|
|
15
17
|
this.excelStylesWithFormattedDate = {};
|
|
16
18
|
this.adaptableApi = adaptableApi;
|
|
17
19
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
this.cellClassKey2excelStyleIdMap = {};
|
|
21
|
-
this.excelStylesWithFormattedDate = {};
|
|
22
|
-
}
|
|
23
|
-
registerExcelStyle(excelStyle, cellClassKey) {
|
|
24
|
-
const excelStyleKey = JSON.stringify(excelStyle);
|
|
25
|
-
if (!this.excelStylesCache[excelStyleKey]) {
|
|
26
|
-
const excelStyleId = createUuid();
|
|
27
|
-
const excelStyleWithId = Object.assign(Object.assign({}, excelStyle), { id: excelStyleId });
|
|
28
|
-
this.excelStylesCache[excelStyleKey] = excelStyleWithId;
|
|
29
|
-
}
|
|
30
|
-
this.cellClassKey2excelStyleIdMap[cellClassKey] = this.excelStylesCache[excelStyleKey].id;
|
|
31
|
-
}
|
|
32
|
-
getRegisteredExcelStyles() {
|
|
33
|
-
return Object.values(this.excelStylesCache);
|
|
20
|
+
destroy() {
|
|
21
|
+
// TO DO
|
|
34
22
|
}
|
|
35
23
|
getExcelStyleIdForCellClassKey(cellClassKey) {
|
|
36
24
|
return this.cellClassKey2excelStyleIdMap[cellClassKey];
|
|
37
25
|
}
|
|
38
|
-
registerExcelStyleWithFormattedDate(cellClassId, isoFormattedValue) {
|
|
39
|
-
this.excelStylesWithFormattedDate[cellClassId] = isoFormattedValue;
|
|
40
|
-
}
|
|
41
26
|
getExcelStyleWithFormattedDate(cellClassId) {
|
|
42
27
|
return this.excelStylesWithFormattedDate[cellClassId];
|
|
43
28
|
}
|
|
@@ -99,8 +84,11 @@ export class ReportService {
|
|
|
99
84
|
reportName == VISUAL_DATA_REPORT);
|
|
100
85
|
}
|
|
101
86
|
IsSystemReportActive(reportName) {
|
|
102
|
-
if (reportName == SELECTED_CELLS_REPORT
|
|
103
|
-
return this.adaptableApi.gridApi.
|
|
87
|
+
if (reportName == SELECTED_CELLS_REPORT) {
|
|
88
|
+
return this.adaptableApi.gridApi.isGridRangeSelectable();
|
|
89
|
+
}
|
|
90
|
+
if (reportName == SELECTED_ROWS_REPORT) {
|
|
91
|
+
return this.adaptableApi.gridApi.isGridRowSelectable();
|
|
104
92
|
}
|
|
105
93
|
if (reportName === VISUAL_DATA_REPORT) {
|
|
106
94
|
return this.adaptableApi.exportApi
|
|
@@ -365,9 +353,6 @@ export class ReportService {
|
|
|
365
353
|
}
|
|
366
354
|
return fileName;
|
|
367
355
|
}
|
|
368
|
-
destroy() {
|
|
369
|
-
// TO DO
|
|
370
|
-
}
|
|
371
356
|
getCustomExportDateFormat() {
|
|
372
357
|
return this.adaptableApi.optionsApi.getExportOptions().exportDateFormat;
|
|
373
358
|
}
|
|
@@ -379,4 +364,238 @@ export class ReportService {
|
|
|
379
364
|
: // type === formattedValue
|
|
380
365
|
this.adaptableApi.gridApi.getDisplayValueFromRawValue(rowNode, columnId, cellRawValue);
|
|
381
366
|
}
|
|
367
|
+
// aggregate and merge all acive Adaptable styles with the user proviided ExcelStyles
|
|
368
|
+
buildExcelStylesForVisualReports() {
|
|
369
|
+
// for historical reasons, the styles are merged as class variables
|
|
370
|
+
// we could/should refactor this to be more functional
|
|
371
|
+
this.createExcelStyleMemoization();
|
|
372
|
+
return Object.values(this.excelStylesCache);
|
|
373
|
+
}
|
|
374
|
+
createExcelStyleMemoization() {
|
|
375
|
+
this.resetExcelStyleMemoization();
|
|
376
|
+
// we memoize as much as possible, as this is called quite A LOT
|
|
377
|
+
const adaptableColumnMap = {};
|
|
378
|
+
const getAdaptableColumnWithColumnId = (columnId) => {
|
|
379
|
+
const memoizedColumn = adaptableColumnMap[columnId];
|
|
380
|
+
if (memoizedColumn) {
|
|
381
|
+
return memoizedColumn;
|
|
382
|
+
}
|
|
383
|
+
const abColumn = this.adaptableApi.columnApi.getColumnWithColumnId(columnId);
|
|
384
|
+
adaptableColumnMap[columnId] = abColumn;
|
|
385
|
+
return abColumn;
|
|
386
|
+
};
|
|
387
|
+
const formatColumnsWithDisplayFormatForColumn = {};
|
|
388
|
+
const getFormatColumnsWithDisplayFormatForColumn = (columnId) => {
|
|
389
|
+
const memoizedFormatColumns = formatColumnsWithDisplayFormatForColumn[columnId];
|
|
390
|
+
if (memoizedFormatColumns) {
|
|
391
|
+
return memoizedFormatColumns;
|
|
392
|
+
}
|
|
393
|
+
const abColumn = getAdaptableColumnWithColumnId(columnId);
|
|
394
|
+
const formatColumns = this.adaptableApi.formatColumnApi.internalApi.getFormatColumnsWithDisplayFormatForColumn(abColumn);
|
|
395
|
+
formatColumnsWithDisplayFormatForColumn[columnId] = formatColumns;
|
|
396
|
+
return formatColumns;
|
|
397
|
+
};
|
|
398
|
+
const isDateCellExportedAsFormattedValue = this.adaptableApi.exportApi.internalApi.isDateCellExportedAsFormattedValue();
|
|
399
|
+
const displayedColumns = this.adaptableApi.agGridApi.getAllDisplayedColumns();
|
|
400
|
+
const colDefs = displayedColumns.map((column) => {
|
|
401
|
+
return column.getColDef();
|
|
402
|
+
});
|
|
403
|
+
const forAllVisibleRowNodesDoConfig = { includeGroupRows: true };
|
|
404
|
+
const agGridApi = this.adaptableApi.agGridApi;
|
|
405
|
+
const userExcelStyles = this.adaptableApi.internalApi
|
|
406
|
+
.getAdaptableInstance()
|
|
407
|
+
.agGridAdapter.getUserGridOptionsProperty('excelStyles') || [];
|
|
408
|
+
this.adaptableApi.internalApi.forAllVisibleRowNodesDo((node, rowIndex) => {
|
|
409
|
+
var _a;
|
|
410
|
+
const rowParams = {
|
|
411
|
+
node,
|
|
412
|
+
data: node.data,
|
|
413
|
+
rowIndex,
|
|
414
|
+
api: agGridApi,
|
|
415
|
+
columnApi: null,
|
|
416
|
+
context: ((_a = agGridApi.__getContext) === null || _a === void 0 ? void 0 : _a.call(agGridApi)) || {},
|
|
417
|
+
};
|
|
418
|
+
const getRowStyleFn = agGridApi.getGridOption('getRowStyle');
|
|
419
|
+
const rowStyle = getRowStyleFn ? getRowStyleFn(rowParams) : {};
|
|
420
|
+
displayedColumns.forEach((column, columnIndex) => {
|
|
421
|
+
var _a, _b, _c;
|
|
422
|
+
const colDef = colDefs[columnIndex];
|
|
423
|
+
let cellClassParams;
|
|
424
|
+
const getLazyCellClassParams = () => {
|
|
425
|
+
if (!cellClassParams) {
|
|
426
|
+
cellClassParams = {
|
|
427
|
+
colDef,
|
|
428
|
+
node,
|
|
429
|
+
column,
|
|
430
|
+
data: node.data,
|
|
431
|
+
value: this.adaptableApi.gridApi.getRawValueFromRowNode(node, column.getId()),
|
|
432
|
+
rowIndex,
|
|
433
|
+
api: agGridApi,
|
|
434
|
+
columnApi: null,
|
|
435
|
+
context: {},
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
return cellClassParams;
|
|
439
|
+
};
|
|
440
|
+
const cellStyle = typeof colDef.cellStyle === 'function' ? colDef.cellStyle(getLazyCellClassParams()) : {};
|
|
441
|
+
const excelStyles = [];
|
|
442
|
+
// add user defined excel styles
|
|
443
|
+
let userColDefCellClass = this.adaptableApi.internalApi
|
|
444
|
+
.getAdaptableInstance()
|
|
445
|
+
.agGridColumnAdapter.getUserColDefProperty(column.getColId(), 'cellClass');
|
|
446
|
+
const userDefinedCellClass = typeof userColDefCellClass === 'function'
|
|
447
|
+
? userColDefCellClass(getLazyCellClassParams())
|
|
448
|
+
: userColDefCellClass;
|
|
449
|
+
const userDefinedExcelStyle = userDefinedCellClass &&
|
|
450
|
+
userExcelStyles.find((excelStyle) => {
|
|
451
|
+
var _a;
|
|
452
|
+
return typeof userDefinedCellClass === 'string'
|
|
453
|
+
? userDefinedCellClass === excelStyle.id
|
|
454
|
+
: (_a = userDefinedCellClass === null || userDefinedCellClass === void 0 ? void 0 : userDefinedCellClass.includes) === null || _a === void 0 ? void 0 : _a.call(userDefinedCellClass, excelStyle.id);
|
|
455
|
+
});
|
|
456
|
+
if (userDefinedExcelStyle) {
|
|
457
|
+
excelStyles.push(userDefinedExcelStyle);
|
|
458
|
+
}
|
|
459
|
+
// add adaptable derived styles (format column etc.)
|
|
460
|
+
const adaptableStyle = Object.assign(Object.assign({}, rowStyle), Object.keys(cellStyle).reduce((result, key) => {
|
|
461
|
+
if (cellStyle[key] !== null) {
|
|
462
|
+
result[key] = cellStyle[key];
|
|
463
|
+
}
|
|
464
|
+
return result;
|
|
465
|
+
}, {}));
|
|
466
|
+
const sanitizedAdaptableStyle = sanitizeStyle(adaptableStyle);
|
|
467
|
+
if (Object.values(sanitizedAdaptableStyle).some((style) => style != null)) {
|
|
468
|
+
excelStyles.push(this.convertCSSToExcelStyle(sanitizedAdaptableStyle));
|
|
469
|
+
}
|
|
470
|
+
const excelDataType = this.adaptableApi.exportApi.internalApi.getExcelDataType(colDef === null || colDef === void 0 ? void 0 : colDef.type);
|
|
471
|
+
const rawValue = this.adaptableApi.gridApi.getRawValueFromRowNode(node, column.getId());
|
|
472
|
+
// don't add the cell style if it has no adaptable custom styles
|
|
473
|
+
if (!excelStyles.length &&
|
|
474
|
+
// if this is a formatted Date value, we still need to add the AG GRID specific type & numberFormat below
|
|
475
|
+
!(excelDataType === 'DateTime' && isDateCellExportedAsFormattedValue)) {
|
|
476
|
+
return;
|
|
477
|
+
}
|
|
478
|
+
const cellClassId = this.adaptableApi.internalApi
|
|
479
|
+
.getAdaptableInstance()
|
|
480
|
+
.agGridColumnAdapter.getExcelClassNameForCell(column.getId(), this.adaptableApi.internalApi
|
|
481
|
+
.getAdaptableInstance()
|
|
482
|
+
.getPrimaryKeyValueFromRowNode(node), userDefinedCellClass);
|
|
483
|
+
const finalCellExcelStyle = Object.assign({}, ...excelStyles);
|
|
484
|
+
if (excelDataType === 'DateTime' && isDateCellExportedAsFormattedValue) {
|
|
485
|
+
let dateFormatPattern = this.adaptableApi.optionsApi.getExportOptions().exportDateFormat;
|
|
486
|
+
const abColumn = getAdaptableColumnWithColumnId(column.getColId());
|
|
487
|
+
if (!dateFormatPattern) {
|
|
488
|
+
const mostRelevantFormatColumn = this.adaptableApi.formatColumnApi.internalApi.getMostRelevantFormatColumnForColumn(getFormatColumnsWithDisplayFormatForColumn(column.getColId()), abColumn, { node, value: rawValue });
|
|
489
|
+
dateFormatPattern =
|
|
490
|
+
((_a = mostRelevantFormatColumn === null || mostRelevantFormatColumn === void 0 ? void 0 : mostRelevantFormatColumn.DisplayFormat) === null || _a === void 0 ? void 0 : _a.Formatter) === 'DateFormatter' &&
|
|
491
|
+
((_c = (_b = mostRelevantFormatColumn === null || mostRelevantFormatColumn === void 0 ? void 0 : mostRelevantFormatColumn.DisplayFormat) === null || _b === void 0 ? void 0 : _b.Options) === null || _c === void 0 ? void 0 : _c.Pattern);
|
|
492
|
+
}
|
|
493
|
+
if (dateFormatPattern) {
|
|
494
|
+
const normalisedValue = this.adaptableApi.internalApi
|
|
495
|
+
.getAdaptableInstance()
|
|
496
|
+
.getNormalisedValueFromRawValue(rawValue, abColumn);
|
|
497
|
+
if (normalisedValue) {
|
|
498
|
+
// we have to pass the date in the ISO format to Excel
|
|
499
|
+
// see https://www.ag-grid.com/javascript-data-grid/excel-export-data-types/#dates
|
|
500
|
+
// we can NOT use Date.toISOString() because we don't want the timezone corrections to kick in
|
|
501
|
+
const isoFormattedValue = DateFormatter(normalisedValue, {
|
|
502
|
+
Pattern: `yyyy-MM-dd'T'HH:mm:ss.SSS`,
|
|
503
|
+
});
|
|
504
|
+
if (isoFormattedValue) {
|
|
505
|
+
finalCellExcelStyle.dataType = 'DateTime';
|
|
506
|
+
finalCellExcelStyle.numberFormat = { format: dateFormatPattern };
|
|
507
|
+
// create a new cell key to ensure any user provided className does not interfere
|
|
508
|
+
const cellKey = this.adaptableApi.internalApi
|
|
509
|
+
.getAdaptableInstance()
|
|
510
|
+
.agGridColumnAdapter.getExcelClassNameForCell(column.getColId(), this.adaptableApi.internalApi
|
|
511
|
+
.getAdaptableInstance()
|
|
512
|
+
.getPrimaryKeyValueFromRowNode(node));
|
|
513
|
+
// we need to register so that later the cellProcessor will put the isoFormattedValue through (thus giving the formatting responsability to Excel)
|
|
514
|
+
this.registerExcelStyleWithFormattedDate(cellKey, isoFormattedValue);
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
this.registerExcelStyle(finalCellExcelStyle, cellClassId);
|
|
520
|
+
});
|
|
521
|
+
}, forAllVisibleRowNodesDoConfig);
|
|
522
|
+
}
|
|
523
|
+
convertCSSToExcelStyle(style) {
|
|
524
|
+
const getHexColor = (color) => {
|
|
525
|
+
const preparedColor = getVariableColor(color);
|
|
526
|
+
const t = tinycolor(preparedColor);
|
|
527
|
+
const a = t.getAlpha();
|
|
528
|
+
return tinycolor.mix(tinycolor('white'), t, a * 100).toHexString();
|
|
529
|
+
};
|
|
530
|
+
let result = {};
|
|
531
|
+
if (style.backgroundColor != null) {
|
|
532
|
+
result.interior = {
|
|
533
|
+
color: getHexColor(style.backgroundColor),
|
|
534
|
+
pattern: 'Solid',
|
|
535
|
+
};
|
|
536
|
+
}
|
|
537
|
+
if (style.borderColor != null) {
|
|
538
|
+
const excelBorder = {
|
|
539
|
+
color: style.borderColor,
|
|
540
|
+
lineStyle: 'Continuous',
|
|
541
|
+
weight: 1,
|
|
542
|
+
};
|
|
543
|
+
result.borders = {
|
|
544
|
+
borderBottom: excelBorder,
|
|
545
|
+
borderLeft: excelBorder,
|
|
546
|
+
borderRight: excelBorder,
|
|
547
|
+
borderTop: excelBorder,
|
|
548
|
+
};
|
|
549
|
+
}
|
|
550
|
+
if (style.textAlign) {
|
|
551
|
+
result.alignment = {
|
|
552
|
+
horizontal: StringExtensions.CapitaliseFirstLetter(style.textAlign),
|
|
553
|
+
};
|
|
554
|
+
}
|
|
555
|
+
if (style.color != null) {
|
|
556
|
+
if (!result.font) {
|
|
557
|
+
result.font = {};
|
|
558
|
+
}
|
|
559
|
+
result.font = {
|
|
560
|
+
color: getHexColor(style.color),
|
|
561
|
+
};
|
|
562
|
+
}
|
|
563
|
+
if (style.fontStyle === 'italic') {
|
|
564
|
+
if (!result.font) {
|
|
565
|
+
result.font = {};
|
|
566
|
+
}
|
|
567
|
+
result.font.italic = true;
|
|
568
|
+
}
|
|
569
|
+
if (style.fontWeight != null &&
|
|
570
|
+
(style.fontWeight === 'bold' || Number(style.fontWeight) >= 600)) {
|
|
571
|
+
if (!result.font) {
|
|
572
|
+
result.font = {};
|
|
573
|
+
}
|
|
574
|
+
result.font.bold = true;
|
|
575
|
+
}
|
|
576
|
+
if (style.fontSize != null) {
|
|
577
|
+
if (!result.font) {
|
|
578
|
+
result.font = {};
|
|
579
|
+
}
|
|
580
|
+
result.font.size = convertCSSAbsoluteFontSizeToPt(style.fontSize);
|
|
581
|
+
}
|
|
582
|
+
return result;
|
|
583
|
+
}
|
|
584
|
+
resetExcelStyleMemoization() {
|
|
585
|
+
this.excelStylesCache = {};
|
|
586
|
+
this.cellClassKey2excelStyleIdMap = {};
|
|
587
|
+
this.excelStylesWithFormattedDate = {};
|
|
588
|
+
}
|
|
589
|
+
registerExcelStyle(excelStyle, cellClassKey) {
|
|
590
|
+
const excelStyleKey = JSON.stringify(excelStyle);
|
|
591
|
+
if (!this.excelStylesCache[excelStyleKey]) {
|
|
592
|
+
const excelStyleId = createUuid();
|
|
593
|
+
const excelStyleWithId = Object.assign(Object.assign({}, excelStyle), { id: excelStyleId });
|
|
594
|
+
this.excelStylesCache[excelStyleKey] = excelStyleWithId;
|
|
595
|
+
}
|
|
596
|
+
this.cellClassKey2excelStyleIdMap[cellClassKey] = this.excelStylesCache[excelStyleKey].id;
|
|
597
|
+
}
|
|
598
|
+
registerExcelStyleWithFormattedDate(cellClassId, isoFormattedValue) {
|
|
599
|
+
this.excelStylesWithFormattedDate[cellClassId] = isoFormattedValue;
|
|
600
|
+
}
|
|
382
601
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { IRowEditService } from './Interface/IRowEditService';
|
|
2
1
|
import { AdaptableApi } from '../../Api/AdaptableApi';
|
|
3
|
-
|
|
2
|
+
import { IAdaptableService } from './Interface/IAdaptableService';
|
|
3
|
+
export declare class RowEditService implements IAdaptableService {
|
|
4
4
|
private adaptableApi;
|
|
5
5
|
constructor(adaptableApi: AdaptableApi);
|
|
6
6
|
private autoHandleActionRowButtons;
|
|
7
|
+
destroy(): void;
|
|
7
8
|
}
|