@adaptabletools/adaptable-cjs 18.0.0-canary.1 → 18.0.0-canary.11
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 +5 -21
- package/base.css +11 -3
- package/base.css.map +1 -1
- package/index.css +88 -70
- package/index.css.map +1 -1
- package/package.json +4 -5
- package/src/AdaptableInterfaces/IAdaptable.d.ts +61 -108
- package/src/AdaptableOptions/AdaptableOptions.d.ts +12 -6
- package/src/AdaptableOptions/ColumnFilterOptions.d.ts +4 -4
- package/src/AdaptableOptions/ColumnOptions.d.ts +4 -2
- package/src/AdaptableOptions/{CommentsOptions.d.ts → CommentOptions.d.ts} +5 -5
- package/src/AdaptableOptions/MenuOptions.d.ts +1 -1
- package/src/AdaptableOptions/MenuOptions.js +2 -6
- package/src/AdaptableOptions/{NotesOptions.d.ts → NoteOptions.d.ts} +1 -1
- package/src/AdaptableOptions/UserInterfaceOptions.d.ts +17 -0
- package/src/Api/AdaptableApi.d.ts +5 -0
- package/src/Api/BulkUpdateApi.d.ts +0 -5
- package/src/Api/ConfigApi.d.ts +1 -1
- package/src/Api/Events/AdaptableReady.d.ts +3 -3
- package/src/Api/Events/GridDataChanged.d.ts +4 -4
- package/src/Api/GridApi.d.ts +18 -13
- package/src/Api/Implementation/ActionColumnApiImpl.d.ts +2 -0
- package/src/Api/Implementation/ActionColumnApiImpl.js +33 -0
- package/src/Api/Implementation/AdaptableApiImpl.d.ts +1 -0
- package/src/Api/Implementation/AdaptableApiImpl.js +3 -0
- package/src/Api/Implementation/ApiBase.d.ts +2 -1
- package/src/Api/Implementation/ApiBase.js +4 -1
- package/src/Api/Implementation/BulkUpdateApiImpl.d.ts +0 -1
- package/src/Api/Implementation/BulkUpdateApiImpl.js +0 -4
- package/src/Api/Implementation/CommentsApiImpl.d.ts +4 -0
- package/src/Api/Implementation/CommentsApiImpl.js +7 -1
- package/src/Api/Implementation/ConfigApiImpl.js +13 -5
- package/src/Api/Implementation/GridApiImpl.d.ts +4 -3
- package/src/Api/Implementation/GridApiImpl.js +33 -14
- package/src/Api/Implementation/LayoutApiImpl.d.ts +2 -0
- package/src/Api/Implementation/LayoutApiImpl.js +15 -0
- package/src/Api/Implementation/NotesApiImpl.d.ts +6 -4
- package/src/Api/Implementation/NotesApiImpl.js +9 -8
- package/src/Api/Implementation/OptionsApiImpl.d.ts +2 -1
- package/src/Api/Implementation/OptionsApiImpl.js +12 -2
- package/src/Api/Implementation/ScopeApiImpl.d.ts +2 -0
- package/src/Api/Implementation/ScopeApiImpl.js +20 -7
- package/src/Api/Implementation/StatusBarApiImpl.d.ts +0 -1
- package/src/Api/Implementation/StatusBarApiImpl.js +0 -3
- package/src/Api/Implementation/ToolPanelApiImpl.js +6 -6
- package/src/Api/Internal/ActionRowInternalApi.d.ts +5 -1
- package/src/Api/Internal/ActionRowInternalApi.js +107 -0
- package/src/Api/Internal/AdaptableInternalApi.d.ts +3 -4
- package/src/Api/Internal/AdaptableInternalApi.js +10 -8
- package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +2 -0
- package/src/Api/Internal/CalculatedColumnInternalApi.js +71 -0
- package/src/Api/Internal/ColumnFilterInternalApi.d.ts +1 -0
- package/src/Api/Internal/ColumnFilterInternalApi.js +11 -1
- package/src/Api/Internal/ColumnInternalApi.d.ts +4 -1
- package/src/Api/Internal/ColumnInternalApi.js +12 -0
- package/src/Api/Internal/CommentsInternalApi.d.ts +4 -0
- package/src/Api/Internal/CommentsInternalApi.js +18 -0
- package/src/Api/Internal/CustomSortInternalApi.d.ts +3 -2
- package/src/Api/Internal/CustomSortInternalApi.js +32 -1
- package/src/Api/Internal/DataSetInternalApi.js +1 -1
- package/src/Api/Internal/FormatColumnInternalApi.js +3 -2
- package/src/Api/Internal/FreeTextColumnInternalApi.d.ts +2 -0
- package/src/Api/Internal/FreeTextColumnInternalApi.js +60 -0
- package/src/Api/Internal/GridFilterInternalApi.js +1 -1
- package/src/Api/Internal/GridInternalApi.d.ts +21 -3
- package/src/Api/Internal/GridInternalApi.js +126 -7
- package/src/Api/Internal/NotesInternalApi.d.ts +4 -0
- package/src/Api/Internal/NotesInternalApi.js +18 -0
- package/src/Api/Internal/TeamSharingInternalApi.js +1 -1
- package/src/Api/InteropioPluginApi.d.ts +2 -2
- package/src/Api/LayoutApi.d.ts +11 -0
- package/src/Api/OptionsApi.d.ts +5 -1
- package/src/Api/ScopeApi.d.ts +10 -0
- package/src/EnvVars.d.ts +3 -0
- package/src/EnvVars.js +8 -0
- 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 +5 -1
- package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +8 -0
- package/src/PredefinedConfig/Common/RowSummary.d.ts +7 -0
- package/src/PredefinedConfig/Common/RowSummary.js +4 -0
- package/src/PredefinedConfig/LayoutState.d.ts +5 -0
- package/src/PredefinedConfig/NotesState.d.ts +10 -20
- package/src/PredefinedConfig/PredefinedConfig.d.ts +1 -1
- package/src/PredefinedConfig/SystemState.d.ts +7 -0
- package/src/Redux/ActionsReducers/LayoutRedux.d.ts +9 -0
- package/src/Redux/ActionsReducers/LayoutRedux.js +22 -1
- package/src/Redux/ActionsReducers/NotesRedux.d.ts +3 -4
- package/src/Redux/ActionsReducers/NotesRedux.js +10 -8
- package/src/Redux/ActionsReducers/SystemRedux.d.ts +5 -0
- package/src/Redux/ActionsReducers/SystemRedux.js +16 -3
- package/src/Redux/Store/AdaptableStore.d.ts +4 -6
- package/src/Redux/Store/AdaptableStore.js +33 -50
- package/src/Redux/Store/Interface/IAdaptableStore.d.ts +8 -2
- package/src/Strategy/AdaptableModuleBase.d.ts +2 -3
- package/src/Strategy/AdaptableModuleBase.js +4 -7
- package/src/Strategy/AlertModule.d.ts +1 -2
- package/src/Strategy/AlertModule.js +2 -55
- package/src/Strategy/CalculatedColumnModule.d.ts +2 -3
- package/src/Strategy/CalculatedColumnModule.js +5 -25
- package/src/Strategy/CellSummaryModule.d.ts +1 -0
- package/src/Strategy/CellSummaryModule.js +50 -21
- package/src/Strategy/ChartingModule.d.ts +0 -1
- package/src/Strategy/ChartingModule.js +2 -22
- package/src/Strategy/ColumnFilterModule.d.ts +1 -2
- package/src/Strategy/ColumnFilterModule.js +1 -64
- package/src/Strategy/CommentsModule.d.ts +1 -0
- package/src/Strategy/CommentsModule.js +5 -1
- package/src/Strategy/CustomSortModule.js +1 -1
- package/src/Strategy/DashboardModule.d.ts +1 -2
- package/src/Strategy/DashboardModule.js +1 -8
- package/src/Strategy/DataChangeHistoryModule.d.ts +1 -0
- package/src/Strategy/DataChangeHistoryModule.js +3 -1
- package/src/Strategy/DataSetModule.d.ts +1 -1
- package/src/Strategy/DataSetModule.js +1 -1
- package/src/Strategy/FlashingCellModule.d.ts +1 -2
- package/src/Strategy/FlashingCellModule.js +2 -15
- package/src/Strategy/FormatColumnModule.d.ts +0 -2
- package/src/Strategy/FormatColumnModule.js +0 -47
- package/src/Strategy/FreeTextColumnModule.d.ts +0 -1
- package/src/Strategy/FreeTextColumnModule.js +0 -30
- package/src/Strategy/GridFilterModule.d.ts +0 -1
- package/src/Strategy/GridFilterModule.js +0 -37
- package/src/Strategy/Interface/IModule.d.ts +0 -1
- package/src/Strategy/LayoutModule.d.ts +8 -3
- package/src/Strategy/LayoutModule.js +108 -53
- package/src/Strategy/NamedQueryModule.d.ts +0 -1
- package/src/Strategy/NamedQueryModule.js +0 -19
- package/src/Strategy/NotesModule.js +3 -4
- package/src/Strategy/PlusMinusModule.d.ts +1 -1
- package/src/Strategy/PlusMinusModule.js +1 -1
- package/src/Strategy/ScheduleModule.d.ts +1 -1
- package/src/Strategy/ScheduleModule.js +1 -1
- package/src/Strategy/ShortcutModule.d.ts +1 -1
- package/src/Strategy/ShortcutModule.js +1 -1
- package/src/Strategy/StyledColumnModule.d.ts +0 -1
- package/src/Strategy/StyledColumnModule.js +0 -21
- 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/Utilities/Constants/DocumentationLinkConstants.js +1 -1
- package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
- package/src/Utilities/Constants/GeneralConstants.js +3 -2
- package/src/Utilities/Defaults/DefaultSettingsPanel.js +5 -4
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +2 -1
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +294 -0
- package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +1 -1
- package/src/Utilities/Extensions/ArrayExtensions.d.ts +2 -0
- package/src/Utilities/Extensions/ArrayExtensions.js +6 -1
- package/src/Utilities/Helpers/AdaptableHelper.d.ts +3 -4
- package/src/Utilities/Helpers/AdaptableHelper.js +20 -60
- package/src/Utilities/Helpers/Helper.d.ts +2 -0
- package/src/Utilities/Helpers/Helper.js +6 -1
- package/src/Utilities/ObjectFactory.js +6 -6
- package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +3 -2
- package/src/Utilities/Services/AggregatedScalarLiveValue.js +14 -9
- package/src/Utilities/Services/CellPopupService.js +0 -1
- package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +1 -1
- package/src/Utilities/Services/LicenseService/index.d.ts +3 -0
- package/src/Utilities/Services/LicenseService/index.js +1 -186
- package/src/Utilities/Services/MetamodelService.d.ts +1 -1
- package/src/Utilities/Services/MetamodelService.js +6 -3
- package/src/Utilities/Services/QueryLanguageService.d.ts +1 -1
- package/src/Utilities/Services/QueryLanguageService.js +2 -1
- package/src/Utilities/Services/RowEditService.d.ts +3 -2
- package/src/Utilities/Services/RowEditService.js +3 -1
- package/src/Utilities/Services/SummaryService.d.ts +19 -0
- package/src/Utilities/Services/SummaryService.js +33 -0
- package/src/Utilities/license/decode.js +1 -70
- package/src/Utilities/license/hashing.js +1 -47
- package/src/View/AdaptableView.js +1 -3
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +2 -2
- 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 +2 -2
- package/src/View/CalculatedColumn/utils.d.ts +1 -1
- package/src/View/CellSummary/CellSummaryPopup.js +1 -1
- package/src/View/Comments/CommentsPopup.js +12 -8
- package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
- 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/AdaptableToaster.js +1 -1
- package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +1 -1
- package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +1 -0
- package/src/View/Components/Popups/WindowPopups/windowFactory.js +4 -1
- package/src/View/Components/Selectors/PermittedValuesSelector.js +1 -1
- package/src/View/CustomSort/CustomSortSummary.js +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +8 -8
- package/src/View/GridFilter/GridFilterViewPanel.js +7 -3
- package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +2 -3
- package/src/View/Layout/TransposedPopup.d.ts +3 -0
- package/src/View/Layout/TransposedPopup.js +199 -0
- package/src/View/Layout/Wizard/LayoutWizard.js +1 -1
- package/src/View/License/LicenseWatermark.js +1 -66
- package/src/View/Notes/NotesPopup.js +8 -10
- package/src/View/SpecialColumnSettingsWizardStep.js +4 -4
- package/src/View/Theme/ThemeSelector.js +2 -2
- package/src/agGrid/ActionColumnRenderer.js +7 -6
- package/src/agGrid/Adaptable.d.ts +3 -455
- package/src/agGrid/Adaptable.js +7 -5291
- package/src/agGrid/AdaptableAgGrid.d.ts +351 -0
- package/src/agGrid/AdaptableAgGrid.js +3941 -0
- package/src/agGrid/AdaptableLogger.js +78 -13
- package/src/agGrid/AgGridAdapter.d.ts +62 -0
- package/src/agGrid/AgGridAdapter.js +582 -0
- package/src/agGrid/AgGridColumnAdapter.d.ts +56 -0
- package/src/agGrid/AgGridColumnAdapter.js +829 -0
- package/src/agGrid/AgGridMenuAdapter.d.ts +28 -0
- package/src/agGrid/AgGridMenuAdapter.js +276 -0
- package/src/agGrid/AgGridOptionsService.d.ts +12 -0
- package/src/agGrid/AgGridOptionsService.js +58 -0
- package/src/agGrid/BadgeRenderer.js +1 -1
- 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/attachAddaptableColumnTypes.d.ts +12 -12
- package/src/agGrid/defaultAdaptableOptions.d.ts +3 -0
- package/src/{Utilities/Defaults/DefaultAdaptableOptions.js → agGrid/defaultAdaptableOptions.js} +73 -10
- package/src/agGrid/editors/AdaptableDateEditor/index.js +2 -2
- package/src/agGrid/editors/AdaptableNumberEditor/index.js +2 -2
- package/src/components/ColorPicker/ColorPicker.d.ts +1 -1
- package/src/components/Datepicker/index.d.ts +1 -1
- package/src/components/InfiniteTable/index.js +2 -2
- package/src/components/Input/index.d.ts +1 -1
- 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 +6 -4
- package/src/components/Select/Select.d.ts +2 -0
- package/src/components/Select/Select.js +2 -2
- package/src/components/icons/index.js +2 -0
- package/src/components/icons/rows.d.ts +3 -0
- package/src/components/icons/rows.js +7 -0
- package/src/env.js +2 -2
- package/src/metamodel/adaptable.metamodel.d.ts +74 -11
- package/src/metamodel/adaptable.metamodel.js +1 -9316
- package/src/migration/AdaptableUpgradeHelper.d.ts +38 -0
- package/src/migration/AdaptableUpgradeHelper.js +52 -0
- package/src/migration/VersionUpgrade.d.ts +8 -0
- package/src/migration/VersionUpgrade.js +15 -0
- package/src/migration/VersionUpgrade17.d.ts +18 -0
- package/src/migration/VersionUpgrade17.js +347 -0
- package/src/migration/VersionUpgrade18.d.ts +5 -0
- package/src/migration/VersionUpgrade18.js +10 -0
- package/src/parser/src/types.d.ts +5 -0
- package/src/types.d.ts +7 -3
- package/tsconfig.cjs.tsbuildinfo +1 -1
- package/src/Utilities/Defaults/DefaultAdaptableOptions.d.ts +0 -2
- package/src/Utilities/Services/Interface/IRowEditService.d.ts +0 -3
- package/src/Utilities/Services/Interface/IRowEditService.js +0 -2
- package/src/View/Components/ScopeComponent.d.ts +0 -24
- package/src/View/Components/ScopeComponent.js +0 -138
- package/src/View/Export/Wizard/ReportScopeWizard.d.ts +0 -17
- package/src/View/Export/Wizard/ReportScopeWizard.js +0 -52
- package/src/agGrid/agGridHelper.d.ts +0 -57
- package/src/agGrid/agGridHelper.js +0 -691
- package/src/agGrid/agGridMenuHelper.d.ts +0 -46
- package/src/agGrid/agGridMenuHelper.js +0 -673
- /package/src/AdaptableOptions/{CommentsOptions.js → CommentOptions.js} +0 -0
- /package/src/AdaptableOptions/{NotesOptions.js → NoteOptions.js} +0 -0
|
@@ -11,18 +11,18 @@ const logOnce = (message, loggingFn) => {
|
|
|
11
11
|
doOnceFlags[message] = true;
|
|
12
12
|
};
|
|
13
13
|
class AggregatedScalarLiveValue {
|
|
14
|
-
constructor(source, requestingModule, adaptableApi) {
|
|
14
|
+
constructor(source, requestingModule, adaptableApi, getRowNodes) {
|
|
15
15
|
this.source = source;
|
|
16
16
|
this.requestingModule = requestingModule;
|
|
17
17
|
this.adaptableApi = adaptableApi;
|
|
18
|
+
this.getRowNodes = getRowNodes;
|
|
18
19
|
if (source.aggregatedScalarExpression) {
|
|
19
20
|
this.aggregatedScalarExpression = source.aggregatedScalarExpression;
|
|
20
21
|
}
|
|
21
22
|
this.expressionEvaluation = source.aggregatedScalarExpression
|
|
22
23
|
? this.adaptableApi.internalApi
|
|
23
24
|
.getQueryLanguageService()
|
|
24
|
-
.evaluateAggregatedScalarExpression(source.aggregatedScalarExpression, requestingModule)
|
|
25
|
-
.value
|
|
25
|
+
.evaluateAggregatedScalarExpression(source.aggregatedScalarExpression, requestingModule, getRowNodes).value
|
|
26
26
|
: source.aggregatedScalarExpressionEvaluation;
|
|
27
27
|
// currently we support only one reducer
|
|
28
28
|
this.aggregationReducerName = Object.keys(this.expressionEvaluation.aggregationParams.reducers)[0];
|
|
@@ -32,7 +32,7 @@ class AggregatedScalarLiveValue {
|
|
|
32
32
|
if (this.aggregatedScalarExpression) {
|
|
33
33
|
this.expressionEvaluation = this.adaptableApi.internalApi
|
|
34
34
|
.getQueryLanguageService()
|
|
35
|
-
.evaluateAggregatedScalarExpression(this.aggregatedScalarExpression, this.requestingModule).value;
|
|
35
|
+
.evaluateAggregatedScalarExpression(this.aggregatedScalarExpression, this.requestingModule, this.getRowNodes).value;
|
|
36
36
|
}
|
|
37
37
|
// currently we support only one reducer
|
|
38
38
|
this.aggregationReducerName = Object.keys(this.expressionEvaluation.aggregationParams.reducers)[0];
|
|
@@ -41,7 +41,9 @@ class AggregatedScalarLiveValue {
|
|
|
41
41
|
getAggregatedValueForRow(rowNode) {
|
|
42
42
|
const aggregationValue = this.getAggregationValue(rowNode);
|
|
43
43
|
if (aggregationValue == undefined) {
|
|
44
|
-
logOnce(`${this.aggregatedScalarExpression} :: aggregation value is NOT available!`,
|
|
44
|
+
logOnce(`${this.aggregatedScalarExpression} :: aggregation value is NOT available!`, (message) => {
|
|
45
|
+
this.adaptableApi.internalApi.getAdaptableInstance().logger.warn(message);
|
|
46
|
+
});
|
|
45
47
|
return;
|
|
46
48
|
}
|
|
47
49
|
if (this.expressionEvaluation.rowValueGetter) {
|
|
@@ -71,9 +73,11 @@ class AggregatedScalarLiveValue {
|
|
|
71
73
|
}
|
|
72
74
|
computeAggregatedValue(expressionEvaluation) {
|
|
73
75
|
var _a;
|
|
74
|
-
const gridRowNodes =
|
|
75
|
-
|
|
76
|
-
|
|
76
|
+
const gridRowNodes = expressionEvaluation.getRowNodes
|
|
77
|
+
? expressionEvaluation.getRowNodes()
|
|
78
|
+
: this.adaptableApi.gridApi.getAllRowNodes({
|
|
79
|
+
filterFn: expressionEvaluation.rowFilterFn,
|
|
80
|
+
});
|
|
77
81
|
// we iterate over the RowNode list (we need this to handle complex column values (nested values, valueGetters etc)
|
|
78
82
|
// so we will map the fieldNames to RowNode.data
|
|
79
83
|
const mapReducerValueGetter = (fieldName) => {
|
|
@@ -109,7 +113,8 @@ class AggregatedScalarLiveValue {
|
|
|
109
113
|
return 0;
|
|
110
114
|
});
|
|
111
115
|
}
|
|
112
|
-
|
|
116
|
+
const result = (0, scalarAggregationHelper_1.aggregate)(expressionEvaluation.aggregationParams, aggregatedRowNodes);
|
|
117
|
+
return result;
|
|
113
118
|
}
|
|
114
119
|
}
|
|
115
120
|
exports.AggregatedScalarLiveValue = AggregatedScalarLiveValue;
|
|
@@ -10,7 +10,6 @@ class CellPopupService {
|
|
|
10
10
|
constructor(api) {
|
|
11
11
|
this.api = api;
|
|
12
12
|
this.adaptable = api.internalApi.getAdaptableInstance();
|
|
13
|
-
this.adaptable = api.internalApi.getAdaptableInstance();
|
|
14
13
|
this.adaptable.api.eventApi.on('AdaptableReady', () => this.handleAdaptableReady());
|
|
15
14
|
}
|
|
16
15
|
getAdaptableState() {
|
|
@@ -15,7 +15,7 @@ export interface IQueryLanguageService extends IAdaptableService {
|
|
|
15
15
|
evaluateScalarExpression(expression: string, module: AdaptableModule, rowNode: IRowNode): any;
|
|
16
16
|
evaluateObservableExpression(expression: string, module: AdaptableModule): Observable<CellDataChangedInfo | GridDataChangedInfo>;
|
|
17
17
|
evaluateAggregatedBooleanExpression(expression: string, module: AdaptableModule): BooleanAggregationParameter;
|
|
18
|
-
evaluateAggregatedScalarExpression(expression: string, module: AdaptableModule): ScalarAggregationParameter;
|
|
18
|
+
evaluateAggregatedScalarExpression(expression: string, module: AdaptableModule, getRowNodes?: () => IRowNode[]): ScalarAggregationParameter;
|
|
19
19
|
validateBoolean(expression: string, module: AdaptableModule, config?: {
|
|
20
20
|
force?: boolean;
|
|
21
21
|
}): {
|
|
@@ -13,9 +13,12 @@ export declare enum LicenseValidityType {
|
|
|
13
13
|
}
|
|
14
14
|
export declare class LicenseService implements ILicenseService {
|
|
15
15
|
private adaptable;
|
|
16
|
+
private licenseKey;
|
|
17
|
+
private packageDetails;
|
|
16
18
|
constructor(adaptable: IAdaptable, licenseKey: string | undefined, packageDetails: {
|
|
17
19
|
publishedAt: number | Date;
|
|
18
20
|
});
|
|
21
|
+
init(): void;
|
|
19
22
|
getValidityType(details: LicenseDetails | Error | null, packageDetails: {
|
|
20
23
|
publishedAt: number | Date;
|
|
21
24
|
}): LicenseValidityType;
|
|
@@ -1,186 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LicenseService = exports.LicenseValidityType = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const SystemRedux_1 = require("../../../Redux/ActionsReducers/SystemRedux");
|
|
6
|
-
const PopupRedux_1 = require("../../../Redux/ActionsReducers/PopupRedux");
|
|
7
|
-
const ObjectFactory_1 = tslib_1.__importDefault(require("../../ObjectFactory"));
|
|
8
|
-
const clamp_1 = tslib_1.__importDefault(require("lodash/clamp"));
|
|
9
|
-
const DocumentationLinkConstants_1 = require("../../Constants/DocumentationLinkConstants");
|
|
10
|
-
const decode_1 = require("../../license/decode");
|
|
11
|
-
const shouldLogThankYouMessage_1 = require("./shouldLogThankYouMessage");
|
|
12
|
-
const EMAIL = 'sales@adaptabletools.com';
|
|
13
|
-
const COMMERCIAL_LICENSE_SHOW_INFO_DAYS_BEFORE_EXPIRE = 10;
|
|
14
|
-
const DAY_IN_MS = 1000 * 60 * 60 * 24;
|
|
15
|
-
var LicenseValidityType;
|
|
16
|
-
(function (LicenseValidityType) {
|
|
17
|
-
LicenseValidityType["INVALID_LICENSE"] = "INVALID_LICENSE";
|
|
18
|
-
LicenseValidityType["NO_LICENSE"] = "NO_LICENSE";
|
|
19
|
-
LicenseValidityType["NON_PRODUCTION_VALID"] = "NON_PRODUCTION_VALID";
|
|
20
|
-
LicenseValidityType["NON_PRODUCTION_EXPIRED_IN_SCOPE"] = "NON_PRODUCTION_EXPIRED_IN_SCOPE";
|
|
21
|
-
LicenseValidityType["NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE"] = "NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE";
|
|
22
|
-
LicenseValidityType["COMMERCIAL_VALID"] = "COMMERCIAL_VALID";
|
|
23
|
-
LicenseValidityType["COMMERCIAL_EXPIRED_IN_SCOPE"] = "COMMERCIAL_EXPIRED_IN_SCOPE";
|
|
24
|
-
LicenseValidityType["COMMERCIAL_EXPIRED_OUT_OF_SCOPE"] = "COMMERCIAL_EXPIRED_OUT_OF_SCOPE";
|
|
25
|
-
})(LicenseValidityType = exports.LicenseValidityType || (exports.LicenseValidityType = {}));
|
|
26
|
-
const SANDPACK_REGEX = /(https):\/\/\d+\-\d+\-\d+\-(sandpack\.codesandbox\.io)/g;
|
|
27
|
-
const SANDBOX_REGEX = /(https):\/\/\S+(\.csb\.app)/g;
|
|
28
|
-
const DEMO_REGEX = /(https):\/\/\S+(\.adaptabletools\.com)/g;
|
|
29
|
-
const origin = typeof window !== 'undefined' ? window.location.origin : '';
|
|
30
|
-
const isInsideSandpack = () => {
|
|
31
|
-
const [_fullUrl, protocol, sandpackUrl] = Array.from(SANDPACK_REGEX.exec(origin) || []);
|
|
32
|
-
return protocol === 'https' && sandpackUrl === 'sandpack.codesandbox.io';
|
|
33
|
-
};
|
|
34
|
-
const isInsideSandbox = () => {
|
|
35
|
-
const [_fullUrl, protocol, sandboxUrl] = Array.from(SANDBOX_REGEX.exec(origin) || []);
|
|
36
|
-
return protocol === 'https' && sandboxUrl === '.csb.app';
|
|
37
|
-
};
|
|
38
|
-
const isDemoApp = () => {
|
|
39
|
-
const [_fullUrl, protocol, demoAppUrl] = Array.from(DEMO_REGEX.exec(origin) || []);
|
|
40
|
-
return protocol === 'https' && demoAppUrl === '.adaptabletools.com';
|
|
41
|
-
};
|
|
42
|
-
class LicenseService {
|
|
43
|
-
constructor(adaptable, licenseKey, packageDetails) {
|
|
44
|
-
this.adaptable = adaptable;
|
|
45
|
-
this.adaptable = adaptable;
|
|
46
|
-
let details = null;
|
|
47
|
-
if (licenseKey) {
|
|
48
|
-
try {
|
|
49
|
-
details = (0, decode_1.decode)(licenseKey);
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
details = error;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
if (!isInsideSandpack() && !isInsideSandbox() && !isDemoApp()) {
|
|
56
|
-
this.handleLicenseValidation(details, this.getValidityType(details, packageDetails));
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
getValidityType(details, packageDetails) {
|
|
60
|
-
if (!details) {
|
|
61
|
-
return LicenseValidityType.NO_LICENSE;
|
|
62
|
-
}
|
|
63
|
-
if (details instanceof Error) {
|
|
64
|
-
return LicenseValidityType.INVALID_LICENSE;
|
|
65
|
-
}
|
|
66
|
-
const currentVersionReleaseDate = new Date(packageDetails.publishedAt);
|
|
67
|
-
const licenseEndDate = new Date(details.end);
|
|
68
|
-
const currentDate = new Date();
|
|
69
|
-
const isExpired = licenseEndDate < currentDate;
|
|
70
|
-
const isTrial = details.trial;
|
|
71
|
-
const isScope = licenseEndDate > currentVersionReleaseDate;
|
|
72
|
-
let validityType = null;
|
|
73
|
-
if (isExpired) {
|
|
74
|
-
if (isScope) {
|
|
75
|
-
if (isTrial) {
|
|
76
|
-
validityType = LicenseValidityType.NON_PRODUCTION_EXPIRED_IN_SCOPE;
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
validityType = LicenseValidityType.COMMERCIAL_EXPIRED_IN_SCOPE;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
if (isTrial) {
|
|
84
|
-
validityType = LicenseValidityType.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE;
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
validityType = LicenseValidityType.COMMERCIAL_EXPIRED_OUT_OF_SCOPE;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
if (isTrial) {
|
|
93
|
-
validityType = LicenseValidityType.NON_PRODUCTION_VALID;
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
validityType = LicenseValidityType.COMMERCIAL_VALID;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
return validityType;
|
|
100
|
-
}
|
|
101
|
-
handleLicenseValidation(details, validityType) {
|
|
102
|
-
var _a;
|
|
103
|
-
const nowAtMidnight = new Date();
|
|
104
|
-
nowAtMidnight.setHours(0, 0, 0, 0);
|
|
105
|
-
let daysLeft = 0;
|
|
106
|
-
if (!(details instanceof Error) && (details === null || details === void 0 ? void 0 : details.end)) {
|
|
107
|
-
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);
|
|
108
|
-
daysLeft = (0, clamp_1.default)(daysLeft, 0, Infinity);
|
|
109
|
-
}
|
|
110
|
-
let APP_NAME = '';
|
|
111
|
-
let forApp = '';
|
|
112
|
-
if (details &&
|
|
113
|
-
!(details instanceof Error) &&
|
|
114
|
-
details.appName &&
|
|
115
|
-
details.appName != decode_1.GENERIC_APP_NAME) {
|
|
116
|
-
APP_NAME = details.appName;
|
|
117
|
-
forApp = ` for application [APP_NAME]`;
|
|
118
|
-
}
|
|
119
|
-
const annotateMessage = (message, link = DocumentationLinkConstants_1.LicenseDocsLink, email = EMAIL, days = daysLeft, appName = APP_NAME) => {
|
|
120
|
-
return message
|
|
121
|
-
.replace('[LINK]', link)
|
|
122
|
-
.replace('[EMAIL]', email)
|
|
123
|
-
.replace('[APP_NAME]', appName)
|
|
124
|
-
.replace('[DAYS]', `${days}`);
|
|
125
|
-
};
|
|
126
|
-
switch (validityType) {
|
|
127
|
-
case 'NO_LICENSE':
|
|
128
|
-
case 'NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE':
|
|
129
|
-
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');
|
|
130
|
-
this.showNotification('No AdapTable License found.');
|
|
131
|
-
this.showWatermark('This instance of AdapTable does not have a license, and some functionality has therefore been removed.');
|
|
132
|
-
this.disableStatePersistence();
|
|
133
|
-
break;
|
|
134
|
-
case 'INVALID_LICENSE':
|
|
135
|
-
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');
|
|
136
|
-
this.showNotification('Corrupted AdapTable License found.');
|
|
137
|
-
this.showWatermark(`This instance of AdapTable has a corrupted License, and some functionality has therefore been removed.`);
|
|
138
|
-
this.disableStatePersistence();
|
|
139
|
-
break;
|
|
140
|
-
case 'NON_PRODUCTION_VALID':
|
|
141
|
-
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');
|
|
142
|
-
break;
|
|
143
|
-
case 'NON_PRODUCTION_EXPIRED_IN_SCOPE':
|
|
144
|
-
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');
|
|
145
|
-
this.showWatermark('AdapTable License has expired');
|
|
146
|
-
break;
|
|
147
|
-
case 'COMMERCIAL_VALID':
|
|
148
|
-
if (daysLeft <= COMMERCIAL_LICENSE_SHOW_INFO_DAYS_BEFORE_EXPIRE) {
|
|
149
|
-
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');
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
try {
|
|
153
|
-
if ((0, shouldLogThankYouMessage_1.shouldLogThankYouMessage)()) {
|
|
154
|
-
this.adaptable.logger.consoleLogByMessageType(annotateMessage(`Thank you for using a valid AdapTable license${forApp}. Your license will expire in [DAYS] days.`), 'Info');
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
catch (ex) { }
|
|
158
|
-
}
|
|
159
|
-
break;
|
|
160
|
-
case 'COMMERCIAL_EXPIRED_IN_SCOPE':
|
|
161
|
-
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');
|
|
162
|
-
break;
|
|
163
|
-
case 'COMMERCIAL_EXPIRED_OUT_OF_SCOPE':
|
|
164
|
-
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');
|
|
165
|
-
this.showNotification('Adaptable License has expired');
|
|
166
|
-
this.showWatermark('Adaptable License has expired');
|
|
167
|
-
break;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
showNotification(text) {
|
|
171
|
-
this.adaptable.api.internalApi.dispatchReduxAction((0, PopupRedux_1.PopupShowAlert)({
|
|
172
|
-
alertType: 'generic',
|
|
173
|
-
header: 'License Error',
|
|
174
|
-
message: text,
|
|
175
|
-
alertDefinition: ObjectFactory_1.default.CreateInternalAlertDefinitionForMessages('Error'),
|
|
176
|
-
}));
|
|
177
|
-
}
|
|
178
|
-
showWatermark(text) {
|
|
179
|
-
this.adaptable.api.internalApi.dispatchReduxAction((0, SystemRedux_1.SystemLicenseShowWatermark)(text));
|
|
180
|
-
}
|
|
181
|
-
disableStatePersistence() {
|
|
182
|
-
this.adaptable.api.internalApi.dispatchReduxAction((0, SystemRedux_1.SystemLicenseDisablePersistence)());
|
|
183
|
-
}
|
|
184
|
-
destroy() { }
|
|
185
|
-
}
|
|
186
|
-
exports.LicenseService = LicenseService;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LicenseService=exports.LicenseValidityType=void 0;const e=require("tslib"),a=require("../../../Redux/ActionsReducers/SystemRedux"),t=require("../../../Redux/ActionsReducers/PopupRedux"),s=e.__importDefault(require("../../ObjectFactory")),i=e.__importDefault(require("lodash/clamp")),o=require("../../Constants/DocumentationLinkConstants"),n=require("../../license/decode"),r=require("./shouldLogThankYouMessage"),l="sales@adaptabletools.com",c=10,d=864e5;var p;!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"}(p=exports.LicenseValidityType||(exports.LicenseValidityType={}));const h=/(https):\/\/\d+\-\d+\-\d+\-(sandpack\.codesandbox\.io)/g,E=/(https):\/\/\S+(\.csb\.app)/g,_=/(https):\/\/\S+(\.adaptabletools\.com)/g,I=()=>"undefined"!=typeof window?window.location.origin:"",O=()=>{const[e,a,t]=Array.from(h.exec(I())||[]);return"https"===a&&"sandpack.codesandbox.io"===t},u=()=>{const[e,a,t]=Array.from(E.exec(I())||[]);return"https"===a&&".csb.app"===t},A=()=>{const[e,a,t]=Array.from(_.exec(I())||[]);return"https"===a&&".adaptabletools.com"===t};class N{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=(0,n.decode)(this.licenseKey)}catch(a){e=a}O()||u()||A()||this.handleLicenseValidation(e,this.getValidityType(e,this.packageDetails))}getValidityType(e,a){if(!e)return p.NO_LICENSE;if(e instanceof Error)return p.INVALID_LICENSE;const t=new Date(a.publishedAt),s=new Date(e.end),i=s<new Date,o=e.trial;let n=null;return n=i?s>t?o?p.NON_PRODUCTION_EXPIRED_IN_SCOPE:p.COMMERCIAL_EXPIRED_IN_SCOPE:o?p.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE:p.COMMERCIAL_EXPIRED_OUT_OF_SCOPE:o?p.NON_PRODUCTION_VALID:p.COMMERCIAL_VALID,n}handleLicenseValidation(e,a){var t;const s=new Date;s.setHours(0,0,0,0);let p=0;e instanceof Error||!(null==e?void 0:e.end)||(p=Math.floor(((null===(t=null==e?void 0:e.end)||void 0===t?void 0:t.getTime())-s.getTime())/d),p=(0,i.default)(p,0,1/0));let h="",E="";!e||e instanceof Error||!e.appName||e.appName==n.GENERIC_APP_NAME||(h=e.appName,E=" for application [APP_NAME]");const _=(e,a=o.LicenseDocsLink,t=l,s=p,i=h)=>e.replace("[LINK]",a).replace("[EMAIL]",t).replace("[APP_NAME]",i).replace("[DAYS]",`${s}`);switch(a){case"NO_LICENSE":case"NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE":this.adaptable.logger.consoleLogByMessageType(_("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(_("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(_("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(_("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(p<=c)this.adaptable.logger.consoleLogByMessageType(_(`This AdapTable license${E} expires in [DAYS] days. Please contact [EMAIL] to renew (giving you access to Support and Updates)`),"Info");else try{(0,r.shouldLogThankYouMessage)()&&this.adaptable.logger.consoleLogByMessageType(_(`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(_(`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(_(`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((0,t.PopupShowAlert)({alertType:"generic",header:"License Error",message:e,alertDefinition:s.default.CreateInternalAlertDefinitionForMessages("Error")}))}showWatermark(e){this.adaptable.api.internalApi.dispatchReduxAction((0,a.SystemLicenseShowWatermark)(e))}disableStatePersistence(){this.adaptable.api.internalApi.dispatchReduxAction((0,a.SystemLicenseDisablePersistence)())}destroy(){}}exports.LicenseService=N;
|
|
@@ -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;
|
|
@@ -3,17 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MetamodelService = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const adaptable_metamodel_1 = require("../../metamodel/adaptable.metamodel");
|
|
6
|
-
const DefaultAdaptableOptions_1 = require("../Defaults/DefaultAdaptableOptions");
|
|
7
6
|
const DocumentationLinkConstants_1 = require("../Constants/DocumentationLinkConstants");
|
|
8
7
|
const StringExtensions_1 = tslib_1.__importDefault(require("../Extensions/StringExtensions"));
|
|
9
8
|
const AdaptableLogger_1 = require("../../agGrid/AdaptableLogger");
|
|
9
|
+
const defaultAdaptableOptions_1 = require("../../agGrid/defaultAdaptableOptions");
|
|
10
10
|
const supportedMetamodelTypes = ['s', 'n', 'b', 'a', 'f', 'R'];
|
|
11
11
|
class MetamodelService {
|
|
12
|
-
constructor(getAdaptableOptions) {
|
|
12
|
+
constructor(getAdaptableOptions, validateOptions) {
|
|
13
13
|
this.gridInfoOptions = new Map();
|
|
14
14
|
this.getAdaptableOptions = () => null;
|
|
15
15
|
this.getAdaptableOptions = getAdaptableOptions;
|
|
16
16
|
this.gridInfoOptions = this.buildGridInfoOptions();
|
|
17
|
+
if (validateOptions) {
|
|
18
|
+
this.validateAdaptableOptionsValues();
|
|
19
|
+
}
|
|
17
20
|
}
|
|
18
21
|
getGridInfoOptions() {
|
|
19
22
|
return this.gridInfoOptions;
|
|
@@ -144,7 +147,7 @@ class MetamodelService {
|
|
|
144
147
|
});
|
|
145
148
|
}
|
|
146
149
|
getAdaptableOptionsDefaultValues() {
|
|
147
|
-
return
|
|
150
|
+
return (0, defaultAdaptableOptions_1.getDefaultAdaptableOptions)();
|
|
148
151
|
}
|
|
149
152
|
getAdaptableMetamodel() {
|
|
150
153
|
return adaptable_metamodel_1.ADAPTABLE_METAMODEL;
|
|
@@ -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?: {
|
|
@@ -36,7 +36,7 @@ class QueryLanguageService {
|
|
|
36
36
|
// currently scalar and boolean expressions are evaluated the same
|
|
37
37
|
return this.evaluateBooleanExpression(expression, module, rowNode);
|
|
38
38
|
}
|
|
39
|
-
evaluateAggregatedScalarExpression(expression, module) {
|
|
39
|
+
evaluateAggregatedScalarExpression(expression, module, getRowNodes) {
|
|
40
40
|
const aggregatedScalarFunctions = this.getModuleExpressionFunctionsMap(module).aggregatedScalarFunctions;
|
|
41
41
|
return parser.evaluate(expression, {
|
|
42
42
|
node: null,
|
|
@@ -45,6 +45,7 @@ class QueryLanguageService {
|
|
|
45
45
|
adaptableId: this.adaptableApi.optionsApi.getAdaptableId(),
|
|
46
46
|
functions: aggregatedScalarFunctions,
|
|
47
47
|
evaluateCustomQueryVariable: this.evaluateCustomQueryVariable,
|
|
48
|
+
getRowNodes,
|
|
48
49
|
});
|
|
49
50
|
}
|
|
50
51
|
evaluateObservableExpression(reactiveExpression, module) {
|
|
@@ -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
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RowEditService = void 0;
|
|
4
|
-
// @ts-ignore
|
|
5
4
|
class RowEditService {
|
|
6
5
|
constructor(adaptableApi) {
|
|
7
6
|
this.adaptableApi = adaptableApi;
|
|
@@ -40,5 +39,8 @@ class RowEditService {
|
|
|
40
39
|
adaptableApi.gridApi.addGridData([newRowData], config);
|
|
41
40
|
}
|
|
42
41
|
}
|
|
42
|
+
destroy() {
|
|
43
|
+
// nothing yet
|
|
44
|
+
}
|
|
43
45
|
}
|
|
44
46
|
exports.RowEditService = RowEditService;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IRowNode } from '@ag-grid-community/core';
|
|
2
|
+
import { AggregatedScalarLiveValue } from './AggregatedScalarLiveValue';
|
|
3
|
+
import { AdaptableApi, AdaptableModule } from '../../types';
|
|
4
|
+
export declare const summarySupportedExpressions: readonly ["SUM", "AVG", "MIN", "MAX", "COUNT", "MEDIAN", "MODE", "DISTINCT", "ONLY", "STD_DEVIATION"];
|
|
5
|
+
export type SummarySupportedExpression = (typeof summarySupportedExpressions)[number];
|
|
6
|
+
export type SumaryConfig = {
|
|
7
|
+
expression: {
|
|
8
|
+
function: SummarySupportedExpression;
|
|
9
|
+
};
|
|
10
|
+
columnId: string;
|
|
11
|
+
getRowNodes?: () => IRowNode[];
|
|
12
|
+
};
|
|
13
|
+
export declare class SummaryService {
|
|
14
|
+
private adaptableApi;
|
|
15
|
+
constructor(adaptableApi: AdaptableApi);
|
|
16
|
+
evaluateExpressionValue(config: SumaryConfig, moduleId: AdaptableModule): any;
|
|
17
|
+
evaluateScalarLiveValue(config: SumaryConfig, moduleId: AdaptableModule): AggregatedScalarLiveValue;
|
|
18
|
+
destroy(): void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SummaryService = exports.summarySupportedExpressions = void 0;
|
|
4
|
+
const AggregatedScalarLiveValue_1 = require("./AggregatedScalarLiveValue");
|
|
5
|
+
exports.summarySupportedExpressions = [
|
|
6
|
+
'SUM',
|
|
7
|
+
'AVG',
|
|
8
|
+
'MIN',
|
|
9
|
+
'MAX',
|
|
10
|
+
'COUNT',
|
|
11
|
+
'MEDIAN',
|
|
12
|
+
'MODE',
|
|
13
|
+
'DISTINCT',
|
|
14
|
+
'ONLY',
|
|
15
|
+
'STD_DEVIATION',
|
|
16
|
+
];
|
|
17
|
+
class SummaryService {
|
|
18
|
+
constructor(adaptableApi) {
|
|
19
|
+
this.adaptableApi = adaptableApi;
|
|
20
|
+
}
|
|
21
|
+
evaluateExpressionValue(config, moduleId) {
|
|
22
|
+
return this.evaluateScalarLiveValue(config, moduleId).getGlobalAggregatedValue();
|
|
23
|
+
}
|
|
24
|
+
evaluateScalarLiveValue(config, moduleId) {
|
|
25
|
+
return new AggregatedScalarLiveValue_1.AggregatedScalarLiveValue({
|
|
26
|
+
aggregatedScalarExpression: `${config.expression.function}([${config.columnId}])`,
|
|
27
|
+
}, moduleId, this.adaptableApi, config.getRowNodes);
|
|
28
|
+
}
|
|
29
|
+
destroy() {
|
|
30
|
+
this.adaptableApi = null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.SummaryService = SummaryService;
|
|
@@ -1,70 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.decode = exports.fieldsToLicenseDetails = exports.GENERIC_APP_NAME = void 0;
|
|
4
|
-
const hashing_1 = require("./hashing");
|
|
5
|
-
const getGenericError = () => new Error('Invalid License');
|
|
6
|
-
exports.GENERIC_APP_NAME = 'GenericAdaptableApp';
|
|
7
|
-
const fieldsToLicenseDetails = (fields) => {
|
|
8
|
-
var _a;
|
|
9
|
-
const fieldsMap = fields.reduce((acc, field) => {
|
|
10
|
-
acc.set(field.name, field.value);
|
|
11
|
-
return acc;
|
|
12
|
-
}, new Map());
|
|
13
|
-
const details = {
|
|
14
|
-
start: new Date(fieldsMap.get('StartDate')),
|
|
15
|
-
end: new Date(fieldsMap.get('EndDate')),
|
|
16
|
-
owner: fieldsMap.get('Owner'),
|
|
17
|
-
appName: fieldsMap.get('AppName') || exports.GENERIC_APP_NAME,
|
|
18
|
-
timestamp: fieldsMap.get('TS') ? Number(fieldsMap.get('TS')) : 0,
|
|
19
|
-
trial: fieldsMap.get('Trial') === 'true' ? true : false,
|
|
20
|
-
ref: (_a = fieldsMap.get('Ref')) !== null && _a !== void 0 ? _a : '',
|
|
21
|
-
};
|
|
22
|
-
if (!details.start ||
|
|
23
|
-
!details.end ||
|
|
24
|
-
!details.owner ||
|
|
25
|
-
typeof details.trial !== 'boolean' ||
|
|
26
|
-
!details.ref) {
|
|
27
|
-
throw getGenericError();
|
|
28
|
-
}
|
|
29
|
-
return details;
|
|
30
|
-
};
|
|
31
|
-
exports.fieldsToLicenseDetails = fieldsToLicenseDetails;
|
|
32
|
-
const decode = (licenseKey) => {
|
|
33
|
-
let crc = '';
|
|
34
|
-
let fields = licenseKey.split('|').map((part) => {
|
|
35
|
-
let [name, value] = part.split('=');
|
|
36
|
-
if (name === 'C') {
|
|
37
|
-
crc = value;
|
|
38
|
-
}
|
|
39
|
-
return {
|
|
40
|
-
name,
|
|
41
|
-
value,
|
|
42
|
-
};
|
|
43
|
-
});
|
|
44
|
-
if (!crc) {
|
|
45
|
-
throw getGenericError();
|
|
46
|
-
}
|
|
47
|
-
const crcParts = crc.split(',').reverse();
|
|
48
|
-
const overallCrc = crcParts.pop();
|
|
49
|
-
crcParts.forEach((fieldCrc, index) => {
|
|
50
|
-
const field = fields[index];
|
|
51
|
-
if ((0, hashing_1.compute_string)(field.value) !== fieldCrc) {
|
|
52
|
-
throw getGenericError();
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
const fieldsWithoutC = [...fields];
|
|
56
|
-
fieldsWithoutC.pop();
|
|
57
|
-
const fieldsWithoutCString = fieldsWithoutC
|
|
58
|
-
.map((field) => {
|
|
59
|
-
return `${field.name}=${field.value}`;
|
|
60
|
-
})
|
|
61
|
-
.join('|');
|
|
62
|
-
if ((0, hashing_1.compute_string)(fieldsWithoutCString) !== overallCrc) {
|
|
63
|
-
throw getGenericError();
|
|
64
|
-
}
|
|
65
|
-
fields = fields.map((f) => {
|
|
66
|
-
return Object.assign(Object.assign({}, f), { value: decodeURI(f.value) });
|
|
67
|
-
});
|
|
68
|
-
return (0, exports.fieldsToLicenseDetails)(fields);
|
|
69
|
-
};
|
|
70
|
-
exports.decode = decode;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.decode=exports.fieldsToLicenseDetails=exports.GENERIC_APP_NAME=void 0;const e=require("./hashing"),t=()=>new Error("Invalid License");exports.GENERIC_APP_NAME="GenericAdaptableApp";const r=e=>{var r;const s=e.reduce(((e,t)=>(e.set(t.name,t.value),e)),new Map),o={start:new Date(s.get("StartDate")),end:new Date(s.get("EndDate")),owner:s.get("Owner"),appName:s.get("AppName")||exports.GENERIC_APP_NAME,timestamp:s.get("TS")?Number(s.get("TS")):0,trial:"true"===s.get("Trial"),ref:null!==(r=s.get("Ref"))&&void 0!==r?r:""};if(!(o.start&&o.end&&o.owner&&"boolean"==typeof o.trial&&o.ref))throw t();return o};exports.fieldsToLicenseDetails=r;const s=r=>{let s="",o=r.split("|").map((e=>{let[t,r]=e.split("=");return"C"===t&&(s=r),{name:t,value:r}}));if(!s)throw t();const a=s.split(",").reverse(),n=a.pop();a.forEach(((r,s)=>{const a=o[s];if((0,e.compute_string)(a.value)!==r)throw t()}));const i=[...o];i.pop();const p=i.map((e=>`${e.name}=${e.value}`)).join("|");if((0,e.compute_string)(p)!==n)throw t();return o=o.map((e=>Object.assign(Object.assign({},e),{value:decodeURI(e.value)}))),(0,exports.fieldsToLicenseDetails)(o)};exports.decode=s;
|
|
@@ -1,47 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.compute_string = void 0;
|
|
4
|
-
const DEFAULT_ReversedPolynomial = 0xedb88320;
|
|
5
|
-
/*
|
|
6
|
-
* CRC-32 implementation
|
|
7
|
-
*/
|
|
8
|
-
function generate(reversedPolynomial = DEFAULT_ReversedPolynomial) {
|
|
9
|
-
var table = new Array();
|
|
10
|
-
var i, j, n;
|
|
11
|
-
for (i = 0; i < 256; i++) {
|
|
12
|
-
n = i;
|
|
13
|
-
for (j = 8; j > 0; j--) {
|
|
14
|
-
if ((n & 1) == 1) {
|
|
15
|
-
n = (n >>> 1) ^ reversedPolynomial;
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
n = n >>> 1;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
table[i] = n;
|
|
22
|
-
}
|
|
23
|
-
return table;
|
|
24
|
-
}
|
|
25
|
-
function crc32_initial() {
|
|
26
|
-
return 0xffffffff;
|
|
27
|
-
}
|
|
28
|
-
function crc32_add_byte(table, crc, byte) {
|
|
29
|
-
crc = (crc >>> 8) ^ table[byte ^ (crc & 0x000000ff)];
|
|
30
|
-
return crc;
|
|
31
|
-
}
|
|
32
|
-
function crc32_final(crc) {
|
|
33
|
-
crc = ~crc;
|
|
34
|
-
crc = crc < 0 ? 0xffffffff + crc + 1 : crc;
|
|
35
|
-
return crc;
|
|
36
|
-
}
|
|
37
|
-
function compute_string(str, reversedPolynomial = DEFAULT_ReversedPolynomial) {
|
|
38
|
-
var table = generate(reversedPolynomial);
|
|
39
|
-
var crc = 0;
|
|
40
|
-
var i;
|
|
41
|
-
crc = crc32_initial();
|
|
42
|
-
for (i = 0; i < str.length; i++)
|
|
43
|
-
crc = crc32_add_byte(table, crc, str.charCodeAt(i));
|
|
44
|
-
crc = crc32_final(crc);
|
|
45
|
-
return `${crc}`;
|
|
46
|
-
}
|
|
47
|
-
exports.compute_string = compute_string;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compute_string=void 0;const r=3988292384;function t(t=r){var e,n,o,u=new Array;for(e=0;e<256;e++){for(o=e,n=8;n>0;n--)1&~o?o>>>=1:o=o>>>1^t;u[e]=o}return u}function e(){return 4294967295}function n(r,t,e){return t=t>>>8^r[e^255&t]}function o(r){return r=(r=~r)<0?4294967295+r+1:r}function u(u,c=r){var i,f=t(c),s=0;for(s=e(),i=0;i<u.length;i++)s=n(f,s,u.charCodeAt(i));return`${s=o(s)}`}exports.compute_string=u;
|
|
@@ -7,7 +7,6 @@ const react_redux_1 = require("react-redux");
|
|
|
7
7
|
const ProgressIndicator_1 = require("../components/ProgressIndicator/ProgressIndicator");
|
|
8
8
|
const Toastify_1 = require("../components/Toastify");
|
|
9
9
|
const PopupRedux = tslib_1.__importStar(require("../Redux/ActionsReducers/PopupRedux"));
|
|
10
|
-
const AdaptableLoadingScreen_1 = require("./Components/Popups/AdaptableLoadingScreen");
|
|
11
10
|
const AdaptablePopup_1 = require("./Components/Popups/AdaptablePopup");
|
|
12
11
|
const AdaptablePopupConfirmation_1 = require("./Components/Popups/AdaptablePopupConfirmation");
|
|
13
12
|
const AdaptablePopupPrompt_1 = require("./Components/Popups/AdaptablePopupPrompt");
|
|
@@ -27,7 +26,6 @@ class AdaptableView extends React.Component {
|
|
|
27
26
|
React.createElement(GridCellPopup_1.GridCellPopup, null),
|
|
28
27
|
React.createElement(FloatingQuickSearch_1.QuickSearchDrawer, null),
|
|
29
28
|
this.props.AdaptableApi.internalApi.getModuleService().isModuleAvailable('Dashboard') && (React.createElement(Dashboard_1.Dashboard, { api: this.props.AdaptableApi })),
|
|
30
|
-
this.props.AdaptableApi.optionsApi.getUserInterfaceOptions().showLoadingScreen && (React.createElement(AdaptableLoadingScreen_1.AdaptableLoadingScreen, { onClose: this.props.onCloseLoadingPopup, showLoadingScreen: this.props.PopupState.LoadingPopup.ShowLoadingPopup })),
|
|
31
29
|
this.props.PopupState.PromptPopup.ShowPromptPopup && (React.createElement(AdaptablePopupPrompt_1.AdaptablePopupPrompt, { message: this.props.PopupState.PromptPopup.Message, header: this.props.PopupState.PromptPopup.Header, onClose: this.props.onClosePromptPopup, onConfirm: this.props.onConfirmPromptPopup, onConfirmActionCreator: this.props.PopupState.PromptPopup.ConfirmActionCreator, defaultValue: this.props.PopupState.PromptPopup.DefaultValue })),
|
|
32
30
|
Boolean(this.props.PopupState.ConfirmationPopup.ShowConfirmationPopup) && (React.createElement(AdaptablePopupConfirmation_1.AdaptablePopupConfirmation, { header: this.props.PopupState.ConfirmationPopup.Header, messsage: this.props.PopupState.ConfirmationPopup.Msg, showPopup: this.props.PopupState.ConfirmationPopup.ShowConfirmationPopup, cancelButtonText: this.props.PopupState.ConfirmationPopup.CancelButtonText, confirmButtonText: this.props.PopupState.ConfirmationPopup.ConfirmButtonText, onCancel: this.props.onCancelConfirmationPopup, onConfirm: this.props.onConfirmConfirmationPopup, showInputBox: this.props.PopupState.ConfirmationPopup.ShowInputBox, messageType: this.props.PopupState.ConfirmationPopup.MessageType, api: this.props.AdaptableApi })),
|
|
33
31
|
Boolean(this.props.PopupState.ScreenPopup.ShowScreenPopup) && (React.createElement(AdaptablePopup_1.AdaptablePopup, { componentName: this.props.PopupState.ScreenPopup.ComponentName, componentModule: this.props.PopupState.ScreenPopup.ComponentModule, onHide: this.props.onCloseScreenPopup, api: this.props.AdaptableApi, onClearParams: () => this.props.onClearPopupParams(), moduleParams: this.props.PopupState.ScreenPopup.Params, moduleProps: this.props.PopupState.ScreenPopup.PopupProps })),
|
|
@@ -37,7 +35,7 @@ class AdaptableView extends React.Component {
|
|
|
37
35
|
, {
|
|
38
36
|
// we NEEEEED!!!! this containerId, otherwise, toastify will have memory leaks when the adaptable
|
|
39
37
|
// instance is destroyed and re-created many times
|
|
40
|
-
containerId: adaptableOptions.adaptableId
|
|
38
|
+
containerId: `Toastify-${adaptableOptions.adaptableId}`, limit: adaptableOptions.notificationsOptions.maxNotifications, closeButton: false, icon: false, theme: "colored" }),
|
|
41
39
|
(watermark === null || watermark === void 0 ? void 0 : watermark.show) && React.createElement(License_1.LicenseWatermark, null, watermark === null || watermark === void 0 ? void 0 : watermark.text),
|
|
42
40
|
React.createElement(WindowPopups_1.WindowPopups, null),
|
|
43
41
|
React.createElement(FormPopups_1.FormPopups, null),
|
|
@@ -11,7 +11,7 @@ const GridOptionsForm_1 = tslib_1.__importDefault(require("./GridOptionsForm"));
|
|
|
11
11
|
const EntitlementsForm_1 = tslib_1.__importDefault(require("./EntitlementsForm"));
|
|
12
12
|
const UiOptionsForm_1 = require("./UIOptions/UiOptionsForm");
|
|
13
13
|
const AdaptableOptionsForm_1 = require("./AdaptableOptionsForm");
|
|
14
|
-
const
|
|
14
|
+
const defaultAdaptableOptions_1 = require("../../../agGrid/defaultAdaptableOptions");
|
|
15
15
|
const ConfigurationWizard = (props) => {
|
|
16
16
|
const [isPrimaryKeySelected, setIsValid] = React.useState(true);
|
|
17
17
|
const [adaptableConfig, setAdaptableConfig] = (0, react_1.useState)(() => {
|
|
@@ -21,7 +21,7 @@ const ConfigurationWizard = (props) => {
|
|
|
21
21
|
},
|
|
22
22
|
};
|
|
23
23
|
const gridOptions = Object.assign(Object.assign({}, gridOptionDefaults), props.adaptableConfig.gridOptions);
|
|
24
|
-
const adaptableOptions =
|
|
24
|
+
const adaptableOptions = (0, defaultAdaptableOptions_1.applyDefaultAdaptableOptions)(props.adaptableConfig.adaptableOptions);
|
|
25
25
|
return { gridOptions, adaptableOptions };
|
|
26
26
|
});
|
|
27
27
|
const [selectedColumns, setSelectedColumns] = (0, react_1.useState)(() => {
|
|
@@ -55,7 +55,7 @@ class BulkUpdatePopupComponent extends React.Component {
|
|
|
55
55
|
this.props.PreviewInfo.previewValidationSummary.validationResult == 'All', onClick: () => {
|
|
56
56
|
this.onApplyClick();
|
|
57
57
|
}, variant: "raised", tone: "accent" }, "Apply to Grid")))) : (React.createElement(React.Fragment, null,
|
|
58
|
-
React.createElement(HelpBlock_1.default, { marginTop: 2, marginBottom: 2 }, "Select an existing
|
|
58
|
+
React.createElement(HelpBlock_1.default, { marginTop: 2, marginBottom: 2 }, "Select an existing Column value from the dropdown, or enter a new value"),
|
|
59
59
|
React.createElement(rebass_1.Flex, { marginTop: 2, flexDirection: "row", alignItems: "center" },
|
|
60
60
|
React.createElement(rebass_1.Flex, { alignItems: "center", flexDirection: "row", flex: 1, marginRight: 2 },
|
|
61
61
|
React.createElement(ColumnValueSelector_1.ColumnValueSelector, { selectedGridCells: this.props.SelectedGridCells, selectedColumnValue: this.props.BulkUpdateValue, selectedColumn: col, api: this.props.api, onColumnValueChange: (columns) => this.onColumnValueSelectedChanged(columns), style: { width: '100%', maxWidth: 'inherit' } })),
|