@finos/legend-application-query 5.0.0 → 5.1.0
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/QueryBuilderExplorerPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderExplorerPanel.js +3 -1
- package/lib/components/QueryBuilderExplorerPanel.js.map +1 -1
- package/lib/components/QueryBuilderFetchStructurePanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderFetchStructurePanel.js +39 -7
- package/lib/components/QueryBuilderFetchStructurePanel.js.map +1 -1
- package/lib/components/QueryBuilderFilterPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderFilterPanel.js +59 -15
- package/lib/components/QueryBuilderFilterPanel.js.map +1 -1
- package/lib/components/QueryBuilderFunctionsExplorerPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderFunctionsExplorerPanel.js.map +1 -1
- package/lib/components/QueryBuilderParameterPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderParameterPanel.js +3 -2
- package/lib/components/QueryBuilderParameterPanel.js.map +1 -1
- package/lib/components/QueryBuilderPostFilterPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderPostFilterPanel.js +29 -7
- package/lib/components/QueryBuilderPostFilterPanel.js.map +1 -1
- package/lib/components/QueryBuilderProjectionPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderProjectionPanel.js +6 -2
- package/lib/components/QueryBuilderProjectionPanel.js.map +1 -1
- package/lib/components/QueryBuilderPropertySearchPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderPropertySearchPanel.js +3 -2
- package/lib/components/QueryBuilderPropertySearchPanel.js.map +1 -1
- package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderResultPanel.js +13 -7
- package/lib/components/QueryBuilderResultPanel.js.map +1 -1
- package/lib/components/QueryBuilderSetupPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderSetupPanel.js +5 -3
- package/lib/components/QueryBuilderSetupPanel.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/package.json +2 -3
- package/lib/stores/QueryBuilderExplorerState.d.ts +1 -1
- package/lib/stores/QueryBuilderExplorerState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderExplorerState.js +13 -3
- package/lib/stores/QueryBuilderExplorerState.js.map +1 -1
- package/lib/stores/QueryBuilderFetchStructureState.d.ts +2 -1
- package/lib/stores/QueryBuilderFetchStructureState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderFetchStructureState.js +2 -2
- package/lib/stores/QueryBuilderFetchStructureState.js.map +1 -1
- package/lib/stores/QueryBuilderFilterState.d.ts +11 -1
- package/lib/stores/QueryBuilderFilterState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderFilterState.js +33 -2
- package/lib/stores/QueryBuilderFilterState.js.map +1 -1
- package/lib/stores/QueryBuilderOperatorLoader.d.ts +47 -0
- package/lib/stores/QueryBuilderOperatorLoader.d.ts.map +1 -0
- package/lib/stores/QueryBuilderOperatorLoader.js +94 -0
- package/lib/stores/QueryBuilderOperatorLoader.js.map +1 -0
- package/lib/stores/QueryBuilderOperatorsHelper.d.ts +1 -0
- package/lib/stores/QueryBuilderOperatorsHelper.d.ts.map +1 -1
- package/lib/stores/QueryBuilderOperatorsHelper.js +28 -1
- package/lib/stores/QueryBuilderOperatorsHelper.js.map +1 -1
- package/lib/stores/QueryBuilderPostFilterState.d.ts +5 -2
- package/lib/stores/QueryBuilderPostFilterState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderPostFilterState.js +25 -1
- package/lib/stores/QueryBuilderPostFilterState.js.map +1 -1
- package/lib/stores/QueryBuilderPreviewDataHelper.d.ts +4 -3
- package/lib/stores/QueryBuilderPreviewDataHelper.d.ts.map +1 -1
- package/lib/stores/QueryBuilderPreviewDataHelper.js +77 -97
- package/lib/stores/QueryBuilderPreviewDataHelper.js.map +1 -1
- package/lib/stores/QueryBuilderProjectionState.d.ts +4 -2
- package/lib/stores/QueryBuilderProjectionState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderProjectionState.js +24 -28
- package/lib/stores/QueryBuilderProjectionState.js.map +1 -1
- package/lib/stores/QueryBuilderPropertySearchPanelState.js +1 -1
- package/lib/stores/QueryBuilderPropertySearchPanelState.js.map +1 -1
- package/lib/stores/QueryBuilderResultState.d.ts +5 -2
- package/lib/stores/QueryBuilderResultState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderResultState.js +19 -7
- package/lib/stores/QueryBuilderResultState.js.map +1 -1
- package/lib/stores/QueryBuilderState.d.ts +2 -0
- package/lib/stores/QueryBuilderState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderState.js +11 -58
- package/lib/stores/QueryBuilderState.js.map +1 -1
- package/lib/stores/QueryBuilderTestUtils.d.ts +24 -0
- package/lib/stores/QueryBuilderTestUtils.d.ts.map +1 -0
- package/lib/stores/QueryBuilderTestUtils.js +49 -0
- package/lib/stores/QueryBuilderTestUtils.js.map +1 -0
- package/lib/stores/QueryBuilderTypeaheadHelper.d.ts +24 -0
- package/lib/stores/QueryBuilderTypeaheadHelper.d.ts.map +1 -0
- package/lib/stores/QueryBuilderTypeaheadHelper.js +89 -0
- package/lib/stores/QueryBuilderTypeaheadHelper.js.map +1 -0
- package/lib/stores/QueryEditorStore.d.ts.map +1 -1
- package/lib/stores/QueryEditorStore.js +3 -7
- package/lib/stores/QueryEditorStore.js.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.d.ts.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.js +5 -31
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.js.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.d.ts.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.js +5 -31
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.js.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.js +5 -31
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.js.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThan.d.ts.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThan.js +5 -32
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThan.js.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.d.ts.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.js +5 -31
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.js.map +1 -1
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.d.ts.map +1 -1
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.js +3 -29
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.js.map +1 -1
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.d.ts.map +1 -1
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.js +4 -30
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.js.map +1 -1
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.d.ts.map +1 -1
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.js +4 -30
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.js.map +1 -1
- package/package.json +9 -10
- package/src/components/QueryBuilderExplorerPanel.tsx +3 -1
- package/src/components/QueryBuilderFetchStructurePanel.tsx +47 -7
- package/src/components/QueryBuilderFilterPanel.tsx +101 -21
- package/src/components/QueryBuilderFunctionsExplorerPanel.tsx +1 -0
- package/src/components/QueryBuilderParameterPanel.tsx +3 -2
- package/src/components/QueryBuilderPostFilterPanel.tsx +53 -7
- package/src/components/QueryBuilderProjectionPanel.tsx +19 -2
- package/src/components/QueryBuilderPropertySearchPanel.tsx +2 -1
- package/src/components/QueryBuilderResultPanel.tsx +75 -46
- package/src/components/QueryBuilderSetupPanel.tsx +5 -3
- package/src/index.ts +2 -4
- package/src/stores/QueryBuilderExplorerState.ts +17 -3
- package/src/stores/QueryBuilderFetchStructureState.ts +9 -2
- package/src/stores/QueryBuilderFilterState.ts +50 -0
- package/src/stores/QueryBuilderOperatorLoader.ts +133 -0
- package/src/stores/QueryBuilderOperatorsHelper.ts +35 -0
- package/src/stores/QueryBuilderPostFilterState.ts +40 -1
- package/src/stores/QueryBuilderPreviewDataHelper.ts +122 -217
- package/src/stores/QueryBuilderProjectionState.ts +40 -42
- package/src/stores/QueryBuilderPropertySearchPanelState.ts +1 -1
- package/src/stores/QueryBuilderResultState.ts +27 -9
- package/src/stores/QueryBuilderState.ts +27 -94
- package/src/stores/QueryBuilderTestUtils.ts +93 -0
- package/src/stores/QueryBuilderTypeaheadHelper.ts +149 -0
- package/src/stores/QueryEditorStore.ts +11 -12
- package/src/stores/filterOperators/QueryBuilderFilterOperator_Equal.ts +6 -35
- package/src/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.ts +9 -35
- package/src/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.ts +9 -35
- package/src/stores/filterOperators/QueryBuilderFilterOperator_LessThan.ts +9 -36
- package/src/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.ts +9 -35
- package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.ts +6 -33
- package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.ts +11 -36
- package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.ts +11 -36
- package/tsconfig.json +3 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryBuilderFilterOperator_LessThanEqual.js","sourceRoot":"","sources":["../../../src/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,0BAA0B,GAG3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,cAAc,EAId,
|
1
|
+
{"version":3,"file":"QueryBuilderFilterOperator_LessThanEqual.js","sourceRoot":"","sources":["../../../src/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryBuilderPostFilterOperator_Equal.d.ts","sourceRoot":"","sources":["../../../src/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,IAAI,EACT,KAAK,kBAAkB,EAEvB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,
|
1
|
+
{"version":3,"file":"QueryBuilderPostFilterOperator_Equal.d.ts","sourceRoot":"","sources":["../../../src/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,IAAI,EACT,KAAK,kBAAkB,EAEvB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EAWxB,MAAM,qBAAqB,CAAC;AAY7B,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAEtF,OAAO,KAAK,EACV,wBAAwB,EACxB,2BAA2B,EAC5B,MAAM,mCAAmC,CAAC;AAI3C,qBAAa,oCAAqC,SAAQ,8BAA8B;IACtF,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAoBzC,8BAA8B,CAC5B,wBAAwB,EAAE,wBAAwB,GACjD,OAAO;IAaV,8BAA8B,CAC5B,wBAAwB,EAAE,wBAAwB,GACjD,kBAAkB;IAqDrB,kCAAkC,CAChC,wBAAwB,EAAE,wBAAwB,GACjD,kBAAkB,GAAG,SAAS;IAajC,6BAA6B,CAC3B,eAAe,EAAE,2BAA2B,EAC5C,UAAU,EAAE,kBAAkB,GAC7B,wBAAwB,GAAG,SAAS;CAcxC;AACD,qBAAa,uCAAwC,SAAQ,oCAAoC;IACtF,QAAQ,IAAI,MAAM;IAIlB,kCAAkC,CACzC,wBAAwB,EAAE,wBAAwB,GACjD,kBAAkB,GAAG,SAAS;IAaxB,6BAA6B,CACpC,eAAe,EAAE,2BAA2B,EAC5C,UAAU,EAAE,wBAAwB,GACnC,wBAAwB,GAAG,SAAS;CAMxC"}
|
@@ -13,10 +13,10 @@
|
|
13
13
|
* See the License for the specific language governing permissions and
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
|
-
import { AbstractPropertyExpression, Enumeration, EnumValueExplicitReference, EnumValueInstanceValue, GenericType, GenericTypeExplicitReference, PRIMITIVE_TYPE, TYPICAL_MULTIPLICITY_TYPE,
|
16
|
+
import { AbstractPropertyExpression, Enumeration, EnumValueExplicitReference, EnumValueInstanceValue, GenericType, GenericTypeExplicitReference, PRIMITIVE_TYPE, TYPICAL_MULTIPLICITY_TYPE, SUPPORTED_FUNCTIONS, buildPrimitiveInstanceValue, } from '@finos/legend-graph';
|
17
17
|
import { guaranteeNonNullable, UnsupportedOperationError, } from '@finos/legend-shared';
|
18
18
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../QueryBuilder_Const.js';
|
19
|
-
import { buildNotExpression, getNonCollectionValueSpecificationType, unwrapNotExpression, } from '../QueryBuilderOperatorsHelper.js';
|
19
|
+
import { buildNotExpression, getNonCollectionValueSpecificationType, isTypeCompatibleWithConditionValueType, unwrapNotExpression, } from '../QueryBuilderOperatorsHelper.js';
|
20
20
|
import { QueryBuilderPostFilterOperator } from '../QueryBuilderPostFilterOperator.js';
|
21
21
|
import { buildPostFilterConditionState } from '../QueryBuilderPostFilterProcessor.js';
|
22
22
|
import { generateDefaultValueForPrimitiveType } from '../QueryBuilderValueSpecificationBuilderHelper.js';
|
@@ -41,35 +41,9 @@ export class QueryBuilderPostFilterOperator_Equal extends QueryBuilderPostFilter
|
|
41
41
|
(type instanceof Enumeration && type.values.length > 0));
|
42
42
|
}
|
43
43
|
isCompatibleWithConditionValue(postFilterConditionState) {
|
44
|
-
const lhsType = guaranteeNonNullable(postFilterConditionState.columnState.getReturnType());
|
45
44
|
const valueSpecification = postFilterConditionState.value;
|
46
45
|
if (valueSpecification) {
|
47
|
-
|
48
|
-
const NUMERIC_PRIMITIVE_TYPES = [
|
49
|
-
PRIMITIVE_TYPE.NUMBER,
|
50
|
-
PRIMITIVE_TYPE.INTEGER,
|
51
|
-
PRIMITIVE_TYPE.DECIMAL,
|
52
|
-
PRIMITIVE_TYPE.FLOAT,
|
53
|
-
];
|
54
|
-
const DATE_PRIMITIVE_TYPES = [
|
55
|
-
PRIMITIVE_TYPE.DATE,
|
56
|
-
PRIMITIVE_TYPE.DATETIME,
|
57
|
-
PRIMITIVE_TYPE.STRICTDATE,
|
58
|
-
PRIMITIVE_TYPE.LATESTDATE,
|
59
|
-
];
|
60
|
-
// When changing the return type for LHS, the RHS value should be adjusted accordingly.
|
61
|
-
return (type !== undefined &&
|
62
|
-
// Numeric value is handled loosely because of autoboxing
|
63
|
-
// e.g. LHS (integer) = RHS (float) is acceptable
|
64
|
-
((NUMERIC_PRIMITIVE_TYPES.includes(type.path) &&
|
65
|
-
NUMERIC_PRIMITIVE_TYPES.includes(lhsType.path)) ||
|
66
|
-
// Date value is handled loosely as well if the LHS is of type DateTime
|
67
|
-
// This is because we would simulate auto-boxing for date by altering the
|
68
|
-
// Pure function used for the operation
|
69
|
-
// e.g. LHS(DateTime) = RHS(Date) -> we use isOnDay() instead of is()
|
70
|
-
DATE_PRIMITIVE_TYPES.includes(type.path) ||
|
71
|
-
type === lhsType ||
|
72
|
-
isSuperType(lhsType, type)));
|
46
|
+
return isTypeCompatibleWithConditionValueType(getNonCollectionValueSpecificationType(valueSpecification), guaranteeNonNullable(postFilterConditionState.columnState.getReturnType()));
|
73
47
|
}
|
74
48
|
return false;
|
75
49
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryBuilderPostFilterOperator_Equal.js","sourceRoot":"","sources":["../../../src/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAML,0BAA0B,EAC1B,WAAW,EACX,0BAA0B,EAC1B,sBAAsB,EACtB,WAAW,EACX,4BAA4B,EAC5B,cAAc,EACd,yBAAyB,EACzB,
|
1
|
+
{"version":3,"file":"QueryBuilderPostFilterOperator_Equal.js","sourceRoot":"","sources":["../../../src/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryBuilderPostFilterOperator_GreaterThan.d.ts","sourceRoot":"","sources":["../../../src/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,IAAI,EACT,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,
|
1
|
+
{"version":3,"file":"QueryBuilderPostFilterOperator_GreaterThan.d.ts","sourceRoot":"","sources":["../../../src/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,IAAI,EACT,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EAKxB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAEtF,OAAO,KAAK,EACV,wBAAwB,EACxB,2BAA2B,EAC5B,MAAM,mCAAmC,CAAC;AAI3C,qBAAa,0CAA2C,SAAQ,8BAA8B;IAC5F,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAczC,8BAA8B,CAC5B,wBAAwB,EAAE,wBAAwB,GACjD,OAAO;IAWV,8BAA8B,CAC5B,wBAAwB,EAAE,wBAAwB,GACjD,kBAAkB;IA0BrB,kCAAkC,CAChC,wBAAwB,EAAE,wBAAwB,GACjD,kBAAkB,GAAG,SAAS;IAajC,6BAA6B,CAC3B,eAAe,EAAE,2BAA2B,EAC5C,UAAU,EAAE,kBAAkB,GAC7B,wBAAwB,GAAG,SAAS;CAcxC"}
|
@@ -13,10 +13,10 @@
|
|
13
13
|
* See the License for the specific language governing permissions and
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
|
-
import { AbstractPropertyExpression, PRIMITIVE_TYPE,
|
16
|
+
import { AbstractPropertyExpression, PRIMITIVE_TYPE, SUPPORTED_FUNCTIONS, buildPrimitiveInstanceValue, } from '@finos/legend-graph';
|
17
17
|
import { guaranteeNonNullable, UnsupportedOperationError, } from '@finos/legend-shared';
|
18
18
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../QueryBuilder_Const.js';
|
19
|
-
import { getNonCollectionValueSpecificationType } from '../QueryBuilderOperatorsHelper.js';
|
19
|
+
import { getNonCollectionValueSpecificationType, isTypeCompatibleWithConditionValueType, } from '../QueryBuilderOperatorsHelper.js';
|
20
20
|
import { QueryBuilderPostFilterOperator } from '../QueryBuilderPostFilterOperator.js';
|
21
21
|
import { buildPostFilterConditionState } from '../QueryBuilderPostFilterProcessor.js';
|
22
22
|
import { generateDefaultValueForPrimitiveType } from '../QueryBuilderValueSpecificationBuilderHelper.js';
|
@@ -37,35 +37,9 @@ export class QueryBuilderPostFilterOperator_GreaterThan extends QueryBuilderPost
|
|
37
37
|
].includes(type.path);
|
38
38
|
}
|
39
39
|
isCompatibleWithConditionValue(postFilterConditionState) {
|
40
|
-
|
41
|
-
const type = postFilterConditionState.value
|
40
|
+
return isTypeCompatibleWithConditionValueType(postFilterConditionState.value
|
42
41
|
? getNonCollectionValueSpecificationType(postFilterConditionState.value)
|
43
|
-
: undefined;
|
44
|
-
const NUMERIC_PRIMITIVE_TYPES = [
|
45
|
-
PRIMITIVE_TYPE.NUMBER,
|
46
|
-
PRIMITIVE_TYPE.INTEGER,
|
47
|
-
PRIMITIVE_TYPE.DECIMAL,
|
48
|
-
PRIMITIVE_TYPE.FLOAT,
|
49
|
-
];
|
50
|
-
const DATE_PRIMITIVE_TYPES = [
|
51
|
-
PRIMITIVE_TYPE.DATE,
|
52
|
-
PRIMITIVE_TYPE.DATETIME,
|
53
|
-
PRIMITIVE_TYPE.STRICTDATE,
|
54
|
-
PRIMITIVE_TYPE.LATESTDATE,
|
55
|
-
];
|
56
|
-
// When changing the return type for LHS, the RHS value should be adjusted accordingly.
|
57
|
-
return (type !== undefined &&
|
58
|
-
// Numeric value is handled loosely because of autoboxing
|
59
|
-
// e.g. LHS (integer) = RHS (float) is acceptable
|
60
|
-
((NUMERIC_PRIMITIVE_TYPES.includes(type.path) &&
|
61
|
-
NUMERIC_PRIMITIVE_TYPES.includes(lhsType.path)) ||
|
62
|
-
// Date value is handled loosely as well if the LHS is of type DateTime
|
63
|
-
// This is because we would simulate auto-boxing for date by altering the
|
64
|
-
// Pure function used for the operation
|
65
|
-
// e.g. LHS(DateTime) = RHS(Date) -> we use isOnDay() instead of is()
|
66
|
-
DATE_PRIMITIVE_TYPES.includes(type.path) ||
|
67
|
-
type === lhsType ||
|
68
|
-
isSuperType(lhsType, type)));
|
42
|
+
: undefined, guaranteeNonNullable(postFilterConditionState.columnState.getReturnType()));
|
69
43
|
}
|
70
44
|
getDefaultFilterConditionValue(postFilterConditionState) {
|
71
45
|
const propertyType = postFilterConditionState.columnState.getReturnType();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryBuilderPostFilterOperator_GreaterThan.js","sourceRoot":"","sources":["../../../src/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAIL,0BAA0B,EAC1B,cAAc,EACd,
|
1
|
+
{"version":3,"file":"QueryBuilderPostFilterOperator_GreaterThan.js","sourceRoot":"","sources":["../../../src/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryBuilderPostFilterOperator_LessThan.d.ts","sourceRoot":"","sources":["../../../src/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,IAAI,EACT,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,
|
1
|
+
{"version":3,"file":"QueryBuilderPostFilterOperator_LessThan.d.ts","sourceRoot":"","sources":["../../../src/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,IAAI,EACT,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EAIxB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAEtF,OAAO,KAAK,EACV,wBAAwB,EACxB,2BAA2B,EAC5B,MAAM,mCAAmC,CAAC;AAI3C,qBAAa,uCAAwC,SAAQ,8BAA8B;IACzF,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAczC,8BAA8B,CAC5B,wBAAwB,EAAE,wBAAwB,GACjD,OAAO;IAWV,8BAA8B,CAC5B,wBAAwB,EAAE,wBAAwB,GACjD,kBAAkB;IA0BrB,kCAAkC,CAChC,wBAAwB,EAAE,wBAAwB,GACjD,kBAAkB,GAAG,SAAS;IAajC,6BAA6B,CAC3B,eAAe,EAAE,2BAA2B,EAC5C,UAAU,EAAE,kBAAkB,GAC7B,wBAAwB,GAAG,SAAS;CAcxC"}
|
@@ -13,10 +13,10 @@
|
|
13
13
|
* See the License for the specific language governing permissions and
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
|
-
import { AbstractPropertyExpression, PRIMITIVE_TYPE, SUPPORTED_FUNCTIONS,
|
16
|
+
import { AbstractPropertyExpression, PRIMITIVE_TYPE, SUPPORTED_FUNCTIONS, buildPrimitiveInstanceValue, } from '@finos/legend-graph';
|
17
17
|
import { guaranteeNonNullable, UnsupportedOperationError, } from '@finos/legend-shared';
|
18
18
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../QueryBuilder_Const.js';
|
19
|
-
import { getNonCollectionValueSpecificationType } from '../QueryBuilderOperatorsHelper.js';
|
19
|
+
import { getNonCollectionValueSpecificationType, isTypeCompatibleWithConditionValueType, } from '../QueryBuilderOperatorsHelper.js';
|
20
20
|
import { QueryBuilderPostFilterOperator } from '../QueryBuilderPostFilterOperator.js';
|
21
21
|
import { buildPostFilterConditionState } from '../QueryBuilderPostFilterProcessor.js';
|
22
22
|
import { generateDefaultValueForPrimitiveType } from '../QueryBuilderValueSpecificationBuilderHelper.js';
|
@@ -37,35 +37,9 @@ export class QueryBuilderPostFilterOperator_LessThan extends QueryBuilderPostFil
|
|
37
37
|
].includes(type.path);
|
38
38
|
}
|
39
39
|
isCompatibleWithConditionValue(postFilterConditionState) {
|
40
|
-
|
41
|
-
const type = postFilterConditionState.value
|
40
|
+
return isTypeCompatibleWithConditionValueType(postFilterConditionState.value
|
42
41
|
? getNonCollectionValueSpecificationType(postFilterConditionState.value)
|
43
|
-
: undefined;
|
44
|
-
const NUMERIC_PRIMITIVE_TYPES = [
|
45
|
-
PRIMITIVE_TYPE.NUMBER,
|
46
|
-
PRIMITIVE_TYPE.INTEGER,
|
47
|
-
PRIMITIVE_TYPE.DECIMAL,
|
48
|
-
PRIMITIVE_TYPE.FLOAT,
|
49
|
-
];
|
50
|
-
const DATE_PRIMITIVE_TYPES = [
|
51
|
-
PRIMITIVE_TYPE.DATE,
|
52
|
-
PRIMITIVE_TYPE.DATETIME,
|
53
|
-
PRIMITIVE_TYPE.STRICTDATE,
|
54
|
-
PRIMITIVE_TYPE.LATESTDATE,
|
55
|
-
];
|
56
|
-
// When changing the return type for LHS, the RHS value should be adjusted accordingly.
|
57
|
-
return (type !== undefined &&
|
58
|
-
// Numeric value is handled loosely because of autoboxing
|
59
|
-
// e.g. LHS (integer) = RHS (float) is acceptable
|
60
|
-
((NUMERIC_PRIMITIVE_TYPES.includes(type.path) &&
|
61
|
-
NUMERIC_PRIMITIVE_TYPES.includes(lhsType.path)) ||
|
62
|
-
// Date value is handled loosely as well if the LHS is of type DateTime
|
63
|
-
// This is because we would simulate auto-boxing for date by altering the
|
64
|
-
// Pure function used for the operation
|
65
|
-
// e.g. LHS(DateTime) = RHS(Date) -> we use isOnDay() instead of is()
|
66
|
-
DATE_PRIMITIVE_TYPES.includes(type.path) ||
|
67
|
-
type === lhsType ||
|
68
|
-
isSuperType(lhsType, type)));
|
42
|
+
: undefined, guaranteeNonNullable(postFilterConditionState.columnState.getReturnType()));
|
69
43
|
}
|
70
44
|
getDefaultFilterConditionValue(postFilterConditionState) {
|
71
45
|
const propertyType = postFilterConditionState.columnState.getReturnType();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryBuilderPostFilterOperator_LessThan.js","sourceRoot":"","sources":["../../../src/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,0BAA0B,EAE1B,cAAc,EACd,mBAAmB,EACnB,
|
1
|
+
{"version":3,"file":"QueryBuilderPostFilterOperator_LessThan.js","sourceRoot":"","sources":["../../../src/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@finos/legend-application-query",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.1.0",
|
4
4
|
"description": "Legend Query application core",
|
5
5
|
"keywords": [
|
6
6
|
"legend",
|
@@ -46,12 +46,12 @@
|
|
46
46
|
"@ag-grid-community/client-side-row-model": "28.0.2",
|
47
47
|
"@ag-grid-community/core": "28.0.2",
|
48
48
|
"@ag-grid-community/react": "28.0.0",
|
49
|
-
"@finos/legend-application": "7.0.
|
50
|
-
"@finos/legend-art": "2.0
|
51
|
-
"@finos/legend-graph": "
|
52
|
-
"@finos/legend-server-depot": "3.0.
|
53
|
-
"@finos/legend-shared": "5.0.
|
54
|
-
"@finos/legend-storage": "3.0.
|
49
|
+
"@finos/legend-application": "7.0.4",
|
50
|
+
"@finos/legend-art": "2.1.0",
|
51
|
+
"@finos/legend-graph": "13.0.2",
|
52
|
+
"@finos/legend-server-depot": "3.0.4",
|
53
|
+
"@finos/legend-shared": "5.0.3",
|
54
|
+
"@finos/legend-storage": "3.0.3",
|
55
55
|
"@testing-library/react": "13.3.0",
|
56
56
|
"@types/react": "18.0.15",
|
57
57
|
"@types/react-dom": "18.0.6",
|
@@ -70,11 +70,10 @@
|
|
70
70
|
"react-router-dom": "5.3.3"
|
71
71
|
},
|
72
72
|
"devDependencies": {
|
73
|
-
"@finos/legend-dev-utils": "2.0.
|
73
|
+
"@finos/legend-dev-utils": "2.0.9",
|
74
74
|
"@jest/globals": "28.1.3",
|
75
|
-
"@testing-library/dom": "8.16.0",
|
76
75
|
"cross-env": "7.0.3",
|
77
|
-
"eslint": "8.
|
76
|
+
"eslint": "8.21.0",
|
78
77
|
"jest": "28.1.3",
|
79
78
|
"npm-run-all": "4.1.5",
|
80
79
|
"rimraf": "3.0.2",
|
@@ -777,7 +777,9 @@ const QueryBuilderExplorerTree = observer(
|
|
777
777
|
explorerState.mappingModelCoverageAnalysisResult,
|
778
778
|
),
|
779
779
|
);
|
780
|
-
|
780
|
+
if (propertyTreeNodeData) {
|
781
|
+
treeData.nodes.set(propertyTreeNodeData.id, propertyTreeNodeData);
|
782
|
+
}
|
781
783
|
});
|
782
784
|
node.type._subclasses.forEach((subclass) => {
|
783
785
|
const subTypeTreeNodeData = getQueryBuilderSubTypeNodeData(
|
@@ -32,6 +32,8 @@ import {
|
|
32
32
|
ActionAlertType,
|
33
33
|
useApplicationStore,
|
34
34
|
} from '@finos/legend-application';
|
35
|
+
import { QueryBuilderProjectionState } from '../stores/QueryBuilderProjectionState.js';
|
36
|
+
import { QueryBuilderGraphFetchTreeState } from '../stores/QueryBuilderGraphFetchTreeState.js';
|
35
37
|
|
36
38
|
const QueryBuilderUnsupportedFetchStructure = observer(
|
37
39
|
(props: { mode: FETCH_STRUCTURE_MODE }) => {
|
@@ -88,15 +90,17 @@ export const QueryBuilderFetchStructurePanel = observer(
|
|
88
90
|
(fetchMode: FETCH_STRUCTURE_MODE): (() => void) =>
|
89
91
|
(): void => {
|
90
92
|
if (fetchStructureState.fetchStructureMode !== fetchMode) {
|
91
|
-
// TODO: might want to add alert modal to alert user changing fetch structure resets state
|
92
93
|
if (
|
93
94
|
fetchMode === FETCH_STRUCTURE_MODE.GRAPH_FETCH &&
|
94
|
-
queryBuilderState.
|
95
|
-
|
95
|
+
queryBuilderState.fetchStructureState.projectionState.columns
|
96
|
+
.length > 0
|
96
97
|
) {
|
97
98
|
applicationStore.setActionAlertInfo({
|
98
99
|
message:
|
99
|
-
|
100
|
+
queryBuilderState.showPostFilterPanel &&
|
101
|
+
queryBuilderState.postFilterState.nodes.size > 0
|
102
|
+
? 'With graph fetch, post filter is not supported. Current projection columns and post filters will be lost when switching to the graph fetch panel. Do you still want to proceed?'
|
103
|
+
: 'Current projection columns will be lost when switching to the graph fetch panel. Do you still want to proceed?',
|
100
104
|
type: ActionAlertType.CAUTION,
|
101
105
|
actions: [
|
102
106
|
{
|
@@ -105,6 +109,44 @@ export const QueryBuilderFetchStructurePanel = observer(
|
|
105
109
|
handler: applicationStore.guardUnhandledError(async () => {
|
106
110
|
fetchStructureState.setFetchStructureMode(fetchMode);
|
107
111
|
queryBuilderState.changeFetchStructure();
|
112
|
+
queryBuilderState.fetchStructureState.projectionState =
|
113
|
+
new QueryBuilderProjectionState(
|
114
|
+
queryBuilderState,
|
115
|
+
queryBuilderState.fetchStructureState.projectionState.aggregationState.operators,
|
116
|
+
);
|
117
|
+
queryBuilderState.postFilterState =
|
118
|
+
new QueryBuilderPostFilterState(
|
119
|
+
queryBuilderState,
|
120
|
+
queryBuilderState.postFilterOperators,
|
121
|
+
);
|
122
|
+
queryBuilderState.setShowPostFilterPanel(false);
|
123
|
+
}),
|
124
|
+
},
|
125
|
+
{
|
126
|
+
label: 'Cancel',
|
127
|
+
type: ActionAlertActionType.PROCEED,
|
128
|
+
default: true,
|
129
|
+
},
|
130
|
+
],
|
131
|
+
});
|
132
|
+
} else if (
|
133
|
+
fetchMode === FETCH_STRUCTURE_MODE.PROJECTION &&
|
134
|
+
queryBuilderState.fetchStructureState.graphFetchTreeState.treeData
|
135
|
+
?.rootIds.length
|
136
|
+
) {
|
137
|
+
applicationStore.setActionAlertInfo({
|
138
|
+
message:
|
139
|
+
'Current graph fetch nodes will be lost when switching to the projection panel. Do you still want to proceed?',
|
140
|
+
type: ActionAlertType.CAUTION,
|
141
|
+
actions: [
|
142
|
+
{
|
143
|
+
label: 'Proceed',
|
144
|
+
type: ActionAlertActionType.PROCEED_WITH_CAUTION,
|
145
|
+
handler: applicationStore.guardUnhandledError(async () => {
|
146
|
+
fetchStructureState.setFetchStructureMode(fetchMode);
|
147
|
+
queryBuilderState.changeFetchStructure();
|
148
|
+
queryBuilderState.fetchStructureState.graphFetchTreeState =
|
149
|
+
new QueryBuilderGraphFetchTreeState(queryBuilderState);
|
108
150
|
queryBuilderState.postFilterState =
|
109
151
|
new QueryBuilderPostFilterState(
|
110
152
|
queryBuilderState,
|
@@ -127,9 +169,7 @@ export const QueryBuilderFetchStructurePanel = observer(
|
|
127
169
|
queryBuilderState,
|
128
170
|
queryBuilderState.postFilterOperators,
|
129
171
|
);
|
130
|
-
|
131
|
-
queryBuilderState.setShowPostFilterPanel(false);
|
132
|
-
}
|
172
|
+
queryBuilderState.setShowPostFilterPanel(false);
|
133
173
|
}
|
134
174
|
}
|
135
175
|
};
|
@@ -14,7 +14,14 @@
|
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
16
|
|
17
|
-
import {
|
17
|
+
import {
|
18
|
+
useEffect,
|
19
|
+
useRef,
|
20
|
+
useState,
|
21
|
+
useCallback,
|
22
|
+
forwardRef,
|
23
|
+
useMemo,
|
24
|
+
} from 'react';
|
18
25
|
import { observer } from 'mobx-react-lite';
|
19
26
|
import {
|
20
27
|
type TreeNodeContainerProps,
|
@@ -65,7 +72,11 @@ import {
|
|
65
72
|
} from '../stores/QueryBuilderExplorerState.js';
|
66
73
|
import { QueryBuilderPropertyExpressionBadge } from './QueryBuilderPropertyExpressionEditor.js';
|
67
74
|
import type { QueryBuilderState } from '../stores/QueryBuilderState.js';
|
68
|
-
import {
|
75
|
+
import {
|
76
|
+
assertErrorThrown,
|
77
|
+
debounce,
|
78
|
+
UnsupportedOperationError,
|
79
|
+
} from '@finos/legend-shared';
|
69
80
|
import { QUERY_BUILDER_TEST_ID } from './QueryBuilder_TestID.js';
|
70
81
|
import {
|
71
82
|
useApplicationStore,
|
@@ -75,8 +86,16 @@ import {
|
|
75
86
|
type QueryBuilderParameterDragSource,
|
76
87
|
QUERY_BUILDER_PARAMETER_TREE_DND_TYPE,
|
77
88
|
} from '../stores/QueryParametersState.js';
|
78
|
-
import {
|
89
|
+
import {
|
90
|
+
isTypeCompatibleWithConditionValueType,
|
91
|
+
QUERY_BUILDER_GROUP_OPERATION,
|
92
|
+
} from '../stores/QueryBuilderOperatorsHelper.js';
|
79
93
|
import type { ValueSpecification } from '@finos/legend-graph';
|
94
|
+
import {
|
95
|
+
type QueryBuilderProjectionColumnDragSource,
|
96
|
+
QueryBuilderSimpleProjectionColumnState,
|
97
|
+
QUERY_BUILDER_PROJECTION_DND_TYPE,
|
98
|
+
} from '../stores/QueryBuilderProjectionState.js';
|
80
99
|
|
81
100
|
const FilterConditionDragLayer: React.FC = () => {
|
82
101
|
const { itemType, item, isDragging, currentPosition } = useDragLayer(
|
@@ -170,6 +189,7 @@ const QueryBuilderFilterConditionEditor = observer(
|
|
170
189
|
const { node, isPropertyDragOver } = props;
|
171
190
|
const graph =
|
172
191
|
node.condition.filterState.queryBuilderState.graphManagerState.graph;
|
192
|
+
const applicationStore = useApplicationStore();
|
173
193
|
const changeOperator = (val: QueryBuilderFilterOperator) => (): void =>
|
174
194
|
node.condition.changeOperator(val);
|
175
195
|
const changeProperty = (
|
@@ -188,9 +208,25 @@ const QueryBuilderFilterConditionEditor = observer(
|
|
188
208
|
// Drag and Drop on filter condition value
|
189
209
|
const handleDrop = useCallback(
|
190
210
|
(item: QueryBuilderParameterDragSource): void => {
|
191
|
-
|
211
|
+
const parameterType =
|
212
|
+
item.variable.parameter.genericType?.value.rawType;
|
213
|
+
const conditionValueType =
|
214
|
+
node.condition.propertyExpressionState.propertyExpression.func
|
215
|
+
.genericType.value.rawType;
|
216
|
+
if (
|
217
|
+
isTypeCompatibleWithConditionValueType(
|
218
|
+
parameterType,
|
219
|
+
conditionValueType,
|
220
|
+
)
|
221
|
+
) {
|
222
|
+
node.condition.setValue(item.variable.parameter);
|
223
|
+
} else {
|
224
|
+
applicationStore.notifyWarning(
|
225
|
+
`Incompatible parameter type ${parameterType?.name}. ${parameterType?.name} is not compatible with type ${conditionValueType.name}.`,
|
226
|
+
);
|
227
|
+
}
|
192
228
|
},
|
193
|
-
[node],
|
229
|
+
[applicationStore, node.condition],
|
194
230
|
);
|
195
231
|
const [{ isFilterValueDragOver }, dropConnector] = useDrop(
|
196
232
|
() => ({
|
@@ -214,6 +250,26 @@ const QueryBuilderFilterConditionEditor = observer(
|
|
214
250
|
node.condition.operator.getDefaultFilterConditionValue(node.condition),
|
215
251
|
);
|
216
252
|
};
|
253
|
+
const debouncedTypeaheadSearch = useMemo(
|
254
|
+
() =>
|
255
|
+
debounce(
|
256
|
+
(inputVal: string) => node.condition.handleTypeaheadSearch(),
|
257
|
+
1000,
|
258
|
+
),
|
259
|
+
[node],
|
260
|
+
);
|
261
|
+
const cleanUpReloadValues = (): void => {
|
262
|
+
node.condition.typeaheadSearchState.complete();
|
263
|
+
};
|
264
|
+
const changeValueSpecification = (val: ValueSpecification): void => {
|
265
|
+
node.condition.setValue(val);
|
266
|
+
};
|
267
|
+
const selectorConfig = {
|
268
|
+
values: node.condition.typeaheadSearchResults,
|
269
|
+
isLoading: node.condition.typeaheadSearchState.isInProgress,
|
270
|
+
reloadValues: debouncedTypeaheadSearch,
|
271
|
+
cleanUpReloadValues,
|
272
|
+
};
|
217
273
|
|
218
274
|
return (
|
219
275
|
<div className="query-builder-filter-tree__node__label__content dnd__overlay__container">
|
@@ -273,9 +329,7 @@ const QueryBuilderFilterConditionEditor = observer(
|
|
273
329
|
)}
|
274
330
|
<BasicValueSpecificationEditor
|
275
331
|
valueSpecification={node.condition.value}
|
276
|
-
setValueSpecification={
|
277
|
-
node.condition.setValue(val)
|
278
|
-
}
|
332
|
+
setValueSpecification={changeValueSpecification}
|
279
333
|
graph={graph}
|
280
334
|
typeCheckOption={{
|
281
335
|
expectedType:
|
@@ -283,6 +337,7 @@ const QueryBuilderFilterConditionEditor = observer(
|
|
283
337
|
.func.genericType.value.rawType,
|
284
338
|
}}
|
285
339
|
resetValue={resetNode}
|
340
|
+
selectorConfig={selectorConfig}
|
286
341
|
/>
|
287
342
|
</div>
|
288
343
|
)}
|
@@ -708,18 +763,37 @@ export const QueryBuilderFilterPanel = observer(
|
|
708
763
|
};
|
709
764
|
// Drag and Drop
|
710
765
|
const handleDrop = useCallback(
|
711
|
-
(item: QueryBuilderFilterDropTarget): void => {
|
766
|
+
(item: QueryBuilderFilterDropTarget, type: string): void => {
|
712
767
|
let filterConditionState: FilterConditionState;
|
713
768
|
try {
|
769
|
+
let propertyExpression;
|
770
|
+
if (type === QUERY_BUILDER_PROJECTION_DND_TYPE.PROJECTION_COLUMN) {
|
771
|
+
if (
|
772
|
+
(item as QueryBuilderProjectionColumnDragSource)
|
773
|
+
.columnState instanceof QueryBuilderSimpleProjectionColumnState
|
774
|
+
) {
|
775
|
+
propertyExpression = (
|
776
|
+
(item as QueryBuilderProjectionColumnDragSource)
|
777
|
+
.columnState as QueryBuilderSimpleProjectionColumnState
|
778
|
+
).propertyExpressionState.propertyExpression;
|
779
|
+
} else {
|
780
|
+
throw new UnsupportedOperationError(
|
781
|
+
`Dragging and Dropping derivation projection column is not supported.`,
|
782
|
+
);
|
783
|
+
}
|
784
|
+
} else {
|
785
|
+
propertyExpression =
|
786
|
+
buildPropertyExpressionFromExplorerTreeNodeData(
|
787
|
+
filterState.queryBuilderState.explorerState.nonNullableTreeData,
|
788
|
+
(item as QueryBuilderExplorerTreeDragSource).node,
|
789
|
+
filterState.queryBuilderState.graphManagerState.graph,
|
790
|
+
filterState.queryBuilderState.explorerState
|
791
|
+
.propertySearchPanelState.allMappedPropertyNodes,
|
792
|
+
);
|
793
|
+
}
|
714
794
|
filterConditionState = new FilterConditionState(
|
715
795
|
filterState,
|
716
|
-
|
717
|
-
filterState.queryBuilderState.explorerState.nonNullableTreeData,
|
718
|
-
(item as QueryBuilderExplorerTreeDragSource).node,
|
719
|
-
filterState.queryBuilderState.graphManagerState.graph,
|
720
|
-
filterState.queryBuilderState.explorerState
|
721
|
-
.propertySearchPanelState.allMappedPropertyNodes,
|
722
|
-
),
|
796
|
+
propertyExpression,
|
723
797
|
);
|
724
798
|
} catch (error) {
|
725
799
|
assertErrorThrown(error);
|
@@ -740,16 +814,22 @@ export const QueryBuilderFilterPanel = observer(
|
|
740
814
|
);
|
741
815
|
const [{ isPropertyDragOver }, dropConnector] = useDrop(
|
742
816
|
() => ({
|
743
|
-
accept:
|
744
|
-
|
745
|
-
|
746
|
-
|
817
|
+
accept: filterState.allowDnDProjectionToFilter
|
818
|
+
? [
|
819
|
+
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.ENUM_PROPERTY,
|
820
|
+
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY,
|
821
|
+
QUERY_BUILDER_PROJECTION_DND_TYPE.PROJECTION_COLUMN,
|
822
|
+
]
|
823
|
+
: [
|
824
|
+
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.ENUM_PROPERTY,
|
825
|
+
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY,
|
826
|
+
],
|
747
827
|
drop: (
|
748
828
|
item: QueryBuilderExplorerTreeDragSource,
|
749
829
|
monitor: DropTargetMonitor,
|
750
830
|
): void => {
|
751
831
|
if (!monitor.didDrop()) {
|
752
|
-
handleDrop(item);
|
832
|
+
handleDrop(item, monitor.getItemType() as string);
|
753
833
|
} // prevent drop event propagation to accomondate for nested DnD
|
754
834
|
},
|
755
835
|
collect: (monitor): { isPropertyDragOver: boolean } => ({
|
@@ -46,7 +46,7 @@ import {
|
|
46
46
|
variableExpression_setName,
|
47
47
|
LambdaParameterState,
|
48
48
|
LambdaParameterValuesEditor,
|
49
|
-
|
49
|
+
getPackageableElementOptionFormatter,
|
50
50
|
} from '@finos/legend-application';
|
51
51
|
import { useDrag, useDragLayer } from 'react-dnd';
|
52
52
|
import { getEmptyImage } from 'react-dnd-html5-backend';
|
@@ -193,8 +193,9 @@ const VariableExpressionEditor = observer(
|
|
193
193
|
onChange={changeType}
|
194
194
|
value={selectedType}
|
195
195
|
darkMode={true}
|
196
|
-
formatOptionLabel={
|
196
|
+
formatOptionLabel={getPackageableElementOptionFormatter({
|
197
197
|
darkMode: true,
|
198
|
+
graphManagerState: queryBuilderState.graphManagerState,
|
198
199
|
})}
|
199
200
|
/>
|
200
201
|
</div>
|