@finos/legend-query-builder 4.14.96 → 4.15.1
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/components/QueryBuilder.d.ts.map +1 -1
- package/lib/components/QueryBuilder.js +2 -1
- package/lib/components/QueryBuilder.js.map +1 -1
- package/lib/components/QueryBuilderSideBar.d.ts.map +1 -1
- package/lib/components/QueryBuilderSideBar.js +4 -4
- package/lib/components/QueryBuilderSideBar.js.map +1 -1
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.d.ts.map +1 -1
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js +2 -1
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js.map +1 -1
- package/lib/components/data-cube/QueryBuilderDataCube.d.ts +22 -0
- package/lib/components/data-cube/QueryBuilderDataCube.d.ts.map +1 -0
- package/lib/components/data-cube/QueryBuilderDataCube.js +48 -0
- package/lib/components/data-cube/QueryBuilderDataCube.js.map +1 -0
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js +1 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.js +2 -2
- package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
- package/lib/components/result/QueryBuilderResultPanel.d.ts.map +1 -1
- package/lib/components/result/QueryBuilderResultPanel.js +6 -3
- package/lib/components/result/QueryBuilderResultPanel.js.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSGridResult.d.ts.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSGridResult.js +6 -7
- package/lib/components/result/tds/QueryBuilderTDSGridResult.js.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSResultShared.d.ts +2 -2
- package/lib/components/result/tds/QueryBuilderTDSResultShared.d.ts.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSResultShared.js +19 -155
- package/lib/components/result/tds/QueryBuilderTDSResultShared.js.map +1 -1
- package/lib/components/shared/BasicValueSpecificationEditor.d.ts.map +1 -1
- package/lib/components/shared/BasicValueSpecificationEditor.js +5 -5
- package/lib/components/shared/BasicValueSpecificationEditor.js.map +1 -1
- package/lib/components/shared/CustomDatePicker.d.ts.map +1 -1
- package/lib/components/shared/CustomDatePicker.js +2 -2
- package/lib/components/shared/CustomDatePicker.js.map +1 -1
- package/lib/components/workflows/ClassQueryBuilder.d.ts.map +1 -1
- package/lib/components/workflows/ClassQueryBuilder.js +3 -3
- package/lib/components/workflows/ClassQueryBuilder.js.map +1 -1
- package/lib/components/workflows/MappingQueryBuilder.d.ts.map +1 -1
- package/lib/components/workflows/MappingQueryBuilder.js +3 -3
- package/lib/components/workflows/MappingQueryBuilder.js.map +1 -1
- package/lib/graph-manager/QueryBuilderConfig.d.ts +5 -1
- package/lib/graph-manager/QueryBuilderConfig.d.ts.map +1 -1
- package/lib/graph-manager/QueryBuilderConfig.js +6 -1
- package/lib/graph-manager/QueryBuilderConfig.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/package.json +8 -7
- package/lib/stores/QueryBuilderState.d.ts +2 -0
- package/lib/stores/QueryBuilderState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderState.js +9 -19
- package/lib/stores/QueryBuilderState.js.map +1 -1
- package/lib/stores/data-cube/QueryBuilderDataCubeApplicationEngine.d.ts +38 -0
- package/lib/stores/data-cube/QueryBuilderDataCubeApplicationEngine.d.ts.map +1 -0
- package/lib/stores/data-cube/QueryBuilderDataCubeApplicationEngine.js +71 -0
- package/lib/stores/data-cube/QueryBuilderDataCubeApplicationEngine.js.map +1 -0
- package/lib/stores/data-cube/QueryBuilderDataCubeEngine.d.ts +52 -0
- package/lib/stores/data-cube/QueryBuilderDataCubeEngine.d.ts.map +1 -0
- package/lib/stores/data-cube/QueryBuilderDataCubeEngine.js +149 -0
- package/lib/stores/data-cube/QueryBuilderDataCubeEngine.js.map +1 -0
- package/lib/stores/data-cube/QueryBuilderDataCubeEngineHelper.d.ts +19 -0
- package/lib/stores/data-cube/QueryBuilderDataCubeEngineHelper.d.ts.map +1 -0
- package/lib/stores/data-cube/QueryBuilderDataCubeEngineHelper.js +31 -0
- package/lib/stores/data-cube/QueryBuilderDataCubeEngineHelper.js.map +1 -0
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts +1 -0
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts +1 -0
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js +3 -0
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts +1 -0
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js +3 -0
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterOperator.d.ts +1 -1
- package/lib/stores/filter/QueryBuilderFilterOperator.d.ts.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterState.d.ts +1 -1
- package/lib/stores/filter/QueryBuilderFilterState.d.ts.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterState.js +3 -8
- package/lib/stores/filter/QueryBuilderFilterState.js.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterStateBuilder.js +1 -1
- package/lib/stores/filter/QueryBuilderFilterStateBuilder.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.d.ts +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js +3 -3
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.d.ts +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js +3 -3
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.d.ts +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.d.ts +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.d.ts +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.d.ts +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.d.ts +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.d.ts +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.d.ts +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js +3 -3
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js.map +1 -1
- package/package.json +17 -16
- package/src/components/QueryBuilder.tsx +4 -0
- package/src/components/QueryBuilderSideBar.tsx +11 -10
- package/src/components/__test-utils__/QueryBuilderComponentTestUtils.tsx +8 -2
- package/src/components/data-cube/QueryBuilderDataCube.tsx +116 -0
- package/src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx +1 -1
- package/src/components/filter/QueryBuilderFilterPanel.tsx +2 -2
- package/src/components/result/QueryBuilderResultPanel.tsx +24 -0
- package/src/components/result/tds/QueryBuilderTDSGridResult.tsx +13 -9
- package/src/components/result/tds/QueryBuilderTDSResultShared.tsx +26 -332
- package/src/components/shared/BasicValueSpecificationEditor.tsx +21 -15
- package/src/components/shared/CustomDatePicker.tsx +10 -17
- package/src/components/workflows/ClassQueryBuilder.tsx +6 -5
- package/src/components/workflows/MappingQueryBuilder.tsx +6 -5
- package/src/graph-manager/QueryBuilderConfig.ts +7 -1
- package/src/index.ts +2 -0
- package/src/stores/QueryBuilderState.ts +13 -27
- package/src/stores/data-cube/QueryBuilderDataCubeApplicationEngine.ts +109 -0
- package/src/stores/data-cube/QueryBuilderDataCubeEngine.ts +255 -0
- package/src/stores/data-cube/QueryBuilderDataCubeEngineHelper.ts +41 -0
- package/src/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.ts +1 -0
- package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.ts +4 -0
- package/src/stores/fetch-structure/tds/QueryBuilderTDSState.ts +4 -0
- package/src/stores/filter/QueryBuilderFilterOperator.ts +1 -1
- package/src/stores/filter/QueryBuilderFilterState.ts +5 -10
- package/src/stores/filter/QueryBuilderFilterStateBuilder.ts +1 -1
- package/src/stores/filter/operators/QueryBuilderFilterOperator_Contain.ts +5 -3
- package/src/stores/filter/operators/QueryBuilderFilterOperator_EndWith.ts +5 -3
- package/src/stores/filter/operators/QueryBuilderFilterOperator_Equal.ts +2 -2
- package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.ts +4 -2
- package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.ts +4 -2
- package/src/stores/filter/operators/QueryBuilderFilterOperator_In.ts +2 -2
- package/src/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.ts +2 -2
- package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThan.ts +4 -2
- package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.ts +4 -2
- package/src/stores/filter/operators/QueryBuilderFilterOperator_StartWith.ts +5 -3
- package/tsconfig.json +4 -0
@@ -22,13 +22,12 @@ import {
|
|
22
22
|
import { observer } from 'mobx-react-lite';
|
23
23
|
import { flowResult } from 'mobx';
|
24
24
|
import {
|
25
|
-
type AbstractPropertyExpression,
|
26
|
-
type Enumeration,
|
27
|
-
type ExecutionResult,
|
28
25
|
type TDSExecutionResult,
|
29
|
-
|
30
|
-
EnumValueInstanceValue,
|
26
|
+
type Enumeration,
|
31
27
|
InstanceValue,
|
28
|
+
EnumValueInstanceValue,
|
29
|
+
EnumValueExplicitReference,
|
30
|
+
type ExecutionResult,
|
32
31
|
RelationalExecutionActivities,
|
33
32
|
} from '@finos/legend-graph';
|
34
33
|
import { format as formatSQL } from 'sql-formatter';
|
@@ -48,7 +47,6 @@ import { forwardRef } from 'react';
|
|
48
47
|
import {
|
49
48
|
QueryBuilderDerivationProjectionColumnState,
|
50
49
|
QueryBuilderProjectionColumnState,
|
51
|
-
QueryBuilderSimpleProjectionColumnState,
|
52
50
|
} from '../../../stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.js';
|
53
51
|
import {
|
54
52
|
type QueryBuilderPostFilterTreeNodeData,
|
@@ -83,30 +81,6 @@ import {
|
|
83
81
|
} from '../../../stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js';
|
84
82
|
import { getTDSColumnState } from '../../../stores/fetch-structure/tds/QueryBuilderTDSHelper.js';
|
85
83
|
import type { QueryBuilderTDSColumnState } from '../../../stores/fetch-structure/tds/QueryBuilderTDSColumnState.js';
|
86
|
-
import {
|
87
|
-
type QueryBuilderFilterState,
|
88
|
-
type QueryBuilderFilterTreeNodeData,
|
89
|
-
FilterConditionState,
|
90
|
-
FilterValueSpecConditionValueState,
|
91
|
-
isCollectionProperty,
|
92
|
-
QueryBuilderFilterTreeConditionNodeData,
|
93
|
-
} from '../../../stores/filter/QueryBuilderFilterState.js';
|
94
|
-
import { QueryBuilderAggregateColumnState } from '../../../stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.js';
|
95
|
-
import type { QueryBuilderFilterOperator } from '../../../stores/filter/QueryBuilderFilterOperator.js';
|
96
|
-
import {
|
97
|
-
QueryBuilderFilterOperator_Equal,
|
98
|
-
QueryBuilderFilterOperator_NotEqual,
|
99
|
-
} from '../../../stores/filter/operators/QueryBuilderFilterOperator_Equal.js';
|
100
|
-
import {
|
101
|
-
QueryBuilderFilterOperator_In,
|
102
|
-
QueryBuilderFilterOperator_NotIn,
|
103
|
-
} from '../../../stores/filter/operators/QueryBuilderFilterOperator_In.js';
|
104
|
-
import {
|
105
|
-
QueryBuilderFilterOperator_IsEmpty,
|
106
|
-
QueryBuilderFilterOperator_IsNotEmpty,
|
107
|
-
} from '../../../stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js';
|
108
|
-
import type { QueryBuilderState } from '../../../stores/QueryBuilderState.js';
|
109
|
-
import type { QueryBuilderPropertyExpressionState } from '../../../stores/QueryBuilderPropertyEditorState.js';
|
110
84
|
|
111
85
|
export const tryToFormatSql = (sql: string): string => {
|
112
86
|
try {
|
@@ -165,13 +139,6 @@ export type IQueryRendererParamsWithGridType = DataGridCellRendererParams & {
|
|
165
139
|
tdsExecutionResult: TDSExecutionResult;
|
166
140
|
};
|
167
141
|
|
168
|
-
const filterEqualOperator = new QueryBuilderFilterOperator_Equal();
|
169
|
-
const filterNotEqualOperator = new QueryBuilderFilterOperator_NotEqual();
|
170
|
-
const filterInOperator = new QueryBuilderFilterOperator_In();
|
171
|
-
const filterNotInOperator = new QueryBuilderFilterOperator_NotIn();
|
172
|
-
const filterEmptyOperator = new QueryBuilderFilterOperator_IsEmpty();
|
173
|
-
const filterNotEmptyOperator = new QueryBuilderFilterOperator_IsNotEmpty();
|
174
|
-
|
175
142
|
const postFilterEqualOperator = new QueryBuilderPostFilterOperator_Equal();
|
176
143
|
const postFilterInOperator = new QueryBuilderPostFilterOperator_In();
|
177
144
|
const postFilterEmptyOperator = new QueryBuilderPostFilterOperator_IsEmpty();
|
@@ -181,22 +148,6 @@ const postFilterNotEqualOperator =
|
|
181
148
|
new QueryBuilderPostFilterOperator_NotEqual();
|
182
149
|
const postFilterNotInOperator = new QueryBuilderPostFilterOperator_NotIn();
|
183
150
|
|
184
|
-
const getExistingFilterNode = (
|
185
|
-
operators: QueryBuilderFilterOperator[],
|
186
|
-
propertyExpressionState: QueryBuilderPropertyExpressionState | undefined,
|
187
|
-
filterState: QueryBuilderFilterState,
|
188
|
-
): QueryBuilderFilterTreeNodeData | undefined =>
|
189
|
-
Array.from(filterState.nodes.values())
|
190
|
-
.filter(filterByType(QueryBuilderFilterTreeConditionNodeData))
|
191
|
-
.filter(
|
192
|
-
(node) =>
|
193
|
-
node.condition.propertyExpressionState.path ===
|
194
|
-
propertyExpressionState?.path &&
|
195
|
-
operators
|
196
|
-
.map((op) => op.getLabel())
|
197
|
-
.includes(node.condition.operator.getLabel()),
|
198
|
-
)[0];
|
199
|
-
|
200
151
|
const getExistingPostFilterNode = (
|
201
152
|
operators: QueryBuilderPostFilterOperator[],
|
202
153
|
projectionColumnName: string | undefined,
|
@@ -222,7 +173,7 @@ const getExistingPostFilterNode = (
|
|
222
173
|
const updateFilterConditionValue = (
|
223
174
|
conditionValue: InstanceValue,
|
224
175
|
_cellData: QueryBuilderTDSResultCellData,
|
225
|
-
|
176
|
+
tdsState: QueryBuilderTDSState,
|
226
177
|
): void => {
|
227
178
|
if (_cellData.value) {
|
228
179
|
instanceValue_setValue(
|
@@ -237,58 +188,11 @@ const updateFilterConditionValue = (
|
|
237
188
|
)
|
238
189
|
: _cellData.value,
|
239
190
|
0,
|
240
|
-
queryBuilderState.observerContext,
|
191
|
+
tdsState.queryBuilderState.observerContext,
|
241
192
|
);
|
242
193
|
}
|
243
194
|
};
|
244
195
|
|
245
|
-
const generateNewFilterConditionNodeData = (
|
246
|
-
applicationStore: ApplicationStore<
|
247
|
-
LegendApplicationConfig,
|
248
|
-
LegendApplicationPluginManager<LegendApplicationPlugin>
|
249
|
-
>,
|
250
|
-
operator: QueryBuilderFilterOperator,
|
251
|
-
_cellData: QueryBuilderTDSResultCellData,
|
252
|
-
filterState: QueryBuilderFilterState,
|
253
|
-
propertyExpression: AbstractPropertyExpression | undefined,
|
254
|
-
): void => {
|
255
|
-
let filterConditionState: FilterConditionState;
|
256
|
-
try {
|
257
|
-
if (propertyExpression) {
|
258
|
-
filterConditionState = new FilterConditionState(
|
259
|
-
filterState,
|
260
|
-
propertyExpression,
|
261
|
-
operator,
|
262
|
-
);
|
263
|
-
|
264
|
-
const defaultFilterConditionValue =
|
265
|
-
filterConditionState.operator.getDefaultFilterConditionValue(
|
266
|
-
filterConditionState,
|
267
|
-
);
|
268
|
-
|
269
|
-
filterConditionState.buildRightConditionValueFromValueSpec(
|
270
|
-
defaultFilterConditionValue,
|
271
|
-
);
|
272
|
-
updateFilterConditionValue(
|
273
|
-
defaultFilterConditionValue as InstanceValue,
|
274
|
-
_cellData,
|
275
|
-
filterState.queryBuilderState,
|
276
|
-
);
|
277
|
-
filterState.addNodeFromNode(
|
278
|
-
new QueryBuilderFilterTreeConditionNodeData(
|
279
|
-
undefined,
|
280
|
-
filterConditionState,
|
281
|
-
),
|
282
|
-
undefined,
|
283
|
-
);
|
284
|
-
}
|
285
|
-
} catch (error) {
|
286
|
-
assertErrorThrown(error);
|
287
|
-
applicationStore.notificationService.notifyWarning(error.message);
|
288
|
-
return;
|
289
|
-
}
|
290
|
-
};
|
291
|
-
|
292
196
|
const generateNewPostFilterConditionNodeData = async (
|
293
197
|
applicationStore: ApplicationStore<
|
294
198
|
LegendApplicationConfig,
|
@@ -331,7 +235,7 @@ const generateNewPostFilterConditionNodeData = async (
|
|
331
235
|
updateFilterConditionValue(
|
332
236
|
defaultFilterConditionValue as InstanceValue,
|
333
237
|
_cellData,
|
334
|
-
tdsState
|
238
|
+
tdsState,
|
335
239
|
);
|
336
240
|
tdsState.postFilterState.addNodeFromNode(
|
337
241
|
new QueryBuilderPostFilterTreeConditionNodeData(
|
@@ -348,91 +252,6 @@ const generateNewPostFilterConditionNodeData = async (
|
|
348
252
|
}
|
349
253
|
};
|
350
254
|
|
351
|
-
const updateExistingFilterConditionNodeData = (
|
352
|
-
existingPreFilterNode: QueryBuilderFilterTreeNodeData,
|
353
|
-
isFilterBy: boolean,
|
354
|
-
_cellData: QueryBuilderTDSResultCellData,
|
355
|
-
operator: QueryBuilderFilterOperator,
|
356
|
-
data: QueryBuilderTDSResultCellData | null,
|
357
|
-
queryBuilderState: QueryBuilderState,
|
358
|
-
): void => {
|
359
|
-
if (operator === filterEmptyOperator || operator === filterNotEmptyOperator) {
|
360
|
-
const conditionState = (
|
361
|
-
existingPreFilterNode as QueryBuilderFilterTreeConditionNodeData
|
362
|
-
).condition;
|
363
|
-
if (conditionState.operator.getLabel() !== operator.getLabel()) {
|
364
|
-
conditionState.changeOperator(
|
365
|
-
isFilterBy ? filterEmptyOperator : filterNotEmptyOperator,
|
366
|
-
);
|
367
|
-
}
|
368
|
-
return;
|
369
|
-
}
|
370
|
-
const conditionState = (
|
371
|
-
existingPreFilterNode as QueryBuilderFilterTreeConditionNodeData
|
372
|
-
).condition;
|
373
|
-
|
374
|
-
const rightSide = conditionState.rightConditionValue;
|
375
|
-
if (rightSide instanceof FilterValueSpecConditionValueState) {
|
376
|
-
if (conditionState.operator.getLabel() === operator.getLabel()) {
|
377
|
-
const doesValueAlreadyExist =
|
378
|
-
rightSide.value instanceof InstanceValue &&
|
379
|
-
(rightSide.value instanceof EnumValueInstanceValue
|
380
|
-
? rightSide.value.values.map((ef) => ef.value.name)
|
381
|
-
: rightSide.value.values
|
382
|
-
).includes(_cellData.value);
|
383
|
-
|
384
|
-
if (!doesValueAlreadyExist) {
|
385
|
-
const currentValueSpecificaton = rightSide.value;
|
386
|
-
const newValueSpecification =
|
387
|
-
conditionState.operator.getDefaultFilterConditionValue(
|
388
|
-
conditionState,
|
389
|
-
);
|
390
|
-
updateFilterConditionValue(
|
391
|
-
newValueSpecification as InstanceValue,
|
392
|
-
_cellData,
|
393
|
-
queryBuilderState,
|
394
|
-
);
|
395
|
-
conditionState.changeOperator(
|
396
|
-
isFilterBy ? filterInOperator : filterNotInOperator,
|
397
|
-
);
|
398
|
-
instanceValue_setValues(
|
399
|
-
rightSide.value as InstanceValue,
|
400
|
-
[currentValueSpecificaton, newValueSpecification],
|
401
|
-
queryBuilderState.observerContext,
|
402
|
-
);
|
403
|
-
}
|
404
|
-
} else {
|
405
|
-
const doesValueAlreadyExist =
|
406
|
-
rightSide.value instanceof InstanceValue &&
|
407
|
-
rightSide.value.values
|
408
|
-
.filter((v) => v instanceof InstanceValue)
|
409
|
-
.map((v) =>
|
410
|
-
v instanceof EnumValueInstanceValue
|
411
|
-
? v.values.map((ef) => ef.value.name)
|
412
|
-
: v.values,
|
413
|
-
)
|
414
|
-
.flat()
|
415
|
-
.includes(_cellData.value ?? data?.value);
|
416
|
-
|
417
|
-
if (!doesValueAlreadyExist) {
|
418
|
-
const newValueSpecification = (
|
419
|
-
isFilterBy ? filterEqualOperator : filterNotEqualOperator
|
420
|
-
).getDefaultFilterConditionValue(conditionState);
|
421
|
-
updateFilterConditionValue(
|
422
|
-
newValueSpecification as InstanceValue,
|
423
|
-
_cellData,
|
424
|
-
queryBuilderState,
|
425
|
-
);
|
426
|
-
instanceValue_setValues(
|
427
|
-
rightSide.value as InstanceValue,
|
428
|
-
[...(rightSide.value as InstanceValue).values, newValueSpecification],
|
429
|
-
queryBuilderState.observerContext,
|
430
|
-
);
|
431
|
-
}
|
432
|
-
}
|
433
|
-
}
|
434
|
-
};
|
435
|
-
|
436
255
|
const updateExistingPostFilterConditionNodeData = (
|
437
256
|
existingPostFilterNode: QueryBuilderPostFilterTreeNodeData,
|
438
257
|
isFilterBy: boolean,
|
@@ -478,7 +297,7 @@ const updateExistingPostFilterConditionNodeData = (
|
|
478
297
|
updateFilterConditionValue(
|
479
298
|
newValueSpecification as InstanceValue,
|
480
299
|
_cellData,
|
481
|
-
tdsState
|
300
|
+
tdsState,
|
482
301
|
);
|
483
302
|
conditionState.changeOperator(
|
484
303
|
isFilterBy ? postFilterInOperator : postFilterNotInOperator,
|
@@ -509,7 +328,7 @@ const updateExistingPostFilterConditionNodeData = (
|
|
509
328
|
updateFilterConditionValue(
|
510
329
|
newValueSpecification as InstanceValue,
|
511
330
|
_cellData,
|
512
|
-
tdsState
|
331
|
+
tdsState,
|
513
332
|
);
|
514
333
|
instanceValue_setValues(
|
515
334
|
rightSide.value as InstanceValue,
|
@@ -524,25 +343,6 @@ const updateExistingPostFilterConditionNodeData = (
|
|
524
343
|
const getFilterOperator = (
|
525
344
|
isFilterBy: boolean,
|
526
345
|
_cellData: QueryBuilderTDSResultCellData,
|
527
|
-
): QueryBuilderFilterOperator => {
|
528
|
-
if (isFilterBy) {
|
529
|
-
if (_cellData.value === null) {
|
530
|
-
return filterEmptyOperator;
|
531
|
-
} else {
|
532
|
-
return filterEqualOperator;
|
533
|
-
}
|
534
|
-
} else {
|
535
|
-
if (_cellData.value === null) {
|
536
|
-
return filterNotEmptyOperator;
|
537
|
-
} else {
|
538
|
-
return filterNotEqualOperator;
|
539
|
-
}
|
540
|
-
}
|
541
|
-
};
|
542
|
-
|
543
|
-
const getPostFilterOperator = (
|
544
|
-
isFilterBy: boolean,
|
545
|
-
_cellData: QueryBuilderTDSResultCellData,
|
546
346
|
): QueryBuilderPostFilterOperator => {
|
547
347
|
if (isFilterBy) {
|
548
348
|
if (_cellData.value === null) {
|
@@ -559,54 +359,7 @@ const getPostFilterOperator = (
|
|
559
359
|
}
|
560
360
|
};
|
561
361
|
|
562
|
-
const
|
563
|
-
applicationStore: ApplicationStore<
|
564
|
-
LegendApplicationConfig,
|
565
|
-
LegendApplicationPluginManager<LegendApplicationPlugin>
|
566
|
-
>,
|
567
|
-
isFilterBy: boolean,
|
568
|
-
_cellData: QueryBuilderTDSResultCellData,
|
569
|
-
data: QueryBuilderTDSResultCellData | null,
|
570
|
-
propertyExpressionState: QueryBuilderPropertyExpressionState,
|
571
|
-
queryBuilderState: QueryBuilderState,
|
572
|
-
): void => {
|
573
|
-
queryBuilderState.filterState.setShowPanel(true);
|
574
|
-
const operator = getFilterOperator(isFilterBy, _cellData);
|
575
|
-
const existingPreFilterNode = getExistingFilterNode(
|
576
|
-
_cellData.value === null
|
577
|
-
? [filterEmptyOperator, filterNotEmptyOperator]
|
578
|
-
: isFilterBy
|
579
|
-
? [filterEqualOperator, filterInOperator]
|
580
|
-
: [filterNotEqualOperator, filterNotInOperator],
|
581
|
-
propertyExpressionState,
|
582
|
-
queryBuilderState.filterState,
|
583
|
-
);
|
584
|
-
if (existingPreFilterNode) {
|
585
|
-
updateExistingFilterConditionNodeData(
|
586
|
-
existingPreFilterNode,
|
587
|
-
isFilterBy,
|
588
|
-
_cellData,
|
589
|
-
operator,
|
590
|
-
data,
|
591
|
-
queryBuilderState,
|
592
|
-
);
|
593
|
-
} else {
|
594
|
-
try {
|
595
|
-
generateNewFilterConditionNodeData(
|
596
|
-
applicationStore,
|
597
|
-
operator,
|
598
|
-
_cellData,
|
599
|
-
queryBuilderState.filterState,
|
600
|
-
propertyExpressionState.propertyExpression,
|
601
|
-
);
|
602
|
-
} catch (error) {
|
603
|
-
assertErrorThrown(error);
|
604
|
-
applicationStore.alertUnhandledError(error);
|
605
|
-
}
|
606
|
-
}
|
607
|
-
};
|
608
|
-
|
609
|
-
const postFilterByOrOutValue = async (
|
362
|
+
const filterByOrOutValue = (
|
610
363
|
applicationStore: ApplicationStore<
|
611
364
|
LegendApplicationConfig,
|
612
365
|
LegendApplicationPluginManager<LegendApplicationPlugin>
|
@@ -614,11 +367,13 @@ const postFilterByOrOutValue = async (
|
|
614
367
|
isFilterBy: boolean,
|
615
368
|
_cellData: QueryBuilderTDSResultCellData,
|
616
369
|
data: QueryBuilderTDSResultCellData | null,
|
617
|
-
tdsColState: QueryBuilderTDSColumnState,
|
618
370
|
tdsState: QueryBuilderTDSState,
|
619
|
-
):
|
371
|
+
): void => {
|
620
372
|
tdsState.setShowPostFilterPanel(true);
|
621
|
-
const operator =
|
373
|
+
const operator = getFilterOperator(isFilterBy, _cellData);
|
374
|
+
const tdsColState = data?.columnName
|
375
|
+
? getTDSColumnState(tdsState, data.columnName)
|
376
|
+
: undefined;
|
622
377
|
const existingPostFilterNode = getExistingPostFilterNode(
|
623
378
|
_cellData.value === null
|
624
379
|
? [postFilterEmptyOperator, postFilterNotEmptyOperator]
|
@@ -639,67 +394,17 @@ const postFilterByOrOutValue = async (
|
|
639
394
|
tdsState,
|
640
395
|
);
|
641
396
|
} else {
|
642
|
-
|
643
|
-
await generateNewPostFilterConditionNodeData(
|
644
|
-
applicationStore,
|
645
|
-
operator,
|
646
|
-
_cellData,
|
647
|
-
tdsState,
|
648
|
-
tdsColState,
|
649
|
-
);
|
650
|
-
} catch (error) {
|
651
|
-
assertErrorThrown(error);
|
652
|
-
applicationStore.alertUnhandledError(error);
|
653
|
-
}
|
654
|
-
}
|
655
|
-
};
|
656
|
-
|
657
|
-
const filterByOrOutValue = async (
|
658
|
-
applicationStore: ApplicationStore<
|
659
|
-
LegendApplicationConfig,
|
660
|
-
LegendApplicationPluginManager<LegendApplicationPlugin>
|
661
|
-
>,
|
662
|
-
isFilterBy: boolean,
|
663
|
-
_cellData: QueryBuilderTDSResultCellData,
|
664
|
-
data: QueryBuilderTDSResultCellData | null,
|
665
|
-
tdsState: QueryBuilderTDSState,
|
666
|
-
): Promise<void> => {
|
667
|
-
const tdsColState = data?.columnName
|
668
|
-
? getTDSColumnState(tdsState, data.columnName)
|
669
|
-
: undefined;
|
670
|
-
if (
|
671
|
-
tdsColState instanceof QueryBuilderDerivationProjectionColumnState ||
|
672
|
-
tdsColState instanceof QueryBuilderAggregateColumnState ||
|
673
|
-
(tdsColState instanceof QueryBuilderSimpleProjectionColumnState &&
|
674
|
-
isCollectionProperty(
|
675
|
-
tdsColState.propertyExpressionState.propertyExpression,
|
676
|
-
))
|
677
|
-
) {
|
678
|
-
await postFilterByOrOutValue(
|
397
|
+
generateNewPostFilterConditionNodeData(
|
679
398
|
applicationStore,
|
680
|
-
|
399
|
+
operator,
|
681
400
|
_cellData,
|
682
|
-
data,
|
683
|
-
tdsColState,
|
684
401
|
tdsState,
|
685
|
-
|
686
|
-
|
687
|
-
preFilterByOrOutValue(
|
688
|
-
applicationStore,
|
689
|
-
isFilterBy,
|
690
|
-
_cellData,
|
691
|
-
data,
|
692
|
-
tdsColState.propertyExpressionState,
|
693
|
-
tdsState.queryBuilderState,
|
694
|
-
);
|
695
|
-
} else {
|
696
|
-
applicationStore.notificationService.notifyError(
|
697
|
-
`Can't filter column '${data?.columnName}'`,
|
698
|
-
);
|
402
|
+
tdsColState,
|
403
|
+
).catch(applicationStore.alertUnhandledError);
|
699
404
|
}
|
700
405
|
};
|
701
406
|
|
702
|
-
export const filterByOrOutValues =
|
407
|
+
export const filterByOrOutValues = (
|
703
408
|
applicationStore: ApplicationStore<
|
704
409
|
LegendApplicationConfig,
|
705
410
|
LegendApplicationPluginManager<LegendApplicationPlugin>
|
@@ -707,17 +412,10 @@ export const filterByOrOutValues = async (
|
|
707
412
|
data: QueryBuilderTDSResultCellData | null,
|
708
413
|
isFilterBy: boolean,
|
709
414
|
tdsState: QueryBuilderTDSState,
|
710
|
-
):
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
applicationStore,
|
715
|
-
isFilterBy,
|
716
|
-
_cellData,
|
717
|
-
data,
|
718
|
-
tdsState,
|
719
|
-
);
|
720
|
-
}
|
415
|
+
): void => {
|
416
|
+
tdsState.queryBuilderState.resultState.selectedCells.forEach((_cellData) => {
|
417
|
+
filterByOrOutValue(applicationStore, isFilterBy, _cellData, data, tdsState);
|
418
|
+
});
|
721
419
|
};
|
722
420
|
|
723
421
|
export const QueryBuilderGridResultContextMenu = observer(
|
@@ -742,9 +440,7 @@ export const QueryBuilderGridResultContextMenu = observer(
|
|
742
440
|
<MenuContentItem
|
743
441
|
disabled={!tdsColState}
|
744
442
|
onClick={(): void => {
|
745
|
-
filterByOrOutValues(applicationStore, data, true, tdsState)
|
746
|
-
tdsState.queryBuilderState.applicationStore.alertUnhandledError,
|
747
|
-
);
|
443
|
+
filterByOrOutValues(applicationStore, data, true, tdsState);
|
748
444
|
}}
|
749
445
|
>
|
750
446
|
Filter By
|
@@ -752,9 +448,7 @@ export const QueryBuilderGridResultContextMenu = observer(
|
|
752
448
|
<MenuContentItem
|
753
449
|
disabled={!tdsColState}
|
754
450
|
onClick={(): void => {
|
755
|
-
filterByOrOutValues(applicationStore, data, false, tdsState)
|
756
|
-
tdsState.queryBuilderState.applicationStore.alertUnhandledError,
|
757
|
-
);
|
451
|
+
filterByOrOutValues(applicationStore, data, false, tdsState);
|
758
452
|
}}
|
759
453
|
>
|
760
454
|
Filter Out
|
@@ -233,9 +233,7 @@ const StringPrimitiveInstanceValueEditor = observer(
|
|
233
233
|
selectorConfig?: BasicValueSpecificationEditorSelectorConfig | undefined;
|
234
234
|
observerContext: ObserverContext;
|
235
235
|
handleBlur?: (() => void) | undefined;
|
236
|
-
handleKeyDown?:
|
237
|
-
| ((event: React.KeyboardEvent<HTMLInputElement>) => void)
|
238
|
-
| undefined;
|
236
|
+
handleKeyDown?: React.KeyboardEventHandler<HTMLDivElement> | undefined;
|
239
237
|
}
|
240
238
|
>(function StringPrimitiveInstanceValueEditor(props, ref) {
|
241
239
|
const {
|
@@ -261,7 +259,7 @@ const StringPrimitiveInstanceValueEditor = observer(
|
|
261
259
|
updateValueSpec(event.target.value);
|
262
260
|
};
|
263
261
|
// custom select
|
264
|
-
const selectedValue = { value: value, label: value };
|
262
|
+
const selectedValue = value ? { value: value, label: value } : null;
|
265
263
|
const reloadValuesFunc = selectorConfig?.reloadValues;
|
266
264
|
const changeValue = (
|
267
265
|
val: null | { value: number | string; label: string },
|
@@ -318,7 +316,7 @@ const StringPrimitiveInstanceValueEditor = observer(
|
|
318
316
|
className="value-spec-editor__enum-selector"
|
319
317
|
options={queryOptions}
|
320
318
|
onChange={changeValue}
|
321
|
-
value={selectedValue
|
319
|
+
value={selectedValue}
|
322
320
|
inputValue={value ?? ''}
|
323
321
|
onInputChange={handleInputChange}
|
324
322
|
darkMode={
|
@@ -333,8 +331,10 @@ const StringPrimitiveInstanceValueEditor = observer(
|
|
333
331
|
}}
|
334
332
|
hasError={!isValidInstanceValue(valueSpecification)}
|
335
333
|
placeholder={value === '' ? '(empty)' : undefined}
|
336
|
-
|
337
|
-
onKeyDown={
|
334
|
+
inputRef={ref as React.Ref<SelectComponent>}
|
335
|
+
onKeyDown={
|
336
|
+
handleKeyDown as React.KeyboardEventHandler<HTMLDivElement>
|
337
|
+
}
|
338
338
|
inputName={inputName}
|
339
339
|
/>
|
340
340
|
) : (
|
@@ -911,14 +911,18 @@ const PrimitiveCollectionInstanceValueEditor = observer(
|
|
911
911
|
saveEdit();
|
912
912
|
};
|
913
913
|
|
914
|
-
const handleKeyDown = (
|
914
|
+
const handleKeyDown: React.KeyboardEventHandler<HTMLDivElement> = (
|
915
|
+
event,
|
916
|
+
) => {
|
915
917
|
if ((event.key === 'Enter' || event.key === ',') && !event.shiftKey) {
|
916
918
|
addInputValueToSelectedOptions();
|
917
919
|
event.preventDefault();
|
918
920
|
}
|
919
921
|
};
|
920
922
|
|
921
|
-
const handlePaste
|
923
|
+
const handlePaste: React.ClipboardEventHandler<HTMLInputElement> = (
|
924
|
+
event,
|
925
|
+
) => {
|
922
926
|
const pastedText = event.clipboardData.getData('text');
|
923
927
|
const parsedData = parseCSVString(pastedText);
|
924
928
|
if (!parsedData) {
|
@@ -982,8 +986,7 @@ const PrimitiveCollectionInstanceValueEditor = observer(
|
|
982
986
|
}
|
983
987
|
isLoading={isLoading}
|
984
988
|
noMatchMessage={noMatchMessage}
|
985
|
-
placeholder={
|
986
|
-
inputPlaceholder={getPlaceHolder(expectedType)}
|
989
|
+
placeholder={getPlaceHolder(expectedType)}
|
987
990
|
components={{
|
988
991
|
DropdownIndicator: null,
|
989
992
|
}}
|
@@ -1121,14 +1124,18 @@ const EnumCollectionInstanceValueEditor = observer(
|
|
1121
1124
|
}
|
1122
1125
|
};
|
1123
1126
|
|
1124
|
-
const handleKeyDown = (
|
1127
|
+
const handleKeyDown: React.KeyboardEventHandler<HTMLDivElement> = (
|
1128
|
+
event,
|
1129
|
+
) => {
|
1125
1130
|
if ((event.key === 'Enter' || event.key === ',') && !event.shiftKey) {
|
1126
1131
|
addInputValueToSelectedOptions();
|
1127
1132
|
event.preventDefault();
|
1128
1133
|
}
|
1129
1134
|
};
|
1130
1135
|
|
1131
|
-
const handlePaste
|
1136
|
+
const handlePaste: React.ClipboardEventHandler<HTMLInputElement> = (
|
1137
|
+
event,
|
1138
|
+
) => {
|
1132
1139
|
const pastedText = event.clipboardData.getData('text');
|
1133
1140
|
const parsedData = parseCSVString(pastedText);
|
1134
1141
|
if (!parsedData) {
|
@@ -1199,8 +1206,7 @@ const EnumCollectionInstanceValueEditor = observer(
|
|
1199
1206
|
darkMode={
|
1200
1207
|
!applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled
|
1201
1208
|
}
|
1202
|
-
placeholder=
|
1203
|
-
inputPlaceholder="Add"
|
1209
|
+
placeholder="Add"
|
1204
1210
|
menuIsOpen={true}
|
1205
1211
|
inputName={inputName}
|
1206
1212
|
/>
|
@@ -1007,11 +1007,8 @@ const CustomDateInstanceValueEditor: React.FC<{
|
|
1007
1007
|
value: t.toString(),
|
1008
1008
|
label: t.toString(),
|
1009
1009
|
}))}
|
1010
|
-
onChange={(val: {
|
1011
|
-
|
1012
|
-
value: CUSTOM_DATE_OPTION_UNIT;
|
1013
|
-
}): void => {
|
1014
|
-
setUnitValue(val.value);
|
1010
|
+
onChange={(val: { label: string; value: string }): void => {
|
1011
|
+
setUnitValue(val.value as CUSTOM_DATE_OPTION_UNIT);
|
1015
1012
|
changeValue(
|
1016
1013
|
durationValue,
|
1017
1014
|
val.value,
|
@@ -1032,11 +1029,8 @@ const CustomDateInstanceValueEditor: React.FC<{
|
|
1032
1029
|
value: t.toString(),
|
1033
1030
|
label: t.toString(),
|
1034
1031
|
}))}
|
1035
|
-
onChange={(val: {
|
1036
|
-
|
1037
|
-
value: CUSTOM_DATE_OPTION_DIRECTION;
|
1038
|
-
}): void => {
|
1039
|
-
setDirectionValue(val.value);
|
1032
|
+
onChange={(val: { label: string; value: string }): void => {
|
1033
|
+
setDirectionValue(val.value as CUSTOM_DATE_OPTION_DIRECTION);
|
1040
1034
|
changeValue(
|
1041
1035
|
durationValue,
|
1042
1036
|
unitValue,
|
@@ -1059,11 +1053,10 @@ const CustomDateInstanceValueEditor: React.FC<{
|
|
1059
1053
|
label: t.toString(),
|
1060
1054
|
}),
|
1061
1055
|
)}
|
1062
|
-
onChange={(val: {
|
1063
|
-
|
1064
|
-
|
1065
|
-
|
1066
|
-
setReferenceMomentValueValue(val.value);
|
1056
|
+
onChange={(val: { label: string; value: string }): void => {
|
1057
|
+
setReferenceMomentValueValue(
|
1058
|
+
val.value as CUSTOM_DATE_OPTION_REFERENCE_MOMENT,
|
1059
|
+
);
|
1067
1060
|
changeValue(durationValue, unitValue, directionValue, val.value);
|
1068
1061
|
}}
|
1069
1062
|
value={{ value: referenceMomentValue, label: referenceMomentValue }}
|
@@ -1128,7 +1121,7 @@ const CustomFirstDayOfValueSpecificationEditor: React.FC<{
|
|
1128
1121
|
<div className="value-spec-editor__date-picker__custom-date">
|
1129
1122
|
<div className="value-spec-editor__date-picker__custom-date__input">
|
1130
1123
|
<CustomSelectorInput
|
1131
|
-
|
1124
|
+
inputRef={selectorRef}
|
1132
1125
|
placeholder="Choose a unit..."
|
1133
1126
|
className="value-spec-editor__date-picker__custom-date__input-dropdown value-spec-editor__date-picker__custom-date__input-dropdown--full"
|
1134
1127
|
options={Object.values(CUSTOM_DATE_FIRST_DAY_OF_UNIT).map((t) => ({
|
@@ -1197,7 +1190,7 @@ const CustomPreviousDayOfWeekValueSpecificationEditor: React.FC<{
|
|
1197
1190
|
<div className="value-spec-editor__date-picker__custom-date">
|
1198
1191
|
<div className="value-spec-editor__date-picker__custom-date__input">
|
1199
1192
|
<CustomSelectorInput
|
1200
|
-
|
1193
|
+
inputRef={selectorRef}
|
1201
1194
|
placeholder="Choose a day..."
|
1202
1195
|
className="value-spec-editor__date-picker__custom-date__input-dropdown value-spec-editor__date-picker__custom-date__input-dropdown--full"
|
1203
1196
|
options={Object.values(CUSTOM_DATE_DAY_OF_WEEK).map((t) => ({
|
@@ -90,8 +90,9 @@ const ClassQueryBuilderSetupPanelContent = observer(
|
|
90
90
|
const mappingFilterOption = createFilter({
|
91
91
|
ignoreCase: true,
|
92
92
|
ignoreAccents: false,
|
93
|
-
stringify: (option:
|
94
|
-
|
93
|
+
stringify: (option: {
|
94
|
+
data: PackageableElementOption<Mapping>;
|
95
|
+
}): string => option.data.value.path,
|
95
96
|
});
|
96
97
|
|
97
98
|
// runtime
|
@@ -124,9 +125,9 @@ const ClassQueryBuilderSetupPanelContent = observer(
|
|
124
125
|
const runtimeFilterOption = createFilter({
|
125
126
|
ignoreCase: true,
|
126
127
|
ignoreAccents: false,
|
127
|
-
stringify: (option: { value: Runtime }): string =>
|
128
|
-
option.value instanceof RuntimePointer
|
129
|
-
? option.value.packageableRuntime.value.path
|
128
|
+
stringify: (option: { data: { value: Runtime } }): string =>
|
129
|
+
option.data.value instanceof RuntimePointer
|
130
|
+
? option.data.value.packageableRuntime.value.path
|
130
131
|
: 'custom',
|
131
132
|
});
|
132
133
|
|