@adaptabletools/adaptable 18.0.0-canary.9 → 18.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/base.css +18 -20
- package/base.css.map +1 -1
- package/index.css +22 -20
- package/index.css.map +1 -1
- package/package.json +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +5 -6
- package/src/AdaptableOptions/ActionColumnOptions.d.ts +3 -2
- package/src/AdaptableOptions/AdaptableFrameworkComponent.d.ts +3 -0
- package/src/AdaptableOptions/AdaptableOptions.d.ts +14 -13
- package/src/AdaptableOptions/AdaptablePlugin.d.ts +2 -0
- package/src/AdaptableOptions/AdaptablePlugin.js +2 -0
- package/src/AdaptableOptions/ColumnFilterOptions.d.ts +7 -0
- package/src/AdaptableOptions/ColumnMenuOptions.d.ts +94 -0
- package/src/AdaptableOptions/ColumnOptions.d.ts +9 -4
- package/src/AdaptableOptions/CommentOptions.d.ts +20 -9
- package/src/AdaptableOptions/ContextMenuOptions.d.ts +94 -0
- package/src/AdaptableOptions/CustomSortOptions.d.ts +2 -2
- package/src/AdaptableOptions/DataImportOptions.d.ts +2 -2
- package/src/AdaptableOptions/FormatColumnOptions.d.ts +2 -2
- package/src/AdaptableOptions/GroupingOptions.d.ts +0 -26
- package/src/AdaptableOptions/NoteOptions.d.ts +12 -3
- package/src/AdaptableOptions/PredicateOptions.d.ts +2 -2
- package/src/AdaptableOptions/QuickSearchOptions.d.ts +1 -1
- package/src/AdaptableOptions/StateOptions.d.ts +6 -0
- package/src/AdaptableOptions/UserInterfaceOptions.d.ts +2 -2
- package/src/Api/AdaptableApi.d.ts +16 -6
- package/src/Api/ColumnApi.d.ts +13 -0
- package/src/Api/ColumnMenuApi.d.ts +13 -0
- package/src/Api/{ScopeApi.d.ts → ColumnScopeApi.d.ts} +28 -28
- package/src/Api/CommentApi.d.ts +20 -22
- package/src/Api/ConfigApi.d.ts +3 -4
- package/src/Api/ContextMenuApi.d.ts +9 -0
- package/src/Api/EventApi.d.ts +7 -9
- package/src/Api/Events/CommentChanged.d.ts +11 -0
- package/src/Api/Events/CommentChanged.js +1 -0
- package/src/Api/Events/GridDataChanged.d.ts +1 -1
- package/src/Api/FlashingCellApi.d.ts +2 -2
- package/src/Api/GridApi.d.ts +32 -4
- package/src/Api/Implementation/ActionColumnApiImpl.js +3 -6
- package/src/Api/Implementation/ActionRowApiImpl.js +3 -7
- package/src/Api/Implementation/AdaptableApiImpl.d.ts +7 -5
- package/src/Api/Implementation/AdaptableApiImpl.js +9 -5
- package/src/Api/Implementation/AlertApiImpl.js +8 -13
- package/src/Api/Implementation/ApiBase.d.ts +6 -4
- package/src/Api/Implementation/ApiBase.js +11 -5
- 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/ColumnMenuApiImpl.d.ts +8 -0
- package/src/Api/Implementation/ColumnMenuApiImpl.js +12 -0
- package/src/Api/Implementation/ColumnScopeApiImpl.d.ts +33 -0
- package/src/Api/Implementation/{ScopeApiImpl.js → ColumnScopeApiImpl.js} +46 -13
- package/src/Api/Implementation/CommentsApiImpl.d.ts +4 -5
- package/src/Api/Implementation/CommentsApiImpl.js +6 -6
- package/src/Api/Implementation/ConfigApiImpl.d.ts +2 -2
- package/src/Api/Implementation/ConfigApiImpl.js +21 -25
- package/src/Api/Implementation/ContextMenuApiImpl.d.ts +7 -0
- package/src/Api/Implementation/ContextMenuApiImpl.js +9 -0
- 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.d.ts +2 -2
- 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 +9 -2
- package/src/Api/Implementation/GridApiImpl.js +52 -11
- package/src/Api/Implementation/LayoutApiImpl.d.ts +2 -7
- package/src/Api/Implementation/LayoutApiImpl.js +6 -15
- package/src/Api/Implementation/{NotesApiImpl.d.ts → NoteApiImpl.d.ts} +8 -8
- package/src/Api/Implementation/{NotesApiImpl.js → NoteApiImpl.js} +12 -12
- package/src/Api/Implementation/OptionsApiImpl.d.ts +6 -5
- package/src/Api/Implementation/OptionsApiImpl.js +7 -4
- package/src/Api/Implementation/PredicateApiImpl.js +2 -2
- package/src/Api/Implementation/ScheduleApiImpl.js +6 -6
- package/src/Api/Implementation/TeamSharingApiImpl.js +3 -15
- package/src/Api/Implementation/ThemeApiImpl.js +2 -7
- package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +14 -8
- package/src/Api/Implementation/UserInterfaceApiImpl.js +32 -27
- package/src/Api/Internal/ActionRowInternalApi.d.ts +1 -0
- package/src/Api/Internal/ActionRowInternalApi.js +19 -46
- package/src/Api/Internal/AdaptableInternalApi.d.ts +3 -4
- package/src/Api/Internal/AdaptableInternalApi.js +16 -30
- package/src/Api/Internal/AlertInternalApi.d.ts +2 -2
- package/src/Api/Internal/AlertInternalApi.js +7 -20
- package/src/Api/Internal/CalculatedColumnInternalApi.js +10 -16
- package/src/Api/Internal/ChartingInternalApi.js +13 -13
- package/src/Api/Internal/ColumnFilterInternalApi.d.ts +1 -0
- package/src/Api/Internal/ColumnFilterInternalApi.js +24 -30
- package/src/Api/Internal/ColumnInternalApi.d.ts +2 -0
- package/src/Api/Internal/ColumnInternalApi.js +7 -1
- package/src/Api/Internal/CommentsInternalApi.d.ts +1 -1
- package/src/Api/Internal/CommentsInternalApi.js +3 -2
- package/src/Api/Internal/CustomSortInternalApi.js +1 -1
- package/src/Api/Internal/DashboardInternalApi.js +5 -11
- package/src/Api/Internal/DataImportInternalApi.js +3 -9
- package/src/Api/Internal/DataSetInternalApi.js +2 -7
- package/src/Api/Internal/ExportInternalApi.d.ts +2 -1
- package/src/Api/Internal/ExportInternalApi.js +8 -5
- package/src/Api/Internal/ExpressionInternalApi.js +3 -13
- package/src/Api/Internal/Fdc3InternalApi.js +3 -12
- package/src/Api/Internal/FormatColumnInternalApi.d.ts +3 -6
- package/src/Api/Internal/FormatColumnInternalApi.js +37 -30
- package/src/Api/Internal/FreeTextColumnInternalApi.js +4 -3
- package/src/Api/Internal/GridFilterInternalApi.d.ts +5 -0
- package/src/Api/Internal/GridFilterInternalApi.js +8 -8
- package/src/Api/Internal/GridInternalApi.d.ts +2 -0
- package/src/Api/Internal/GridInternalApi.js +28 -40
- 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/{NotesInternalApi.js → NoteInternalApi.js} +4 -3
- package/src/Api/Internal/PredicateInternalApi.d.ts +6 -6
- package/src/Api/Internal/PredicateInternalApi.js +5 -40
- package/src/Api/Internal/ScheduleInternalApi.js +1 -6
- package/src/Api/Internal/StyledColumnInternalApi.d.ts +2 -2
- package/src/Api/Internal/StyledColumnInternalApi.js +8 -9
- package/src/Api/Internal/SystemStatusInternalApi.js +1 -7
- package/src/Api/Internal/TeamSharingInternalApi.js +2 -7
- package/src/Api/Internal/ThemeInternalApi.js +1 -1
- package/src/Api/Internal/UserInterfaceInternalApi.js +1 -1
- package/src/Api/LayoutApi.d.ts +9 -12
- package/src/Api/NoteApi.d.ts +48 -0
- package/src/Api/NoteApi.js +1 -0
- package/src/Api/OptionsApi.d.ts +14 -10
- package/src/Api/UserInterfaceApi.d.ts +15 -13
- package/src/PredefinedConfig/AdaptableState.d.ts +2 -2
- package/src/PredefinedConfig/AlertState.d.ts +2 -2
- package/src/PredefinedConfig/CommentState.d.ts +27 -23
- package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
- package/src/PredefinedConfig/Common/AdaptableObject.d.ts +4 -4
- package/src/PredefinedConfig/Common/AdaptablePredicate.d.ts +2 -2
- package/src/PredefinedConfig/Common/CellSummary.d.ts +5 -14
- package/src/PredefinedConfig/Common/{AdaptableScope.d.ts → ColumnScope.d.ts} +1 -1
- package/src/PredefinedConfig/Common/ColumnScope.js +1 -0
- package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +1 -5
- 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 +39 -4
- package/src/PredefinedConfig/Common/Menu.js +125 -1
- package/src/PredefinedConfig/Common/RowScope.d.ts +17 -0
- package/src/PredefinedConfig/Common/RowScope.js +1 -0
- package/src/PredefinedConfig/Common/RowSummary.d.ts +15 -1
- package/src/PredefinedConfig/Common/RowSummary.js +16 -0
- package/src/PredefinedConfig/Common/TransposeConfig.d.ts +30 -0
- package/src/PredefinedConfig/Common/TransposeConfig.js +1 -0
- package/src/PredefinedConfig/Common/Types.d.ts +4 -4
- package/src/PredefinedConfig/Common/Types.js +4 -1
- package/src/PredefinedConfig/ExportState.d.ts +2 -2
- package/src/PredefinedConfig/FlashingCellState.d.ts +2 -2
- package/src/PredefinedConfig/FormatColumnState.d.ts +9 -5
- package/src/PredefinedConfig/LayoutState.d.ts +2 -2
- package/src/PredefinedConfig/{NotesState.d.ts → NoteState.d.ts} +4 -4
- package/src/PredefinedConfig/NoteState.js +1 -0
- package/src/PredefinedConfig/PlusMinusState.d.ts +2 -2
- package/src/PredefinedConfig/PopupState.d.ts +1 -2
- package/src/PredefinedConfig/PredefinedConfig.d.ts +2 -2
- package/src/PredefinedConfig/Selection/GridCell.d.ts +13 -0
- package/src/PredefinedConfig/ShortcutState.d.ts +2 -2
- package/src/PredefinedConfig/StyledColumnState.d.ts +5 -5
- package/src/PredefinedConfig/SystemState.d.ts +5 -4
- package/src/Redux/ActionsReducers/CommentsRedux.d.ts +0 -4
- package/src/Redux/ActionsReducers/CommentsRedux.js +0 -34
- package/src/Redux/ActionsReducers/LayoutRedux.js +12 -10
- package/src/Redux/ActionsReducers/NoteRedux.d.ts +38 -0
- package/src/Redux/ActionsReducers/{NotesRedux.js → NoteRedux.js} +24 -24
- package/src/Redux/ActionsReducers/PopupRedux.d.ts +5 -13
- package/src/Redux/ActionsReducers/PopupRedux.js +0 -19
- package/src/Redux/ActionsReducers/SystemRedux.d.ts +11 -5
- package/src/Redux/ActionsReducers/SystemRedux.js +12 -9
- package/src/Redux/Store/AdaptableStore.js +40 -33
- package/src/Strategy/AdaptableModuleBase.d.ts +10 -10
- package/src/Strategy/AdaptableModuleBase.js +13 -16
- package/src/Strategy/AlertModule.d.ts +3 -2
- package/src/Strategy/AlertModule.js +4 -4
- package/src/Strategy/BulkUpdateModule.d.ts +3 -2
- package/src/Strategy/BulkUpdateModule.js +2 -1
- package/src/Strategy/CalculatedColumnModule.d.ts +3 -4
- package/src/Strategy/CalculatedColumnModule.js +18 -14
- package/src/Strategy/CellSummaryModule.d.ts +9 -9
- package/src/Strategy/CellSummaryModule.js +96 -107
- package/src/Strategy/ColumnFilterModule.d.ts +3 -3
- package/src/Strategy/ColumnFilterModule.js +36 -57
- package/src/Strategy/ColumnInfoModule.d.ts +3 -3
- package/src/Strategy/ColumnInfoModule.js +6 -4
- package/src/Strategy/CommentModule.d.ts +12 -0
- package/src/Strategy/CommentModule.js +70 -0
- package/src/Strategy/CustomSortModule.d.ts +1 -2
- package/src/Strategy/CustomSortModule.js +3 -2
- package/src/Strategy/DashboardModule.d.ts +3 -3
- package/src/Strategy/DashboardModule.js +11 -21
- package/src/Strategy/DataImportModule.d.ts +4 -4
- package/src/Strategy/DataImportModule.js +8 -8
- package/src/Strategy/ExportModule.d.ts +1 -2
- package/src/Strategy/ExportModule.js +58 -44
- package/src/Strategy/Fdc3Module.d.ts +1 -1
- package/src/Strategy/Fdc3Module.js +3 -13
- package/src/Strategy/FlashingCellModule.d.ts +4 -3
- package/src/Strategy/FlashingCellModule.js +10 -10
- package/src/Strategy/FormatColumnModule.d.ts +1 -1
- package/src/Strategy/FormatColumnModule.js +29 -47
- package/src/Strategy/FreeTextColumnModule.d.ts +1 -2
- package/src/Strategy/FreeTextColumnModule.js +2 -2
- package/src/Strategy/GridInfoModule.d.ts +3 -3
- package/src/Strategy/GridInfoModule.js +5 -3
- package/src/Strategy/Interface/IModule.d.ts +4 -4
- package/src/Strategy/LayoutModule.d.ts +4 -10
- package/src/Strategy/LayoutModule.js +50 -150
- package/src/Strategy/NoteModule.d.ts +10 -0
- package/src/Strategy/NoteModule.js +55 -0
- package/src/Strategy/PlusMinusModule.d.ts +1 -2
- package/src/Strategy/PlusMinusModule.js +5 -5
- package/src/Strategy/SettingsPanelModule.d.ts +3 -3
- package/src/Strategy/SettingsPanelModule.js +6 -6
- package/src/Strategy/ShortcutModule.js +1 -1
- package/src/Strategy/SmartEditModule.d.ts +3 -2
- package/src/Strategy/SmartEditModule.js +2 -1
- package/src/Strategy/StyledColumnModule.d.ts +2 -1
- package/src/Strategy/StyledColumnModule.js +42 -22
- package/src/Strategy/SystemStatusModule.d.ts +3 -3
- package/src/Strategy/SystemStatusModule.js +6 -3
- package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +4 -2
- package/src/Strategy/Utilities/getScopeViewItems.d.ts +2 -2
- package/src/Strategy/Utilities/getScopeViewItems.js +3 -0
- package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
- package/src/Utilities/Constants/GeneralConstants.js +1 -0
- package/src/Utilities/Constants/ModuleConstants.d.ts +6 -6
- package/src/Utilities/Constants/ModuleConstants.js +6 -6
- package/src/Utilities/Defaults/DefaultSettingsPanel.js +2 -2
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +2 -2
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +143 -7
- package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -3
- package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -1
- package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +15 -0
- package/src/Utilities/Helpers/AdaptableHelper.d.ts +3 -1
- package/src/Utilities/Helpers/AdaptableHelper.js +19 -0
- package/src/Utilities/Interface/MessagePopups.d.ts +0 -3
- package/src/Utilities/MenuItem.d.ts +10 -7
- package/src/Utilities/MenuItem.js +6 -3
- package/src/Utilities/ObjectFactory.d.ts +3 -3
- package/src/Utilities/ObjectFactory.js +7 -25
- package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +1 -0
- package/src/Utilities/Services/AggregatedScalarLiveValue.js +12 -10
- package/src/Utilities/Services/CellPopupService.js +4 -4
- package/src/Utilities/Services/Interface/IReportService.d.ts +1 -4
- package/src/Utilities/Services/LicenseService/index.js +1 -193
- package/src/Utilities/Services/ModuleService.js +6 -2
- package/src/Utilities/Services/QueryLanguageService.js +2 -2
- package/src/Utilities/Services/ReportService.d.ts +7 -5
- package/src/Utilities/Services/ReportService.js +245 -26
- package/src/Utilities/Services/RowSummaryService.d.ts +26 -0
- package/src/Utilities/Services/RowSummaryService.js +155 -0
- package/src/Utilities/Services/ValidationService.js +2 -2
- 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/AdaptableViewFactory.js +2 -2
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/UIOptions/UIOptionsStatusbarForm.js +1 -1
- package/src/View/Alert/AlertEntityRow.js +1 -1
- package/src/View/Alert/Utilities/getAvailablePredicates.d.ts +2 -2
- package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +1 -1
- package/src/View/Alert/Wizard/AlertScopeWizardSection.js +2 -2
- package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +1 -1
- package/src/View/BulkUpdate/BulkUpdatePopup.js +2 -2
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.d.ts +1 -1
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +3 -3
- package/src/View/ColumnInfo/ColumnInfo.js +1 -1
- package/src/View/Comments/CommentsEditor.js +28 -17
- package/src/View/Comments/CommentsPopup.js +15 -7
- 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/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.d.ts +3 -3
- package/src/View/Components/EntityRulesEditor/index.d.ts +3 -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.d.ts +5 -5
- package/src/View/Components/NewScopeComponent.js +6 -4
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +4 -1
- package/src/View/Components/Popups/AdaptablePopup/useMenuItems.js +10 -1
- package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +7 -10
- package/src/View/Components/RangesComponent.d.ts +2 -2
- package/src/View/Components/RangesComponent.js +1 -1
- package/src/View/Components/Selectors/PermittedValuesSelector.js +1 -1
- package/src/View/Components/SharedProps/WizardScopeState.d.ts +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/Wizard/CustomSortColumnWizardSection.js +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +4 -2
- package/src/View/DataImport/DataImportWizard/DataImportWizard.js +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +2 -2
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +20 -7
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +27 -12
- package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +1 -1
- package/src/View/FreeTextColumn/FreeTextColumnSummary.js +1 -1
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +3 -1
- package/src/View/GridFilter/GridFilterViewPanel.js +3 -3
- package/src/View/GridFilter/useGridFilterExpressionEditor.js +1 -1
- package/src/View/Layout/LayoutViewPanel.js +2 -1
- package/src/View/Layout/TransposedPopup.js +20 -19
- 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 +18 -2
- 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} +14 -9
- package/src/View/PlusMinus/PlusMinusSummary.js +2 -2
- package/src/View/SmartEdit/SmartEditPopup.js +1 -1
- package/src/View/SpecialColumnSettingsWizardStep.js +4 -4
- package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +5 -7
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardColumnSection.js +1 -1
- package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.js +38 -14
- package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +1 -1
- package/src/agGrid/ActionColumnRenderer.js +40 -4
- package/src/agGrid/AdaptableAgGrid.d.ts +11 -16
- package/src/agGrid/AdaptableAgGrid.js +230 -250
- package/src/agGrid/AgGridAdapter.d.ts +4 -2
- package/src/agGrid/AgGridAdapter.js +12 -0
- package/src/agGrid/AgGridColumnAdapter.d.ts +1 -3
- package/src/agGrid/AgGridColumnAdapter.js +42 -71
- package/src/agGrid/AgGridMenuAdapter.d.ts +25 -8
- package/src/agGrid/AgGridMenuAdapter.js +405 -74
- package/src/agGrid/AgGridOptionsService.d.ts +4 -1
- package/src/agGrid/AgGridOptionsService.js +22 -0
- package/src/agGrid/BadgeRenderer.d.ts +2 -2
- package/src/agGrid/BadgeRenderer.js +24 -11
- package/src/agGrid/PercentBarRenderer.js +2 -1
- package/src/agGrid/buildSortedColumnStateForLayout.d.ts +7 -0
- package/src/agGrid/buildSortedColumnStateForLayout.js +120 -0
- package/src/agGrid/defaultAdaptableOptions.js +7 -12
- package/src/agGrid/editors/AdaptableDateEditor/index.d.ts +1 -1
- package/src/agGrid/editors/AdaptableDateEditor/index.js +1 -1
- package/src/agGrid/editors/AdaptableNumberEditor/index.d.ts +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/Accordion.d.ts +7 -0
- package/src/components/Accordion.js +36 -0
- package/src/components/CheckBox/index.js +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/Input/index.d.ts +1 -2
- package/src/components/ProgressIndicator/ProgressIndicator.js +15 -6
- package/src/components/Select/Select.d.ts +1 -1
- package/src/components/Select/Select.js +3 -1
- package/src/components/Textarea/index.d.ts +2 -2
- package/src/components/icons/collapse-all.d.ts +3 -0
- package/src/components/icons/collapse-all.js +4 -0
- package/src/components/icons/copy.d.ts +3 -0
- package/src/components/icons/copy.js +4 -0
- package/src/components/icons/csv.d.ts +3 -0
- package/src/components/icons/csv.js +4 -0
- package/src/components/icons/data-object.d.ts +3 -0
- package/src/components/icons/data-object.js +4 -0
- package/src/components/icons/excel.d.ts +3 -0
- package/src/components/icons/excel.js +5 -0
- package/src/components/icons/expand-all.d.ts +3 -0
- package/src/components/icons/expand-all.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 +22 -0
- package/src/components/icons/note.js +2 -2
- 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 +222 -116
- package/src/metamodel/adaptable.metamodel.js +1 -9426
- 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 +2 -2
- package/src/parser/src/types.js +1 -2
- package/src/types.d.ts +32 -25
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/src/AdaptableOptions/MenuOptions.d.ts +0 -234
- package/src/AdaptableOptions/MenuOptions.js +0 -95
- package/src/Api/Events/CommentsChangedInfo.d.ts +0 -5
- package/src/Api/Implementation/ScopeApiImpl.d.ts +0 -33
- package/src/Api/Internal/NotesInternalApi.d.ts +0 -4
- 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 -38
- package/src/Strategy/CommentsModule.d.ts +0 -17
- package/src/Strategy/CommentsModule.js +0 -81
- package/src/Strategy/NotesModule.d.ts +0 -10
- package/src/Strategy/NotesModule.js +0 -56
- package/src/Utilities/Services/SummaryService.d.ts +0 -19
- package/src/Utilities/Services/SummaryService.js +0 -29
- package/src/View/Notes/NotesPopup.d.ts +0 -2
- /package/src/{Api/Events/CommentsChangedInfo.js → AdaptableOptions/ColumnMenuOptions.js} +0 -0
- /package/src/{Api/NotesApi.js → AdaptableOptions/ContextMenuOptions.js} +0 -0
- /package/src/Api/{ScopeApi.js → ColumnMenuApi.js} +0 -0
- /package/src/{PredefinedConfig/Common/AdaptableScope.js → Api/ColumnScopeApi.js} +0 -0
- /package/src/{PredefinedConfig/NotesState.js → Api/ContextMenuApi.js} +0 -0
- /package/src/View/{Notes → Note}/NoteEditor.d.ts +0 -0
- /package/src/View/{Notes → Note}/NoteEditor.js +0 -0
|
@@ -68,6 +68,21 @@ export const scalarExpressionFunctions = {
|
|
|
68
68
|
category: 'special',
|
|
69
69
|
returnType: 'any',
|
|
70
70
|
},
|
|
71
|
+
FIELD: {
|
|
72
|
+
handler(args, context) {
|
|
73
|
+
var _a, _b;
|
|
74
|
+
const fieldName = args[0];
|
|
75
|
+
if (StringExtensions.IsNullOrEmpty(fieldName)) {
|
|
76
|
+
throw new ExpressionEvaluationError('FIELD', 'requires a field name');
|
|
77
|
+
}
|
|
78
|
+
return (_a = context.adaptableApi) === null || _a === void 0 ? void 0 : _a.internalApi.getValueUsingField((_b = context.node) === null || _b === void 0 ? void 0 : _b.data, fieldName);
|
|
79
|
+
},
|
|
80
|
+
description: 'Returns the value of a row field (not necessarily mapped to a column). If the field is nested, use dot notation (e.g. "nested.fieldName")',
|
|
81
|
+
signatures: ['FIELD(fieldName:string)'],
|
|
82
|
+
examples: ['FIELD("fieldName")', 'FIELD("nested.fieldName")'],
|
|
83
|
+
category: 'special',
|
|
84
|
+
returnType: 'any',
|
|
85
|
+
},
|
|
71
86
|
QUERY: {
|
|
72
87
|
handler(args, context) {
|
|
73
88
|
var _a, _b;
|
|
@@ -8,7 +8,8 @@ export declare function checkValidPrimaryKey(adaptable: IAdaptable): boolean;
|
|
|
8
8
|
export declare function AdaptableObjectExistsInState(array: AdaptableObject[], itemToCheck: AdaptableObject): boolean;
|
|
9
9
|
export declare function getAppropriateAccessLevel(adaptableObject: AdaptableObject, moduleAccessLevel: AccessLevel): AccessLevel;
|
|
10
10
|
export declare function runAdaptableComparerFunction(columnId: string, columnValues: any[], adaptable: IAdaptable): AdaptableComparerFunction;
|
|
11
|
-
export declare function addUuidAndSource(adaptableObject:
|
|
11
|
+
export declare function addUuidAndSource<T extends AdaptableObject>(adaptableObject: T): T;
|
|
12
|
+
export declare function removeUuidAndSource<T extends AdaptableObject>(adaptableObject: T): T;
|
|
12
13
|
export declare const AdaptableHelper: {
|
|
13
14
|
initPredefinedConfigWithUuids: typeof initPredefinedConfigWithUuids;
|
|
14
15
|
checkValidPrimaryKey: typeof checkValidPrimaryKey;
|
|
@@ -16,5 +17,6 @@ export declare const AdaptableHelper: {
|
|
|
16
17
|
runAdaptableComparerFunction: typeof runAdaptableComparerFunction;
|
|
17
18
|
getAppropriateAccessLevel: typeof getAppropriateAccessLevel;
|
|
18
19
|
addUuidAndSource: typeof addUuidAndSource;
|
|
20
|
+
removeUuidAndSource: typeof removeUuidAndSource;
|
|
19
21
|
};
|
|
20
22
|
export default AdaptableHelper;
|
|
@@ -86,6 +86,24 @@ export function addUuidAndSource(adaptableObject) {
|
|
|
86
86
|
adaptableObject.Source = 'User';
|
|
87
87
|
return adaptableObject;
|
|
88
88
|
}
|
|
89
|
+
export function removeUuidAndSource(adaptableObject) {
|
|
90
|
+
const clonedObject = structuredClone(adaptableObject);
|
|
91
|
+
const sanitiseObject = (object) => {
|
|
92
|
+
for (const key in object) {
|
|
93
|
+
if (key === 'Source' || key === 'Uuid') {
|
|
94
|
+
delete object[key];
|
|
95
|
+
}
|
|
96
|
+
else if (Array.isArray(object[key])) {
|
|
97
|
+
object[key].forEach((item) => sanitiseObject(item));
|
|
98
|
+
}
|
|
99
|
+
else if (typeof object[key] === 'object') {
|
|
100
|
+
sanitiseObject(object[key]);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
sanitiseObject(clonedObject);
|
|
105
|
+
return clonedObject;
|
|
106
|
+
}
|
|
89
107
|
export const AdaptableHelper = {
|
|
90
108
|
initPredefinedConfigWithUuids,
|
|
91
109
|
checkValidPrimaryKey,
|
|
@@ -93,5 +111,6 @@ export const AdaptableHelper = {
|
|
|
93
111
|
runAdaptableComparerFunction,
|
|
94
112
|
getAppropriateAccessLevel,
|
|
95
113
|
addUuidAndSource,
|
|
114
|
+
removeUuidAndSource,
|
|
96
115
|
};
|
|
97
116
|
export default AdaptableHelper;
|
|
@@ -1,26 +1,29 @@
|
|
|
1
1
|
import * as Redux from 'redux';
|
|
2
2
|
import { ModuleParams } from '../View/Components/SharedProps/ModuleViewPopupProps';
|
|
3
|
-
import { AdaptableMenuItem } from '../PredefinedConfig/Common/Menu';
|
|
3
|
+
import { AdaptableMenuItem, AdaptableContextMenuItemName, AdaptableColumnMenuItemName } from '../PredefinedConfig/Common/Menu';
|
|
4
4
|
import { AdaptableModule } from '../PredefinedConfig/Common/Types';
|
|
5
5
|
import { AdaptableIcon, AdaptableSystemIconName } from '../PredefinedConfig/Common/AdaptableIcon';
|
|
6
|
-
export declare class MenuItemDoReduxAction implements AdaptableMenuItem {
|
|
7
|
-
constructor(label: string, module: AdaptableModule, reduxAction: Redux.Action, icon: AdaptableSystemIconName, isVisible: boolean);
|
|
6
|
+
export declare class MenuItemDoReduxAction<MENU_TYPE_NAME extends AdaptableColumnMenuItemName | AdaptableContextMenuItemName = AdaptableColumnMenuItemName | AdaptableContextMenuItemName> implements AdaptableMenuItem<MENU_TYPE_NAME> {
|
|
7
|
+
constructor(name: MENU_TYPE_NAME, label: string, module: AdaptableModule, reduxAction: Redux.Action, icon: AdaptableSystemIconName, isVisible: boolean);
|
|
8
|
+
name: MENU_TYPE_NAME;
|
|
8
9
|
reduxAction: Redux.Action;
|
|
9
10
|
label: string;
|
|
10
11
|
module: AdaptableModule;
|
|
11
12
|
isVisible: boolean;
|
|
12
13
|
icon: AdaptableIcon;
|
|
13
14
|
}
|
|
14
|
-
export declare class MenuItemDoClickFunction implements AdaptableMenuItem {
|
|
15
|
-
constructor(label: string, module: AdaptableModule, clickFunction: () => void, icon: AdaptableSystemIconName, isVisible: boolean);
|
|
15
|
+
export declare class MenuItemDoClickFunction<MENU_TYPE_NAME extends AdaptableColumnMenuItemName | AdaptableContextMenuItemName = AdaptableColumnMenuItemName | AdaptableContextMenuItemName> implements AdaptableMenuItem<MENU_TYPE_NAME> {
|
|
16
|
+
constructor(name: MENU_TYPE_NAME, label: string, module: AdaptableModule, clickFunction: () => void, icon: AdaptableSystemIconName, isVisible: boolean);
|
|
17
|
+
name: MENU_TYPE_NAME;
|
|
16
18
|
onClick: () => void;
|
|
17
19
|
label: string;
|
|
18
20
|
module: AdaptableModule;
|
|
19
21
|
isVisible: boolean;
|
|
20
22
|
icon: AdaptableIcon;
|
|
21
23
|
}
|
|
22
|
-
export declare class MenuItemShowPopup implements AdaptableMenuItem {
|
|
23
|
-
constructor(label: string, module: AdaptableModule, componentName: string, icon: AdaptableSystemIconName, isVisible: boolean, popupParams?: ModuleParams);
|
|
24
|
+
export declare class MenuItemShowPopup<MENU_TYPE_NAME extends AdaptableColumnMenuItemName | AdaptableContextMenuItemName = AdaptableColumnMenuItemName | AdaptableContextMenuItemName> implements AdaptableMenuItem<MENU_TYPE_NAME> {
|
|
25
|
+
constructor(name: MENU_TYPE_NAME, label: string, module: AdaptableModule, componentName: string, icon: AdaptableSystemIconName, isVisible: boolean, popupParams?: ModuleParams);
|
|
26
|
+
name: MENU_TYPE_NAME;
|
|
24
27
|
reduxAction: Redux.Action;
|
|
25
28
|
label: string;
|
|
26
29
|
module: AdaptableModule;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as PopupRedux from '../Redux/ActionsReducers/PopupRedux';
|
|
2
2
|
// A menu item which performs a Redux Action when it is clicke
|
|
3
3
|
export class MenuItemDoReduxAction {
|
|
4
|
-
constructor(label, module, reduxAction, icon, isVisible) {
|
|
4
|
+
constructor(name, label, module, reduxAction, icon, isVisible) {
|
|
5
|
+
this.name = name;
|
|
5
6
|
this.label = label;
|
|
6
7
|
this.module = module;
|
|
7
8
|
this.isVisible = isVisible;
|
|
@@ -12,7 +13,8 @@ export class MenuItemDoReduxAction {
|
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
15
|
export class MenuItemDoClickFunction {
|
|
15
|
-
constructor(label, module, clickFunction, icon, isVisible) {
|
|
16
|
+
constructor(name, label, module, clickFunction, icon, isVisible) {
|
|
17
|
+
this.name = name;
|
|
16
18
|
this.label = label;
|
|
17
19
|
this.module = module;
|
|
18
20
|
this.isVisible = isVisible;
|
|
@@ -24,7 +26,8 @@ export class MenuItemDoClickFunction {
|
|
|
24
26
|
}
|
|
25
27
|
// A menu item which shows a popup screen when it is clieked
|
|
26
28
|
export class MenuItemShowPopup {
|
|
27
|
-
constructor(label, module, componentName, icon, isVisible, popupParams) {
|
|
29
|
+
constructor(name, label, module, componentName, icon, isVisible, popupParams) {
|
|
30
|
+
this.name = name;
|
|
28
31
|
this.label = label;
|
|
29
32
|
this.module = module;
|
|
30
33
|
this.isVisible = isVisible;
|
|
@@ -21,14 +21,14 @@ import { Shortcut } from '../PredefinedConfig/ShortcutState';
|
|
|
21
21
|
import { IPushPullReport } from '../PredefinedConfig/SystemState';
|
|
22
22
|
import { NotificationsOptions } from '../AdaptableOptions/NotificationsOptions';
|
|
23
23
|
import { CellSummmary } from '../PredefinedConfig/Common/CellSummary';
|
|
24
|
-
import { AdaptableTheme, BaseContext, ChartDefinition, ColumnFilter, CommentThread, CustomDisplayFormatterContext, FlashingCellDefinition, GridDataChangedInfo, SystemFilterPredicateId } from '../types';
|
|
24
|
+
import { AdaptableTheme, BaseContext, ChartDefinition, ColumnFilter, CommentThread, CustomDisplayFormatterContext, FlashingCellDefinition, GridDataChangedInfo, SpecialColumnSettings, SystemFilterPredicateId } from '../types';
|
|
25
25
|
import { IRowNode } from '@ag-grid-community/core';
|
|
26
26
|
import { AdaptableApi, AdaptableComment, BadgeStyleDefinition, CellAddress, NamedQuery } from '../../types';
|
|
27
27
|
import { ToastOptions } from '../components/Toastify';
|
|
28
28
|
import { StyledColumn } from '../PredefinedConfig/StyledColumnState';
|
|
29
29
|
export declare function CreateEmptyCustomSort(): CustomSort;
|
|
30
30
|
export declare function CreateAdaptableComment(text: string, api: AdaptableApi): AdaptableComment;
|
|
31
|
-
export declare function CreateEmptyCalculatedColumn(): CalculatedColumn;
|
|
31
|
+
export declare function CreateEmptyCalculatedColumn(defaultSpecialColumnSettings: Partial<SpecialColumnSettings>): CalculatedColumn;
|
|
32
32
|
export declare function CreateEmptyNamedQuery(expression?: string): NamedQuery;
|
|
33
33
|
export declare function CreateEmptyPlusMinusNudge(): PlusMinusNudge;
|
|
34
34
|
export declare function CreateGenericAlert(alertHeader: string, alertMessage: string, alertDefinition: AlertDefinition): AdaptableGenericAlert;
|
|
@@ -51,7 +51,7 @@ export declare function CreateReportSchedule(reportName: string): ReportSchedule
|
|
|
51
51
|
export declare function CreateEmptySchedule(): Schedule;
|
|
52
52
|
export declare function CreateEmptyShortcut(): Shortcut;
|
|
53
53
|
export declare function CreateEmptyFormatColumn(): FormatColumn;
|
|
54
|
-
export declare function CreateEmptyFreeTextColumn(): FreeTextColumn;
|
|
54
|
+
export declare function CreateEmptyFreeTextColumn(defaultSpecialColumnSettings: Partial<SpecialColumnSettings>): FreeTextColumn;
|
|
55
55
|
export declare function CreateEmptyLayout(layout?: Partial<Layout> & {
|
|
56
56
|
Name: string;
|
|
57
57
|
}, adaptableColumns?: AdaptableColumn[]): Layout;
|
|
@@ -18,7 +18,7 @@ export function CreateAdaptableComment(text, api) {
|
|
|
18
18
|
};
|
|
19
19
|
return comment;
|
|
20
20
|
}
|
|
21
|
-
export function CreateEmptyCalculatedColumn() {
|
|
21
|
+
export function CreateEmptyCalculatedColumn(defaultSpecialColumnSettings) {
|
|
22
22
|
return {
|
|
23
23
|
Uuid: createUuid(),
|
|
24
24
|
ColumnId: EMPTY_STRING,
|
|
@@ -26,17 +26,7 @@ export function CreateEmptyCalculatedColumn() {
|
|
|
26
26
|
ScalarExpression: EMPTY_STRING,
|
|
27
27
|
},
|
|
28
28
|
// need to create some defaults - which we will change later
|
|
29
|
-
CalculatedColumnSettings: {
|
|
30
|
-
DataType: undefined,
|
|
31
|
-
Filterable: true,
|
|
32
|
-
Resizable: true,
|
|
33
|
-
Groupable: false,
|
|
34
|
-
Sortable: true,
|
|
35
|
-
Pivotable: false,
|
|
36
|
-
Aggregatable: false,
|
|
37
|
-
SuppressMenu: false,
|
|
38
|
-
SuppressMovable: false,
|
|
39
|
-
},
|
|
29
|
+
CalculatedColumnSettings: Object.assign(Object.assign({}, defaultSpecialColumnSettings), { DataType: undefined }),
|
|
40
30
|
};
|
|
41
31
|
}
|
|
42
32
|
export function CreateEmptyNamedQuery(expression) {
|
|
@@ -243,26 +233,17 @@ export function CreateEmptyFormatColumn() {
|
|
|
243
233
|
Style: CreateEmptyStyle(),
|
|
244
234
|
DisplayFormat: undefined,
|
|
245
235
|
CellAlignment: undefined,
|
|
236
|
+
RowScope: undefined,
|
|
246
237
|
};
|
|
247
238
|
}
|
|
248
|
-
export function CreateEmptyFreeTextColumn() {
|
|
239
|
+
export function CreateEmptyFreeTextColumn(defaultSpecialColumnSettings) {
|
|
249
240
|
return {
|
|
250
241
|
Uuid: createUuid(),
|
|
251
242
|
ColumnId: EMPTY_STRING,
|
|
252
243
|
DefaultValue: EMPTY_STRING,
|
|
253
244
|
FreeTextStoredValues: [],
|
|
254
245
|
TextEditor: 'Inline',
|
|
255
|
-
FreeTextColumnSettings: {
|
|
256
|
-
DataType: 'String',
|
|
257
|
-
Filterable: true,
|
|
258
|
-
Resizable: true,
|
|
259
|
-
Groupable: false,
|
|
260
|
-
Sortable: true,
|
|
261
|
-
Pivotable: false,
|
|
262
|
-
Aggregatable: false,
|
|
263
|
-
SuppressMenu: false,
|
|
264
|
-
SuppressMovable: false,
|
|
265
|
-
},
|
|
246
|
+
FreeTextColumnSettings: Object.assign(Object.assign({}, defaultSpecialColumnSettings), { DataType: 'String' }),
|
|
266
247
|
};
|
|
267
248
|
}
|
|
268
249
|
export function CreateEmptyLayout(layout, adaptableColumns) {
|
|
@@ -301,6 +282,8 @@ export function CreateEmptyCellSummmary() {
|
|
|
301
282
|
Max: undefined,
|
|
302
283
|
Min: undefined,
|
|
303
284
|
Count: undefined,
|
|
285
|
+
Newest: undefined,
|
|
286
|
+
Oldest: undefined,
|
|
304
287
|
Std_Deviation: undefined,
|
|
305
288
|
Only: undefined,
|
|
306
289
|
};
|
|
@@ -318,7 +301,6 @@ export function CreateEmptyStyledColumn() {
|
|
|
318
301
|
return {
|
|
319
302
|
Uuid: createUuid(),
|
|
320
303
|
ColumnId: EMPTY_STRING,
|
|
321
|
-
IncludeGroupedRows: false,
|
|
322
304
|
};
|
|
323
305
|
}
|
|
324
306
|
export function CreateDefaultStyledColumnBadge() {
|
|
@@ -60,7 +60,7 @@ export class AggregatedScalarLiveValue {
|
|
|
60
60
|
var _a, _b;
|
|
61
61
|
if ((_a = this.expressionEvaluation.aggregationParams.groupBy) === null || _a === void 0 ? void 0 : _a.length) {
|
|
62
62
|
const groupColumns = this.expressionEvaluation.aggregationParams.groupBy.map((groupByParam) => groupByParam.field);
|
|
63
|
-
const groupKeys = groupColumns.map((groupColumnName) => this.
|
|
63
|
+
const groupKeys = groupColumns.map((groupColumnName) => this.getRowNodeValueForColumnId(rowNode, groupColumnName));
|
|
64
64
|
return (_b = this.aggregationResult.deepMap.get(groupKeys)) === null || _b === void 0 ? void 0 : _b.reducerResults[this.aggregationReducerName];
|
|
65
65
|
}
|
|
66
66
|
return this.getGlobalAggregatedValue();
|
|
@@ -68,6 +68,11 @@ export class AggregatedScalarLiveValue {
|
|
|
68
68
|
getGlobalAggregatedValue() {
|
|
69
69
|
return this.aggregationResult.reducerResults[this.aggregationReducerName];
|
|
70
70
|
}
|
|
71
|
+
getRowNodeValueForColumnId(rowNode, columnId) {
|
|
72
|
+
const rawValue = this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, columnId);
|
|
73
|
+
// we need to convert the Date object to a number, otherwise the grouping will not work (each Date instance is unique)
|
|
74
|
+
return rawValue instanceof Date ? rawValue.getTime() : rawValue;
|
|
75
|
+
}
|
|
71
76
|
computeAggregatedValue(expressionEvaluation) {
|
|
72
77
|
var _a;
|
|
73
78
|
const gridRowNodes = expressionEvaluation.getRowNodes
|
|
@@ -77,18 +82,16 @@ export class AggregatedScalarLiveValue {
|
|
|
77
82
|
});
|
|
78
83
|
// we iterate over the RowNode list (we need this to handle complex column values (nested values, valueGetters etc)
|
|
79
84
|
// so we will map the fieldNames to RowNode.data
|
|
80
|
-
const mapReducerValueGetter = (
|
|
81
|
-
return (rowNode) =>
|
|
82
|
-
return this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, fieldName);
|
|
83
|
-
};
|
|
85
|
+
const mapReducerValueGetter = (columnId) => {
|
|
86
|
+
return (rowNode) => this.getRowNodeValueForColumnId(rowNode, columnId);
|
|
84
87
|
};
|
|
85
88
|
Object.values(expressionEvaluation.aggregationParams.reducers).forEach((aggregationReducer) => {
|
|
86
89
|
aggregationReducer.getter = mapReducerValueGetter(aggregationReducer.field);
|
|
87
90
|
// nullify the field to force the fallback on the getter fn
|
|
88
91
|
aggregationReducer.field = null;
|
|
89
92
|
});
|
|
90
|
-
const mapGroupByToKey = (
|
|
91
|
-
return (_unusableProperty, rowNode) => this.
|
|
93
|
+
const mapGroupByToKey = (columnId) => {
|
|
94
|
+
return (_unusableProperty, rowNode) => this.getRowNodeValueForColumnId(rowNode, columnId);
|
|
92
95
|
};
|
|
93
96
|
(_a = expressionEvaluation.aggregationParams.groupBy) === null || _a === void 0 ? void 0 : _a.forEach((groupByDef) => {
|
|
94
97
|
groupByDef.toKey = mapGroupByToKey(groupByDef.field);
|
|
@@ -96,11 +99,10 @@ export class AggregatedScalarLiveValue {
|
|
|
96
99
|
let aggregatedRowNodes = gridRowNodes;
|
|
97
100
|
if (expressionEvaluation.sortByColumn) {
|
|
98
101
|
const sortByColumn = expressionEvaluation.sortByColumn;
|
|
99
|
-
const getRowNodeValue = (rowNode, columnId) => this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, columnId);
|
|
100
102
|
// currently, we support only ascending sorting
|
|
101
103
|
aggregatedRowNodes.sort((first, second) => {
|
|
102
|
-
const firstValue =
|
|
103
|
-
const secondValue =
|
|
104
|
+
const firstValue = this.getRowNodeValueForColumnId(first, sortByColumn);
|
|
105
|
+
const secondValue = this.getRowNodeValueForColumnId(second, sortByColumn);
|
|
104
106
|
if (firstValue < secondValue) {
|
|
105
107
|
return -1;
|
|
106
108
|
}
|
|
@@ -74,9 +74,9 @@ export class CellPopupService {
|
|
|
74
74
|
this.hidePopup();
|
|
75
75
|
return;
|
|
76
76
|
}
|
|
77
|
-
const
|
|
77
|
+
const cellNote = this.adaptable.api.noteApi.getNoteForCell(cellPosition);
|
|
78
78
|
const cellComments = this.adaptable.api.commentApi.getCommentThread(cellPosition);
|
|
79
|
-
const hasNotesOrComments =
|
|
79
|
+
const hasNotesOrComments = cellNote || cellComments;
|
|
80
80
|
// call only if it is different
|
|
81
81
|
if (CellPopupService.isSameAddress(openCellAddress, cellPosition)) {
|
|
82
82
|
return;
|
|
@@ -92,9 +92,9 @@ export class CellPopupService {
|
|
|
92
92
|
return;
|
|
93
93
|
}
|
|
94
94
|
// if open but this has no note, close
|
|
95
|
-
const
|
|
95
|
+
const cellNote = this.adaptable.api.noteApi.getNoteForCell(cellAddress);
|
|
96
96
|
const cellComments = this.adaptable.api.commentApi.getCommentThread(cellAddress);
|
|
97
|
-
const hasNotesOrComments =
|
|
97
|
+
const hasNotesOrComments = cellNote || cellComments;
|
|
98
98
|
if (openCellAddress && !hasNotesOrComments) {
|
|
99
99
|
// hide only if in edit mode
|
|
100
100
|
// because if you select a cell and move the mouse fast over another cell
|
|
@@ -4,11 +4,8 @@ import { IAdaptableService } from './IAdaptableService';
|
|
|
4
4
|
import { ExcelStyle, IRowNode } from '@ag-grid-community/core';
|
|
5
5
|
import { CustomDestination, SystemExportDestination } from '../../../types';
|
|
6
6
|
export interface IReportService extends IAdaptableService {
|
|
7
|
-
|
|
8
|
-
registerExcelStyle(excelStyle: Partial<ExcelStyle>, cellClassKey: string): void;
|
|
9
|
-
getRegisteredExcelStyles(): ExcelStyle[];
|
|
7
|
+
buildExcelStylesForVisualReports(): ExcelStyle[];
|
|
10
8
|
getExcelStyleIdForCellClassKey(cellClassKey: string): string;
|
|
11
|
-
registerExcelStyleWithFormattedDate(cellClassId: string, isoFormattedValue: string): void;
|
|
12
9
|
getExcelStyleWithFormattedDate(cellClassId: string): string;
|
|
13
10
|
CreateSystemReport(systemReportName: SystemReportName): Report;
|
|
14
11
|
IsSystemReport(reportName: string): boolean;
|
|
@@ -1,193 +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 getOrigin = () => {
|
|
26
|
-
return typeof window !== 'undefined' ? window.location.origin : '';
|
|
27
|
-
};
|
|
28
|
-
const isInsideSandpack = () => {
|
|
29
|
-
const [_fullUrl, protocol, sandpackUrl] = Array.from(SANDPACK_REGEX.exec(getOrigin()) || []);
|
|
30
|
-
return protocol === 'https' && sandpackUrl === 'sandpack.codesandbox.io';
|
|
31
|
-
};
|
|
32
|
-
const isInsideSandbox = () => {
|
|
33
|
-
const [_fullUrl, protocol, sandboxUrl] = Array.from(SANDBOX_REGEX.exec(getOrigin()) || []);
|
|
34
|
-
return protocol === 'https' && sandboxUrl === '.csb.app';
|
|
35
|
-
};
|
|
36
|
-
const isDemoApp = () => {
|
|
37
|
-
const [_fullUrl, protocol, demoAppUrl] = Array.from(DEMO_REGEX.exec(getOrigin()) || []);
|
|
38
|
-
return protocol === 'https' && demoAppUrl === '.adaptabletools.com';
|
|
39
|
-
};
|
|
40
|
-
export class LicenseService {
|
|
41
|
-
constructor(adaptable, licenseKey, packageDetails) {
|
|
42
|
-
this.adaptable = adaptable;
|
|
43
|
-
this.licenseKey = licenseKey;
|
|
44
|
-
this.packageDetails = packageDetails;
|
|
45
|
-
this.adaptable = adaptable;
|
|
46
|
-
this.adaptable.api.eventApi.on('AdaptableReady', () => {
|
|
47
|
-
requestAnimationFrame(() => {
|
|
48
|
-
// using a rAF because we want to make sure that the window.location.origin is available (Master/Detail is fidgity sometimes)
|
|
49
|
-
this.init();
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
init() {
|
|
54
|
-
let details = null;
|
|
55
|
-
if (this.licenseKey) {
|
|
56
|
-
try {
|
|
57
|
-
details = decodeLicense(this.licenseKey);
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
details = error;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
if (!isInsideSandpack() && !isInsideSandbox() && !isDemoApp()) {
|
|
64
|
-
this.handleLicenseValidation(details, this.getValidityType(details, this.packageDetails));
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
getValidityType(details, packageDetails) {
|
|
68
|
-
if (!details) {
|
|
69
|
-
return LicenseValidityType.NO_LICENSE;
|
|
70
|
-
}
|
|
71
|
-
if (details instanceof Error) {
|
|
72
|
-
return LicenseValidityType.INVALID_LICENSE;
|
|
73
|
-
}
|
|
74
|
-
const currentVersionReleaseDate = new Date(packageDetails.publishedAt);
|
|
75
|
-
const licenseEndDate = new Date(details.end);
|
|
76
|
-
const currentDate = new Date();
|
|
77
|
-
const isExpired = licenseEndDate < currentDate;
|
|
78
|
-
const isTrial = details.trial;
|
|
79
|
-
const isScope = licenseEndDate > currentVersionReleaseDate;
|
|
80
|
-
let validityType = null;
|
|
81
|
-
if (isExpired) {
|
|
82
|
-
if (isScope) {
|
|
83
|
-
if (isTrial) {
|
|
84
|
-
validityType = LicenseValidityType.NON_PRODUCTION_EXPIRED_IN_SCOPE;
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
validityType = LicenseValidityType.COMMERCIAL_EXPIRED_IN_SCOPE;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
if (isTrial) {
|
|
92
|
-
validityType = LicenseValidityType.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE;
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
validityType = LicenseValidityType.COMMERCIAL_EXPIRED_OUT_OF_SCOPE;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
if (isTrial) {
|
|
101
|
-
validityType = LicenseValidityType.NON_PRODUCTION_VALID;
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
validityType = LicenseValidityType.COMMERCIAL_VALID;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
return validityType;
|
|
108
|
-
}
|
|
109
|
-
handleLicenseValidation(details, validityType) {
|
|
110
|
-
var _a;
|
|
111
|
-
const nowAtMidnight = new Date();
|
|
112
|
-
nowAtMidnight.setHours(0, 0, 0, 0);
|
|
113
|
-
let daysLeft = 0;
|
|
114
|
-
if (!(details instanceof Error) && (details === null || details === void 0 ? void 0 : details.end)) {
|
|
115
|
-
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);
|
|
116
|
-
daysLeft = clamp(daysLeft, 0, Infinity);
|
|
117
|
-
}
|
|
118
|
-
let APP_NAME = '';
|
|
119
|
-
let forApp = '';
|
|
120
|
-
if (details &&
|
|
121
|
-
!(details instanceof Error) &&
|
|
122
|
-
details.appName &&
|
|
123
|
-
details.appName != GENERIC_APP_NAME) {
|
|
124
|
-
APP_NAME = details.appName;
|
|
125
|
-
forApp = ` for application [APP_NAME]`;
|
|
126
|
-
}
|
|
127
|
-
const annotateMessage = (message, link = LicenseDocsLink, email = EMAIL, days = daysLeft, appName = APP_NAME) => {
|
|
128
|
-
return message
|
|
129
|
-
.replace('[LINK]', link)
|
|
130
|
-
.replace('[EMAIL]', email)
|
|
131
|
-
.replace('[APP_NAME]', appName)
|
|
132
|
-
.replace('[DAYS]', `${days}`);
|
|
133
|
-
};
|
|
134
|
-
switch (validityType) {
|
|
135
|
-
case 'NO_LICENSE':
|
|
136
|
-
case 'NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE':
|
|
137
|
-
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');
|
|
138
|
-
this.showNotification('No AdapTable License found.');
|
|
139
|
-
this.showWatermark('This instance of AdapTable does not have a license, and some functionality has therefore been removed.');
|
|
140
|
-
this.disableStatePersistence();
|
|
141
|
-
break;
|
|
142
|
-
case 'INVALID_LICENSE':
|
|
143
|
-
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');
|
|
144
|
-
this.showNotification('Corrupted AdapTable License found.');
|
|
145
|
-
this.showWatermark(`This instance of AdapTable has a corrupted License, and some functionality has therefore been removed.`);
|
|
146
|
-
this.disableStatePersistence();
|
|
147
|
-
break;
|
|
148
|
-
case 'NON_PRODUCTION_VALID':
|
|
149
|
-
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');
|
|
150
|
-
break;
|
|
151
|
-
case 'NON_PRODUCTION_EXPIRED_IN_SCOPE':
|
|
152
|
-
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');
|
|
153
|
-
this.showWatermark('AdapTable License has expired');
|
|
154
|
-
break;
|
|
155
|
-
case 'COMMERCIAL_VALID':
|
|
156
|
-
if (daysLeft <= COMMERCIAL_LICENSE_SHOW_INFO_DAYS_BEFORE_EXPIRE) {
|
|
157
|
-
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');
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
try {
|
|
161
|
-
if (shouldLogThankYouMessage()) {
|
|
162
|
-
this.adaptable.logger.consoleLogByMessageType(annotateMessage(`Thank you for using a valid AdapTable license${forApp}. Your license will expire in [DAYS] days.`), 'Info');
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
catch (ex) { }
|
|
166
|
-
}
|
|
167
|
-
break;
|
|
168
|
-
case 'COMMERCIAL_EXPIRED_IN_SCOPE':
|
|
169
|
-
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');
|
|
170
|
-
break;
|
|
171
|
-
case 'COMMERCIAL_EXPIRED_OUT_OF_SCOPE':
|
|
172
|
-
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');
|
|
173
|
-
this.showNotification('Adaptable License has expired');
|
|
174
|
-
this.showWatermark('Adaptable License has expired');
|
|
175
|
-
break;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
showNotification(text) {
|
|
179
|
-
this.adaptable.api.internalApi.dispatchReduxAction(PopupShowAlert({
|
|
180
|
-
alertType: 'generic',
|
|
181
|
-
header: 'License Error',
|
|
182
|
-
message: text,
|
|
183
|
-
alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
|
|
184
|
-
}));
|
|
185
|
-
}
|
|
186
|
-
showWatermark(text) {
|
|
187
|
-
this.adaptable.api.internalApi.dispatchReduxAction(SystemLicenseShowWatermark(text));
|
|
188
|
-
}
|
|
189
|
-
disableStatePersistence() {
|
|
190
|
-
this.adaptable.api.internalApi.dispatchReduxAction(SystemLicenseDisablePersistence());
|
|
191
|
-
}
|
|
192
|
-
destroy() { }
|
|
193
|
-
}
|
|
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(){}}
|
|
@@ -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':
|
|
@@ -48,7 +48,7 @@ export class QueryLanguageService {
|
|
|
48
48
|
const moduleExpressionFunctions = this.getModuleExpressionFunctionsMap(module);
|
|
49
49
|
const booleanAndScalarFunctions = this.getBooleanAndScalarFunctions(moduleExpressionFunctions);
|
|
50
50
|
const reactiveExpression$ = parser.evaluate(reactiveExpression, {
|
|
51
|
-
node:
|
|
51
|
+
node: this.adaptableApi.gridApi.getFirstRowNode(),
|
|
52
52
|
adaptableApi: this.adaptableApi,
|
|
53
53
|
userName: this.adaptableApi.optionsApi.getUserName(),
|
|
54
54
|
adaptableId: this.adaptableApi.optionsApi.getAdaptableId(),
|
|
@@ -62,7 +62,7 @@ export class QueryLanguageService {
|
|
|
62
62
|
const moduleExpressionFunctionsMap = this.getModuleExpressionFunctionsMap(module);
|
|
63
63
|
const booleanAndScalarFunctions = this.getBooleanAndScalarFunctions(moduleExpressionFunctionsMap);
|
|
64
64
|
const aggregationEvaluation = parser.evaluate(aggregationExpression, {
|
|
65
|
-
node:
|
|
65
|
+
node: this.adaptableApi.gridApi.getFirstRowNode(),
|
|
66
66
|
adaptableApi: this.adaptableApi,
|
|
67
67
|
userName: this.adaptableApi.optionsApi.getUserName(),
|
|
68
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
|
}
|