@adaptabletools/adaptable 17.0.4 → 17.0.6
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/bundle.cjs.js +8 -8
- package/package.json +1 -1
- package/publishTimestamp.d.ts +1 -1
- package/publishTimestamp.js +1 -1
- package/src/AdaptableOptions/GroupingOptions.d.ts +4 -4
- package/src/Api/EventApi.d.ts +16 -4
- package/src/Api/Events/CalculatedColumnChanged.d.ts +19 -0
- package/src/Api/Events/CalculatedColumnChanged.js +2 -0
- package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +2 -0
- package/src/Api/Internal/CalculatedColumnInternalApi.js +16 -0
- package/src/Redux/Store/AdaptableStore.js +2 -0
- package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -1
- package/src/agGrid/Adaptable.js +9 -6
- package/src/metamodel/adaptable.metamodel.d.ts +16 -16
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/types.d.ts +2 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaptabletools/adaptable",
|
|
3
|
-
"version": "17.0.
|
|
3
|
+
"version": "17.0.6",
|
|
4
4
|
"description": "Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"web-components",
|
package/publishTimestamp.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default:
|
|
1
|
+
declare const _default: 1707305637365;
|
|
2
2
|
export default _default;
|
package/publishTimestamp.js
CHANGED
|
@@ -12,9 +12,9 @@ export interface GroupingOptions<TData = any> {
|
|
|
12
12
|
*/
|
|
13
13
|
showGroupingTotalsAsHeader?: boolean;
|
|
14
14
|
/**
|
|
15
|
-
* Value to use for '
|
|
15
|
+
* Value to use for 'Balanced Groups' (string columns only)
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
balancedGroupsKey?: string | ((context: BalancedGroupsKeyContext<TData>) => string);
|
|
18
18
|
/**
|
|
19
19
|
* Places ungrouped columns at pre-grouping indexed position
|
|
20
20
|
* @defaultValue false
|
|
@@ -31,9 +31,9 @@ export interface GroupingOptions<TData = any> {
|
|
|
31
31
|
autoOrderGroupedColumns?: boolean;
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
|
-
* Context used when setting a value for
|
|
34
|
+
* Context used when setting a value for Balanced Row Groups
|
|
35
35
|
*/
|
|
36
|
-
export interface
|
|
36
|
+
export interface BalancedGroupsKeyContext<TData = any> extends BaseContext {
|
|
37
37
|
/**
|
|
38
38
|
* AdapTable Column being grouped
|
|
39
39
|
*/
|
package/src/Api/EventApi.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CellSelectionChangedInfo, RowSelectionChangedInfo, LiveDataChangedInfo, DashboardChangedInfo, ThemeChangedInfo, AlertFiredInfo, LayoutChangedInfo, AdaptableReadyInfo, CustomToolbarConfiguredInfo, CellChangedInfo, SystemStatusMessageDisplayedInfo, AdaptableStateChangedInfo, FlashingCellDisplayedInfo, GridDataChangedInfo, TeamSharingEntityChangedInfo, ActionRowSubmittedInfo, DataSetSelectedInfo, AdaptableStateReloadedInfo, GridSortedInfo, ScheduleTriggeredInfo, ChartChangedInfo, ThemeEditedInfo, Fdc3MessageInfo, DataImportedInfo, ColumnFilterAppliedInfo, GridFilterAppliedInfo } from '../types';
|
|
2
|
+
import { CalculatedColumnChangedInfo } from './Events/CalculatedColumnChanged';
|
|
2
3
|
/**
|
|
3
4
|
* Responsible for publishing the many Events that AdapTable fires
|
|
4
5
|
*/
|
|
@@ -182,14 +183,25 @@ export interface EventApi {
|
|
|
182
183
|
* @param callback LayoutChanged which includes just the name of the currently selected Layout.
|
|
183
184
|
* @returns the unsubscribe function
|
|
184
185
|
*/
|
|
185
|
-
on(eventName: 'LayoutChanged', callback: (
|
|
186
|
+
on(eventName: 'LayoutChanged', callback: (layoutChangedInfo: LayoutChangedInfo) => void): VoidFunction;
|
|
186
187
|
/**
|
|
187
188
|
* Unsubscribe from LayoutChanged
|
|
188
189
|
*/
|
|
189
|
-
off(eventName: 'LayoutChanged', callback: (
|
|
190
|
+
off(eventName: 'LayoutChanged', callback: (layoutChangedInfo: LayoutChangedInfo) => void): void;
|
|
191
|
+
/**
|
|
192
|
+
* Event fired whenever a Calculated Columns is created / updated / deleted in AdapTable
|
|
193
|
+
* @param eventName CalculatedColumnChanged
|
|
194
|
+
* @param callback CalculatedColumnChanged which includes the action and details of the Calculated Column
|
|
195
|
+
* @returns the unsubscribe function
|
|
196
|
+
*/
|
|
197
|
+
on(eventName: 'CalculatedColumnChanged', callback: (calculatedColumnChangedInfo: CalculatedColumnChangedInfo) => void): VoidFunction;
|
|
198
|
+
/**
|
|
199
|
+
* Unsubscribe from CalculatedColumnChanged
|
|
200
|
+
*/
|
|
201
|
+
off(eventName: 'CalculatedColumnChanged', callback: (calculatedColumnChangedInfo: CalculatedColumnChangedInfo) => void): void;
|
|
190
202
|
/**
|
|
191
203
|
* Event fired whenever **Configure Button is clicked in a Custom Toolbar**
|
|
192
|
-
* @param eventName
|
|
204
|
+
* @param eventName CustomToolbarConfigured
|
|
193
205
|
* @param callback CustomToolbarConfiguredInfo which contains the Custom Toolbar
|
|
194
206
|
* @returns the unsubscribe function
|
|
195
207
|
*/
|
|
@@ -327,6 +339,6 @@ export interface EventApi {
|
|
|
327
339
|
emitSync(eventName: 'DashboardChanged', data?: any): any[];
|
|
328
340
|
emitSync(eventName: 'FlashingCellDisplayed', data?: any): any[];
|
|
329
341
|
emitSync(eventName: 'AdaptableDestroy'): any[];
|
|
330
|
-
emit(eventName: 'ActionRowSubmitted' | 'AdaptableReady' | 'AlertFired' | 'AdaptableStateChanged' | 'AdaptableStateReloaded' | 'CellChanged' | 'ChartChanged' | 'CheckboxColumnClicked' | 'CustomToolbarConfigured' | 'DashboardChanged' | 'DataImported' | 'DataSetSelected' | 'ColumnFilterApplied' | 'Fdc3Message' | 'GridDataChanged' | 'GridSorted' | 'LayoutChanged' | 'LiveDataChanged' | 'ScheduleTriggered' | 'SearchChanged' | 'CellSelectionChanged' | 'RowSelectionChanged' | 'SystemStatusMessageDisplayed' | 'TeamSharingEntityChanged' | 'ThemeChanged' | 'ThemeEdited' | 'GridFilterApplied', data?: any): Promise<any>;
|
|
342
|
+
emit(eventName: 'ActionRowSubmitted' | 'AdaptableReady' | 'AlertFired' | 'AdaptableStateChanged' | 'AdaptableStateReloaded' | 'CellChanged' | 'ChartChanged' | 'CheckboxColumnClicked' | 'CustomToolbarConfigured' | 'DashboardChanged' | 'DataImported' | 'DataSetSelected' | 'ColumnFilterApplied' | 'Fdc3Message' | 'GridDataChanged' | 'GridSorted' | 'LayoutChanged' | 'CalculatedColumnChanged' | 'LiveDataChanged' | 'ScheduleTriggered' | 'SearchChanged' | 'CellSelectionChanged' | 'RowSelectionChanged' | 'SystemStatusMessageDisplayed' | 'TeamSharingEntityChanged' | 'ThemeChanged' | 'ThemeEdited' | 'GridFilterApplied', data?: any): Promise<any>;
|
|
331
343
|
destroy(): void;
|
|
332
344
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CalculatedColumn } from '../../PredefinedConfig/CalculatedColumnState';
|
|
2
|
+
import { BaseEventInfo } from './BaseEventInfo';
|
|
3
|
+
/**
|
|
4
|
+
* EventInfo returned by CalculatedColumnChanged event
|
|
5
|
+
*/
|
|
6
|
+
export interface CalculatedColumnChangedInfo extends BaseEventInfo {
|
|
7
|
+
/**
|
|
8
|
+
* What caused CalculatedColumn State to change (i.e. Add, Edit, Delete)
|
|
9
|
+
*/
|
|
10
|
+
actionName: string;
|
|
11
|
+
/**
|
|
12
|
+
* Calculated Column that has been added, edited or deleted
|
|
13
|
+
*/
|
|
14
|
+
calculatedColumn: CalculatedColumn;
|
|
15
|
+
/**
|
|
16
|
+
* AST for Current Calculated Column Expression
|
|
17
|
+
*/
|
|
18
|
+
calculatedColumnExpressionAST: any;
|
|
19
|
+
}
|
|
@@ -25,4 +25,6 @@ export declare class CalculatedColumnInternalApi extends ApiBase {
|
|
|
25
25
|
getCalculatedColumnsDependentOnColumn(column: AdaptableColumn): string[];
|
|
26
26
|
isCumulativeAggregatedExpression(input: string): boolean;
|
|
27
27
|
isQuantileAggregatedExpression(input: string): boolean;
|
|
28
|
+
getExpressionFromCalculatedColumn(calculatedColumn: CalculatedColumn): string;
|
|
29
|
+
fireCalculatedColumnChangedEvent(trigger: string, calculatedColumn: CalculatedColumn): void;
|
|
28
30
|
}
|
|
@@ -74,5 +74,21 @@ class CalculatedColumnInternalApi extends ApiBase_1.ApiBase {
|
|
|
74
74
|
.internalApi.getQueryLanguageService()
|
|
75
75
|
.getNodesFromExpression(input, 'QUANT')) === null || _a === void 0 ? void 0 : _a.length);
|
|
76
76
|
}
|
|
77
|
+
getExpressionFromCalculatedColumn(calculatedColumn) {
|
|
78
|
+
var _a;
|
|
79
|
+
return ((_a = calculatedColumn.Query.ScalarExpression) !== null && _a !== void 0 ? _a : calculatedColumn.Query.AggregatedScalarExpression);
|
|
80
|
+
}
|
|
81
|
+
fireCalculatedColumnChangedEvent(trigger, calculatedColumn) {
|
|
82
|
+
const adaptableApi = this.getAdaptableApi();
|
|
83
|
+
const calculatedColumnChangedInfo = {
|
|
84
|
+
adaptableApi: adaptableApi,
|
|
85
|
+
actionName: trigger,
|
|
86
|
+
calculatedColumn: calculatedColumn,
|
|
87
|
+
calculatedColumnExpressionAST: adaptableApi.expressionApi.getASTForExpression(this.getExpressionFromCalculatedColumn(calculatedColumn)),
|
|
88
|
+
userName: adaptableApi.optionsApi.getUserName(),
|
|
89
|
+
adaptableId: adaptableApi.optionsApi.getAdaptableId(),
|
|
90
|
+
};
|
|
91
|
+
this.adaptable.api.eventApi.emit('CalculatedColumnChanged', calculatedColumnChangedInfo);
|
|
92
|
+
}
|
|
77
93
|
}
|
|
78
94
|
exports.CalculatedColumnInternalApi = CalculatedColumnInternalApi;
|
|
@@ -598,6 +598,7 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
|
|
|
598
598
|
adaptable.api.internalApi
|
|
599
599
|
.getCalculatedColumnExpressionService()
|
|
600
600
|
.createAggregatedScalarLiveValue(returnAction.calculatedColumn);
|
|
601
|
+
adaptable.api.calculatedColumnApi.internalApi.fireCalculatedColumnChangedEvent(action.type, actionTyped.calculatedColumn);
|
|
601
602
|
}
|
|
602
603
|
adaptable.updateColDefsForSpecialColumns();
|
|
603
604
|
return returnAction;
|
|
@@ -623,6 +624,7 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
|
|
|
623
624
|
adaptable.api.internalApi
|
|
624
625
|
.getCalculatedColumnExpressionService()
|
|
625
626
|
.destroyAggregatedScalarLiveValue(returnAction.calculatedColumn);
|
|
627
|
+
adaptable.api.calculatedColumnApi.internalApi.fireCalculatedColumnChangedEvent(action.type, actionTyped.calculatedColumn);
|
|
626
628
|
adaptable.updateColDefsForSpecialColumns();
|
|
627
629
|
return returnAction;
|
|
628
630
|
}
|
|
@@ -148,7 +148,7 @@ exports.DefaultAdaptableOptions = {
|
|
|
148
148
|
dataSetOptions: { dataSets: GeneralConstants_1.EMPTY_ARRAY },
|
|
149
149
|
groupingOptions: {
|
|
150
150
|
showGroupingTotalsAsHeader: false,
|
|
151
|
-
|
|
151
|
+
balancedGroupsKey: undefined,
|
|
152
152
|
restoreUngroupedColumns: false,
|
|
153
153
|
autoOrderGroupedColumns: true,
|
|
154
154
|
},
|
package/src/agGrid/Adaptable.js
CHANGED
|
@@ -3625,20 +3625,23 @@ class Adaptable {
|
|
|
3625
3625
|
return userPropertyValue(params);
|
|
3626
3626
|
}
|
|
3627
3627
|
const value = params.value;
|
|
3628
|
-
|
|
3629
|
-
if (!unbalancedGroupsKey) {
|
|
3628
|
+
if (this.gridOptions.groupAllowUnbalanced) {
|
|
3630
3629
|
return value;
|
|
3631
3630
|
}
|
|
3632
|
-
|
|
3633
|
-
|
|
3631
|
+
const balancedGroupsKey = (_a = adaptableOptions.groupingOptions) === null || _a === void 0 ? void 0 : _a.balancedGroupsKey;
|
|
3632
|
+
if (!balancedGroupsKey) {
|
|
3633
|
+
return value;
|
|
3634
|
+
}
|
|
3635
|
+
let groupBalancedGroupsUnderKeyValue = typeof balancedGroupsKey === 'function'
|
|
3636
|
+
? balancedGroupsKey({
|
|
3634
3637
|
adaptableApi: adaptableApi,
|
|
3635
3638
|
userName: this.adaptableOptions.userName,
|
|
3636
3639
|
adaptableId: this.adaptableOptions.adaptableId,
|
|
3637
3640
|
adaptableColumn: abColumn,
|
|
3638
3641
|
params,
|
|
3639
3642
|
})
|
|
3640
|
-
:
|
|
3641
|
-
return value === null || value === undefined ?
|
|
3643
|
+
: balancedGroupsKey;
|
|
3644
|
+
return value === null || value === undefined ? groupBalancedGroupsUnderKeyValue : value;
|
|
3642
3645
|
};
|
|
3643
3646
|
});
|
|
3644
3647
|
}
|
|
@@ -1320,6 +1320,16 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
1320
1320
|
kind: string;
|
|
1321
1321
|
desc: string;
|
|
1322
1322
|
};
|
|
1323
|
+
BalancedGroupsKeyContext: {
|
|
1324
|
+
name: string;
|
|
1325
|
+
kind: string;
|
|
1326
|
+
desc: string;
|
|
1327
|
+
props: {
|
|
1328
|
+
name: string;
|
|
1329
|
+
kind: string;
|
|
1330
|
+
desc: string;
|
|
1331
|
+
}[];
|
|
1332
|
+
};
|
|
1323
1333
|
BaseContext: {
|
|
1324
1334
|
name: string;
|
|
1325
1335
|
kind: string;
|
|
@@ -3626,25 +3636,25 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
3626
3636
|
kind: string;
|
|
3627
3637
|
desc: string;
|
|
3628
3638
|
isOpt: boolean;
|
|
3629
|
-
noCode: string;
|
|
3630
|
-
defVal: string;
|
|
3631
3639
|
gridInfo?: undefined;
|
|
3640
|
+
noCode?: undefined;
|
|
3641
|
+
defVal?: undefined;
|
|
3632
3642
|
} | {
|
|
3633
3643
|
name: string;
|
|
3634
3644
|
kind: string;
|
|
3635
3645
|
desc: string;
|
|
3636
3646
|
isOpt: boolean;
|
|
3637
|
-
|
|
3647
|
+
noCode: string;
|
|
3638
3648
|
defVal: string;
|
|
3639
|
-
|
|
3649
|
+
gridInfo?: undefined;
|
|
3640
3650
|
} | {
|
|
3641
3651
|
name: string;
|
|
3642
3652
|
kind: string;
|
|
3643
3653
|
desc: string;
|
|
3644
3654
|
isOpt: boolean;
|
|
3645
|
-
gridInfo
|
|
3655
|
+
gridInfo: string;
|
|
3656
|
+
defVal: string;
|
|
3646
3657
|
noCode?: undefined;
|
|
3647
|
-
defVal?: undefined;
|
|
3648
3658
|
})[];
|
|
3649
3659
|
};
|
|
3650
3660
|
HandleFdc3Context: {
|
|
@@ -5354,16 +5364,6 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
5354
5364
|
ref: string;
|
|
5355
5365
|
}[];
|
|
5356
5366
|
};
|
|
5357
|
-
UnbalancedGroupsKeyContext: {
|
|
5358
|
-
name: string;
|
|
5359
|
-
kind: string;
|
|
5360
|
-
desc: string;
|
|
5361
|
-
props: {
|
|
5362
|
-
name: string;
|
|
5363
|
-
kind: string;
|
|
5364
|
-
desc: string;
|
|
5365
|
-
}[];
|
|
5366
|
-
};
|
|
5367
5367
|
UserColumnMenuItem: {
|
|
5368
5368
|
name: string;
|
|
5369
5369
|
kind: string;
|