@finos/legend-query-builder 4.11.4 → 4.11.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. package/lib/components/QueryBuilder.js +1 -1
  2. package/lib/components/QueryBuilder.js.map +1 -1
  3. package/lib/components/execution-plan/SQLExecutionNodeViewer.js +1 -1
  4. package/lib/components/execution-plan/SQLExecutionNodeViewer.js.map +1 -1
  5. package/lib/components/{QueryBuilderResultPanel.d.ts → result/QueryBuilderResultPanel.d.ts} +1 -2
  6. package/lib/components/result/QueryBuilderResultPanel.d.ts.map +1 -0
  7. package/lib/components/result/QueryBuilderResultPanel.js +185 -0
  8. package/lib/components/result/QueryBuilderResultPanel.js.map +1 -0
  9. package/lib/components/result/tds/QueryBuilderTDSGridResult.d.ts +24 -0
  10. package/lib/components/result/tds/QueryBuilderTDSGridResult.d.ts.map +1 -0
  11. package/lib/components/result/tds/QueryBuilderTDSGridResult.js +204 -0
  12. package/lib/components/result/tds/QueryBuilderTDSGridResult.js.map +1 -0
  13. package/lib/components/result/tds/QueryBuilderTDSResultShared.d.ts +37 -0
  14. package/lib/components/result/tds/QueryBuilderTDSResultShared.d.ts.map +1 -0
  15. package/lib/components/result/tds/QueryBuilderTDSResultShared.js +251 -0
  16. package/lib/components/result/tds/QueryBuilderTDSResultShared.js.map +1 -0
  17. package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.d.ts +24 -0
  18. package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.d.ts.map +1 -0
  19. package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.js +224 -0
  20. package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.js.map +1 -0
  21. package/lib/index.css +2 -2
  22. package/lib/index.css.map +1 -1
  23. package/lib/package.json +1 -1
  24. package/lib/stores/QueryBuilderResultState.d.ts +5 -1
  25. package/lib/stores/QueryBuilderResultState.d.ts.map +1 -1
  26. package/lib/stores/QueryBuilderResultState.js.map +1 -1
  27. package/package.json +3 -3
  28. package/src/components/QueryBuilder.tsx +1 -1
  29. package/src/components/execution-plan/SQLExecutionNodeViewer.tsx +1 -1
  30. package/src/components/result/QueryBuilderResultPanel.tsx +569 -0
  31. package/src/components/result/tds/QueryBuilderTDSGridResult.tsx +346 -0
  32. package/src/components/result/tds/QueryBuilderTDSResultShared.tsx +502 -0
  33. package/src/components/result/tds/QueryBuilderTDSSimpleGridResult.tsx +387 -0
  34. package/src/stores/QueryBuilderResultState.ts +12 -1
  35. package/tsconfig.json +4 -1
  36. package/lib/components/QueryBuilderResultPanel.d.ts.map +0 -1
  37. package/lib/components/QueryBuilderResultPanel.js +0 -633
  38. package/lib/components/QueryBuilderResultPanel.js.map +0 -1
  39. package/src/components/QueryBuilderResultPanel.tsx +0 -1412
