@finos/legend-application-query 5.0.1 → 5.2.1
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/application/LegendQueryApplicationConfig.d.ts +17 -1
- package/lib/application/LegendQueryApplicationConfig.d.ts.map +1 -1
- package/lib/application/LegendQueryApplicationConfig.js +23 -1
- package/lib/application/LegendQueryApplicationConfig.js.map +1 -1
- package/lib/components/QueryBuilder.d.ts.map +1 -1
- package/lib/components/QueryBuilder.js +3 -1
- package/lib/components/QueryBuilder.js.map +1 -1
- package/lib/components/QueryBuilderExplorerPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderExplorerPanel.js +10 -35
- package/lib/components/QueryBuilderExplorerPanel.js.map +1 -1
- package/lib/components/QueryBuilderFetchStructurePanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderFetchStructurePanel.js +78 -35
- package/lib/components/QueryBuilderFetchStructurePanel.js.map +1 -1
- package/lib/components/QueryBuilderFilterPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderFilterPanel.js +80 -66
- package/lib/components/QueryBuilderFilterPanel.js.map +1 -1
- package/lib/components/QueryBuilderFunctionsExplorerPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderFunctionsExplorerPanel.js +9 -39
- package/lib/components/QueryBuilderFunctionsExplorerPanel.js.map +1 -1
- package/lib/components/QueryBuilderGraphFetchTreePanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderGraphFetchTreePanel.js +5 -5
- package/lib/components/QueryBuilderGraphFetchTreePanel.js.map +1 -1
- package/lib/components/QueryBuilderLambdaEditor.d.ts +1 -0
- package/lib/components/QueryBuilderLambdaEditor.d.ts.map +1 -1
- package/lib/components/QueryBuilderLambdaEditor.js +2 -2
- package/lib/components/QueryBuilderLambdaEditor.js.map +1 -1
- package/lib/components/QueryBuilderMilestoneEditor.js +5 -5
- package/lib/components/QueryBuilderMilestoneEditor.js.map +1 -1
- package/lib/components/QueryBuilderPanelIssueCountBadge.d.ts +20 -0
- package/lib/components/QueryBuilderPanelIssueCountBadge.d.ts.map +1 -0
- package/lib/components/QueryBuilderPanelIssueCountBadge.js +28 -0
- package/lib/components/QueryBuilderPanelIssueCountBadge.js.map +1 -0
- package/lib/components/QueryBuilderParameterPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderParameterPanel.js +13 -33
- package/lib/components/QueryBuilderParameterPanel.js.map +1 -1
- package/lib/components/QueryBuilderPostFilterPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderPostFilterPanel.js +59 -62
- package/lib/components/QueryBuilderPostFilterPanel.js.map +1 -1
- package/lib/components/QueryBuilderProjectionPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderProjectionPanel.js +47 -63
- package/lib/components/QueryBuilderProjectionPanel.js.map +1 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts.map +1 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.js +11 -11
- package/lib/components/QueryBuilderPropertyExpressionEditor.js.map +1 -1
- package/lib/components/QueryBuilderPropertySearchPanel.js +5 -7
- package/lib/components/QueryBuilderPropertySearchPanel.js.map +1 -1
- package/lib/components/QueryBuilderResultModifierPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderResultModifierPanel.js +3 -1
- package/lib/components/QueryBuilderResultModifierPanel.js.map +1 -1
- package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderResultPanel.js +37 -23
- package/lib/components/QueryBuilderResultPanel.js.map +1 -1
- package/lib/components/QueryBuilderSetupPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderSetupPanel.js +10 -9
- package/lib/components/QueryBuilderSetupPanel.js.map +1 -1
- package/lib/components/QueryBuilderUnsupportedQueryEditor.d.ts.map +1 -1
- package/lib/components/QueryBuilderUnsupportedQueryEditor.js +4 -2
- package/lib/components/QueryBuilderUnsupportedQueryEditor.js.map +1 -1
- package/lib/components/QueryEditor.d.ts.map +1 -1
- package/lib/components/QueryEditor.js +16 -4
- package/lib/components/QueryEditor.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +10 -9
- package/lib/stores/QueryBuilderExplorerState.d.ts +1 -1
- package/lib/stores/QueryBuilderExplorerState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderExplorerState.js +18 -3
- package/lib/stores/QueryBuilderExplorerState.js.map +1 -1
- package/lib/stores/QueryBuilderFetchStructureState.d.ts +8 -1
- package/lib/stores/QueryBuilderFetchStructureState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderFetchStructureState.js +10 -2
- package/lib/stores/QueryBuilderFetchStructureState.js.map +1 -1
- package/lib/stores/QueryBuilderFilterState.d.ts +10 -5
- package/lib/stores/QueryBuilderFilterState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderFilterState.js +34 -8
- package/lib/stores/QueryBuilderFilterState.js.map +1 -1
- package/lib/stores/QueryBuilderGraphFetchTreeState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderGraphFetchTreeState.js +6 -3
- package/lib/stores/QueryBuilderGraphFetchTreeState.js.map +1 -1
- package/lib/stores/QueryBuilderLambdaProcessor.d.ts.map +1 -1
- package/lib/stores/QueryBuilderLambdaProcessor.js +2 -0
- package/lib/stores/QueryBuilderLambdaProcessor.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 +9 -6
- package/lib/stores/QueryBuilderPostFilterState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderPostFilterState.js +31 -7
- 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 -7
- package/lib/stores/QueryBuilderProjectionState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderProjectionState.js +23 -39
- 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/QueryBuilderSetupState.js +1 -1
- package/lib/stores/QueryBuilderSetupState.js.map +1 -1
- package/lib/stores/QueryBuilderState.d.ts +7 -0
- package/lib/stores/QueryBuilderState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderState.js +18 -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/QueryBuilderValueSpecificationBuilderHelper.d.ts.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js +7 -7
- package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js.map +1 -1
- package/lib/stores/QueryEditorStore.d.ts.map +1 -1
- package/lib/stores/QueryEditorStore.js +14 -3
- package/lib/stores/QueryEditorStore.js.map +1 -1
- package/lib/stores/QueryFunctionsExplorerState.d.ts +2 -6
- package/lib/stores/QueryFunctionsExplorerState.d.ts.map +1 -1
- package/lib/stores/QueryFunctionsExplorerState.js +2 -11
- package/lib/stores/QueryFunctionsExplorerState.js.map +1 -1
- package/lib/stores/QueryParametersState.d.ts +1 -3
- package/lib/stores/QueryParametersState.d.ts.map +1 -1
- package/lib/stores/QueryParametersState.js +1 -4
- package/lib/stores/QueryParametersState.js.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.d.ts.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.js +9 -32
- 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 +9 -32
- 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 +9 -32
- 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 +9 -33
- 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 +9 -32
- 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 +7 -30
- 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 +8 -31
- 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 +8 -31
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.js.map +1 -1
- package/package.json +17 -16
- package/src/application/LegendQueryApplicationConfig.ts +35 -1
- package/src/components/QueryBuilder.tsx +13 -2
- package/src/components/QueryBuilderExplorerPanel.tsx +20 -57
- package/src/components/QueryBuilderFetchStructurePanel.tsx +94 -41
- package/src/components/QueryBuilderFilterPanel.tsx +271 -232
- package/src/components/QueryBuilderFunctionsExplorerPanel.tsx +24 -68
- package/src/components/QueryBuilderGraphFetchTreePanel.tsx +34 -25
- package/src/components/QueryBuilderLambdaEditor.tsx +3 -0
- package/src/components/QueryBuilderMilestoneEditor.tsx +34 -34
- package/src/components/QueryBuilderPanelIssueCountBadge.tsx +38 -0
- package/src/components/QueryBuilderParameterPanel.tsx +23 -55
- package/src/components/QueryBuilderPostFilterPanel.tsx +245 -233
- package/src/components/QueryBuilderProjectionPanel.tsx +127 -154
- package/src/components/QueryBuilderPropertyExpressionEditor.tsx +61 -57
- package/src/components/QueryBuilderPropertySearchPanel.tsx +9 -9
- package/src/components/QueryBuilderResultModifierPanel.tsx +4 -2
- package/src/components/QueryBuilderResultPanel.tsx +139 -91
- package/src/components/QueryBuilderSetupPanel.tsx +13 -12
- package/src/components/QueryBuilderUnsupportedQueryEditor.tsx +4 -2
- package/src/components/QueryEditor.tsx +39 -1
- package/src/stores/QueryBuilderExplorerState.ts +22 -3
- package/src/stores/QueryBuilderFetchStructureState.ts +18 -2
- package/src/stores/QueryBuilderFilterState.ts +52 -7
- package/src/stores/QueryBuilderGraphFetchTreeState.ts +14 -8
- package/src/stores/QueryBuilderLambdaProcessor.ts +8 -0
- package/src/stores/QueryBuilderOperatorLoader.ts +133 -0
- package/src/stores/QueryBuilderOperatorsHelper.ts +35 -0
- package/src/stores/QueryBuilderPostFilterState.ts +47 -8
- package/src/stores/QueryBuilderPreviewDataHelper.ts +122 -217
- package/src/stores/QueryBuilderProjectionState.ts +40 -53
- package/src/stores/QueryBuilderPropertySearchPanelState.ts +1 -1
- package/src/stores/QueryBuilderResultState.ts +27 -9
- package/src/stores/QueryBuilderSetupState.ts +1 -1
- package/src/stores/QueryBuilderState.ts +35 -94
- package/src/stores/QueryBuilderTestUtils.ts +93 -0
- package/src/stores/QueryBuilderTypeaheadHelper.ts +149 -0
- package/src/stores/QueryBuilderValueSpecificationBuilderHelper.ts +9 -7
- package/src/stores/QueryEditorStore.ts +19 -3
- package/src/stores/QueryFunctionsExplorerState.ts +1 -11
- package/src/stores/QueryParametersState.ts +1 -3
- package/src/stores/filterOperators/QueryBuilderFilterOperator_Equal.ts +14 -36
- package/src/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.ts +17 -36
- package/src/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.ts +17 -36
- package/src/stores/filterOperators/QueryBuilderFilterOperator_LessThan.ts +17 -37
- package/src/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.ts +17 -36
- package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.ts +14 -34
- package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.ts +19 -37
- package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.ts +19 -37
- package/tsconfig.json +4 -0
@@ -14,12 +14,12 @@
|
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
16
|
import { QueryBuilderFilterOperator, } from '../QueryBuilderFilterState.js';
|
17
|
-
import { PRIMITIVE_TYPE,
|
17
|
+
import { PRIMITIVE_TYPE, SUPPORTED_FUNCTIONS, buildPrimitiveInstanceValue, } from '@finos/legend-graph';
|
18
18
|
import { UnsupportedOperationError } from '@finos/legend-shared';
|
19
19
|
import { buildFilterConditionState, buildFilterConditionExpression, } from './QueryBuilderFilterOperatorHelper.js';
|
20
20
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../QueryBuilder_Const.js';
|
21
21
|
import { generateDefaultValueForPrimitiveType } from '../QueryBuilderValueSpecificationBuilderHelper.js';
|
22
|
-
import { getNonCollectionValueSpecificationType } from '../QueryBuilderOperatorsHelper.js';
|
22
|
+
import { getNonCollectionValueSpecificationType, isTypeCompatibleWithConditionValueType, } from '../QueryBuilderOperatorsHelper.js';
|
23
23
|
export class QueryBuilderFilterOperator_LessThan extends QueryBuilderFilterOperator {
|
24
24
|
getLabel(filterConditionState) {
|
25
25
|
return '<';
|
@@ -38,37 +38,10 @@ export class QueryBuilderFilterOperator_LessThan extends QueryBuilderFilterOpera
|
|
38
38
|
].includes(propertyType.path);
|
39
39
|
}
|
40
40
|
isCompatibleWithFilterConditionValue(filterConditionState) {
|
41
|
-
|
42
|
-
.genericType.value.rawType;
|
43
|
-
const type = filterConditionState.value
|
41
|
+
return isTypeCompatibleWithConditionValueType(filterConditionState.value
|
44
42
|
? getNonCollectionValueSpecificationType(filterConditionState.value)
|
45
|
-
: undefined
|
46
|
-
|
47
|
-
PRIMITIVE_TYPE.NUMBER,
|
48
|
-
PRIMITIVE_TYPE.INTEGER,
|
49
|
-
PRIMITIVE_TYPE.DECIMAL,
|
50
|
-
PRIMITIVE_TYPE.FLOAT,
|
51
|
-
];
|
52
|
-
const DATE_PRIMITIVE_TYPES = [
|
53
|
-
PRIMITIVE_TYPE.DATE,
|
54
|
-
PRIMITIVE_TYPE.DATETIME,
|
55
|
-
PRIMITIVE_TYPE.STRICTDATE,
|
56
|
-
PRIMITIVE_TYPE.LATESTDATE,
|
57
|
-
];
|
58
|
-
// When changing the return type for LHS, the RHS value should be adjusted accordingly.
|
59
|
-
return (type !== undefined &&
|
60
|
-
// Numeric value is handled loosely because of autoboxing
|
61
|
-
// e.g. LHS (integer) = RHS (float) is acceptable
|
62
|
-
((NUMERIC_PRIMITIVE_TYPES.includes(type.path) &&
|
63
|
-
NUMERIC_PRIMITIVE_TYPES.includes(propertyType.path)) ||
|
64
|
-
// Date value is handled loosely as well if the LHS is of type DateTime
|
65
|
-
// This is because we would simulate auto-boxing for date by altering the
|
66
|
-
// Pure function used for the operation
|
67
|
-
// e.g. LHS(DateTime) = RHS(Date) -> we use isOnDay() instead of is()
|
68
|
-
(propertyType.path === PRIMITIVE_TYPE.DATETIME &&
|
69
|
-
DATE_PRIMITIVE_TYPES.includes(type.path)) ||
|
70
|
-
type === propertyType ||
|
71
|
-
isSuperType(propertyType, type)));
|
43
|
+
: undefined, filterConditionState.propertyExpressionState.propertyExpression.func
|
44
|
+
.genericType.value.rawType);
|
72
45
|
}
|
73
46
|
getDefaultFilterConditionValue(filterConditionState) {
|
74
47
|
const propertyType = filterConditionState.propertyExpressionState.propertyExpression.func
|
@@ -78,12 +51,15 @@ export class QueryBuilderFilterOperator_LessThan extends QueryBuilderFilterOpera
|
|
78
51
|
case PRIMITIVE_TYPE.DECIMAL:
|
79
52
|
case PRIMITIVE_TYPE.FLOAT:
|
80
53
|
case PRIMITIVE_TYPE.INTEGER:
|
81
|
-
case PRIMITIVE_TYPE.DATE:
|
82
54
|
case PRIMITIVE_TYPE.STRICTDATE:
|
83
55
|
case PRIMITIVE_TYPE.DATETIME: {
|
84
56
|
return buildPrimitiveInstanceValue(filterConditionState.filterState.queryBuilderState.graphManagerState
|
85
57
|
.graph, propertyType.path, generateDefaultValueForPrimitiveType(propertyType.path));
|
86
58
|
}
|
59
|
+
case PRIMITIVE_TYPE.DATE: {
|
60
|
+
return buildPrimitiveInstanceValue(filterConditionState.filterState.queryBuilderState.graphManagerState
|
61
|
+
.graph, PRIMITIVE_TYPE.STRICTDATE, generateDefaultValueForPrimitiveType(propertyType.path));
|
62
|
+
}
|
87
63
|
default:
|
88
64
|
throw new UnsupportedOperationError(`Can't get default value for filter operator '${this.getLabel(filterConditionState)}' when the LHS property is of type '${propertyType.path}'`);
|
89
65
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryBuilderFilterOperator_LessThan.js","sourceRoot":"","sources":["../../../src/stores/filterOperators/QueryBuilderFilterOperator_LessThan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,0BAA0B,GAG3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,cAAc,EAId,
|
1
|
+
{"version":3,"file":"QueryBuilderFilterOperator_LessThan.js","sourceRoot":"","sources":["../../../src/stores/filterOperators/QueryBuilderFilterOperator_LessThan.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryBuilderFilterOperator_LessThanEqual.d.ts","sourceRoot":"","sources":["../../../src/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,0BAA0B,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,
|
1
|
+
{"version":3,"file":"QueryBuilderFilterOperator_LessThanEqual.d.ts","sourceRoot":"","sources":["../../../src/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,0BAA0B,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAI9B,MAAM,qBAAqB,CAAC;AAa7B,qBAAa,wCAAyC,SAAQ,0BAA0B;IACtF,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,MAAM;IAI5D,uCAAuC,CACrC,oBAAoB,EAAE,oBAAoB,GACzC,OAAO;IAiBV,oCAAoC,CAClC,oBAAoB,EAAE,oBAAoB,GACzC,OAAO;IAUV,8BAA8B,CAC5B,oBAAoB,EAAE,oBAAoB,GACzC,kBAAkB,GAAG,SAAS;IAmCjC,8BAA8B,CAC5B,oBAAoB,EAAE,oBAAoB,GACzC,kBAAkB;IAYrB,yBAAyB,CACvB,WAAW,EAAE,uBAAuB,EACpC,UAAU,EAAE,wBAAwB,GACnC,oBAAoB,GAAG,SAAS;CAapC"}
|
@@ -14,12 +14,12 @@
|
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
16
|
import { QueryBuilderFilterOperator, } from '../QueryBuilderFilterState.js';
|
17
|
-
import { PRIMITIVE_TYPE,
|
17
|
+
import { PRIMITIVE_TYPE, SUPPORTED_FUNCTIONS, buildPrimitiveInstanceValue, } from '@finos/legend-graph';
|
18
18
|
import { UnsupportedOperationError } from '@finos/legend-shared';
|
19
19
|
import { buildFilterConditionState, buildFilterConditionExpression, } from './QueryBuilderFilterOperatorHelper.js';
|
20
20
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../QueryBuilder_Const.js';
|
21
21
|
import { generateDefaultValueForPrimitiveType } from '../QueryBuilderValueSpecificationBuilderHelper.js';
|
22
|
-
import { getNonCollectionValueSpecificationType } from '../QueryBuilderOperatorsHelper.js';
|
22
|
+
import { getNonCollectionValueSpecificationType, isTypeCompatibleWithConditionValueType, } from '../QueryBuilderOperatorsHelper.js';
|
23
23
|
export class QueryBuilderFilterOperator_LessThanEqual extends QueryBuilderFilterOperator {
|
24
24
|
getLabel(filterConditionState) {
|
25
25
|
return '<=';
|
@@ -38,36 +38,10 @@ export class QueryBuilderFilterOperator_LessThanEqual extends QueryBuilderFilter
|
|
38
38
|
].includes(propertyType.path);
|
39
39
|
}
|
40
40
|
isCompatibleWithFilterConditionValue(filterConditionState) {
|
41
|
-
|
42
|
-
.genericType.value.rawType;
|
43
|
-
const type = filterConditionState.value
|
41
|
+
return isTypeCompatibleWithConditionValueType(filterConditionState.value
|
44
42
|
? getNonCollectionValueSpecificationType(filterConditionState.value)
|
45
|
-
: undefined
|
46
|
-
|
47
|
-
PRIMITIVE_TYPE.NUMBER,
|
48
|
-
PRIMITIVE_TYPE.INTEGER,
|
49
|
-
PRIMITIVE_TYPE.DECIMAL,
|
50
|
-
PRIMITIVE_TYPE.FLOAT,
|
51
|
-
];
|
52
|
-
const DATE_PRIMITIVE_TYPES = [
|
53
|
-
PRIMITIVE_TYPE.DATE,
|
54
|
-
PRIMITIVE_TYPE.DATETIME,
|
55
|
-
PRIMITIVE_TYPE.STRICTDATE,
|
56
|
-
PRIMITIVE_TYPE.LATESTDATE,
|
57
|
-
];
|
58
|
-
// When changing the return type for LHS, the RHS value should be adjusted accordingly.
|
59
|
-
return (type !== undefined &&
|
60
|
-
// Numeric value is handled loosely because of autoboxing
|
61
|
-
// e.g. LHS (integer) = RHS (float) is acceptable
|
62
|
-
((NUMERIC_PRIMITIVE_TYPES.includes(type.path) &&
|
63
|
-
NUMERIC_PRIMITIVE_TYPES.includes(propertyType.path)) ||
|
64
|
-
// Date value is handled loosely as well if the LHS is of type DateTime
|
65
|
-
// This is because we would simulate auto-boxing for date by altering the
|
66
|
-
// Pure function used for the operation
|
67
|
-
// e.g. LHS(DateTime) = RHS(Date) -> we use isOnDay() instead of is()
|
68
|
-
DATE_PRIMITIVE_TYPES.includes(type.path) ||
|
69
|
-
type === propertyType ||
|
70
|
-
isSuperType(propertyType, type)));
|
43
|
+
: undefined, filterConditionState.propertyExpressionState.propertyExpression.func
|
44
|
+
.genericType.value.rawType);
|
71
45
|
}
|
72
46
|
getDefaultFilterConditionValue(filterConditionState) {
|
73
47
|
const propertyType = filterConditionState.propertyExpressionState.propertyExpression.func
|
@@ -77,12 +51,15 @@ export class QueryBuilderFilterOperator_LessThanEqual extends QueryBuilderFilter
|
|
77
51
|
case PRIMITIVE_TYPE.DECIMAL:
|
78
52
|
case PRIMITIVE_TYPE.FLOAT:
|
79
53
|
case PRIMITIVE_TYPE.INTEGER:
|
80
|
-
case PRIMITIVE_TYPE.DATE:
|
81
54
|
case PRIMITIVE_TYPE.STRICTDATE:
|
82
55
|
case PRIMITIVE_TYPE.DATETIME: {
|
83
56
|
return buildPrimitiveInstanceValue(filterConditionState.filterState.queryBuilderState.graphManagerState
|
84
57
|
.graph, propertyType.path, generateDefaultValueForPrimitiveType(propertyType.path));
|
85
58
|
}
|
59
|
+
case PRIMITIVE_TYPE.DATE: {
|
60
|
+
return buildPrimitiveInstanceValue(filterConditionState.filterState.queryBuilderState.graphManagerState
|
61
|
+
.graph, PRIMITIVE_TYPE.STRICTDATE, generateDefaultValueForPrimitiveType(propertyType.path));
|
62
|
+
}
|
86
63
|
default:
|
87
64
|
throw new UnsupportedOperationError(`Can't get default value for filter operator '${this.getLabel(filterConditionState)}' when the LHS property is of type '${propertyType.path}'`);
|
88
65
|
}
|
@@ -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;IA4DrB,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
|
}
|
@@ -78,7 +52,6 @@ export class QueryBuilderPostFilterOperator_Equal extends QueryBuilderPostFilter
|
|
78
52
|
switch (propertyType.path) {
|
79
53
|
case PRIMITIVE_TYPE.STRING:
|
80
54
|
case PRIMITIVE_TYPE.BOOLEAN:
|
81
|
-
case PRIMITIVE_TYPE.DATE:
|
82
55
|
case PRIMITIVE_TYPE.STRICTDATE:
|
83
56
|
case PRIMITIVE_TYPE.DATETIME:
|
84
57
|
case PRIMITIVE_TYPE.NUMBER:
|
@@ -88,6 +61,10 @@ export class QueryBuilderPostFilterOperator_Equal extends QueryBuilderPostFilter
|
|
88
61
|
return buildPrimitiveInstanceValue(postFilterConditionState.postFilterState.queryBuilderState
|
89
62
|
.graphManagerState.graph, propertyType.path, generateDefaultValueForPrimitiveType(propertyType.path));
|
90
63
|
}
|
64
|
+
case PRIMITIVE_TYPE.DATE: {
|
65
|
+
return buildPrimitiveInstanceValue(postFilterConditionState.postFilterState.queryBuilderState
|
66
|
+
.graphManagerState.graph, PRIMITIVE_TYPE.STRICTDATE, generateDefaultValueForPrimitiveType(propertyType.path));
|
67
|
+
}
|
91
68
|
default:
|
92
69
|
if (propertyType instanceof Enumeration) {
|
93
70
|
if (propertyType.values.length > 0) {
|
@@ -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;IAiCrB,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();
|
@@ -74,12 +48,15 @@ export class QueryBuilderPostFilterOperator_GreaterThan extends QueryBuilderPost
|
|
74
48
|
case PRIMITIVE_TYPE.DECIMAL:
|
75
49
|
case PRIMITIVE_TYPE.FLOAT:
|
76
50
|
case PRIMITIVE_TYPE.INTEGER:
|
77
|
-
case PRIMITIVE_TYPE.DATE:
|
78
51
|
case PRIMITIVE_TYPE.STRICTDATE:
|
79
52
|
case PRIMITIVE_TYPE.DATETIME: {
|
80
53
|
return buildPrimitiveInstanceValue(postFilterConditionState.postFilterState.queryBuilderState
|
81
54
|
.graphManagerState.graph, propertyType.path, generateDefaultValueForPrimitiveType(propertyType.path));
|
82
55
|
}
|
56
|
+
case PRIMITIVE_TYPE.DATE: {
|
57
|
+
return buildPrimitiveInstanceValue(postFilterConditionState.postFilterState.queryBuilderState
|
58
|
+
.graphManagerState.graph, PRIMITIVE_TYPE.STRICTDATE, generateDefaultValueForPrimitiveType(propertyType.path));
|
59
|
+
}
|
83
60
|
default:
|
84
61
|
throw new UnsupportedOperationError(`Can't get default value for post-filter operator '${this.getLabel()}' when the LHS property is of type '${propertyType?.path}'`);
|
85
62
|
}
|
@@ -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;IAiCrB,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();
|
@@ -74,12 +48,15 @@ export class QueryBuilderPostFilterOperator_LessThan extends QueryBuilderPostFil
|
|
74
48
|
case PRIMITIVE_TYPE.DECIMAL:
|
75
49
|
case PRIMITIVE_TYPE.FLOAT:
|
76
50
|
case PRIMITIVE_TYPE.INTEGER:
|
77
|
-
case PRIMITIVE_TYPE.DATE:
|
78
51
|
case PRIMITIVE_TYPE.STRICTDATE:
|
79
52
|
case PRIMITIVE_TYPE.DATETIME: {
|
80
53
|
return buildPrimitiveInstanceValue(postFilterConditionState.postFilterState.queryBuilderState
|
81
54
|
.graphManagerState.graph, propertyType.path, generateDefaultValueForPrimitiveType(propertyType.path));
|
82
55
|
}
|
56
|
+
case PRIMITIVE_TYPE.DATE: {
|
57
|
+
return buildPrimitiveInstanceValue(postFilterConditionState.postFilterState.queryBuilderState
|
58
|
+
.graphManagerState.graph, PRIMITIVE_TYPE.STRICTDATE, generateDefaultValueForPrimitiveType(propertyType.path));
|
59
|
+
}
|
83
60
|
default:
|
84
61
|
throw new UnsupportedOperationError(`Can't get default value for post-filter operator '${this.getLabel()}' when the LHS property is of type '${propertyType?.path}'`);
|
85
62
|
}
|
@@ -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.2.1",
|
4
4
|
"description": "Legend Query application core",
|
5
5
|
"keywords": [
|
6
6
|
"legend",
|
@@ -43,41 +43,42 @@
|
|
43
43
|
"test:watch": "jest --watch"
|
44
44
|
},
|
45
45
|
"dependencies": {
|
46
|
-
"@ag-grid-community/client-side-row-model": "28.0
|
47
|
-
"@ag-grid-community/core": "28.0
|
48
|
-
"@ag-grid-community/react": "28.
|
49
|
-
"@finos/legend-application": "7.0
|
50
|
-
"@finos/legend-art": "
|
51
|
-
"@finos/legend-graph": "
|
52
|
-
"@finos/legend-server-depot": "3.0.
|
53
|
-
"@finos/legend-shared": "
|
54
|
-
"@finos/legend-storage": "3.0.
|
46
|
+
"@ag-grid-community/client-side-row-model": "28.1.0",
|
47
|
+
"@ag-grid-community/core": "28.1.0",
|
48
|
+
"@ag-grid-community/react": "28.1.0",
|
49
|
+
"@finos/legend-application": "7.1.0",
|
50
|
+
"@finos/legend-art": "3.0.0",
|
51
|
+
"@finos/legend-graph": "14.0.0",
|
52
|
+
"@finos/legend-server-depot": "3.0.5",
|
53
|
+
"@finos/legend-shared": "6.0.0",
|
54
|
+
"@finos/legend-storage": "3.0.4",
|
55
55
|
"@testing-library/react": "13.3.0",
|
56
|
-
"@types/react": "18.0.
|
56
|
+
"@types/react": "18.0.17",
|
57
57
|
"@types/react-dom": "18.0.6",
|
58
58
|
"@types/react-router-dom": "5.3.3",
|
59
59
|
"date-fns": "2.29.1",
|
60
60
|
"history": "5.3.0",
|
61
61
|
"mobx": "6.6.1",
|
62
62
|
"mobx-react-lite": "3.4.0",
|
63
|
-
"monaco-editor": "0.
|
63
|
+
"monaco-editor": "0.34.0",
|
64
64
|
"react": "18.2.0",
|
65
65
|
"react-dnd": "16.0.1",
|
66
66
|
"react-dnd-html5-backend": "16.0.1",
|
67
67
|
"react-dom": "18.2.0",
|
68
68
|
"react-hotkeys": "2.0.0",
|
69
69
|
"react-router": "5.3.3",
|
70
|
-
"react-router-dom": "5.3.3"
|
70
|
+
"react-router-dom": "5.3.3",
|
71
|
+
"serializr": "2.0.5"
|
71
72
|
},
|
72
73
|
"devDependencies": {
|
73
|
-
"@finos/legend-dev-utils": "2.0.
|
74
|
+
"@finos/legend-dev-utils": "2.0.10",
|
74
75
|
"@jest/globals": "28.1.3",
|
75
76
|
"cross-env": "7.0.3",
|
76
|
-
"eslint": "8.
|
77
|
+
"eslint": "8.22.0",
|
77
78
|
"jest": "28.1.3",
|
78
79
|
"npm-run-all": "4.1.5",
|
79
80
|
"rimraf": "3.0.2",
|
80
|
-
"sass": "1.54.
|
81
|
+
"sass": "1.54.4",
|
81
82
|
"typescript": "4.7.4"
|
82
83
|
},
|
83
84
|
"peerDependencies": {
|
@@ -17,12 +17,40 @@
|
|
17
17
|
import {
|
18
18
|
assertNonNullable,
|
19
19
|
guaranteeNonEmptyString,
|
20
|
+
SerializationFactory,
|
21
|
+
type PlainObject,
|
20
22
|
} from '@finos/legend-shared';
|
21
23
|
import {
|
22
24
|
LegendApplicationConfig,
|
23
25
|
type LegendApplicationConfigurationInput,
|
24
26
|
type LegendApplicationConfigurationData,
|
25
27
|
} from '@finos/legend-application';
|
28
|
+
import { createModelSchema, optional, primitive } from 'serializr';
|
29
|
+
|
30
|
+
class LegendQueryApplicationCoreOptions {
|
31
|
+
/**
|
32
|
+
* Indicates if we should enable theme switcher.
|
33
|
+
*
|
34
|
+
* NOTE: support for theme switcher is fairly basic at the moment, so we really should
|
35
|
+
* just keep this feature as a beta.
|
36
|
+
*
|
37
|
+
* This flag will be kept until we have full support for themeing
|
38
|
+
* See https://github.com/finos/legend-studio/issues/264
|
39
|
+
*/
|
40
|
+
TEMPORARY__enableThemeSwitcher = false;
|
41
|
+
|
42
|
+
private static readonly serialization = new SerializationFactory(
|
43
|
+
createModelSchema(LegendQueryApplicationCoreOptions, {
|
44
|
+
TEMPORARY__enableThemeSwitcher: optional(primitive()),
|
45
|
+
}),
|
46
|
+
);
|
47
|
+
|
48
|
+
static create(
|
49
|
+
configData: PlainObject<LegendQueryApplicationCoreOptions>,
|
50
|
+
): LegendQueryApplicationCoreOptions {
|
51
|
+
return LegendQueryApplicationCoreOptions.serialization.fromJson(configData);
|
52
|
+
}
|
53
|
+
}
|
26
54
|
|
27
55
|
export interface LegendQueryApplicationConfigurationData
|
28
56
|
extends LegendApplicationConfigurationData {
|
@@ -39,10 +67,11 @@ export interface LegendQueryApplicationConfigurationData
|
|
39
67
|
};
|
40
68
|
engine: { url: string; queryUrl?: string };
|
41
69
|
studio: { url: string };
|
42
|
-
extensions?: Record<PropertyKey, unknown>;
|
43
70
|
}
|
44
71
|
|
45
72
|
export class LegendQueryApplicationConfig extends LegendApplicationConfig {
|
73
|
+
readonly options = new LegendQueryApplicationCoreOptions();
|
74
|
+
|
46
75
|
readonly engineServerUrl: string;
|
47
76
|
readonly engineQueryServerUrl?: string | undefined;
|
48
77
|
readonly depotServerUrl: string;
|
@@ -73,5 +102,10 @@ export class LegendQueryApplicationConfig extends LegendApplicationConfig {
|
|
73
102
|
);
|
74
103
|
this.TEMPORARY__useLegacyDepotServerAPIRoutes =
|
75
104
|
input.configData.depot.TEMPORARY__useLegacyDepotServerAPIRoutes;
|
105
|
+
|
106
|
+
this.options = LegendQueryApplicationCoreOptions.create(
|
107
|
+
(input.configData.extensions?.core ??
|
108
|
+
{}) as PlainObject<LegendQueryApplicationCoreOptions>,
|
109
|
+
);
|
76
110
|
}
|
77
111
|
}
|