@finos/legend-application-repl 0.0.2
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/LICENSE +201 -0
- package/README.md +3 -0
- package/lib/Const.d.ts +25 -0
- package/lib/Const.d.ts.map +1 -0
- package/lib/Const.js +26 -0
- package/lib/Const.js.map +1 -0
- package/lib/application/LegendREPLGridClient.d.ts +27 -0
- package/lib/application/LegendREPLGridClient.d.ts.map +1 -0
- package/lib/application/LegendREPLGridClient.js +40 -0
- package/lib/application/LegendREPLGridClient.js.map +1 -0
- package/lib/application/LegendREPLGridClientApplicationConfig.d.ts +29 -0
- package/lib/application/LegendREPLGridClientApplicationConfig.d.ts.map +1 -0
- package/lib/application/LegendREPLGridClientApplicationConfig.js +33 -0
- package/lib/application/LegendREPLGridClientApplicationConfig.js.map +1 -0
- package/lib/application/LegendREPLGridClientPluginManager.d.ts +32 -0
- package/lib/application/LegendREPLGridClientPluginManager.d.ts.map +1 -0
- package/lib/application/LegendREPLGridClientPluginManager.js +46 -0
- package/lib/application/LegendREPLGridClientPluginManager.js.map +1 -0
- package/lib/components/AgGrid.d.ts +22 -0
- package/lib/components/AgGrid.d.ts.map +1 -0
- package/lib/components/AgGrid.js +43 -0
- package/lib/components/AgGrid.js.map +1 -0
- package/lib/components/Core_LegendREPLGridClientApplicationPlugin.d.ts +23 -0
- package/lib/components/Core_LegendREPLGridClientApplicationPlugin.d.ts.map +1 -0
- package/lib/components/Core_LegendREPLGridClientApplicationPlugin.js +35 -0
- package/lib/components/Core_LegendREPLGridClientApplicationPlugin.js.map +1 -0
- package/lib/components/LegendREPLGridClientApplication.d.ts +24 -0
- package/lib/components/LegendREPLGridClientApplication.d.ts.map +1 -0
- package/lib/components/LegendREPLGridClientApplication.js +32 -0
- package/lib/components/LegendREPLGridClientApplication.js.map +1 -0
- package/lib/components/LegendREPLGridClientFrameworkProvider.d.ts +22 -0
- package/lib/components/LegendREPLGridClientFrameworkProvider.d.ts.map +1 -0
- package/lib/components/LegendREPLGridClientFrameworkProvider.js +29 -0
- package/lib/components/LegendREPLGridClientFrameworkProvider.js.map +1 -0
- package/lib/components/REPLGridClient.d.ts +18 -0
- package/lib/components/REPLGridClient.d.ts.map +1 -0
- package/lib/components/REPLGridClient.js +56 -0
- package/lib/components/REPLGridClient.js.map +1 -0
- package/lib/components/REPLGridClientStoreProvider.d.ts +22 -0
- package/lib/components/REPLGridClientStoreProvider.d.ts.map +1 -0
- package/lib/components/REPLGridClientStoreProvider.js +32 -0
- package/lib/components/REPLGridClientStoreProvider.js.map +1 -0
- package/lib/components/grid/GridUtils.d.ts +29 -0
- package/lib/components/grid/GridUtils.d.ts.map +1 -0
- package/lib/components/grid/GridUtils.js +152 -0
- package/lib/components/grid/GridUtils.js.map +1 -0
- package/lib/components/grid/REPLGridServerResult.d.ts +22 -0
- package/lib/components/grid/REPLGridServerResult.d.ts.map +1 -0
- package/lib/components/grid/REPLGridServerResult.js +26 -0
- package/lib/components/grid/REPLGridServerResult.js.map +1 -0
- package/lib/components/grid/ServerSideDataSource.d.ts +32 -0
- package/lib/components/grid/ServerSideDataSource.d.ts.map +1 -0
- package/lib/components/grid/ServerSideDataSource.js +107 -0
- package/lib/components/grid/ServerSideDataSource.js.map +1 -0
- package/lib/components/grid/TDSLambdaBuilder.d.ts +19 -0
- package/lib/components/grid/TDSLambdaBuilder.d.ts.map +1 -0
- package/lib/components/grid/TDSLambdaBuilder.js +277 -0
- package/lib/components/grid/TDSLambdaBuilder.js.map +1 -0
- package/lib/components/grid/TDSRequest.d.ts +90 -0
- package/lib/components/grid/TDSRequest.d.ts.map +1 -0
- package/lib/components/grid/TDSRequest.js +120 -0
- package/lib/components/grid/TDSRequest.js.map +1 -0
- package/lib/grid.css +17 -0
- package/lib/grid.css.map +1 -0
- package/lib/index.css +17 -0
- package/lib/index.css.map +1 -0
- package/lib/index.d.ts +22 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +37 -0
- package/lib/index.js.map +1 -0
- package/lib/package.json +88 -0
- package/lib/repl.css +17 -0
- package/lib/repl.css.map +1 -0
- package/lib/server/REPLServerClient.d.ts +28 -0
- package/lib/server/REPLServerClient.d.ts.map +1 -0
- package/lib/server/REPLServerClient.js +30 -0
- package/lib/server/REPLServerClient.js.map +1 -0
- package/lib/stores/LegendREPLGridClientApplicationPlugin.d.ts +26 -0
- package/lib/stores/LegendREPLGridClientApplicationPlugin.d.ts.map +1 -0
- package/lib/stores/LegendREPLGridClientApplicationPlugin.js +27 -0
- package/lib/stores/LegendREPLGridClientApplicationPlugin.js.map +1 -0
- package/lib/stores/LegendREPLGridClientBaseStore.d.ts +25 -0
- package/lib/stores/LegendREPLGridClientBaseStore.d.ts.map +1 -0
- package/lib/stores/LegendREPLGridClientBaseStore.js +24 -0
- package/lib/stores/LegendREPLGridClientBaseStore.js.map +1 -0
- package/lib/stores/REPLGridClientStore.d.ts +31 -0
- package/lib/stores/REPLGridClientStore.d.ts.map +1 -0
- package/lib/stores/REPLGridClientStore.js +101 -0
- package/lib/stores/REPLGridClientStore.js.map +1 -0
- package/lib/stores/REPLGridState.d.ts +38 -0
- package/lib/stores/REPLGridState.d.ts.map +1 -0
- package/lib/stores/REPLGridState.js +81 -0
- package/lib/stores/REPLGridState.js.map +1 -0
- package/package.json +88 -0
- package/src/Const.ts +27 -0
- package/src/application/LegendREPLGridClient.tsx +66 -0
- package/src/application/LegendREPLGridClientApplicationConfig.ts +64 -0
- package/src/application/LegendREPLGridClientPluginManager.ts +67 -0
- package/src/components/AgGrid.tsx +65 -0
- package/src/components/Core_LegendREPLGridClientApplicationPlugin.tsx +42 -0
- package/src/components/LegendREPLGridClientApplication.tsx +61 -0
- package/src/components/LegendREPLGridClientFrameworkProvider.tsx +63 -0
- package/src/components/REPLGridClient.tsx +157 -0
- package/src/components/REPLGridClientStoreProvider.tsx +61 -0
- package/src/components/grid/GridUtils.ts +190 -0
- package/src/components/grid/REPLGridServerResult.ts +30 -0
- package/src/components/grid/ServerSideDataSource.ts +184 -0
- package/src/components/grid/TDSLambdaBuilder.ts +413 -0
- package/src/components/grid/TDSRequest.ts +153 -0
- package/src/index.tsx +40 -0
- package/src/server/REPLServerClient.ts +74 -0
- package/src/stores/LegendREPLGridClientApplicationPlugin.ts +30 -0
- package/src/stores/LegendREPLGridClientBaseStore.ts +34 -0
- package/src/stores/REPLGridClientStore.ts +153 -0
- package/src/stores/REPLGridState.ts +102 -0
- package/tsconfig.json +66 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { TDSGroupby, TDSAggregation, TDSFilter, TDSRequest, TDSSort, TDSFilterCondition, TDS_FILTER_GROUP, } from './TDSRequest.js';
|
|
17
|
+
import { guaranteeNonNullable, assertErrorThrown, LogEvent, } from '@finos/legend-shared';
|
|
18
|
+
import { LEGEND_REPL_EVENT } from '../../Const.js';
|
|
19
|
+
import { getTDSRowData, getTDSSortOrder, getTDSFilterOperation, getAggregationFunction, getFilterColumnType, } from './GridUtils.js';
|
|
20
|
+
import { flow, flowResult, makeObservable } from 'mobx';
|
|
21
|
+
export class ServerSideDataSource {
|
|
22
|
+
executions = 0;
|
|
23
|
+
rowData = [];
|
|
24
|
+
columns = [];
|
|
25
|
+
editorStore;
|
|
26
|
+
constructor(rowData, columns, editorStore) {
|
|
27
|
+
makeObservable(this, {
|
|
28
|
+
fetchRows: flow,
|
|
29
|
+
});
|
|
30
|
+
this.rowData = rowData ?? [];
|
|
31
|
+
this.columns = columns ?? [];
|
|
32
|
+
this.editorStore = editorStore;
|
|
33
|
+
}
|
|
34
|
+
*fetchRows(params) {
|
|
35
|
+
try {
|
|
36
|
+
if (this.executions > 0) {
|
|
37
|
+
if (this.editorStore) {
|
|
38
|
+
const request = this.extractRequest(params);
|
|
39
|
+
if (request) {
|
|
40
|
+
yield flowResult(this.editorStore.getREPLGridServerResult(request));
|
|
41
|
+
const result = this.editorStore.replGridState.currentResult;
|
|
42
|
+
const rowData = getTDSRowData(guaranteeNonNullable(result).result);
|
|
43
|
+
params.success({ rowData: rowData });
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
params.fail();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
params.success({ rowData: this.rowData });
|
|
52
|
+
}
|
|
53
|
+
this.executions++;
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
assertErrorThrown(error);
|
|
57
|
+
this.editorStore?.applicationStore.notificationService.notifyError(error);
|
|
58
|
+
this.editorStore?.applicationStore.logService.error(LogEvent.create(LEGEND_REPL_EVENT.FETCH_TDS_FAILURE), error);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
getRows(params) {
|
|
62
|
+
this.fetchRows(params);
|
|
63
|
+
}
|
|
64
|
+
extractRequest(params) {
|
|
65
|
+
try {
|
|
66
|
+
const request = params.request;
|
|
67
|
+
const startRow = request.startRow;
|
|
68
|
+
const endRow = request.endRow;
|
|
69
|
+
const columns = params.columnApi.getColumns()?.map((c) => c.getColId());
|
|
70
|
+
const sort = request.sortModel.map((i) => new TDSSort(i.colId, getTDSSortOrder(i.sort)));
|
|
71
|
+
const aggregations = request.valueCols.map((v) => {
|
|
72
|
+
const colType = this.columns.find((c) => c.name === v.field)?.type;
|
|
73
|
+
return new TDSAggregation(guaranteeNonNullable(v.field), colType, getAggregationFunction(guaranteeNonNullable(v.aggFunc)));
|
|
74
|
+
});
|
|
75
|
+
const groupBy = new TDSGroupby(request.rowGroupCols.map((r) => r.id), request.groupKeys, aggregations);
|
|
76
|
+
const filter = [];
|
|
77
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
78
|
+
const filterModel = request.filterModel;
|
|
79
|
+
if (filterModel) {
|
|
80
|
+
Object.keys(filterModel).forEach((key) => {
|
|
81
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
82
|
+
const item = filterModel[key];
|
|
83
|
+
const conditions = [];
|
|
84
|
+
const colType = getFilterColumnType(item.filterType);
|
|
85
|
+
if (item.filter === undefined && item.conditions) {
|
|
86
|
+
item.conditions.forEach((condition) => conditions.push(new TDSFilterCondition(getTDSFilterOperation(condition.type), condition.filter)));
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
conditions.push(new TDSFilterCondition(getTDSFilterOperation(item.type), item.filter));
|
|
90
|
+
}
|
|
91
|
+
filter.push(new TDSFilter(key, colType, conditions, item.operator === 'OR'
|
|
92
|
+
? TDS_FILTER_GROUP.OR
|
|
93
|
+
: TDS_FILTER_GROUP.AND));
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
const tdsRequest = new TDSRequest(columns ?? [], filter, sort, groupBy, startRow, endRow);
|
|
97
|
+
return tdsRequest;
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
assertErrorThrown(error);
|
|
101
|
+
this.editorStore?.applicationStore.notificationService.notifyError(error);
|
|
102
|
+
this.editorStore?.applicationStore.logService.error(LogEvent.create(LEGEND_REPL_EVENT.BUILD_TDS_EQUEST_FAILURE), error);
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=ServerSideDataSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerSideDataSource.js","sourceRoot":"","sources":["../../../src/components/grid/ServerSideDataSource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { V1_Lambda, type V1_ValueSpecification } from '@finos/legend-graph';
|
|
17
|
+
import { type TDSRequest } from './TDSRequest.js';
|
|
18
|
+
export declare const buildLambdaExpressions: (funcBody: V1_ValueSpecification, request: TDSRequest) => V1_Lambda;
|
|
19
|
+
//# sourceMappingURL=TDSLambdaBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TDSLambdaBuilder.d.ts","sourceRoot":"","sources":["../../../src/components/grid/TDSLambdaBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAeL,SAAS,EAET,KAAK,qBAAqB,EAI3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAIL,KAAK,UAAU,EAKhB,MAAM,iBAAiB,CAAC;AAmVzB,eAAO,MAAM,sBAAsB,aACvB,qBAAqB,WACtB,UAAU,KAClB,SAuBF,CAAC"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { V1_AppliedFunction, V1_AppliedProperty, V1_CBoolean, V1_CDateTime, V1_CDecimal, V1_CFloat, V1_CInteger, V1_CStrictDate, V1_CStrictTime, V1_CString, V1_ClassInstance, V1_ColSpec, V1_ColSpecArray, V1_Collection, V1_Lambda, V1_Variable, PRIMITIVE_TYPE, V1_ClassInstanceType, } from '@finos/legend-graph';
|
|
17
|
+
import { TDSFilter, TDSFilterCondition, TDS_FILTER_GROUP, TDS_FILTER_OPERATION, TDS_AGGREGATION_FUNCTION, } from './TDSRequest.js';
|
|
18
|
+
import { UnsupportedOperationError, guaranteeIsBoolean, guaranteeIsNumber, guaranteeIsString, guaranteeNonNullable, } from '@finos/legend-shared';
|
|
19
|
+
import { DEFAULT_VARIABLE_NAME, FILTER_FUNCTION_NAME, GROUPBY_FUNCTION_NAME, NOT_FUNCTION_NAME, SORT_FUNCTION_NAME, } from '../../Const.js';
|
|
20
|
+
const getPrimitiveValueSpecification = (type, column) => {
|
|
21
|
+
switch (type) {
|
|
22
|
+
case PRIMITIVE_TYPE.STRING: {
|
|
23
|
+
const stringValue = new V1_CString();
|
|
24
|
+
stringValue.value = guaranteeIsString(column);
|
|
25
|
+
return stringValue;
|
|
26
|
+
}
|
|
27
|
+
case PRIMITIVE_TYPE.BOOLEAN: {
|
|
28
|
+
const booleanValue = new V1_CBoolean();
|
|
29
|
+
booleanValue.value = guaranteeIsBoolean(column);
|
|
30
|
+
return booleanValue;
|
|
31
|
+
}
|
|
32
|
+
case PRIMITIVE_TYPE.NUMBER:
|
|
33
|
+
case PRIMITIVE_TYPE.DECIMAL: {
|
|
34
|
+
const cDecimal = new V1_CDecimal();
|
|
35
|
+
cDecimal.value = guaranteeIsNumber(column);
|
|
36
|
+
return cDecimal;
|
|
37
|
+
}
|
|
38
|
+
case PRIMITIVE_TYPE.INTEGER: {
|
|
39
|
+
const cInteger = new V1_CInteger();
|
|
40
|
+
cInteger.value = guaranteeIsNumber(column);
|
|
41
|
+
return cInteger;
|
|
42
|
+
}
|
|
43
|
+
case PRIMITIVE_TYPE.FLOAT: {
|
|
44
|
+
const cFloat = new V1_CFloat();
|
|
45
|
+
cFloat.value = guaranteeIsNumber(column);
|
|
46
|
+
return cFloat;
|
|
47
|
+
}
|
|
48
|
+
case PRIMITIVE_TYPE.DATE:
|
|
49
|
+
case PRIMITIVE_TYPE.DATETIME: {
|
|
50
|
+
const cDateTime = new V1_CDateTime();
|
|
51
|
+
cDateTime.value = guaranteeIsString(column);
|
|
52
|
+
return cDateTime;
|
|
53
|
+
}
|
|
54
|
+
case PRIMITIVE_TYPE.STRICTDATE: {
|
|
55
|
+
const cStrictDate = new V1_CStrictDate();
|
|
56
|
+
cStrictDate.value = guaranteeIsString(column);
|
|
57
|
+
return cStrictDate;
|
|
58
|
+
}
|
|
59
|
+
case PRIMITIVE_TYPE.STRICTTIME: {
|
|
60
|
+
const cStrictTime = new V1_CStrictTime();
|
|
61
|
+
cStrictTime.value = guaranteeIsString(column);
|
|
62
|
+
return cStrictTime;
|
|
63
|
+
}
|
|
64
|
+
default:
|
|
65
|
+
throw new UnsupportedOperationError(`Unsupported tds column type ${type}`);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
const updateParentFunction = (expressions, functionName, child) => {
|
|
69
|
+
let newExpressions = [
|
|
70
|
+
guaranteeNonNullable(expressions[0]),
|
|
71
|
+
];
|
|
72
|
+
newExpressions = newExpressions.concat(child);
|
|
73
|
+
const childFunc = new V1_AppliedFunction();
|
|
74
|
+
childFunc.function = functionName;
|
|
75
|
+
childFunc.parameters = newExpressions;
|
|
76
|
+
expressions[0] = childFunc;
|
|
77
|
+
};
|
|
78
|
+
const processFilterOperations = (expressions, filters) => {
|
|
79
|
+
if (filters.length === 0) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const filterLambda = new V1_Lambda();
|
|
83
|
+
filters.forEach((filterValue) => {
|
|
84
|
+
const conditions = filterValue.conditions;
|
|
85
|
+
const groupCondition = filterValue.groupOperation;
|
|
86
|
+
const defaultVariable = new V1_Variable();
|
|
87
|
+
defaultVariable.name = DEFAULT_VARIABLE_NAME;
|
|
88
|
+
const conditionExpressions = [];
|
|
89
|
+
conditions.forEach((condition) => {
|
|
90
|
+
const filterCondition = new V1_AppliedFunction();
|
|
91
|
+
const property = new V1_AppliedProperty();
|
|
92
|
+
property.property = filterValue.column;
|
|
93
|
+
property.class = filterValue.columnType;
|
|
94
|
+
property.parameters = [defaultVariable];
|
|
95
|
+
switch (condition.operation) {
|
|
96
|
+
case TDS_FILTER_OPERATION.EQUALS:
|
|
97
|
+
case TDS_FILTER_OPERATION.GREATER_THAN:
|
|
98
|
+
case TDS_FILTER_OPERATION.GREATER_THAN_OR_EQUAL:
|
|
99
|
+
case TDS_FILTER_OPERATION.LESS_THAN:
|
|
100
|
+
case TDS_FILTER_OPERATION.LESS_THAN_OR_EQUAL:
|
|
101
|
+
case TDS_FILTER_OPERATION.CONTAINS:
|
|
102
|
+
case TDS_FILTER_OPERATION.ENDS_WITH:
|
|
103
|
+
case TDS_FILTER_OPERATION.STARTS_WITH: {
|
|
104
|
+
filterCondition.function = condition.operation;
|
|
105
|
+
filterCondition.parameters.push(property);
|
|
106
|
+
filterCondition.parameters.push(getPrimitiveValueSpecification(filterValue.columnType, condition.value));
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
case TDS_FILTER_OPERATION.BLANK: {
|
|
110
|
+
filterCondition.function = condition.operation;
|
|
111
|
+
filterCondition.parameters.push(property);
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
case TDS_FILTER_OPERATION.NOT_EQUAL: {
|
|
115
|
+
filterCondition.function = NOT_FUNCTION_NAME;
|
|
116
|
+
const filterConditionFunc = new V1_AppliedFunction();
|
|
117
|
+
filterConditionFunc.function = TDS_FILTER_OPERATION.EQUALS;
|
|
118
|
+
filterConditionFunc.parameters.push(property);
|
|
119
|
+
filterConditionFunc.parameters.push(getPrimitiveValueSpecification(filterValue.columnType, condition.value));
|
|
120
|
+
filterCondition.parameters.push(filterConditionFunc);
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
case TDS_FILTER_OPERATION.NOT_BLANK: {
|
|
124
|
+
filterCondition.function = NOT_FUNCTION_NAME;
|
|
125
|
+
const filterConditionFunc = new V1_AppliedFunction();
|
|
126
|
+
filterConditionFunc.function = TDS_FILTER_OPERATION.BLANK;
|
|
127
|
+
filterConditionFunc.parameters.push(property);
|
|
128
|
+
filterConditionFunc.parameters.push(getPrimitiveValueSpecification(filterValue.columnType, condition.value));
|
|
129
|
+
filterCondition.parameters.push(filterConditionFunc);
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
case TDS_FILTER_OPERATION.NOT_CONTAINS: {
|
|
133
|
+
filterCondition.function = NOT_FUNCTION_NAME;
|
|
134
|
+
const filterConditionFunc = new V1_AppliedFunction();
|
|
135
|
+
filterConditionFunc.function = TDS_FILTER_OPERATION.CONTAINS;
|
|
136
|
+
filterConditionFunc.parameters.push(property);
|
|
137
|
+
filterConditionFunc.parameters.push(getPrimitiveValueSpecification(filterValue.columnType, condition.value));
|
|
138
|
+
filterCondition.parameters.push(filterConditionFunc);
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
default:
|
|
142
|
+
throw new UnsupportedOperationError(`Unsupported filter operation ${condition.operation}`);
|
|
143
|
+
}
|
|
144
|
+
conditionExpressions.push(filterCondition);
|
|
145
|
+
});
|
|
146
|
+
if (conditionExpressions.length > 1) {
|
|
147
|
+
const groupFunc = new V1_AppliedFunction();
|
|
148
|
+
groupFunc.function = groupCondition;
|
|
149
|
+
groupFunc.parameters = conditionExpressions;
|
|
150
|
+
filterLambda.body.push(groupFunc);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
filterLambda.body = filterLambda.body.concat(conditionExpressions);
|
|
154
|
+
}
|
|
155
|
+
if (filterLambda.body.length > 1) {
|
|
156
|
+
const andFunc = new V1_AppliedFunction();
|
|
157
|
+
andFunc.function = TDS_FILTER_GROUP.AND;
|
|
158
|
+
andFunc.parameters = filterLambda.body;
|
|
159
|
+
filterLambda.body = [andFunc];
|
|
160
|
+
}
|
|
161
|
+
filterLambda.parameters = [defaultVariable];
|
|
162
|
+
});
|
|
163
|
+
updateParentFunction(expressions, FILTER_FUNCTION_NAME, [filterLambda]);
|
|
164
|
+
};
|
|
165
|
+
const getAggregationColSpec = (column, functionName, columnType,
|
|
166
|
+
// Temporary. Remove it when we support groupBy with empty aggregations
|
|
167
|
+
columnName) => {
|
|
168
|
+
const colSpec = new V1_ColSpec();
|
|
169
|
+
const aggLambda = new V1_Lambda();
|
|
170
|
+
const property = new V1_AppliedProperty();
|
|
171
|
+
property.property = column;
|
|
172
|
+
property.class = columnType;
|
|
173
|
+
const defaultVariable = new V1_Variable();
|
|
174
|
+
defaultVariable.name = DEFAULT_VARIABLE_NAME;
|
|
175
|
+
property.parameters = [defaultVariable];
|
|
176
|
+
aggLambda.body.push(property);
|
|
177
|
+
aggLambda.parameters.push(defaultVariable);
|
|
178
|
+
colSpec.function1 = aggLambda;
|
|
179
|
+
const funcLambda = new V1_Lambda();
|
|
180
|
+
const aggFunc = new V1_AppliedFunction();
|
|
181
|
+
aggFunc.function = functionName;
|
|
182
|
+
const aggVariable = new V1_Variable();
|
|
183
|
+
aggVariable.name = 'agg';
|
|
184
|
+
funcLambda.body.push(aggFunc);
|
|
185
|
+
aggFunc.parameters.push(aggVariable);
|
|
186
|
+
funcLambda.parameters.push(aggVariable);
|
|
187
|
+
colSpec.function2 = funcLambda;
|
|
188
|
+
colSpec.name = columnName ?? column;
|
|
189
|
+
return colSpec;
|
|
190
|
+
};
|
|
191
|
+
const processGroupByOperations = (expressions, groupByOperation, columns) => {
|
|
192
|
+
if (!groupByOperation.columns.length) {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
const groupByInstance = new V1_ClassInstance();
|
|
196
|
+
groupByInstance.type = V1_ClassInstanceType.COL_SPEC_ARRAY;
|
|
197
|
+
const groupByColSpecArray = new V1_ColSpecArray();
|
|
198
|
+
const aggregationColSpecArray = new V1_ColSpecArray();
|
|
199
|
+
const aggregationInstance = new V1_ClassInstance();
|
|
200
|
+
aggregationInstance.type = V1_ClassInstanceType.COL_SPEC_ARRAY;
|
|
201
|
+
if (groupByOperation.groupKeys.length !== groupByOperation.columns.length) {
|
|
202
|
+
const groupKeys = groupByOperation.groupKeys;
|
|
203
|
+
const currentGroupByColumn = groupByOperation.columns[groupKeys.length];
|
|
204
|
+
const columnSpec = new V1_ColSpec();
|
|
205
|
+
columnSpec.name = guaranteeNonNullable(currentGroupByColumn);
|
|
206
|
+
groupByColSpecArray.colSpecs.push(columnSpec);
|
|
207
|
+
// Temporary. Remove it later when we support empty aggregations
|
|
208
|
+
if (groupByOperation.aggregations.length === 0) {
|
|
209
|
+
const column = guaranteeNonNullable(groupByOperation.columns[0]);
|
|
210
|
+
const colSpec = getAggregationColSpec(column, TDS_AGGREGATION_FUNCTION.COUNT, PRIMITIVE_TYPE.STRING, TDS_AGGREGATION_FUNCTION.COUNT);
|
|
211
|
+
aggregationColSpecArray.colSpecs.push(colSpec);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
// Projecting the columns when there is an aggregation because that would end up projecting just the aggregation column
|
|
215
|
+
if (groupByOperation.groupKeys.length === groupByOperation.columns.length &&
|
|
216
|
+
groupByOperation.aggregations.length > 0) {
|
|
217
|
+
const aggColumns = groupByOperation.aggregations.map((agg) => agg.column);
|
|
218
|
+
columns.forEach((column) => {
|
|
219
|
+
if (!aggColumns.includes(column)) {
|
|
220
|
+
const colSpec = new V1_ColSpec();
|
|
221
|
+
colSpec.name = column;
|
|
222
|
+
groupByColSpecArray.colSpecs.push(colSpec);
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
groupByOperation.aggregations.forEach((agg) => {
|
|
227
|
+
const colSpec = getAggregationColSpec(agg.column, agg.function, agg.columnType);
|
|
228
|
+
aggregationColSpecArray.colSpecs.push(colSpec);
|
|
229
|
+
});
|
|
230
|
+
groupByInstance.value = groupByColSpecArray;
|
|
231
|
+
aggregationInstance.value = aggregationColSpecArray;
|
|
232
|
+
if (groupByColSpecArray.colSpecs.length !== 0 ||
|
|
233
|
+
aggregationColSpecArray.colSpecs.length !== 0) {
|
|
234
|
+
updateParentFunction(expressions, GROUPBY_FUNCTION_NAME, [
|
|
235
|
+
groupByInstance,
|
|
236
|
+
aggregationInstance,
|
|
237
|
+
]);
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
const processSortOperations = (expressions, sortOperations, groupBy) => {
|
|
241
|
+
if (sortOperations.length === 0) {
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
const sortCollection = new V1_Collection();
|
|
245
|
+
sortOperations.forEach((sortValue) => {
|
|
246
|
+
if (groupBy.columns.length === groupBy.groupKeys.length ||
|
|
247
|
+
groupBy.columns.indexOf(sortValue.column) === groupBy.groupKeys.length) {
|
|
248
|
+
const sortFunc = new V1_AppliedFunction();
|
|
249
|
+
sortFunc.function = sortValue.order;
|
|
250
|
+
const instance = new V1_ClassInstance();
|
|
251
|
+
instance.type = V1_ClassInstanceType.COL_SPEC;
|
|
252
|
+
const value = new V1_ColSpec();
|
|
253
|
+
value.name = sortValue.column;
|
|
254
|
+
instance.value = value;
|
|
255
|
+
sortFunc.parameters.push(instance);
|
|
256
|
+
sortCollection.values.push(sortFunc);
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
updateParentFunction(expressions, SORT_FUNCTION_NAME, [sortCollection]);
|
|
260
|
+
};
|
|
261
|
+
export const buildLambdaExpressions = (funcBody, request) => {
|
|
262
|
+
const groupBy = request.groupBy;
|
|
263
|
+
for (let index = 0; index < groupBy.groupKeys.length; index++) {
|
|
264
|
+
const groupFilter = new TDSFilter(guaranteeNonNullable(groupBy.columns.at(index)), PRIMITIVE_TYPE.STRING, [
|
|
265
|
+
new TDSFilterCondition(TDS_FILTER_OPERATION.EQUALS, groupBy.groupKeys.at(index)),
|
|
266
|
+
], TDS_FILTER_GROUP.AND);
|
|
267
|
+
request.filter.push(groupFilter);
|
|
268
|
+
}
|
|
269
|
+
const expressions = [funcBody];
|
|
270
|
+
processFilterOperations(expressions, request.filter);
|
|
271
|
+
processGroupByOperations(expressions, request.groupBy, request.columns);
|
|
272
|
+
processSortOperations(expressions, request.sort, request.groupBy);
|
|
273
|
+
const lambda = new V1_Lambda();
|
|
274
|
+
lambda.body = expressions;
|
|
275
|
+
return lambda;
|
|
276
|
+
};
|
|
277
|
+
//# sourceMappingURL=TDSLambdaBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TDSLambdaBuilder.js","sourceRoot":"","sources":["../../../src/components/grid/TDSLambdaBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,cAAc,EACd,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,aAAa,EACb,SAAS,EAGT,WAAW,EACX,cAAc,EACd,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,SAAS,EACT,kBAAkB,EAIlB,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,MAAM,8BAA8B,GAAG,CACrC,IAAoB,EACpB,MAAe,EACiB,EAAE;IAClC,QAAQ,IAAI,EAAE;QACZ,KAAK,cAAc,CAAC,MAAM,CAAC,CAAC;YAC1B,MAAM,WAAW,GAAG,IAAI,UAAU,EAAE,CAAC;YACrC,WAAW,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,WAAW,CAAC;SACpB;QACD,KAAK,cAAc,CAAC,OAAO,CAAC,CAAC;YAC3B,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC;YACvC,YAAY,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAChD,OAAO,YAAY,CAAC;SACrB;QACD,KAAK,cAAc,CAAC,MAAM,CAAC;QAC3B,KAAK,cAAc,CAAC,OAAO,CAAC,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;YACnC,QAAQ,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC3C,OAAO,QAAQ,CAAC;SACjB;QACD,KAAK,cAAc,CAAC,OAAO,CAAC,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;YACnC,QAAQ,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC3C,OAAO,QAAQ,CAAC;SACjB;QACD,KAAK,cAAc,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACzC,OAAO,MAAM,CAAC;SACf;QACD,KAAK,cAAc,CAAC,IAAI,CAAC;QACzB,KAAK,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;YACrC,SAAS,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC5C,OAAO,SAAS,CAAC;SAClB;QACD,KAAK,cAAc,CAAC,UAAU,CAAC,CAAC;YAC9B,MAAM,WAAW,GAAG,IAAI,cAAc,EAAE,CAAC;YACzC,WAAW,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,WAAW,CAAC;SACpB;QACD,KAAK,cAAc,CAAC,UAAU,CAAC,CAAC;YAC9B,MAAM,WAAW,GAAG,IAAI,cAAc,EAAE,CAAC;YACzC,WAAW,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,WAAW,CAAC;SACpB;QACD;YACE,MAAM,IAAI,yBAAyB,CACjC,+BAA+B,IAAI,EAAE,CACtC,CAAC;KACL;AACH,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,WAAoC,EACpC,YAAoB,EACpB,KAA8B,EACxB,EAAE;IACR,IAAI,cAAc,GAA4B;QAC5C,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KACrC,CAAC;IACF,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC3C,SAAS,CAAC,QAAQ,GAAG,YAAY,CAAC;IAClC,SAAS,CAAC,UAAU,GAAG,cAAc,CAAC;IACtC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAC9B,WAAoC,EACpC,OAAoB,EACd,EAAE;IACR,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO;KACR;IACD,MAAM,YAAY,GAAG,IAAI,SAAS,EAAE,CAAC;IACrC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;QAC1C,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;QAClD,MAAM,eAAe,GAAG,IAAI,WAAW,EAAE,CAAC;QAC1C,eAAe,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAC7C,MAAM,oBAAoB,GAA4B,EAAE,CAAC;QACzD,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAC/B,MAAM,eAAe,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAC1C,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC;YACvC,QAAQ,CAAC,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC;YACxC,QAAQ,CAAC,UAAU,GAAG,CAAC,eAAe,CAAC,CAAC;YAExC,QAAQ,SAAS,CAAC,SAAS,EAAE;gBAC3B,KAAK,oBAAoB,CAAC,MAAM,CAAC;gBACjC,KAAK,oBAAoB,CAAC,YAAY,CAAC;gBACvC,KAAK,oBAAoB,CAAC,qBAAqB,CAAC;gBAChD,KAAK,oBAAoB,CAAC,SAAS,CAAC;gBACpC,KAAK,oBAAoB,CAAC,kBAAkB,CAAC;gBAC7C,KAAK,oBAAoB,CAAC,QAAQ,CAAC;gBACnC,KAAK,oBAAoB,CAAC,SAAS,CAAC;gBACpC,KAAK,oBAAoB,CAAC,WAAW,CAAC,CAAC;oBACrC,eAAe,CAAC,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC;oBAC/C,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC1C,eAAe,CAAC,UAAU,CAAC,IAAI,CAC7B,8BAA8B,CAC5B,WAAW,CAAC,UAAU,EACtB,SAAS,CAAC,KAAK,CAChB,CACF,CAAC;oBACF,MAAM;iBACP;gBACD,KAAK,oBAAoB,CAAC,KAAK,CAAC,CAAC;oBAC/B,eAAe,CAAC,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC;oBAC/C,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC1C,MAAM;iBACP;gBACD,KAAK,oBAAoB,CAAC,SAAS,CAAC,CAAC;oBACnC,eAAe,CAAC,QAAQ,GAAG,iBAAiB,CAAC;oBAE7C,MAAM,mBAAmB,GAAG,IAAI,kBAAkB,EAAE,CAAC;oBACrD,mBAAmB,CAAC,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC;oBAC3D,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC9C,mBAAmB,CAAC,UAAU,CAAC,IAAI,CACjC,8BAA8B,CAC5B,WAAW,CAAC,UAAU,EACtB,SAAS,CAAC,KAAK,CAChB,CACF,CAAC;oBAEF,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBACrD,MAAM;iBACP;gBACD,KAAK,oBAAoB,CAAC,SAAS,CAAC,CAAC;oBACnC,eAAe,CAAC,QAAQ,GAAG,iBAAiB,CAAC;oBAE7C,MAAM,mBAAmB,GAAG,IAAI,kBAAkB,EAAE,CAAC;oBACrD,mBAAmB,CAAC,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC;oBAC1D,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC9C,mBAAmB,CAAC,UAAU,CAAC,IAAI,CACjC,8BAA8B,CAC5B,WAAW,CAAC,UAAU,EACtB,SAAS,CAAC,KAAK,CAChB,CACF,CAAC;oBAEF,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBACrD,MAAM;iBACP;gBACD,KAAK,oBAAoB,CAAC,YAAY,CAAC,CAAC;oBACtC,eAAe,CAAC,QAAQ,GAAG,iBAAiB,CAAC;oBAE7C,MAAM,mBAAmB,GAAG,IAAI,kBAAkB,EAAE,CAAC;oBACrD,mBAAmB,CAAC,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC;oBAC7D,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC9C,mBAAmB,CAAC,UAAU,CAAC,IAAI,CACjC,8BAA8B,CAC5B,WAAW,CAAC,UAAU,EACtB,SAAS,CAAC,KAAK,CAChB,CACF,CAAC;oBAEF,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBACrD,MAAM;iBACP;gBACD;oBACE,MAAM,IAAI,yBAAyB,CACjC,gCAAgC,SAAS,CAAC,SAAS,EAAE,CACtD,CAAC;aACL;YACD,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,MAAM,SAAS,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAC3C,SAAS,CAAC,QAAQ,GAAG,cAAc,CAAC;YACpC,SAAS,CAAC,UAAU,GAAG,oBAAoB,CAAC;YAC5C,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC;aAAM;YACL,YAAY,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;SACpE;QAED,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACzC,OAAO,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC;YACxC,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC;YACvC,YAAY,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;SAC/B;QACD,YAAY,CAAC,UAAU,GAAG,CAAC,eAAe,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,oBAAoB,CAAC,WAAW,EAAE,oBAAoB,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC5B,MAAc,EACd,YAAsC,EACtC,UAA0B;AAC1B,uEAAuE;AACvE,UAAmB,EACP,EAAE;IACd,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC;IAC5B,MAAM,eAAe,GAAG,IAAI,WAAW,EAAE,CAAC;IAC1C,eAAe,CAAC,IAAI,GAAG,qBAAqB,CAAC;IAC7C,QAAQ,CAAC,UAAU,GAAG,CAAC,eAAe,CAAC,CAAC;IACxC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3C,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAE9B,MAAM,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACzC,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC;IAChC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;IACzB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC;IAE/B,OAAO,CAAC,IAAI,GAAG,UAAU,IAAI,MAAM,CAAC;IACpC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAC/B,WAAoC,EACpC,gBAA4B,EAC5B,OAAiB,EACX,EAAE;IACR,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE;QACpC,OAAO;KACR;IACD,MAAM,eAAe,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAC/C,eAAe,CAAC,IAAI,GAAG,oBAAoB,CAAC,cAAc,CAAC;IAC3D,MAAM,mBAAmB,GAAG,IAAI,eAAe,EAAE,CAAC;IAClD,MAAM,uBAAuB,GAAG,IAAI,eAAe,EAAE,CAAC;IACtD,MAAM,mBAAmB,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACnD,mBAAmB,CAAC,IAAI,GAAG,oBAAoB,CAAC,cAAc,CAAC;IAE/D,IAAI,gBAAgB,CAAC,SAAS,CAAC,MAAM,KAAK,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE;QACzE,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC;QAC7C,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QACpC,UAAU,CAAC,IAAI,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;QAC7D,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE9C,gEAAgE;QAChE,IAAI,gBAAgB,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9C,MAAM,MAAM,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,MAAM,OAAO,GAAG,qBAAqB,CACnC,MAAM,EACN,wBAAwB,CAAC,KAAK,EAC9B,cAAc,CAAC,MAAM,EACrB,wBAAwB,CAAC,KAAK,CAC/B,CAAC;YACF,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAChD;KACF;IAED,uHAAuH;IACvH,IACE,gBAAgB,CAAC,SAAS,CAAC,MAAM,KAAK,gBAAgB,CAAC,OAAO,CAAC,MAAM;QACrE,gBAAgB,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EACxC;QACA,MAAM,UAAU,GAAG,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1E,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACzB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAChC,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;gBACtB,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC5C;QACH,CAAC,CAAC,CAAC;KACJ;IAED,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC5C,MAAM,OAAO,GAAG,qBAAqB,CACnC,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,UAAU,CACf,CAAC;QACF,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,eAAe,CAAC,KAAK,GAAG,mBAAmB,CAAC;IAC5C,mBAAmB,CAAC,KAAK,GAAG,uBAAuB,CAAC;IAEpD,IACE,mBAAmB,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QACzC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAC7C;QACA,oBAAoB,CAAC,WAAW,EAAE,qBAAqB,EAAE;YACvD,eAAe;YACf,mBAAmB;SACpB,CAAC,CAAC;KACJ;AACH,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC5B,WAAoC,EACpC,cAAyB,EACzB,OAAmB,EACb,EAAE;IACR,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAC/B,OAAO;KACR;IACD,MAAM,cAAc,GAAG,IAAI,aAAa,EAAE,CAAC;IAC3C,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACnC,IACE,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,MAAM;YACnD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,MAAM,EACtE;YACA,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAC1C,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;YACxC,QAAQ,CAAC,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC;YAC9B,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;YACvB,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACtC;IACH,CAAC,CAAC,CAAC;IACH,oBAAoB,CAAC,WAAW,EAAE,kBAAkB,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,QAA+B,EAC/B,OAAmB,EACR,EAAE;IACb,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAC7D,MAAM,WAAW,GAAG,IAAI,SAAS,CAC/B,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAC/C,cAAc,CAAC,MAAM,EACrB;YACE,IAAI,kBAAkB,CACpB,oBAAoB,CAAC,MAAM,EAC3B,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAC5B;SACF,EACD,gBAAgB,CAAC,GAAG,CACrB,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAClC;IACD,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,uBAAuB,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,wBAAwB,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACxE,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAC/B,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import type { PRIMITIVE_TYPE } from '@finos/legend-graph';
|
|
17
|
+
export declare enum TDS_FILTER_OPERATION {
|
|
18
|
+
EQUALS = "equal",
|
|
19
|
+
NOT_EQUAL = "notEqual",
|
|
20
|
+
GREATER_THAN = "greaterThan",
|
|
21
|
+
GREATER_THAN_OR_EQUAL = "greaterThanOrEqual",
|
|
22
|
+
LESS_THAN = "lessThan",
|
|
23
|
+
LESS_THAN_OR_EQUAL = "lessThanOrEqual",
|
|
24
|
+
BLANK = "isEmpty",
|
|
25
|
+
NOT_BLANK = "isNotEmpty",
|
|
26
|
+
CONTAINS = "contains",
|
|
27
|
+
NOT_CONTAINS = "notContains",
|
|
28
|
+
STARTS_WITH = "startsWith",
|
|
29
|
+
ENDS_WITH = "endsWith"
|
|
30
|
+
}
|
|
31
|
+
export declare enum TDS_FILTER_GROUP {
|
|
32
|
+
AND = "and",
|
|
33
|
+
OR = "or"
|
|
34
|
+
}
|
|
35
|
+
export declare enum TDS_AGGREGATION_FUNCTION {
|
|
36
|
+
SUM = "sum",
|
|
37
|
+
MIN = "min",
|
|
38
|
+
MAX = "max",
|
|
39
|
+
COUNT = "count",
|
|
40
|
+
AVG = "avg",
|
|
41
|
+
FIRST = "first",
|
|
42
|
+
LAST = "last"
|
|
43
|
+
}
|
|
44
|
+
export declare enum TDS_SORT_ORDER {
|
|
45
|
+
ASCENDING = "ascending",
|
|
46
|
+
DESCENDING = "descending"
|
|
47
|
+
}
|
|
48
|
+
export declare enum FILTER_TYPE {
|
|
49
|
+
TEXT = "text",
|
|
50
|
+
NUMBER = "number"
|
|
51
|
+
}
|
|
52
|
+
export declare class TDSFilterCondition {
|
|
53
|
+
operation: TDS_FILTER_OPERATION;
|
|
54
|
+
value: unknown;
|
|
55
|
+
constructor(operation: TDS_FILTER_OPERATION, value: unknown);
|
|
56
|
+
}
|
|
57
|
+
export declare class TDSFilter {
|
|
58
|
+
column: string;
|
|
59
|
+
columnType: PRIMITIVE_TYPE;
|
|
60
|
+
conditions: TDSFilterCondition[];
|
|
61
|
+
groupOperation: TDS_FILTER_GROUP;
|
|
62
|
+
constructor(column: string, columnType: PRIMITIVE_TYPE, conditions: TDSFilterCondition[], groupOperation: TDS_FILTER_GROUP);
|
|
63
|
+
}
|
|
64
|
+
export declare class TDSSort {
|
|
65
|
+
column: string;
|
|
66
|
+
order: TDS_SORT_ORDER;
|
|
67
|
+
constructor(column: string, order: TDS_SORT_ORDER);
|
|
68
|
+
}
|
|
69
|
+
export declare class TDSAggregation {
|
|
70
|
+
column: string;
|
|
71
|
+
columnType: PRIMITIVE_TYPE;
|
|
72
|
+
function: TDS_AGGREGATION_FUNCTION;
|
|
73
|
+
constructor(column: string, columnType: PRIMITIVE_TYPE, _function: TDS_AGGREGATION_FUNCTION);
|
|
74
|
+
}
|
|
75
|
+
export declare class TDSGroupby {
|
|
76
|
+
columns: string[];
|
|
77
|
+
groupKeys: string[];
|
|
78
|
+
aggregations: TDSAggregation[];
|
|
79
|
+
constructor(columns: string[], groupKeys: string[], aggregations: TDSAggregation[]);
|
|
80
|
+
}
|
|
81
|
+
export declare class TDSRequest {
|
|
82
|
+
startRow?: number | undefined;
|
|
83
|
+
endRow?: number | undefined;
|
|
84
|
+
columns: string[];
|
|
85
|
+
filter: TDSFilter[];
|
|
86
|
+
sort: TDSSort[];
|
|
87
|
+
groupBy: TDSGroupby;
|
|
88
|
+
constructor(columns: string[], filter: TDSFilter[], sort: TDSSort[], groupBy: TDSGroupby, startRow?: number | undefined, endRow?: number | undefined);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=TDSRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TDSRequest.d.ts","sourceRoot":"","sources":["../../../src/components/grid/TDSRequest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,oBAAY,oBAAoB;IAC9B,MAAM,UAAU;IAChB,SAAS,aAAa;IACtB,YAAY,gBAAgB;IAC5B,qBAAqB,uBAAuB;IAC5C,SAAS,aAAa;IACtB,kBAAkB,oBAAoB;IACtC,KAAK,YAAY;IACjB,SAAS,eAAe;IACxB,QAAQ,aAAa;IACrB,YAAY,gBAAgB;IAC5B,WAAW,eAAe;IAC1B,SAAS,aAAa;CACvB;AAED,oBAAY,gBAAgB;IAC1B,GAAG,QAAQ;IACX,EAAE,OAAO;CACV;AAED,oBAAY,wBAAwB;IAClC,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,oBAAY,cAAc;IACxB,SAAS,cAAc;IACvB,UAAU,eAAe;CAC1B;AAED,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,qBAAa,kBAAkB;IAC7B,SAAS,EAAG,oBAAoB,CAAC;IACjC,KAAK,EAAG,OAAO,CAAC;gBAEJ,SAAS,EAAE,oBAAoB,EAAE,KAAK,EAAE,OAAO;CAI5D;AAED,qBAAa,SAAS;IACpB,MAAM,EAAG,MAAM,CAAC;IAChB,UAAU,EAAG,cAAc,CAAC;IAC5B,UAAU,EAAG,kBAAkB,EAAE,CAAC;IAClC,cAAc,EAAG,gBAAgB,CAAC;gBAGhC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,kBAAkB,EAAE,EAChC,cAAc,EAAE,gBAAgB;CAOnC;AAED,qBAAa,OAAO;IAClB,MAAM,EAAG,MAAM,CAAC;IAChB,KAAK,EAAG,cAAc,CAAC;gBAEX,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc;CAIlD;AAED,qBAAa,cAAc;IACzB,MAAM,EAAG,MAAM,CAAC;IAChB,UAAU,EAAG,cAAc,CAAC;IAC5B,QAAQ,EAAG,wBAAwB,CAAC;gBAGlC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,wBAAwB;CAMtC;AAED,qBAAa,UAAU;IACrB,OAAO,EAAG,MAAM,EAAE,CAAC;IACnB,SAAS,EAAG,MAAM,EAAE,CAAC;IACrB,YAAY,EAAG,cAAc,EAAE,CAAC;gBAG9B,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,MAAM,EAAE,EACnB,YAAY,EAAE,cAAc,EAAE;CAMjC;AAED,qBAAa,UAAU;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAG,MAAM,EAAE,CAAC;IACnB,MAAM,EAAG,SAAS,EAAE,CAAC;IACrB,IAAI,EAAG,OAAO,EAAE,CAAC;IACjB,OAAO,EAAG,UAAU,CAAC;gBAGnB,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,SAAS,EAAE,EACnB,IAAI,EAAE,OAAO,EAAE,EACf,OAAO,EAAE,UAAU,EACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS;CAS9B"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export var TDS_FILTER_OPERATION;
|
|
17
|
+
(function (TDS_FILTER_OPERATION) {
|
|
18
|
+
TDS_FILTER_OPERATION["EQUALS"] = "equal";
|
|
19
|
+
TDS_FILTER_OPERATION["NOT_EQUAL"] = "notEqual";
|
|
20
|
+
TDS_FILTER_OPERATION["GREATER_THAN"] = "greaterThan";
|
|
21
|
+
TDS_FILTER_OPERATION["GREATER_THAN_OR_EQUAL"] = "greaterThanOrEqual";
|
|
22
|
+
TDS_FILTER_OPERATION["LESS_THAN"] = "lessThan";
|
|
23
|
+
TDS_FILTER_OPERATION["LESS_THAN_OR_EQUAL"] = "lessThanOrEqual";
|
|
24
|
+
TDS_FILTER_OPERATION["BLANK"] = "isEmpty";
|
|
25
|
+
TDS_FILTER_OPERATION["NOT_BLANK"] = "isNotEmpty";
|
|
26
|
+
TDS_FILTER_OPERATION["CONTAINS"] = "contains";
|
|
27
|
+
TDS_FILTER_OPERATION["NOT_CONTAINS"] = "notContains";
|
|
28
|
+
TDS_FILTER_OPERATION["STARTS_WITH"] = "startsWith";
|
|
29
|
+
TDS_FILTER_OPERATION["ENDS_WITH"] = "endsWith";
|
|
30
|
+
})(TDS_FILTER_OPERATION || (TDS_FILTER_OPERATION = {}));
|
|
31
|
+
export var TDS_FILTER_GROUP;
|
|
32
|
+
(function (TDS_FILTER_GROUP) {
|
|
33
|
+
TDS_FILTER_GROUP["AND"] = "and";
|
|
34
|
+
TDS_FILTER_GROUP["OR"] = "or";
|
|
35
|
+
})(TDS_FILTER_GROUP || (TDS_FILTER_GROUP = {}));
|
|
36
|
+
export var TDS_AGGREGATION_FUNCTION;
|
|
37
|
+
(function (TDS_AGGREGATION_FUNCTION) {
|
|
38
|
+
TDS_AGGREGATION_FUNCTION["SUM"] = "sum";
|
|
39
|
+
TDS_AGGREGATION_FUNCTION["MIN"] = "min";
|
|
40
|
+
TDS_AGGREGATION_FUNCTION["MAX"] = "max";
|
|
41
|
+
TDS_AGGREGATION_FUNCTION["COUNT"] = "count";
|
|
42
|
+
TDS_AGGREGATION_FUNCTION["AVG"] = "avg";
|
|
43
|
+
TDS_AGGREGATION_FUNCTION["FIRST"] = "first";
|
|
44
|
+
TDS_AGGREGATION_FUNCTION["LAST"] = "last";
|
|
45
|
+
})(TDS_AGGREGATION_FUNCTION || (TDS_AGGREGATION_FUNCTION = {}));
|
|
46
|
+
export var TDS_SORT_ORDER;
|
|
47
|
+
(function (TDS_SORT_ORDER) {
|
|
48
|
+
TDS_SORT_ORDER["ASCENDING"] = "ascending";
|
|
49
|
+
TDS_SORT_ORDER["DESCENDING"] = "descending";
|
|
50
|
+
})(TDS_SORT_ORDER || (TDS_SORT_ORDER = {}));
|
|
51
|
+
export var FILTER_TYPE;
|
|
52
|
+
(function (FILTER_TYPE) {
|
|
53
|
+
FILTER_TYPE["TEXT"] = "text";
|
|
54
|
+
FILTER_TYPE["NUMBER"] = "number";
|
|
55
|
+
})(FILTER_TYPE || (FILTER_TYPE = {}));
|
|
56
|
+
export class TDSFilterCondition {
|
|
57
|
+
operation;
|
|
58
|
+
value;
|
|
59
|
+
constructor(operation, value) {
|
|
60
|
+
this.operation = operation;
|
|
61
|
+
this.value = value;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export class TDSFilter {
|
|
65
|
+
column;
|
|
66
|
+
columnType;
|
|
67
|
+
conditions;
|
|
68
|
+
groupOperation;
|
|
69
|
+
constructor(column, columnType, conditions, groupOperation) {
|
|
70
|
+
this.column = column;
|
|
71
|
+
this.columnType = columnType;
|
|
72
|
+
this.conditions = conditions;
|
|
73
|
+
this.groupOperation = groupOperation;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export class TDSSort {
|
|
77
|
+
column;
|
|
78
|
+
order;
|
|
79
|
+
constructor(column, order) {
|
|
80
|
+
this.column = column;
|
|
81
|
+
this.order = order;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export class TDSAggregation {
|
|
85
|
+
column;
|
|
86
|
+
columnType;
|
|
87
|
+
function;
|
|
88
|
+
constructor(column, columnType, _function) {
|
|
89
|
+
this.column = column;
|
|
90
|
+
this.columnType = columnType;
|
|
91
|
+
this.function = _function;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export class TDSGroupby {
|
|
95
|
+
columns;
|
|
96
|
+
groupKeys;
|
|
97
|
+
aggregations;
|
|
98
|
+
constructor(columns, groupKeys, aggregations) {
|
|
99
|
+
this.columns = columns;
|
|
100
|
+
this.groupKeys = groupKeys;
|
|
101
|
+
this.aggregations = aggregations;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
export class TDSRequest {
|
|
105
|
+
startRow;
|
|
106
|
+
endRow;
|
|
107
|
+
columns;
|
|
108
|
+
filter;
|
|
109
|
+
sort;
|
|
110
|
+
groupBy;
|
|
111
|
+
constructor(columns, filter, sort, groupBy, startRow, endRow) {
|
|
112
|
+
this.startRow = startRow;
|
|
113
|
+
this.endRow = endRow;
|
|
114
|
+
this.columns = columns;
|
|
115
|
+
this.filter = filter;
|
|
116
|
+
this.sort = sort;
|
|
117
|
+
this.groupBy = groupBy;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=TDSRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TDSRequest.js","sourceRoot":"","sources":["../../../src/components/grid/TDSRequest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,CAAN,IAAY,oBAaX;AAbD,WAAY,oBAAoB;IAC9B,wCAAgB,CAAA;IAChB,8CAAsB,CAAA;IACtB,oDAA4B,CAAA;IAC5B,oEAA4C,CAAA;IAC5C,8CAAsB,CAAA;IACtB,8DAAsC,CAAA;IACtC,yCAAiB,CAAA;IACjB,gDAAwB,CAAA;IACxB,6CAAqB,CAAA;IACrB,oDAA4B,CAAA;IAC5B,kDAA0B,CAAA;IAC1B,8CAAsB,CAAA;AACxB,CAAC,EAbW,oBAAoB,KAApB,oBAAoB,QAa/B;AAED,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,+BAAW,CAAA;IACX,6BAAS,CAAA;AACX,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AAED,MAAM,CAAN,IAAY,wBAQX;AARD,WAAY,wBAAwB;IAClC,uCAAW,CAAA;IACX,uCAAW,CAAA;IACX,uCAAW,CAAA;IACX,2CAAe,CAAA;IACf,uCAAW,CAAA;IACX,2CAAe,CAAA;IACf,yCAAa,CAAA;AACf,CAAC,EARW,wBAAwB,KAAxB,wBAAwB,QAQnC;AAED,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,2CAAyB,CAAA;AAC3B,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,gCAAiB,CAAA;AACnB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,MAAM,OAAO,kBAAkB;IAC7B,SAAS,CAAwB;IACjC,KAAK,CAAW;IAEhB,YAAY,SAA+B,EAAE,KAAc;QACzD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,SAAS;IACpB,MAAM,CAAU;IAChB,UAAU,CAAkB;IAC5B,UAAU,CAAwB;IAClC,cAAc,CAAoB;IAElC,YACE,MAAc,EACd,UAA0B,EAC1B,UAAgC,EAChC,cAAgC;QAEhC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,OAAO;IAClB,MAAM,CAAU;IAChB,KAAK,CAAkB;IAEvB,YAAY,MAAc,EAAE,KAAqB;QAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,cAAc;IACzB,MAAM,CAAU;IAChB,UAAU,CAAkB;IAC5B,QAAQ,CAA4B;IAEpC,YACE,MAAc,EACd,UAA0B,EAC1B,SAAmC;QAEnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,UAAU;IACrB,OAAO,CAAY;IACnB,SAAS,CAAY;IACrB,YAAY,CAAoB;IAEhC,YACE,OAAiB,EACjB,SAAmB,EACnB,YAA8B;QAE9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,UAAU;IACrB,QAAQ,CAAsB;IAC9B,MAAM,CAAsB;IAC5B,OAAO,CAAY;IACnB,MAAM,CAAe;IACrB,IAAI,CAAa;IACjB,OAAO,CAAc;IAErB,YACE,OAAiB,EACjB,MAAmB,EACnB,IAAe,EACf,OAAmB,EACnB,QAA6B,EAC7B,MAA2B;QAE3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
|