@@ -0,0 +1,37 @@
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
+ /// <reference types="react" resolution-mode="require"/>
17
+ import { type TDSExecutionResult, type ExecutionResult } from '@finos/legend-graph';
18
+ import { type ApplicationStore, type LegendApplicationConfig, type LegendApplicationPlugin, type LegendApplicationPluginManager } from '@finos/legend-application';
19
+ import type { QueryBuilderTDSState } from '../../../stores/fetch-structure/tds/QueryBuilderTDSState.js';
20
+ import { type DataGridCellRendererParams } from '@finos/legend-lego/data-grid';
21
+ import type { QueryBuilderResultState, QueryBuilderTDSResultCellData, QueryBuilderTDSRowDataType } from '../../../stores/QueryBuilderResultState.js';
22
+ export declare const tryToFormatSql: (sql: string) => string;
23
+ export declare const getExecutedSqlFromExecutionResult: (execResult: ExecutionResult) => string | undefined;
24
+ export declare const getAggregationTDSColumnCustomizations: (result: TDSExecutionResult, columnName: string) => object | undefined;
25
+ export declare const getRowDataFromExecutionResult: (executionResult: TDSExecutionResult) => QueryBuilderTDSRowDataType[];
26
+ export type IQueryRendererParamsWithGridType = DataGridCellRendererParams & {
27
+ resultState: QueryBuilderResultState;
28
+ tdsExecutionResult: TDSExecutionResult;
29
+ };
30
+ export declare const filterByOrOutValues: (applicationStore: ApplicationStore<LegendApplicationConfig, LegendApplicationPluginManager<LegendApplicationPlugin>>, data: QueryBuilderTDSResultCellData | null, isFilterBy: boolean, tdsState: QueryBuilderTDSState) => void;
31
+ export declare const QueryBuilderGridResultContextMenu: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<Omit<{
32
+ data: QueryBuilderTDSResultCellData | null;
33
+ tdsState: QueryBuilderTDSState;
34
+ copyCellValueFunc: () => void;
35
+ copyCellRowValueFunc: () => void;
36
+ } & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>>;
37
+ //# sourceMappingURL=QueryBuilderTDSResultShared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBuilderTDSResultShared.d.ts","sourceRoot":"","sources":["../../../../src/components/result/tds/QueryBuilderTDSResultShared.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;;AASH,OAAO,EACL,KAAK,kBAAkB,EAMvB,KAAK,eAAe,EAErB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EAEpC,MAAM,2BAA2B,CAAC;AA4BnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6DAA6D,CAAC;AAKxG,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,KAAK,EACV,uBAAuB,EACvB,6BAA6B,EAC7B,0BAA0B,EAC3B,MAAM,4CAA4C,CAAC;AAQpD,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,MAY5C,CAAC;AAEF,eAAO,MAAM,iCAAiC,eAChC,eAAe,KAC1B,MAAM,GAAG,SAiBX,CAAC;AAEF,eAAO,MAAM,qCAAqC,WACxC,kBAAkB,cACd,MAAM,KACjB,MAAM,GAAG,SA6BX,CAAC;AAEF,eAAO,MAAM,6BAA6B,oBACvB,kBAAkB,KAClC,0BAA0B,EAe5B,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG,0BAA0B,GAAG;IAC1E,WAAW,EAAE,uBAAuB,CAAC;IACrC,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,CAAC;AAyQF,eAAO,MAAM,mBAAmB,qBACZ,iBAChB,uBAAuB,EACvB,+BAA+B,uBAAuB,CAAC,CACxD,QACK,6BAA6B,GAAG,IAAI,cAC9B,OAAO,YACT,oBAAoB,KAC7B,IAIF,CAAC;AAEF,eAAO,MAAM,iCAAiC;UAIlC,6BAA6B,GAAG,IAAI;cAChC,oBAAoB;uBACX,MAAM,IAAI;0BACP,MAAM,IAAI;2GAsCrC,CAAC"}
@@ -0,0 +1,251 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright (c) 2020-present, Goldman Sachs
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { MenuContent, MenuContentItem, MenuContentDivider, } from '@finos/legend-art';
18
+ import { observer } from 'mobx-react-lite';
19
+ import { flowResult } from 'mobx';
20
+ import { InstanceValue, EnumValueInstanceValue, EnumValueExplicitReference, PRIMITIVE_TYPE, RelationalExecutionActivities, } from '@finos/legend-graph';
21
+ import { format as formatSQL } from 'sql-formatter';
22
+ import { useApplicationStore, } from '@finos/legend-application';
23
+ import { assertErrorThrown, guaranteeNonNullable, filterByType, isBoolean, } from '@finos/legend-shared';
24
+ import { forwardRef } from 'react';
25
+ import { QueryBuilderDerivationProjectionColumnState, QueryBuilderProjectionColumnState, } from '../../../stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.js';
26
+ import { PostFilterConditionState, QueryBuilderPostFilterTreeConditionNodeData, PostFilterValueSpecConditionValueState, } from '../../../stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js';
27
+ import { QueryBuilderPostFilterOperator_Equal, QueryBuilderPostFilterOperator_NotEqual, } from '../../../stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js';
28
+ import { QueryBuilderPostFilterOperator_In, QueryBuilderPostFilterOperator_NotIn, } from '../../../stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.js';
29
+ import { instanceValue_setValue, instanceValue_setValues, } from '../../../stores/shared/ValueSpecificationModifierHelper.js';
30
+ import {} from '@finos/legend-lego/data-grid';
31
+ import { QueryBuilderPostFilterOperator_IsEmpty, QueryBuilderPostFilterOperator_IsNotEmpty, } from '../../../stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js';
32
+ import { getTDSColumnState } from '../../../stores/fetch-structure/tds/QueryBuilderTDSHelper.js';
33
+ export const tryToFormatSql = (sql) => {
34
+ try {
35
+ const formattedSql = formatSQL(sql, { language: 'mysql' });
36
+ return formattedSql;
37
+ }
38
+ catch {
39
+ try {
40
+ const formattedSql = formatSQL(sql);
41
+ return formattedSql;
42
+ }
43
+ catch {
44
+ return sql;
45
+ }
46
+ }
47
+ };
48
+ export const getExecutedSqlFromExecutionResult = (execResult) => {
49
+ const executedSqls = execResult.activities
50
+ ?.filter(filterByType(RelationalExecutionActivities))
51
+ .map((relationalActivity) => relationalActivity.sql);
52
+ if (executedSqls?.length) {
53
+ let executedSql = '';
54
+ if (executedSqls.length > 1) {
55
+ for (let i = 0; i < executedSqls.length; i++) {
56
+ executedSql += `\n--QUERY #${i + 1}\n`;
57
+ executedSql += `${executedSqls[i]}\n`;
58
+ }
59
+ }
60
+ else {
61
+ executedSql += executedSqls[0];
62
+ }
63
+ return executedSql;
64
+ }
65
+ return undefined;
66
+ };
67
+ export const getAggregationTDSColumnCustomizations = (result, columnName) => {
68
+ const columnType = result.builder.columns.find((col) => col.name === columnName)?.type;
69
+ switch (columnType) {
70
+ case PRIMITIVE_TYPE.STRING:
71
+ return {
72
+ filter: 'agTextColumnFilter',
73
+ allowedAggFuncs: ['count'],
74
+ };
75
+ case PRIMITIVE_TYPE.DATE:
76
+ case PRIMITIVE_TYPE.DATETIME:
77
+ case PRIMITIVE_TYPE.STRICTDATE:
78
+ return {
79
+ filter: 'agDateColumnFilter',
80
+ allowedAggFuncs: ['count'],
81
+ };
82
+ case PRIMITIVE_TYPE.DECIMAL:
83
+ case PRIMITIVE_TYPE.INTEGER:
84
+ case PRIMITIVE_TYPE.FLOAT:
85
+ return {
86
+ filter: 'agNumberColumnFilter',
87
+ allowedAggFuncs: ['count', 'sum', 'max', 'min', 'avg'],
88
+ };
89
+ default:
90
+ return {
91
+ allowedAggFuncs: ['count'],
92
+ };
93
+ }
94
+ };
95
+ export const getRowDataFromExecutionResult = (executionResult) => {
96
+ const rowData = executionResult.result.rows.map((_row, rowIdx) => {
97
+ const row = {};
98
+ const cols = executionResult.result.columns;
99
+ _row.values.forEach((value, colIdx) => {
100
+ // `ag-grid` shows `false` value as empty string so we have
101
+ // call `.toString()` to avoid this behavior.
102
+ // See https://github.com/finos/legend-studio/issues/1008
103
+ row[cols[colIdx]] = isBoolean(value) ? String(value) : value;
104
+ });
105
+ row.rowNumber = rowIdx;
106
+ return row;
107
+ });
108
+ return rowData;
109
+ };
110
+ const postFilterEqualOperator = new QueryBuilderPostFilterOperator_Equal();
111
+ const postFilterInOperator = new QueryBuilderPostFilterOperator_In();
112
+ const postFilterEmptyOperator = new QueryBuilderPostFilterOperator_IsEmpty();
113
+ const postFilterNotEmptyOperator = new QueryBuilderPostFilterOperator_IsNotEmpty();
114
+ const postFilterNotEqualOperator = new QueryBuilderPostFilterOperator_NotEqual();
115
+ const postFilterNotInOperator = new QueryBuilderPostFilterOperator_NotIn();
116
+ const getExistingPostFilterNode = (operators, projectionColumnName, postFilterState, tdsColState) => Array.from(postFilterState.nodes.values())
117
+ .filter(filterByType(QueryBuilderPostFilterTreeConditionNodeData))
118
+ .filter((node) => node.condition.leftConditionValue instanceof
119
+ QueryBuilderProjectionColumnState)
120
+ .filter((node) => node.condition.leftConditionValue.columnName ===
121
+ (projectionColumnName ?? tdsColState?.columnName) &&
122
+ operators
123
+ .map((op) => op.getLabel())
124
+ .includes(node.condition.operator.getLabel()))[0];
125
+ const updateFilterConditionValue = (conditionValue, _cellData, tdsState) => {
126
+ if (_cellData.value) {
127
+ instanceValue_setValue(conditionValue, conditionValue instanceof EnumValueInstanceValue
128
+ ? EnumValueExplicitReference.create(guaranteeNonNullable((conditionValue.genericType?.ownerReference.value).values.filter((v) => v.name === _cellData.value)[0]))
129
+ : _cellData.value, 0, tdsState.queryBuilderState.observerContext);
130
+ }
131
+ };
132
+ const generateNewPostFilterConditionNodeData = async (applicationStore, operator, _cellData, tdsState, tdsColState) => {
133
+ let postFilterConditionState;
134
+ try {
135
+ const possibleProjectionColumnState = _cellData.columnName
136
+ ? tdsState.projectionColumns
137
+ .filter((c) => c.columnName === _cellData.columnName)
138
+ .concat(tdsState.aggregationState.columns
139
+ .filter((c) => c.columnName === _cellData.columnName)
140
+ .map((ag) => ag.projectionColumnState))[0]
141
+ : tdsColState;
142
+ if (possibleProjectionColumnState) {
143
+ postFilterConditionState = new PostFilterConditionState(tdsState.postFilterState, possibleProjectionColumnState, operator);
144
+ if (tdsColState instanceof QueryBuilderDerivationProjectionColumnState) {
145
+ await flowResult(tdsColState.fetchDerivationLambdaReturnType());
146
+ }
147
+ const defaultFilterConditionValue = postFilterConditionState.operator.getDefaultFilterConditionValue(postFilterConditionState);
148
+ postFilterConditionState.buildFromValueSpec(defaultFilterConditionValue);
149
+ updateFilterConditionValue(defaultFilterConditionValue, _cellData, tdsState);
150
+ tdsState.postFilterState.addNodeFromNode(new QueryBuilderPostFilterTreeConditionNodeData(undefined, postFilterConditionState), undefined);
151
+ }
152
+ }
153
+ catch (error) {
154
+ assertErrorThrown(error);
155
+ applicationStore.notificationService.notifyWarning(error.message);
156
+ return;
157
+ }
158
+ };
159
+ const updateExistingPostFilterConditionNodeData = (existingPostFilterNode, isFilterBy, _cellData, operator, data, tdsState) => {
160
+ if (operator === postFilterEmptyOperator ||
161
+ operator === postFilterNotEmptyOperator) {
162
+ const conditionState = existingPostFilterNode.condition;
163
+ if (conditionState.operator.getLabel() !== operator.getLabel()) {
164
+ conditionState.changeOperator(isFilterBy ? postFilterEmptyOperator : postFilterNotEmptyOperator);
165
+ }
166
+ return;
167
+ }
168
+ const conditionState = existingPostFilterNode.condition;
169
+ const rightSide = conditionState.rightConditionValue;
170
+ if (rightSide instanceof PostFilterValueSpecConditionValueState) {
171
+ if (conditionState.operator.getLabel() === operator.getLabel()) {
172
+ const doesValueAlreadyExist = rightSide.value instanceof InstanceValue &&
173
+ (rightSide.value instanceof EnumValueInstanceValue
174
+ ? rightSide.value.values.map((ef) => ef.value.name)
175
+ : rightSide.value.values).includes(_cellData.value);
176
+ if (!doesValueAlreadyExist) {
177
+ const currentValueSpecificaton = rightSide.value;
178
+ const newValueSpecification = conditionState.operator.getDefaultFilterConditionValue(conditionState);
179
+ updateFilterConditionValue(newValueSpecification, _cellData, tdsState);
180
+ conditionState.changeOperator(isFilterBy ? postFilterInOperator : postFilterNotInOperator);
181
+ instanceValue_setValues(rightSide.value, [currentValueSpecificaton, newValueSpecification], tdsState.queryBuilderState.observerContext);
182
+ }
183
+ }
184
+ else {
185
+ const doesValueAlreadyExist = rightSide.value instanceof InstanceValue &&
186
+ rightSide.value.values
187
+ .filter((v) => v instanceof InstanceValue)
188
+ .map((v) => v instanceof EnumValueInstanceValue
189
+ ? v.values.map((ef) => ef.value.name)
190
+ : v.values)
191
+ .flat()
192
+ .includes(_cellData.value ?? data?.value);
193
+ if (!doesValueAlreadyExist) {
194
+ const newValueSpecification = (isFilterBy ? postFilterEqualOperator : postFilterNotEqualOperator).getDefaultFilterConditionValue(conditionState);
195
+ updateFilterConditionValue(newValueSpecification, _cellData, tdsState);
196
+ instanceValue_setValues(rightSide.value, [...rightSide.value.values, newValueSpecification], tdsState.queryBuilderState.observerContext);
197
+ }
198
+ }
199
+ }
200
+ };
201
+ const getFilterOperator = (isFilterBy, _cellData) => {
202
+ if (isFilterBy) {
203
+ if (_cellData.value === null) {
204
+ return postFilterEmptyOperator;
205
+ }
206
+ else {
207
+ return postFilterEqualOperator;
208
+ }
209
+ }
210
+ else {
211
+ if (_cellData.value === null) {
212
+ return postFilterNotEmptyOperator;
213
+ }
214
+ else {
215
+ return postFilterNotEqualOperator;
216
+ }
217
+ }
218
+ };
219
+ const filterByOrOutValue = (applicationStore, isFilterBy, _cellData, data, tdsState) => {
220
+ tdsState.setShowPostFilterPanel(true);
221
+ const operator = getFilterOperator(isFilterBy, _cellData);
222
+ const tdsColState = data?.columnName
223
+ ? getTDSColumnState(tdsState, data.columnName)
224
+ : undefined;
225
+ const existingPostFilterNode = getExistingPostFilterNode(_cellData.value === null
226
+ ? [postFilterEmptyOperator, postFilterNotEmptyOperator]
227
+ : isFilterBy
228
+ ? [postFilterEqualOperator, postFilterInOperator]
229
+ : [postFilterNotEqualOperator, postFilterNotInOperator], _cellData.columnName, tdsState.postFilterState, tdsColState);
230
+ existingPostFilterNode === undefined
231
+ ? generateNewPostFilterConditionNodeData(applicationStore, operator, _cellData, tdsState, tdsColState).catch(applicationStore.alertUnhandledError)
232
+ : updateExistingPostFilterConditionNodeData(existingPostFilterNode, isFilterBy, _cellData, operator, data, tdsState);
233
+ };
234
+ export const filterByOrOutValues = (applicationStore, data, isFilterBy, tdsState) => {
235
+ tdsState.queryBuilderState.resultState.selectedCells.forEach((_cellData) => {
236
+ filterByOrOutValue(applicationStore, isFilterBy, _cellData, data, tdsState);
237
+ });
238
+ };
239
+ export const QueryBuilderGridResultContextMenu = observer(forwardRef(function QueryBuilderResultContextMenu(props, ref) {
240
+ const { data, tdsState, copyCellValueFunc, copyCellRowValueFunc } = props;
241
+ const applicationStore = useApplicationStore();
242
+ const tdsColState = data?.columnName
243
+ ? getTDSColumnState(tdsState, data.columnName)
244
+ : undefined;
245
+ return (_jsxs(MenuContent, { ref: ref, children: [_jsx(MenuContentItem, { disabled: !tdsColState, onClick: () => {
246
+ filterByOrOutValues(applicationStore, data, true, tdsState);
247
+ }, children: "Filter By" }), _jsx(MenuContentItem, { disabled: !tdsColState, onClick: () => {
248
+ filterByOrOutValues(applicationStore, data, false, tdsState);
249
+ }, children: "Filter Out" }), _jsx(MenuContentDivider, {}), _jsx(MenuContentItem, { onClick: copyCellValueFunc, children: "Copy Cell Value" }), _jsx(MenuContentItem, { onClick: copyCellRowValueFunc, children: "Copy Row Value" })] }));
250
+ }));
251
+ //# sourceMappingURL=QueryBuilderTDSResultShared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBuilderTDSResultShared.js","sourceRoot":"","sources":["../../../../src/components/result/tds/QueryBuilderTDSResultShared.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
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 { QueryBuilderState } from '../../../stores/QueryBuilderState.js';
17
+ import { TDSExecutionResult } from '@finos/legend-graph';
18
+ export declare const QueryBuilderTDSSimpleGridResult: ((props: {
19
+ executionResult: TDSExecutionResult;
20
+ queryBuilderState: QueryBuilderState;
21
+ }) => import("react/jsx-runtime").JSX.Element) & {
22
+ displayName: string;
23
+ };
24
+ //# sourceMappingURL=QueryBuilderTDSSimpleGridResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBuilderTDSSimpleGridResult.d.ts","sourceRoot":"","sources":["../../../../src/components/result/tds/QueryBuilderTDSSimpleGridResult.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAEL,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AA0T7B,eAAO,MAAM,+BAA+B,WAClC;IACN,eAAe,EAAE,kBAAkB,CAAC;IACpC,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;;CA8CF,CAAC"}
@@ -0,0 +1,224 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright (c) 2020-present, Goldman Sachs
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { ContextMenu, clsx } from '@finos/legend-art';
18
+ import { observer } from 'mobx-react-lite';
19
+ import { getTDSRowRankByColumnInAsc, TDSExecutionResult, } from '@finos/legend-graph';
20
+ import { DataGrid, } from '@finos/legend-lego/data-grid';
21
+ import { getRowDataFromExecutionResult, QueryBuilderGridResultContextMenu, } from './QueryBuilderTDSResultShared.js';
22
+ import { QueryBuilderTDSState } from '../../../stores/fetch-structure/tds/QueryBuilderTDSState.js';
23
+ import { DEFAULT_LOCALE } from '../../../graph-manager/QueryBuilderConst.js';
24
+ import { isNumber, isString, isValidURL } from '@finos/legend-shared';
25
+ const QueryResultCellRenderer = observer((params) => {
26
+ const resultState = params.resultState;
27
+ const tdsExecutionResult = params.tdsExecutionResult;
28
+ const fetchStructureImplementation = resultState.queryBuilderState.fetchStructureState.implementation;
29
+ const applicationStore = resultState.queryBuilderState.applicationStore;
30
+ const cellValue = params.value;
31
+ const formattedCellValue = () => {
32
+ if (isNumber(cellValue)) {
33
+ return Intl.NumberFormat(DEFAULT_LOCALE, {
34
+ maximumFractionDigits: 4,
35
+ }).format(Number(cellValue));
36
+ }
37
+ return cellValue;
38
+ };
39
+ const cellValueUrlLink = isString(cellValue) && isValidURL(cellValue) ? cellValue : undefined;
40
+ const columnName = params.column?.getColId() ?? '';
41
+ const findCoordinatesFromResultValue = (colId, rowNumber) => {
42
+ const colIndex = tdsExecutionResult.result.columns.findIndex((col) => col === colId);
43
+ return { rowIndex: rowNumber, colIndex: colIndex };
44
+ };
45
+ const currentCellCoordinates = findCoordinatesFromResultValue(columnName, params.rowIndex);
46
+ const cellInFilteredResults = resultState.selectedCells.some((result) => result.coordinates.colIndex === currentCellCoordinates.colIndex &&
47
+ result.coordinates.rowIndex === currentCellCoordinates.rowIndex);
48
+ const findColumnFromCoordinates = (colIndex) => {
49
+ if (!resultState.executionResult ||
50
+ !(resultState.executionResult instanceof TDSExecutionResult)) {
51
+ return undefined;
52
+ }
53
+ return resultState.executionResult.result.columns[colIndex];
54
+ };
55
+ const findResultValueFromCoordinates = (resultCoordinate) => {
56
+ const rowIndex = resultCoordinate[0];
57
+ const colIndex = resultCoordinate[1];
58
+ if (!resultState.executionResult ||
59
+ !(resultState.executionResult instanceof TDSExecutionResult)) {
60
+ return undefined;
61
+ }
62
+ if (params.columnApi.getColumnState()[colIndex]?.sort === 'asc') {
63
+ resultState.executionResult.result.rows.sort((a, b) => getTDSRowRankByColumnInAsc(a, b, colIndex));
64
+ }
65
+ else if (params.columnApi.getColumnState()[colIndex]?.sort === 'desc') {
66
+ resultState.executionResult.result.rows.sort((a, b) => getTDSRowRankByColumnInAsc(b, a, colIndex));
67
+ }
68
+ return resultState.executionResult.result.rows[rowIndex]?.values[colIndex];
69
+ };
70
+ const isCoordinatesSelected = (resultCoordinate) => resultState.selectedCells.some((cell) => cell.coordinates.rowIndex === resultCoordinate.rowIndex &&
71
+ cell.coordinates.colIndex === resultCoordinate.colIndex);
72
+ const mouseDown = (event) => {
73
+ event.preventDefault();
74
+ if (event.shiftKey) {
75
+ const coordinates = findCoordinatesFromResultValue(columnName, params.rowIndex);
76
+ const actualValue = findResultValueFromCoordinates([
77
+ coordinates.rowIndex,
78
+ coordinates.colIndex,
79
+ ]);
80
+ resultState.addSelectedCell({
81
+ value: actualValue,
82
+ columnName: columnName,
83
+ coordinates: coordinates,
84
+ });
85
+ return;
86
+ }
87
+ if (event.button === 0) {
88
+ resultState.setIsSelectingCells(true);
89
+ resultState.setSelectedCells([]);
90
+ const coordinates = findCoordinatesFromResultValue(columnName, params.rowIndex);
91
+ const actualValue = findResultValueFromCoordinates([
92
+ coordinates.rowIndex,
93
+ coordinates.colIndex,
94
+ ]);
95
+ resultState.setSelectedCells([
96
+ {
97
+ value: actualValue,
98
+ columnName: columnName,
99
+ coordinates: coordinates,
100
+ },
101
+ ]);
102
+ resultState.setMouseOverCell(resultState.selectedCells[0] ?? null);
103
+ }
104
+ if (event.button === 2) {
105
+ const coordinates = findCoordinatesFromResultValue(columnName, params.rowIndex);
106
+ const isInSelected = isCoordinatesSelected(coordinates);
107
+ if (!isInSelected) {
108
+ const actualValue = findResultValueFromCoordinates([
109
+ coordinates.rowIndex,
110
+ coordinates.colIndex,
111
+ ]);
112
+ resultState.setSelectedCells([
113
+ {
114
+ value: actualValue,
115
+ columnName: columnName,
116
+ coordinates: coordinates,
117
+ },
118
+ ]);
119
+ resultState.setMouseOverCell(resultState.selectedCells[0] ?? null);
120
+ }
121
+ }
122
+ };
123
+ const mouseUp = (event) => {
124
+ resultState.setIsSelectingCells(false);
125
+ };
126
+ const mouseOver = (event) => {
127
+ if (resultState.isSelectingCells) {
128
+ if (resultState.selectedCells.length < 1) {
129
+ return;
130
+ }
131
+ const results = resultState.selectedCells[0];
132
+ if (!results) {
133
+ return;
134
+ }
135
+ const firstCorner = results.coordinates;
136
+ const secondCorner = findCoordinatesFromResultValue(columnName, params.rowIndex);
137
+ resultState.setSelectedCells([results]);
138
+ const minRow = Math.min(firstCorner.rowIndex, secondCorner.rowIndex);
139
+ const minCol = Math.min(firstCorner.colIndex, secondCorner.colIndex);
140
+ const maxRow = Math.max(firstCorner.rowIndex, secondCorner.rowIndex);
141
+ const maxCol = Math.max(firstCorner.colIndex, secondCorner.colIndex);
142
+ for (let x = minRow; x <= maxRow; x++) {
143
+ for (let y = minCol; y <= maxCol; y++) {
144
+ const actualValue = findResultValueFromCoordinates([x, y]);
145
+ const valueAndColumnId = {
146
+ value: actualValue,
147
+ columnName: findColumnFromCoordinates(y),
148
+ coordinates: {
149
+ rowIndex: x,
150
+ colIndex: y,
151
+ },
152
+ };
153
+ if (!resultState.selectedCells.find((result) => result.coordinates.colIndex === y &&
154
+ result.coordinates.rowIndex === x)) {
155
+ resultState.addSelectedCell(valueAndColumnId);
156
+ }
157
+ }
158
+ }
159
+ }
160
+ resultState.setMouseOverCell(resultState.selectedCells[0] ?? null);
161
+ };
162
+ const getContextMenuRenderer = () => {
163
+ if (fetchStructureImplementation instanceof QueryBuilderTDSState) {
164
+ const copyCellValue = applicationStore.guardUnhandledError(() => applicationStore.clipboardService.copyTextToClipboard(fetchStructureImplementation.queryBuilderState.resultState.selectedCells
165
+ .map((cellData) => cellData.value)
166
+ .join(',')));
167
+ const findRowFromRowIndex = (rowIndex) => {
168
+ if (!fetchStructureImplementation.queryBuilderState.resultState
169
+ .executionResult ||
170
+ !(fetchStructureImplementation.queryBuilderState.resultState
171
+ .executionResult instanceof TDSExecutionResult)) {
172
+ return '';
173
+ }
174
+ // try to get the entire row value separated by comma
175
+ // rowData is in format of {columnName: value, columnName1: value, ...., rowNumber:value}
176
+ const valueArr = [];
177
+ Object.entries(params.api.getRenderedNodes().find((n) => n.rowIndex === rowIndex)
178
+ ?.data).forEach((entry) => {
179
+ if (entry[0] !== 'rowNumber') {
180
+ valueArr.push(entry[1]);
181
+ }
182
+ });
183
+ return valueArr.join(',');
184
+ };
185
+ const copyRowValue = applicationStore.guardUnhandledError(() => applicationStore.clipboardService.copyTextToClipboard(findRowFromRowIndex(fetchStructureImplementation.queryBuilderState.resultState
186
+ .selectedCells[0]?.coordinates.rowIndex ?? 0)));
187
+ return (_jsx(QueryBuilderGridResultContextMenu, { data: resultState.mousedOverCell, tdsState: fetchStructureImplementation, copyCellValueFunc: copyCellValue, copyCellRowValueFunc: copyRowValue }));
188
+ }
189
+ return null;
190
+ };
191
+ return (_jsx(ContextMenu, { content: getContextMenuRenderer(), disabled: !(resultState.queryBuilderState.fetchStructureState
192
+ .implementation instanceof QueryBuilderTDSState) ||
193
+ !resultState.queryBuilderState.isQuerySupported ||
194
+ !resultState.mousedOverCell, menuProps: { elevation: 7 }, className: clsx('ag-theme-balham-dark query-builder__result__tds-grid'), children: _jsx("div", { className: clsx('query-builder__result__values__table__cell', {
195
+ 'query-builder__result__values__table__cell--active': cellInFilteredResults,
196
+ }), onMouseDown: (event) => mouseDown(event), onMouseUp: (event) => mouseUp(event), onMouseOver: (event) => mouseOver(event), children: cellValueUrlLink ? (_jsx("a", { href: cellValueUrlLink, target: "_blank", rel: "noreferrer", children: cellValueUrlLink })) : (_jsx("span", { children: formattedCellValue() })) }) }));
197
+ });
198
+ export const QueryBuilderTDSSimpleGridResult = observer((props) => {
199
+ const { executionResult, queryBuilderState } = props;
200
+ const resultState = queryBuilderState.resultState;
201
+ const colDefs = executionResult.result.columns.map((colName) => ({
202
+ minWidth: 50,
203
+ sortable: true,
204
+ resizable: true,
205
+ field: colName,
206
+ flex: 1,
207
+ cellRenderer: QueryResultCellRenderer,
208
+ cellRendererParams: {
209
+ resultState: resultState,
210
+ tdsExecutionResult: executionResult,
211
+ },
212
+ }));
213
+ return (_jsx("div", { className: "query-builder__result__values__table", children: _jsx("div", { className: clsx('ag-theme-balham-dark query-builder__result__tds-grid'), children: _jsx(DataGrid, { rowData: getRowDataFromExecutionResult(executionResult), gridOptions: {
214
+ suppressScrollOnNewData: true,
215
+ getRowId: (data) => data.data.rowNumber,
216
+ rowSelection: 'multiple',
217
+ },
218
+ // NOTE: when column definition changed, we need to force refresh the cell to make sure the cell renderer is updated
219
+ // See https://stackoverflow.com/questions/56341073/how-to-refresh-an-ag-grid-when-a-change-occurs-inside-a-custom-cell-renderer-com
220
+ onRowDataUpdated: (params) => {
221
+ params.api.refreshCells({ force: true });
222
+ }, suppressFieldDotNotation: true, suppressContextMenu: false, columnDefs: colDefs }) }) }));
223
+ });
224
+ //# sourceMappingURL=QueryBuilderTDSSimpleGridResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBuilderTDSSimpleGridResult.js","sourceRoot":"","sources":["../../../../src/components/result/tds/QueryBuilderTDSSimpleGridResult.tsx"],"names":[],"mappings":"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"}