@finos/legend-query-builder 4.14.75 → 4.14.76
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/lib/components/QueryBuilder_LegendApplicationPlugin.js +1 -1
- package/lib/components/QueryBuilder_LegendApplicationPlugin.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +10 -3
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js +2 -2
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.js +5 -1
- package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSGridResult.js +2 -2
- package/lib/components/result/tds/QueryBuilderTDSGridResult.js.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSResultShared.d.ts.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSResultShared.js +6 -3
- package/lib/components/result/tds/QueryBuilderTDSResultShared.js.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.js +1 -1
- package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.js.map +1 -1
- package/lib/components/shared/CustomDatePicker.d.ts.map +1 -1
- package/lib/components/shared/CustomDatePicker.js +6 -3
- package/lib/components/shared/CustomDatePicker.js.map +1 -1
- package/lib/graph-manager/QueryBuilder_GraphManagerPreset.js +1 -1
- package/lib/graph-manager/QueryBuilder_GraphManagerPreset.js.map +1 -1
- package/lib/graph-manager/QueryBuilder_PureGraphManagerPlugin.js +1 -1
- package/lib/graph-manager/QueryBuilder_PureGraphManagerPlugin.js.map +1 -1
- package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js +1 -1
- package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +2 -2
- package/lib/stores/QueryBuilderState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderState.js.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts +1 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.js +1 -0
- package/lib/stores/QueryBuilderValueSpecificationHelper.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts +4 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js +22 -11
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js.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 +8 -4
- package/lib/stores/filter/QueryBuilderFilterState.js.map +1 -1
- package/lib/stores/shared/ValueSpecificationModifierHelper.d.ts.map +1 -1
- package/lib/stores/shared/ValueSpecificationModifierHelper.js +1 -3
- package/lib/stores/shared/ValueSpecificationModifierHelper.js.map +1 -1
- package/package.json +10 -10
- package/src/components/QueryBuilder_LegendApplicationPlugin.ts +1 -1
- package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +24 -2
- package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +5 -2
- package/src/components/filter/QueryBuilderFilterPanel.tsx +10 -1
- package/src/components/result/tds/QueryBuilderTDSGridResult.tsx +2 -2
- package/src/components/result/tds/QueryBuilderTDSResultShared.tsx +18 -16
- package/src/components/result/tds/QueryBuilderTDSSimpleGridResult.tsx +1 -1
- package/src/components/shared/CustomDatePicker.tsx +17 -15
- package/src/graph-manager/QueryBuilder_GraphManagerPreset.ts +1 -1
- package/src/graph-manager/QueryBuilder_PureGraphManagerPlugin.ts +1 -1
- package/src/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.ts +1 -1
- package/src/stores/QueryBuilderState.ts +1 -0
- package/src/stores/QueryBuilderValueSpecificationHelper.ts +2 -1
- package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.ts +39 -10
- package/src/stores/filter/QueryBuilderFilterState.ts +11 -3
- package/src/stores/shared/ValueSpecificationModifierHelper.ts +0 -1
@@ -1320,21 +1320,23 @@ export const CustomDatePicker: React.FC<{
|
|
1320
1320
|
const theReservedCustomDateOption = reservedCustomDateOptions.filter(
|
1321
1321
|
(d) => d.value === chosenDatePickerOption.value,
|
1322
1322
|
);
|
1323
|
-
theReservedCustomDateOption.length > 0
|
1324
|
-
|
1325
|
-
|
1326
|
-
|
1327
|
-
|
1328
|
-
|
1329
|
-
|
1330
|
-
|
1331
|
-
|
1332
|
-
|
1333
|
-
|
1334
|
-
|
1335
|
-
|
1336
|
-
|
1337
|
-
)
|
1323
|
+
if (theReservedCustomDateOption.length > 0) {
|
1324
|
+
setValueSpecification(
|
1325
|
+
buildPureAdjustDateFunction(
|
1326
|
+
guaranteeNonNullable(theReservedCustomDateOption[0]),
|
1327
|
+
graph,
|
1328
|
+
observerContext,
|
1329
|
+
),
|
1330
|
+
);
|
1331
|
+
} else {
|
1332
|
+
setValueSpecification(
|
1333
|
+
buildPureDateFunctionExpression(
|
1334
|
+
chosenDatePickerOption,
|
1335
|
+
graph,
|
1336
|
+
observerContext,
|
1337
|
+
),
|
1338
|
+
);
|
1339
|
+
}
|
1338
1340
|
}
|
1339
1341
|
setDatePickerOption(chosenDatePickerOption);
|
1340
1342
|
};
|
@@ -14,7 +14,7 @@
|
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
16
|
|
17
|
-
import packageJson from '../../package.json'
|
17
|
+
import packageJson from '../../package.json' with { type: 'json' };
|
18
18
|
import { AbstractPreset } from '@finos/legend-shared';
|
19
19
|
import { QueryBuilder_PureProtocolProcessorPlugin } from './protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js';
|
20
20
|
import { QueryBuilder_PureGraphManagerPlugin } from './QueryBuilder_PureGraphManagerPlugin.js';
|
@@ -14,7 +14,7 @@
|
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
16
|
|
17
|
-
import packageJson from '../../package.json'
|
17
|
+
import packageJson from '../../package.json' with { type: 'json' };
|
18
18
|
import {
|
19
19
|
PureGraphManagerPlugin,
|
20
20
|
type PureGraphManagerExtensionBuilder,
|
@@ -14,7 +14,7 @@
|
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
16
|
|
17
|
-
import packageJson from '../../../../package.json'
|
17
|
+
import packageJson from '../../../../package.json' with { type: 'json' };
|
18
18
|
import {
|
19
19
|
V1_buildExistsFunctionExpression,
|
20
20
|
V1_buildFilterFunctionExpression,
|
@@ -111,6 +111,7 @@ import { QUERY_BUILDER_EVENT } from '../__lib__/QueryBuilderEvent.js';
|
|
111
111
|
import { QueryBuilderChangeHistoryState } from './QueryBuilderChangeHistoryState.js';
|
112
112
|
import { type QueryBuilderWorkflowState } from './query-workflow/QueryBuilderWorkFlowState.js';
|
113
113
|
|
114
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
114
115
|
export interface QueryableSourceInfo {}
|
115
116
|
|
116
117
|
export type QueryableClassMappingRuntimeInfo = QueryableSourceInfo & {
|
@@ -213,7 +213,7 @@ export const isPropertyExpressionChainOptional = (
|
|
213
213
|
|
214
214
|
export const isTypeCompatibleForAssignment = (
|
215
215
|
type: Type | undefined,
|
216
|
-
assignmentType: Type,
|
216
|
+
assignmentType: Type | undefined,
|
217
217
|
): boolean => {
|
218
218
|
const NUMERIC_PRIMITIVE_TYPES = [
|
219
219
|
PRIMITIVE_TYPE.NUMBER,
|
@@ -231,6 +231,7 @@ export const isTypeCompatibleForAssignment = (
|
|
231
231
|
// When changing the return type for LHS, the RHS value should be adjusted accordingly.
|
232
232
|
return (
|
233
233
|
type !== undefined &&
|
234
|
+
assignmentType !== undefined &&
|
234
235
|
// Numeric value is handled loosely because of autoboxing
|
235
236
|
// e.g. LHS (integer) = RHS (float) is acceptable
|
236
237
|
((NUMERIC_PRIMITIVE_TYPES.includes(type.path) &&
|
@@ -19,13 +19,13 @@ import {
|
|
19
19
|
type PureModel,
|
20
20
|
type Type,
|
21
21
|
type ValueSpecification,
|
22
|
-
type VariableExpression,
|
23
22
|
type SimpleFunctionExpression,
|
24
23
|
type ExecutionResultWithMetadata,
|
25
24
|
observe_ValueSpecification,
|
26
25
|
PrimitiveType,
|
27
26
|
CollectionInstanceValue,
|
28
27
|
InstanceValue,
|
28
|
+
VariableExpression,
|
29
29
|
} from '@finos/legend-graph';
|
30
30
|
import {
|
31
31
|
type GeneratorFn,
|
@@ -74,11 +74,13 @@ import type { QueryBuilderTDSColumnState } from '../QueryBuilderTDSColumnState.j
|
|
74
74
|
import {
|
75
75
|
getCollectionValueSpecificationType,
|
76
76
|
getNonCollectionValueSpecificationType,
|
77
|
+
isTypeCompatibleForAssignment,
|
77
78
|
isValidInstanceValue,
|
78
79
|
isValueExpressionReferencedInValue,
|
79
80
|
} from '../../../QueryBuilderValueSpecificationHelper.js';
|
80
81
|
import { buildtdsPropertyExpressionFromColState } from './operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
81
82
|
import { TDS_COLUMN_GETTER } from '../../../../graph/QueryBuilderMetaModelConst.js';
|
83
|
+
import type { QueryBuilderFilterTreeNodeData } from '../../../filter/QueryBuilderFilterState.js';
|
82
84
|
|
83
85
|
export enum QUERY_BUILDER_POST_FILTER_DND_TYPE {
|
84
86
|
GROUP_CONDITION = 'QUERY_BUILDER_POST_FILTER_DND_TYPE.GROUP_CONDITION',
|
@@ -1012,15 +1014,45 @@ export class QueryBuilderPostFilterState
|
|
1012
1014
|
);
|
1013
1015
|
}
|
1014
1016
|
|
1017
|
+
isInvalidValueSpecPostFilterValue(
|
1018
|
+
node: QueryBuilderPostFilterTreeNodeData,
|
1019
|
+
): boolean {
|
1020
|
+
return (
|
1021
|
+
node instanceof QueryBuilderPostFilterTreeConditionNodeData &&
|
1022
|
+
node.condition.rightConditionValue instanceof
|
1023
|
+
PostFilterValueSpecConditionValueState &&
|
1024
|
+
((node.condition.rightConditionValue.value instanceof InstanceValue &&
|
1025
|
+
!isValidInstanceValue(node.condition.rightConditionValue.value)) ||
|
1026
|
+
(node.condition.rightConditionValue.value instanceof
|
1027
|
+
VariableExpression &&
|
1028
|
+
!isTypeCompatibleForAssignment(
|
1029
|
+
node.condition.leftConditionValue.getColumnType(),
|
1030
|
+
node.condition.rightConditionValue.type,
|
1031
|
+
)))
|
1032
|
+
);
|
1033
|
+
}
|
1034
|
+
|
1035
|
+
isInvalidTDSColumnPostFilterValue(
|
1036
|
+
node: QueryBuilderFilterTreeNodeData,
|
1037
|
+
): boolean {
|
1038
|
+
return (
|
1039
|
+
node instanceof QueryBuilderPostFilterTreeConditionNodeData &&
|
1040
|
+
node.condition.rightConditionValue instanceof
|
1041
|
+
PostFilterTDSColumnValueConditionValueState &&
|
1042
|
+
!isTypeCompatibleForAssignment(
|
1043
|
+
node.condition.leftConditionValue.getColumnType(),
|
1044
|
+
node.condition.rightConditionValue.type,
|
1045
|
+
)
|
1046
|
+
);
|
1047
|
+
}
|
1048
|
+
|
1015
1049
|
get allValidationIssues(): string[] {
|
1016
1050
|
const validationIssues: string[] = [];
|
1017
1051
|
Array.from(this.nodes.values()).forEach((node) => {
|
1018
1052
|
if (node instanceof QueryBuilderPostFilterTreeConditionNodeData) {
|
1019
1053
|
if (
|
1020
|
-
node
|
1021
|
-
|
1022
|
-
node.condition.rightConditionValue.value instanceof InstanceValue &&
|
1023
|
-
!isValidInstanceValue(node.condition.rightConditionValue.value)
|
1054
|
+
this.isInvalidValueSpecPostFilterValue(node) ||
|
1055
|
+
this.isInvalidTDSColumnPostFilterValue(node)
|
1024
1056
|
) {
|
1025
1057
|
validationIssues.push(
|
1026
1058
|
`Filter value for ${node.condition.leftConditionValue.columnName} is missing or invalid`,
|
@@ -1043,11 +1075,8 @@ export class QueryBuilderPostFilterState
|
|
1043
1075
|
get hasInvalidFilterValues(): boolean {
|
1044
1076
|
return Array.from(this.nodes.values()).some(
|
1045
1077
|
(node) =>
|
1046
|
-
node
|
1047
|
-
node
|
1048
|
-
PostFilterValueSpecConditionValueState &&
|
1049
|
-
node.condition.rightConditionValue.value instanceof InstanceValue &&
|
1050
|
-
!isValidInstanceValue(node.condition.rightConditionValue.value),
|
1078
|
+
this.isInvalidValueSpecPostFilterValue(node) ||
|
1079
|
+
this.isInvalidTDSColumnPostFilterValue(node),
|
1051
1080
|
);
|
1052
1081
|
}
|
1053
1082
|
|
@@ -38,7 +38,6 @@ import { QueryBuilderPropertyExpressionState } from '../QueryBuilderPropertyEdit
|
|
38
38
|
import type { QueryBuilderState } from '../QueryBuilderState.js';
|
39
39
|
import {
|
40
40
|
type ValueSpecification,
|
41
|
-
type VariableExpression,
|
42
41
|
type Type,
|
43
42
|
type ExecutionResultWithMetadata,
|
44
43
|
AbstractPropertyExpression,
|
@@ -46,6 +45,7 @@ import {
|
|
46
45
|
CollectionInstanceValue,
|
47
46
|
InstanceValue,
|
48
47
|
SimpleFunctionExpression,
|
48
|
+
VariableExpression,
|
49
49
|
matchFunctionName,
|
50
50
|
} from '@finos/legend-graph';
|
51
51
|
import { DEFAULT_LAMBDA_VARIABLE_NAME } from '../QueryBuilderConfig.js';
|
@@ -61,6 +61,7 @@ import { QUERY_BUILDER_STATE_HASH_STRUCTURE } from '../QueryBuilderStateHashUtil
|
|
61
61
|
import {
|
62
62
|
getCollectionValueSpecificationType,
|
63
63
|
getNonCollectionValueSpecificationType,
|
64
|
+
isTypeCompatibleForAssignment,
|
64
65
|
isValidInstanceValue,
|
65
66
|
isValueExpressionReferencedInValue,
|
66
67
|
} from '../QueryBuilderValueSpecificationHelper.js';
|
@@ -1186,8 +1187,15 @@ export class QueryBuilderFilterState
|
|
1186
1187
|
node instanceof QueryBuilderFilterTreeConditionNodeData &&
|
1187
1188
|
node.condition.rightConditionValue instanceof
|
1188
1189
|
FilterValueSpecConditionValueState &&
|
1189
|
-
node.condition.rightConditionValue.value instanceof InstanceValue &&
|
1190
|
-
|
1190
|
+
((node.condition.rightConditionValue.value instanceof InstanceValue &&
|
1191
|
+
!isValidInstanceValue(node.condition.rightConditionValue.value)) ||
|
1192
|
+
(node.condition.rightConditionValue.value instanceof
|
1193
|
+
VariableExpression &&
|
1194
|
+
!isTypeCompatibleForAssignment(
|
1195
|
+
node.condition.propertyExpressionState.propertyExpression.func.value
|
1196
|
+
.genericType.value.rawType,
|
1197
|
+
node.condition.rightConditionValue.value.genericType?.value.rawType,
|
1198
|
+
)))
|
1191
1199
|
);
|
1192
1200
|
}
|
1193
1201
|
|
@@ -55,7 +55,6 @@ export const valueSpecification_setMultiplicity = action(
|
|
55
55
|
export const simpleFunctionExpression_setFunc = action(
|
56
56
|
(
|
57
57
|
target: SimpleFunctionExpression,
|
58
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
59
58
|
val: PackageableElementReference<Function> | undefined,
|
60
59
|
): void => {
|
61
60
|
target.func = val ? observe_PackageableElementReference(val) : undefined;
|