@finos/legend-application-query 5.0.1 → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +43 -12
- package/lib/components/QueryBuilderFilterPanel.js.map +1 -1
- package/lib/components/QueryBuilderPostFilterPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderPostFilterPanel.js +12 -3
- package/lib/components/QueryBuilderPostFilterPanel.js.map +1 -1
- package/lib/components/QueryBuilderPropertySearchPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderPropertySearchPanel.js +2 -1
- package/lib/components/QueryBuilderPropertySearchPanel.js.map +1 -1
- package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderResultPanel.js +11 -7
- package/lib/components/QueryBuilderResultPanel.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/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/QueryBuilderFilterState.d.ts +7 -1
- package/lib/stores/QueryBuilderFilterState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderFilterState.js +5 -0
- package/lib/stores/QueryBuilderFilterState.js.map +1 -1
- 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/QueryBuilderProjectionState.d.ts +1 -0
- package/lib/stores/QueryBuilderProjectionState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderProjectionState.js +11 -0
- 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 +1 -0
- package/lib/stores/QueryBuilderState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderState.js +3 -0
- package/lib/stores/QueryBuilderState.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 -9
- package/src/components/QueryBuilderExplorerPanel.tsx +3 -1
- package/src/components/QueryBuilderFetchStructurePanel.tsx +44 -7
- package/src/components/QueryBuilderFilterPanel.tsx +70 -17
- package/src/components/QueryBuilderPostFilterPanel.tsx +22 -3
- package/src/components/QueryBuilderPropertySearchPanel.tsx +1 -0
- package/src/components/QueryBuilderResultPanel.tsx +70 -47
- package/src/stores/QueryBuilderExplorerState.ts +17 -3
- package/src/stores/QueryBuilderFilterState.ts +7 -0
- package/src/stores/QueryBuilderOperatorsHelper.ts +35 -0
- package/src/stores/QueryBuilderProjectionState.ts +15 -0
- package/src/stores/QueryBuilderPropertySearchPanelState.ts +1 -1
- package/src/stores/QueryBuilderResultState.ts +27 -9
- package/src/stores/QueryBuilderState.ts +4 -0
- 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
@@ -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.0.
|
3
|
+
"version": "5.0.2",
|
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": "13.0.
|
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.3",
|
50
|
+
"@finos/legend-art": "2.0.12",
|
51
|
+
"@finos/legend-graph": "13.0.1",
|
52
|
+
"@finos/legend-server-depot": "3.0.3",
|
53
|
+
"@finos/legend-shared": "5.0.2",
|
54
|
+
"@finos/legend-storage": "3.0.2",
|
55
55
|
"@testing-library/react": "13.3.0",
|
56
56
|
"@types/react": "18.0.15",
|
57
57
|
"@types/react-dom": "18.0.6",
|
@@ -70,10 +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.8",
|
74
74
|
"@jest/globals": "28.1.3",
|
75
75
|
"cross-env": "7.0.3",
|
76
|
-
"eslint": "8.
|
76
|
+
"eslint": "8.21.0",
|
77
77
|
"jest": "28.1.3",
|
78
78
|
"npm-run-all": "4.1.5",
|
79
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,41 @@ 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(queryBuilderState);
|
114
|
+
queryBuilderState.postFilterState =
|
115
|
+
new QueryBuilderPostFilterState(
|
116
|
+
queryBuilderState,
|
117
|
+
queryBuilderState.postFilterOperators,
|
118
|
+
);
|
119
|
+
queryBuilderState.setShowPostFilterPanel(false);
|
120
|
+
}),
|
121
|
+
},
|
122
|
+
{
|
123
|
+
label: 'Cancel',
|
124
|
+
type: ActionAlertActionType.PROCEED,
|
125
|
+
default: true,
|
126
|
+
},
|
127
|
+
],
|
128
|
+
});
|
129
|
+
} else if (
|
130
|
+
fetchMode === FETCH_STRUCTURE_MODE.PROJECTION &&
|
131
|
+
queryBuilderState.fetchStructureState.graphFetchTreeState.treeData
|
132
|
+
?.rootIds.length
|
133
|
+
) {
|
134
|
+
applicationStore.setActionAlertInfo({
|
135
|
+
message:
|
136
|
+
'Current graph fetch nodes will be lost when switching to the projection panel. Do you still want to proceed?',
|
137
|
+
type: ActionAlertType.CAUTION,
|
138
|
+
actions: [
|
139
|
+
{
|
140
|
+
label: 'Proceed',
|
141
|
+
type: ActionAlertActionType.PROCEED_WITH_CAUTION,
|
142
|
+
handler: applicationStore.guardUnhandledError(async () => {
|
143
|
+
fetchStructureState.setFetchStructureMode(fetchMode);
|
144
|
+
queryBuilderState.changeFetchStructure();
|
145
|
+
queryBuilderState.fetchStructureState.graphFetchTreeState =
|
146
|
+
new QueryBuilderGraphFetchTreeState(queryBuilderState);
|
108
147
|
queryBuilderState.postFilterState =
|
109
148
|
new QueryBuilderPostFilterState(
|
110
149
|
queryBuilderState,
|
@@ -127,9 +166,7 @@ export const QueryBuilderFetchStructurePanel = observer(
|
|
127
166
|
queryBuilderState,
|
128
167
|
queryBuilderState.postFilterOperators,
|
129
168
|
);
|
130
|
-
|
131
|
-
queryBuilderState.setShowPostFilterPanel(false);
|
132
|
-
}
|
169
|
+
queryBuilderState.setShowPostFilterPanel(false);
|
133
170
|
}
|
134
171
|
}
|
135
172
|
};
|
@@ -65,7 +65,10 @@ import {
|
|
65
65
|
} from '../stores/QueryBuilderExplorerState.js';
|
66
66
|
import { QueryBuilderPropertyExpressionBadge } from './QueryBuilderPropertyExpressionEditor.js';
|
67
67
|
import type { QueryBuilderState } from '../stores/QueryBuilderState.js';
|
68
|
-
import {
|
68
|
+
import {
|
69
|
+
assertErrorThrown,
|
70
|
+
UnsupportedOperationError,
|
71
|
+
} from '@finos/legend-shared';
|
69
72
|
import { QUERY_BUILDER_TEST_ID } from './QueryBuilder_TestID.js';
|
70
73
|
import {
|
71
74
|
useApplicationStore,
|
@@ -75,8 +78,16 @@ import {
|
|
75
78
|
type QueryBuilderParameterDragSource,
|
76
79
|
QUERY_BUILDER_PARAMETER_TREE_DND_TYPE,
|
77
80
|
} from '../stores/QueryParametersState.js';
|
78
|
-
import {
|
81
|
+
import {
|
82
|
+
isTypeCompatibleWithConditionValueType,
|
83
|
+
QUERY_BUILDER_GROUP_OPERATION,
|
84
|
+
} from '../stores/QueryBuilderOperatorsHelper.js';
|
79
85
|
import type { ValueSpecification } from '@finos/legend-graph';
|
86
|
+
import {
|
87
|
+
type QueryBuilderProjectionColumnDragSource,
|
88
|
+
QueryBuilderSimpleProjectionColumnState,
|
89
|
+
QUERY_BUILDER_PROJECTION_DND_TYPE,
|
90
|
+
} from '../stores/QueryBuilderProjectionState.js';
|
80
91
|
|
81
92
|
const FilterConditionDragLayer: React.FC = () => {
|
82
93
|
const { itemType, item, isDragging, currentPosition } = useDragLayer(
|
@@ -170,6 +181,7 @@ const QueryBuilderFilterConditionEditor = observer(
|
|
170
181
|
const { node, isPropertyDragOver } = props;
|
171
182
|
const graph =
|
172
183
|
node.condition.filterState.queryBuilderState.graphManagerState.graph;
|
184
|
+
const applicationStore = useApplicationStore();
|
173
185
|
const changeOperator = (val: QueryBuilderFilterOperator) => (): void =>
|
174
186
|
node.condition.changeOperator(val);
|
175
187
|
const changeProperty = (
|
@@ -188,9 +200,25 @@ const QueryBuilderFilterConditionEditor = observer(
|
|
188
200
|
// Drag and Drop on filter condition value
|
189
201
|
const handleDrop = useCallback(
|
190
202
|
(item: QueryBuilderParameterDragSource): void => {
|
191
|
-
|
203
|
+
const parameterType =
|
204
|
+
item.variable.parameter.genericType?.value.rawType;
|
205
|
+
const conditionValueType =
|
206
|
+
node.condition.propertyExpressionState.propertyExpression.func
|
207
|
+
.genericType.value.rawType;
|
208
|
+
if (
|
209
|
+
isTypeCompatibleWithConditionValueType(
|
210
|
+
parameterType,
|
211
|
+
conditionValueType,
|
212
|
+
)
|
213
|
+
) {
|
214
|
+
node.condition.setValue(item.variable.parameter);
|
215
|
+
} else {
|
216
|
+
applicationStore.notifyWarning(
|
217
|
+
`Incompatible parameter type ${parameterType?.name}. ${parameterType?.name} is not compatible with type ${conditionValueType.name}.`,
|
218
|
+
);
|
219
|
+
}
|
192
220
|
},
|
193
|
-
[node],
|
221
|
+
[applicationStore, node.condition],
|
194
222
|
);
|
195
223
|
const [{ isFilterValueDragOver }, dropConnector] = useDrop(
|
196
224
|
() => ({
|
@@ -708,18 +736,37 @@ export const QueryBuilderFilterPanel = observer(
|
|
708
736
|
};
|
709
737
|
// Drag and Drop
|
710
738
|
const handleDrop = useCallback(
|
711
|
-
(item: QueryBuilderFilterDropTarget): void => {
|
739
|
+
(item: QueryBuilderFilterDropTarget, type: string): void => {
|
712
740
|
let filterConditionState: FilterConditionState;
|
713
741
|
try {
|
742
|
+
let propertyExpression;
|
743
|
+
if (type === QUERY_BUILDER_PROJECTION_DND_TYPE.PROJECTION_COLUMN) {
|
744
|
+
if (
|
745
|
+
(item as QueryBuilderProjectionColumnDragSource)
|
746
|
+
.columnState instanceof QueryBuilderSimpleProjectionColumnState
|
747
|
+
) {
|
748
|
+
propertyExpression = (
|
749
|
+
(item as QueryBuilderProjectionColumnDragSource)
|
750
|
+
.columnState as QueryBuilderSimpleProjectionColumnState
|
751
|
+
).propertyExpressionState.propertyExpression;
|
752
|
+
} else {
|
753
|
+
throw new UnsupportedOperationError(
|
754
|
+
`Dragging and Dropping derivation projection column is not supported.`,
|
755
|
+
);
|
756
|
+
}
|
757
|
+
} else {
|
758
|
+
propertyExpression =
|
759
|
+
buildPropertyExpressionFromExplorerTreeNodeData(
|
760
|
+
filterState.queryBuilderState.explorerState.nonNullableTreeData,
|
761
|
+
(item as QueryBuilderExplorerTreeDragSource).node,
|
762
|
+
filterState.queryBuilderState.graphManagerState.graph,
|
763
|
+
filterState.queryBuilderState.explorerState
|
764
|
+
.propertySearchPanelState.allMappedPropertyNodes,
|
765
|
+
);
|
766
|
+
}
|
714
767
|
filterConditionState = new FilterConditionState(
|
715
768
|
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
|
-
),
|
769
|
+
propertyExpression,
|
723
770
|
);
|
724
771
|
} catch (error) {
|
725
772
|
assertErrorThrown(error);
|
@@ -740,16 +787,22 @@ export const QueryBuilderFilterPanel = observer(
|
|
740
787
|
);
|
741
788
|
const [{ isPropertyDragOver }, dropConnector] = useDrop(
|
742
789
|
() => ({
|
743
|
-
accept:
|
744
|
-
|
745
|
-
|
746
|
-
|
790
|
+
accept: filterState.allowDnDProjectionToFilter
|
791
|
+
? [
|
792
|
+
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.ENUM_PROPERTY,
|
793
|
+
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY,
|
794
|
+
QUERY_BUILDER_PROJECTION_DND_TYPE.PROJECTION_COLUMN,
|
795
|
+
]
|
796
|
+
: [
|
797
|
+
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.ENUM_PROPERTY,
|
798
|
+
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY,
|
799
|
+
],
|
747
800
|
drop: (
|
748
801
|
item: QueryBuilderExplorerTreeDragSource,
|
749
802
|
monitor: DropTargetMonitor,
|
750
803
|
): void => {
|
751
804
|
if (!monitor.didDrop()) {
|
752
|
-
handleDrop(item);
|
805
|
+
handleDrop(item, monitor.getItemType() as string);
|
753
806
|
} // prevent drop event propagation to accomondate for nested DnD
|
754
807
|
},
|
755
808
|
collect: (monitor): { isPropertyDragOver: boolean } => ({
|
@@ -74,7 +74,10 @@ import {
|
|
74
74
|
import { getEmptyImage } from 'react-dnd-html5-backend';
|
75
75
|
import { getColumnMultiplicity } from '../stores/postFilterOperators/QueryBuilderPostFilterOperatorHelper.js';
|
76
76
|
import { QueryBuilderAggregateColumnState } from '../stores/QueryBuilderAggregationState.js';
|
77
|
-
import {
|
77
|
+
import {
|
78
|
+
isTypeCompatibleWithConditionValueType,
|
79
|
+
QUERY_BUILDER_GROUP_OPERATION,
|
80
|
+
} from '../stores/QueryBuilderOperatorsHelper.js';
|
78
81
|
import type { QueryBuilderPostFilterOperator } from '../stores/QueryBuilderPostFilterOperator.js';
|
79
82
|
import {
|
80
83
|
type QueryBuilderPostFilterTreeNodeData,
|
@@ -405,6 +408,7 @@ const QueryBuilderPostFilterConditionEditor = observer(
|
|
405
408
|
const { node, isPropertyDragOver } = props;
|
406
409
|
const graph =
|
407
410
|
node.condition.postFilterState.queryBuilderState.graphManagerState.graph;
|
411
|
+
const applicationStore = useApplicationStore();
|
408
412
|
const changeOperator = (val: QueryBuilderPostFilterOperator) => (): void =>
|
409
413
|
node.condition.changeOperator(val);
|
410
414
|
const changeColumn = async (
|
@@ -421,9 +425,24 @@ const QueryBuilderPostFilterConditionEditor = observer(
|
|
421
425
|
// Drag and Drop on filter condition value
|
422
426
|
const handleDrop = useCallback(
|
423
427
|
(item: QueryBuilderParameterDragSource): void => {
|
424
|
-
|
428
|
+
const parameterType =
|
429
|
+
item.variable.parameter.genericType?.value.rawType;
|
430
|
+
const conditionValueType = node.condition.columnState.getReturnType();
|
431
|
+
if (
|
432
|
+
conditionValueType &&
|
433
|
+
isTypeCompatibleWithConditionValueType(
|
434
|
+
parameterType,
|
435
|
+
conditionValueType,
|
436
|
+
)
|
437
|
+
) {
|
438
|
+
node.condition.setValue(item.variable.parameter);
|
439
|
+
} else {
|
440
|
+
applicationStore.notifyWarning(
|
441
|
+
`Incompatible parameter type ${parameterType?.name}. ${parameterType?.name} is not compatible with type ${conditionValueType?.name}.`,
|
442
|
+
);
|
443
|
+
}
|
425
444
|
},
|
426
|
-
[node],
|
445
|
+
[applicationStore, node.condition],
|
427
446
|
);
|
428
447
|
const [{ isFilterValueDragOver }, dropConnector] = useDrop(
|
429
448
|
() => ({
|