@finos/legend-application-query 5.1.0 → 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.
Files changed (177) hide show
  1. package/lib/application/LegendQueryApplicationConfig.d.ts +17 -1
  2. package/lib/application/LegendQueryApplicationConfig.d.ts.map +1 -1
  3. package/lib/application/LegendQueryApplicationConfig.js +23 -1
  4. package/lib/application/LegendQueryApplicationConfig.js.map +1 -1
  5. package/lib/components/QueryBuilder.d.ts.map +1 -1
  6. package/lib/components/QueryBuilder.js +3 -1
  7. package/lib/components/QueryBuilder.js.map +1 -1
  8. package/lib/components/QueryBuilderExplorerPanel.d.ts.map +1 -1
  9. package/lib/components/QueryBuilderExplorerPanel.js +7 -34
  10. package/lib/components/QueryBuilderExplorerPanel.js.map +1 -1
  11. package/lib/components/QueryBuilderFetchStructurePanel.d.ts.map +1 -1
  12. package/lib/components/QueryBuilderFetchStructurePanel.js +77 -66
  13. package/lib/components/QueryBuilderFetchStructurePanel.js.map +1 -1
  14. package/lib/components/QueryBuilderFilterPanel.d.ts.map +1 -1
  15. package/lib/components/QueryBuilderFilterPanel.js +28 -58
  16. package/lib/components/QueryBuilderFilterPanel.js.map +1 -1
  17. package/lib/components/QueryBuilderFunctionsExplorerPanel.d.ts.map +1 -1
  18. package/lib/components/QueryBuilderFunctionsExplorerPanel.js +9 -39
  19. package/lib/components/QueryBuilderFunctionsExplorerPanel.js.map +1 -1
  20. package/lib/components/QueryBuilderGraphFetchTreePanel.d.ts.map +1 -1
  21. package/lib/components/QueryBuilderGraphFetchTreePanel.js +5 -5
  22. package/lib/components/QueryBuilderGraphFetchTreePanel.js.map +1 -1
  23. package/lib/components/QueryBuilderLambdaEditor.d.ts +1 -0
  24. package/lib/components/QueryBuilderLambdaEditor.d.ts.map +1 -1
  25. package/lib/components/QueryBuilderLambdaEditor.js +2 -2
  26. package/lib/components/QueryBuilderLambdaEditor.js.map +1 -1
  27. package/lib/components/QueryBuilderMilestoneEditor.js +5 -5
  28. package/lib/components/QueryBuilderMilestoneEditor.js.map +1 -1
  29. package/lib/components/QueryBuilderPanelIssueCountBadge.d.ts +20 -0
  30. package/lib/components/QueryBuilderPanelIssueCountBadge.d.ts.map +1 -0
  31. package/lib/components/QueryBuilderPanelIssueCountBadge.js +28 -0
  32. package/lib/components/QueryBuilderPanelIssueCountBadge.js.map +1 -0
  33. package/lib/components/QueryBuilderParameterPanel.d.ts.map +1 -1
  34. package/lib/components/QueryBuilderParameterPanel.js +13 -34
  35. package/lib/components/QueryBuilderParameterPanel.js.map +1 -1
  36. package/lib/components/QueryBuilderPostFilterPanel.d.ts.map +1 -1
  37. package/lib/components/QueryBuilderPostFilterPanel.js +33 -58
  38. package/lib/components/QueryBuilderPostFilterPanel.js.map +1 -1
  39. package/lib/components/QueryBuilderProjectionPanel.d.ts.map +1 -1
  40. package/lib/components/QueryBuilderProjectionPanel.js +47 -67
  41. package/lib/components/QueryBuilderProjectionPanel.js.map +1 -1
  42. package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts.map +1 -1
  43. package/lib/components/QueryBuilderPropertyExpressionEditor.js +11 -11
  44. package/lib/components/QueryBuilderPropertyExpressionEditor.js.map +1 -1
  45. package/lib/components/QueryBuilderPropertySearchPanel.d.ts.map +1 -1
  46. package/lib/components/QueryBuilderPropertySearchPanel.js +3 -6
  47. package/lib/components/QueryBuilderPropertySearchPanel.js.map +1 -1
  48. package/lib/components/QueryBuilderResultModifierPanel.d.ts.map +1 -1
  49. package/lib/components/QueryBuilderResultModifierPanel.js +3 -1
  50. package/lib/components/QueryBuilderResultModifierPanel.js.map +1 -1
  51. package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
  52. package/lib/components/QueryBuilderResultPanel.js +28 -20
  53. package/lib/components/QueryBuilderResultPanel.js.map +1 -1
  54. package/lib/components/QueryBuilderSetupPanel.d.ts.map +1 -1
  55. package/lib/components/QueryBuilderSetupPanel.js +10 -11
  56. package/lib/components/QueryBuilderSetupPanel.js.map +1 -1
  57. package/lib/components/QueryBuilderUnsupportedQueryEditor.d.ts.map +1 -1
  58. package/lib/components/QueryBuilderUnsupportedQueryEditor.js +4 -2
  59. package/lib/components/QueryBuilderUnsupportedQueryEditor.js.map +1 -1
  60. package/lib/components/QueryEditor.d.ts.map +1 -1
  61. package/lib/components/QueryEditor.js +16 -4
  62. package/lib/components/QueryEditor.js.map +1 -1
  63. package/lib/index.css +2 -2
  64. package/lib/index.css.map +1 -1
  65. package/lib/package.json +10 -9
  66. package/lib/stores/QueryBuilderExplorerState.d.ts.map +1 -1
  67. package/lib/stores/QueryBuilderExplorerState.js +5 -0
  68. package/lib/stores/QueryBuilderExplorerState.js.map +1 -1
  69. package/lib/stores/QueryBuilderFetchStructureState.d.ts +6 -0
  70. package/lib/stores/QueryBuilderFetchStructureState.d.ts.map +1 -1
  71. package/lib/stores/QueryBuilderFetchStructureState.js +8 -0
  72. package/lib/stores/QueryBuilderFetchStructureState.js.map +1 -1
  73. package/lib/stores/QueryBuilderFilterState.d.ts +4 -9
  74. package/lib/stores/QueryBuilderFilterState.d.ts.map +1 -1
  75. package/lib/stores/QueryBuilderFilterState.js +6 -11
  76. package/lib/stores/QueryBuilderFilterState.js.map +1 -1
  77. package/lib/stores/QueryBuilderGraphFetchTreeState.d.ts.map +1 -1
  78. package/lib/stores/QueryBuilderGraphFetchTreeState.js +6 -3
  79. package/lib/stores/QueryBuilderGraphFetchTreeState.js.map +1 -1
  80. package/lib/stores/QueryBuilderLambdaProcessor.d.ts.map +1 -1
  81. package/lib/stores/QueryBuilderLambdaProcessor.js +2 -0
  82. package/lib/stores/QueryBuilderLambdaProcessor.js.map +1 -1
  83. package/lib/stores/QueryBuilderPostFilterState.d.ts +4 -4
  84. package/lib/stores/QueryBuilderPostFilterState.d.ts.map +1 -1
  85. package/lib/stores/QueryBuilderPostFilterState.js +6 -6
  86. package/lib/stores/QueryBuilderPostFilterState.js.map +1 -1
  87. package/lib/stores/QueryBuilderProjectionState.d.ts +2 -7
  88. package/lib/stores/QueryBuilderProjectionState.d.ts.map +1 -1
  89. package/lib/stores/QueryBuilderProjectionState.js +5 -17
  90. package/lib/stores/QueryBuilderProjectionState.js.map +1 -1
  91. package/lib/stores/QueryBuilderSetupState.js +1 -1
  92. package/lib/stores/QueryBuilderSetupState.js.map +1 -1
  93. package/lib/stores/QueryBuilderState.d.ts +6 -1
  94. package/lib/stores/QueryBuilderState.d.ts.map +1 -1
  95. package/lib/stores/QueryBuilderState.js +9 -2
  96. package/lib/stores/QueryBuilderState.js.map +1 -1
  97. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.d.ts.map +1 -1
  98. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js +7 -7
  99. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js.map +1 -1
  100. package/lib/stores/QueryEditorStore.d.ts.map +1 -1
  101. package/lib/stores/QueryEditorStore.js +14 -3
  102. package/lib/stores/QueryEditorStore.js.map +1 -1
  103. package/lib/stores/QueryFunctionsExplorerState.d.ts +2 -6
  104. package/lib/stores/QueryFunctionsExplorerState.d.ts.map +1 -1
  105. package/lib/stores/QueryFunctionsExplorerState.js +2 -11
  106. package/lib/stores/QueryFunctionsExplorerState.js.map +1 -1
  107. package/lib/stores/QueryParametersState.d.ts +1 -3
  108. package/lib/stores/QueryParametersState.d.ts.map +1 -1
  109. package/lib/stores/QueryParametersState.js +1 -4
  110. package/lib/stores/QueryParametersState.js.map +1 -1
  111. package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.d.ts.map +1 -1
  112. package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.js +4 -1
  113. package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.js.map +1 -1
  114. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.d.ts.map +1 -1
  115. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.js +4 -1
  116. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.js.map +1 -1
  117. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts.map +1 -1
  118. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.js +4 -1
  119. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.js.map +1 -1
  120. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThan.d.ts.map +1 -1
  121. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThan.js +4 -1
  122. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThan.js.map +1 -1
  123. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.d.ts.map +1 -1
  124. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.js +4 -1
  125. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.js.map +1 -1
  126. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.d.ts.map +1 -1
  127. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.js +4 -1
  128. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.js.map +1 -1
  129. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.d.ts.map +1 -1
  130. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.js +4 -1
  131. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.js.map +1 -1
  132. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.d.ts.map +1 -1
  133. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.js +4 -1
  134. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.js.map +1 -1
  135. package/package.json +17 -16
  136. package/src/application/LegendQueryApplicationConfig.ts +35 -1
  137. package/src/components/QueryBuilder.tsx +13 -2
  138. package/src/components/QueryBuilderExplorerPanel.tsx +17 -56
  139. package/src/components/QueryBuilderFetchStructurePanel.tsx +93 -80
  140. package/src/components/QueryBuilderFilterPanel.tsx +184 -225
  141. package/src/components/QueryBuilderFunctionsExplorerPanel.tsx +23 -68
  142. package/src/components/QueryBuilderGraphFetchTreePanel.tsx +34 -25
  143. package/src/components/QueryBuilderLambdaEditor.tsx +3 -0
  144. package/src/components/QueryBuilderMilestoneEditor.tsx +34 -34
  145. package/src/components/QueryBuilderPanelIssueCountBadge.tsx +38 -0
  146. package/src/components/QueryBuilderParameterPanel.tsx +21 -54
  147. package/src/components/QueryBuilderPostFilterPanel.tsx +202 -236
  148. package/src/components/QueryBuilderProjectionPanel.tsx +126 -170
  149. package/src/components/QueryBuilderPropertyExpressionEditor.tsx +61 -57
  150. package/src/components/QueryBuilderPropertySearchPanel.tsx +8 -9
  151. package/src/components/QueryBuilderResultModifierPanel.tsx +4 -2
  152. package/src/components/QueryBuilderResultPanel.tsx +71 -52
  153. package/src/components/QueryBuilderSetupPanel.tsx +10 -11
  154. package/src/components/QueryBuilderUnsupportedQueryEditor.tsx +4 -2
  155. package/src/components/QueryEditor.tsx +39 -1
  156. package/src/stores/QueryBuilderExplorerState.ts +5 -0
  157. package/src/stores/QueryBuilderFetchStructureState.ts +9 -0
  158. package/src/stores/QueryBuilderFilterState.ts +7 -12
  159. package/src/stores/QueryBuilderGraphFetchTreeState.ts +14 -8
  160. package/src/stores/QueryBuilderLambdaProcessor.ts +8 -0
  161. package/src/stores/QueryBuilderPostFilterState.ts +7 -7
  162. package/src/stores/QueryBuilderProjectionState.ts +7 -18
  163. package/src/stores/QueryBuilderSetupState.ts +1 -1
  164. package/src/stores/QueryBuilderState.ts +10 -2
  165. package/src/stores/QueryBuilderValueSpecificationBuilderHelper.ts +9 -7
  166. package/src/stores/QueryEditorStore.ts +19 -3
  167. package/src/stores/QueryFunctionsExplorerState.ts +1 -11
  168. package/src/stores/QueryParametersState.ts +1 -3
  169. package/src/stores/filterOperators/QueryBuilderFilterOperator_Equal.ts +8 -1
  170. package/src/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.ts +8 -1
  171. package/src/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.ts +8 -1
  172. package/src/stores/filterOperators/QueryBuilderFilterOperator_LessThan.ts +8 -1
  173. package/src/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.ts +8 -1
  174. package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.ts +8 -1
  175. package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.ts +8 -1
  176. package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.ts +8 -1
  177. package/tsconfig.json +1 -0
@@ -85,9 +85,7 @@ import {
85
85
  buildNonNumericPreviewDataQuery,
86
86
  } from './QueryBuilderPreviewDataHelper.js';
87
87
 
88
- export enum QUERY_BUILDER_PROJECTION_DND_TYPE {
89
- PROJECTION_COLUMN = 'PROJECTION_COLUMN',
90
- }
88
+ export const QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE = 'PROJECTION_COLUMN';
91
89
 
92
90
  export interface QueryBuilderProjectionColumnDragSource {
93
91
  columnState: QueryBuilderProjectionColumnState;
@@ -96,7 +94,6 @@ export interface QueryBuilderProjectionColumnDragSource {
96
94
  export abstract class QueryBuilderProjectionColumnState {
97
95
  readonly uuid = uuid();
98
96
  projectionState: QueryBuilderProjectionState;
99
- isBeingDragged = false;
100
97
  columnName: string;
101
98
 
102
99
  constructor(
@@ -106,9 +103,7 @@ export abstract class QueryBuilderProjectionColumnState {
106
103
  makeObservable(this, {
107
104
  uuid: false,
108
105
  projectionState: false,
109
- isBeingDragged: observable,
110
106
  columnName: observable,
111
- setIsBeingDragged: action,
112
107
  setColumnName: action,
113
108
  });
114
109
 
@@ -116,10 +111,6 @@ export abstract class QueryBuilderProjectionColumnState {
116
111
  this.columnName = columnName;
117
112
  }
118
113
 
119
- setIsBeingDragged(val: boolean): void {
120
- this.isBeingDragged = val;
121
- }
122
-
123
114
  setColumnName(val: string): void {
124
115
  this.columnName = val;
125
116
  }
@@ -590,7 +581,9 @@ export class QueryBuilderProjectionState {
590
581
  addNewBlankDerivation(): void {
591
582
  const derivation = new QueryBuilderDerivationProjectionColumnState(
592
583
  this,
593
- this.queryBuilderState.graphManagerState.graphManager.HACKY__createDefaultBlankLambda(),
584
+ this.queryBuilderState.graphManagerState.graphManager.createDefaultBasicRawLambda(
585
+ { addDummyParameter: true },
586
+ ),
594
587
  );
595
588
  this.addColumn(derivation);
596
589
  derivation.derivationLambdaEditorState.setLambdaString(
@@ -770,11 +763,7 @@ export class QueryBuilderProjectionState {
770
763
  }
771
764
  }
772
765
 
773
- isValidProjectionState(): boolean {
774
- return Boolean(!this.getValidationErrorMessage());
775
- }
776
-
777
- getValidationErrorMessage(): string | undefined {
766
+ get validationIssues(): string[] | undefined {
778
767
  if (this.queryBuilderState.fetchStructureState.isProjectionMode()) {
779
768
  const hasDuplicatedProjectionColumns = this.columns.some(
780
769
  (column) =>
@@ -782,11 +771,11 @@ export class QueryBuilderProjectionState {
782
771
  .length > 1,
783
772
  );
784
773
  if (hasDuplicatedProjectionColumns) {
785
- return 'Query has duplicated projection columns';
774
+ return ['Query has duplicated projection columns'];
786
775
  }
787
776
  const hasNoProjectionColumns = this.columns.length === 0;
788
777
  if (hasNoProjectionColumns) {
789
- return 'Query has no projection columns';
778
+ return ['Query has no projection columns'];
790
779
  }
791
780
  }
792
781
  return undefined;
@@ -106,7 +106,7 @@ export class QueryBuilderSetupState {
106
106
  get classes(): Class[] {
107
107
  return this.queryBuilderState.graphManagerState.graph.ownClasses
108
108
  .concat(
109
- this.queryBuilderState.graphManagerState.filterSystemElementOptions(
109
+ this.queryBuilderState.graphManagerState.collectExposedSystemElements(
110
110
  this.queryBuilderState.graphManagerState.graph.systemModel.ownClasses,
111
111
  ),
112
112
  )
@@ -81,6 +81,14 @@ export abstract class QueryBuilderMode {
81
81
  abstract get isParametersDisabled(): boolean;
82
82
 
83
83
  abstract get isResultPanelHidden(): boolean;
84
+
85
+ /**
86
+ * This flag is for turning on/off dnd from projection panel to filter panel,
87
+ * and will be leveraged when the concepts of workflows are introduced into query builder.
88
+ */
89
+ get isDnDProjectionToFilterSupported(): boolean {
90
+ return true;
91
+ }
84
92
  }
85
93
 
86
94
  export class StandardQueryBuilderMode extends QueryBuilderMode {
@@ -480,8 +488,8 @@ export class QueryBuilderState {
480
488
  }
481
489
  }
482
490
 
483
- isValidQueryBuilderState(): boolean {
484
- return this.fetchStructureState.projectionState.isValidProjectionState();
491
+ get validationIssues(): string[] | undefined {
492
+ return this.fetchStructureState.validationIssues;
485
493
  }
486
494
 
487
495
  createBareBuilderState(): QueryBuilderState {
@@ -64,13 +64,15 @@ export const buildGenericLambdaFunctionInstanceValue = (
64
64
  TYPICAL_MULTIPLICITY_TYPE.ONE,
65
65
  );
66
66
  const typeAny = graph.getType(CORE_PURE_PATH.ANY);
67
- const aggregateLambda = new LambdaFunctionInstanceValue(multiplicityOne);
68
- const colLambdaFunctionType = new FunctionType(typeAny, multiplicityOne);
69
- colLambdaFunctionType.parameters.push(
67
+ const functionInstanceValue = new LambdaFunctionInstanceValue(
68
+ multiplicityOne,
69
+ );
70
+ const functionType = new FunctionType(typeAny, multiplicityOne);
71
+ functionType.parameters.push(
70
72
  new VariableExpression(lambdaParameterName, multiplicityOne),
71
73
  );
72
- const colLambdaFunction = new LambdaFunction(colLambdaFunctionType);
73
- colLambdaFunction.expressionSequence = lambdaBodyExpressions;
74
- aggregateLambda.values.push(colLambdaFunction);
75
- return aggregateLambda;
74
+ const lambdaFunction = new LambdaFunction(functionType);
75
+ lambdaFunction.expressionSequence = lambdaBodyExpressions;
76
+ functionInstanceValue.values.push(lambdaFunction);
77
+ return functionInstanceValue;
76
78
  };
@@ -50,6 +50,7 @@ import {
50
50
  type GraphBuilderReport,
51
51
  GraphManagerTelemetry,
52
52
  extractElementNameFromPath,
53
+ isSystemElement,
53
54
  } from '@finos/legend-graph';
54
55
  import {
55
56
  QueryBuilderState,
@@ -448,15 +449,30 @@ export class CreateQueryEditorStore extends QueryEditorStore {
448
449
  );
449
450
  this.queryBuilderState.querySetupState.setClassIsReadOnly(true);
450
451
  } else {
451
- this.queryBuilderState.changeClass(
452
+ // try to find a class to set
453
+ // first, find classes which is mapped by the mapping
454
+ // then, find any classes except for class coming from system
455
+ // if none found, default to a dummy blank query
456
+ const defaultClass =
452
457
  getNullableFirstElement(
453
458
  this.queryBuilderState.querySetupState.mapping
454
459
  ? getAllClassMappings(
455
460
  this.queryBuilderState.querySetupState.mapping,
456
461
  ).map((classMapping) => classMapping.class.value)
457
462
  : [],
458
- ),
459
- );
463
+ ) ??
464
+ getNullableFirstElement(
465
+ this.queryBuilderState.graphManagerState.graph.classes.filter(
466
+ (el) => !isSystemElement(el),
467
+ ),
468
+ );
469
+ if (defaultClass) {
470
+ this.queryBuilderState.changeClass(defaultClass);
471
+ } else {
472
+ this.queryBuilderState.initialize(
473
+ this.queryBuilderState.graphManagerState.graphManager.createDefaultBasicRawLambda(),
474
+ );
475
+ }
460
476
  }
461
477
  }
462
478
 
@@ -31,10 +31,7 @@ import { action, makeObservable, observable } from 'mobx';
31
31
  import type { QueryBuilderState } from './QueryBuilderState.js';
32
32
  import type { TreeNodeData, TreeData } from '@finos/legend-art';
33
33
 
34
- export enum QUERY_BUILDER_FUNCTIONS_EXPLORER_TREE_DND_TYPE {
35
- FUNCTION = 'FUNCTION',
36
- PACKAGE = 'PACKAGE',
37
- }
34
+ export const QUERY_BUILDER_FUNCTION_DND_TYPE = 'QUERY_BUILDER_FUNCTION';
38
35
 
39
36
  export interface QueryBuilderFunctionsExplorerDragSource {
40
37
  node: QueryBuilderFunctionsExplorerTreeNodeData;
@@ -43,7 +40,6 @@ export interface QueryBuilderFunctionsExplorerDragSource {
43
40
  export class QueryBuilderFunctionsExplorerTreeNodeData implements TreeNodeData {
44
41
  id: string;
45
42
  label: string;
46
- dndType: string;
47
43
  childrenIds: string[] = [];
48
44
  isOpen?: boolean | undefined;
49
45
  packageableElement: PackageableElement;
@@ -51,12 +47,10 @@ export class QueryBuilderFunctionsExplorerTreeNodeData implements TreeNodeData {
51
47
  constructor(
52
48
  id: string,
53
49
  label: string,
54
- dndType: string,
55
50
  packageableElement: PackageableElement,
56
51
  ) {
57
52
  this.id = id;
58
53
  this.label = label;
59
- this.dndType = dndType;
60
54
  this.packageableElement = packageableElement;
61
55
  }
62
56
  }
@@ -81,10 +75,6 @@ export const generateFunctionsExplorerTreeNodeData = (
81
75
  rootPackageName: ROOT_PACKAGE_NAME,
82
76
  ): QueryBuilderFunctionsExplorerTreeNodeData => ({
83
77
  id: element.path,
84
- dndType:
85
- element instanceof Package
86
- ? QUERY_BUILDER_FUNCTIONS_EXPLORER_TREE_DND_TYPE.PACKAGE
87
- : QUERY_BUILDER_FUNCTIONS_EXPLORER_TREE_DND_TYPE.FUNCTION,
88
78
  label: element.name,
89
79
  childrenIds:
90
80
  element instanceof Package
@@ -21,9 +21,7 @@ import {
21
21
  import { observable, makeObservable, action } from 'mobx';
22
22
  import type { QueryBuilderState } from './QueryBuilderState.js';
23
23
 
24
- export enum QUERY_BUILDER_PARAMETER_TREE_DND_TYPE {
25
- VARIABLE = 'VARIABLE',
26
- }
24
+ export const QUERY_BUILDER_PARAMETER_DND_TYPE = 'PARAMETER';
27
25
 
28
26
  export interface QueryBuilderParameterDragSource {
29
27
  variable: LambdaParameterState;
@@ -99,7 +99,6 @@ export class QueryBuilderFilterOperator_Equal extends QueryBuilderFilterOperator
99
99
  switch (propertyType.path) {
100
100
  case PRIMITIVE_TYPE.STRING:
101
101
  case PRIMITIVE_TYPE.BOOLEAN:
102
- case PRIMITIVE_TYPE.DATE:
103
102
  case PRIMITIVE_TYPE.STRICTDATE:
104
103
  case PRIMITIVE_TYPE.DATETIME:
105
104
  case PRIMITIVE_TYPE.NUMBER:
@@ -113,6 +112,14 @@ export class QueryBuilderFilterOperator_Equal extends QueryBuilderFilterOperator
113
112
  generateDefaultValueForPrimitiveType(propertyType.path),
114
113
  );
115
114
  }
115
+ case PRIMITIVE_TYPE.DATE: {
116
+ return buildPrimitiveInstanceValue(
117
+ filterConditionState.filterState.queryBuilderState.graphManagerState
118
+ .graph,
119
+ PRIMITIVE_TYPE.STRICTDATE,
120
+ generateDefaultValueForPrimitiveType(propertyType.path),
121
+ );
122
+ }
116
123
  default:
117
124
  if (propertyType instanceof Enumeration) {
118
125
  if (propertyType.values.length > 0) {
@@ -86,7 +86,6 @@ export class QueryBuilderFilterOperator_GreaterThan extends QueryBuilderFilterOp
86
86
  case PRIMITIVE_TYPE.DECIMAL:
87
87
  case PRIMITIVE_TYPE.FLOAT:
88
88
  case PRIMITIVE_TYPE.INTEGER:
89
- case PRIMITIVE_TYPE.DATE:
90
89
  case PRIMITIVE_TYPE.STRICTDATE:
91
90
  case PRIMITIVE_TYPE.DATETIME: {
92
91
  return buildPrimitiveInstanceValue(
@@ -96,6 +95,14 @@ export class QueryBuilderFilterOperator_GreaterThan extends QueryBuilderFilterOp
96
95
  generateDefaultValueForPrimitiveType(propertyType.path),
97
96
  );
98
97
  }
98
+ case PRIMITIVE_TYPE.DATE: {
99
+ return buildPrimitiveInstanceValue(
100
+ filterConditionState.filterState.queryBuilderState.graphManagerState
101
+ .graph,
102
+ PRIMITIVE_TYPE.STRICTDATE,
103
+ generateDefaultValueForPrimitiveType(propertyType.path),
104
+ );
105
+ }
99
106
  default:
100
107
  throw new UnsupportedOperationError(
101
108
  `Can't get default value for filter operator '${this.getLabel(
@@ -86,7 +86,6 @@ export class QueryBuilderFilterOperator_GreaterThanEqual extends QueryBuilderFil
86
86
  case PRIMITIVE_TYPE.DECIMAL:
87
87
  case PRIMITIVE_TYPE.FLOAT:
88
88
  case PRIMITIVE_TYPE.INTEGER:
89
- case PRIMITIVE_TYPE.DATE:
90
89
  case PRIMITIVE_TYPE.STRICTDATE:
91
90
  case PRIMITIVE_TYPE.DATETIME: {
92
91
  return buildPrimitiveInstanceValue(
@@ -96,6 +95,14 @@ export class QueryBuilderFilterOperator_GreaterThanEqual extends QueryBuilderFil
96
95
  generateDefaultValueForPrimitiveType(propertyType.path),
97
96
  );
98
97
  }
98
+ case PRIMITIVE_TYPE.DATE: {
99
+ return buildPrimitiveInstanceValue(
100
+ filterConditionState.filterState.queryBuilderState.graphManagerState
101
+ .graph,
102
+ PRIMITIVE_TYPE.STRICTDATE,
103
+ generateDefaultValueForPrimitiveType(propertyType.path),
104
+ );
105
+ }
99
106
  default:
100
107
  throw new UnsupportedOperationError(
101
108
  `Can't get default value for filter operator '${this.getLabel(
@@ -86,7 +86,6 @@ export class QueryBuilderFilterOperator_LessThan extends QueryBuilderFilterOpera
86
86
  case PRIMITIVE_TYPE.DECIMAL:
87
87
  case PRIMITIVE_TYPE.FLOAT:
88
88
  case PRIMITIVE_TYPE.INTEGER:
89
- case PRIMITIVE_TYPE.DATE:
90
89
  case PRIMITIVE_TYPE.STRICTDATE:
91
90
  case PRIMITIVE_TYPE.DATETIME: {
92
91
  return buildPrimitiveInstanceValue(
@@ -96,6 +95,14 @@ export class QueryBuilderFilterOperator_LessThan extends QueryBuilderFilterOpera
96
95
  generateDefaultValueForPrimitiveType(propertyType.path),
97
96
  );
98
97
  }
98
+ case PRIMITIVE_TYPE.DATE: {
99
+ return buildPrimitiveInstanceValue(
100
+ filterConditionState.filterState.queryBuilderState.graphManagerState
101
+ .graph,
102
+ PRIMITIVE_TYPE.STRICTDATE,
103
+ generateDefaultValueForPrimitiveType(propertyType.path),
104
+ );
105
+ }
99
106
  default:
100
107
  throw new UnsupportedOperationError(
101
108
  `Can't get default value for filter operator '${this.getLabel(
@@ -86,7 +86,6 @@ export class QueryBuilderFilterOperator_LessThanEqual extends QueryBuilderFilter
86
86
  case PRIMITIVE_TYPE.DECIMAL:
87
87
  case PRIMITIVE_TYPE.FLOAT:
88
88
  case PRIMITIVE_TYPE.INTEGER:
89
- case PRIMITIVE_TYPE.DATE:
90
89
  case PRIMITIVE_TYPE.STRICTDATE:
91
90
  case PRIMITIVE_TYPE.DATETIME: {
92
91
  return buildPrimitiveInstanceValue(
@@ -96,6 +95,14 @@ export class QueryBuilderFilterOperator_LessThanEqual extends QueryBuilderFilter
96
95
  generateDefaultValueForPrimitiveType(propertyType.path),
97
96
  );
98
97
  }
98
+ case PRIMITIVE_TYPE.DATE: {
99
+ return buildPrimitiveInstanceValue(
100
+ filterConditionState.filterState.queryBuilderState.graphManagerState
101
+ .graph,
102
+ PRIMITIVE_TYPE.STRICTDATE,
103
+ generateDefaultValueForPrimitiveType(propertyType.path),
104
+ );
105
+ }
99
106
  default:
100
107
  throw new UnsupportedOperationError(
101
108
  `Can't get default value for filter operator '${this.getLabel(
@@ -100,7 +100,6 @@ export class QueryBuilderPostFilterOperator_Equal extends QueryBuilderPostFilter
100
100
  switch (propertyType.path) {
101
101
  case PRIMITIVE_TYPE.STRING:
102
102
  case PRIMITIVE_TYPE.BOOLEAN:
103
- case PRIMITIVE_TYPE.DATE:
104
103
  case PRIMITIVE_TYPE.STRICTDATE:
105
104
  case PRIMITIVE_TYPE.DATETIME:
106
105
  case PRIMITIVE_TYPE.NUMBER:
@@ -114,6 +113,14 @@ export class QueryBuilderPostFilterOperator_Equal extends QueryBuilderPostFilter
114
113
  generateDefaultValueForPrimitiveType(propertyType.path),
115
114
  );
116
115
  }
116
+ case PRIMITIVE_TYPE.DATE: {
117
+ return buildPrimitiveInstanceValue(
118
+ postFilterConditionState.postFilterState.queryBuilderState
119
+ .graphManagerState.graph,
120
+ PRIMITIVE_TYPE.STRICTDATE,
121
+ generateDefaultValueForPrimitiveType(propertyType.path),
122
+ );
123
+ }
117
124
  default:
118
125
  if (propertyType instanceof Enumeration) {
119
126
  if (propertyType.values.length > 0) {
@@ -82,7 +82,6 @@ export class QueryBuilderPostFilterOperator_GreaterThan extends QueryBuilderPost
82
82
  case PRIMITIVE_TYPE.DECIMAL:
83
83
  case PRIMITIVE_TYPE.FLOAT:
84
84
  case PRIMITIVE_TYPE.INTEGER:
85
- case PRIMITIVE_TYPE.DATE:
86
85
  case PRIMITIVE_TYPE.STRICTDATE:
87
86
  case PRIMITIVE_TYPE.DATETIME: {
88
87
  return buildPrimitiveInstanceValue(
@@ -92,6 +91,14 @@ export class QueryBuilderPostFilterOperator_GreaterThan extends QueryBuilderPost
92
91
  generateDefaultValueForPrimitiveType(propertyType.path),
93
92
  );
94
93
  }
94
+ case PRIMITIVE_TYPE.DATE: {
95
+ return buildPrimitiveInstanceValue(
96
+ postFilterConditionState.postFilterState.queryBuilderState
97
+ .graphManagerState.graph,
98
+ PRIMITIVE_TYPE.STRICTDATE,
99
+ generateDefaultValueForPrimitiveType(propertyType.path),
100
+ );
101
+ }
95
102
  default:
96
103
  throw new UnsupportedOperationError(
97
104
  `Can't get default value for post-filter operator '${this.getLabel()}' when the LHS property is of type '${
@@ -82,7 +82,6 @@ export class QueryBuilderPostFilterOperator_LessThan extends QueryBuilderPostFil
82
82
  case PRIMITIVE_TYPE.DECIMAL:
83
83
  case PRIMITIVE_TYPE.FLOAT:
84
84
  case PRIMITIVE_TYPE.INTEGER:
85
- case PRIMITIVE_TYPE.DATE:
86
85
  case PRIMITIVE_TYPE.STRICTDATE:
87
86
  case PRIMITIVE_TYPE.DATETIME: {
88
87
  return buildPrimitiveInstanceValue(
@@ -92,6 +91,14 @@ export class QueryBuilderPostFilterOperator_LessThan extends QueryBuilderPostFil
92
91
  generateDefaultValueForPrimitiveType(propertyType.path),
93
92
  );
94
93
  }
94
+ case PRIMITIVE_TYPE.DATE: {
95
+ return buildPrimitiveInstanceValue(
96
+ postFilterConditionState.postFilterState.queryBuilderState
97
+ .graphManagerState.graph,
98
+ PRIMITIVE_TYPE.STRICTDATE,
99
+ generateDefaultValueForPrimitiveType(propertyType.path),
100
+ );
101
+ }
95
102
  default:
96
103
  throw new UnsupportedOperationError(
97
104
  `Can't get default value for post-filter operator '${this.getLabel()}' when the LHS property is of type '${
package/tsconfig.json CHANGED
@@ -128,6 +128,7 @@
128
128
  "./src/components/QueryBuilderGraphFetchTreePanel.tsx",
129
129
  "./src/components/QueryBuilderLambdaEditor.tsx",
130
130
  "./src/components/QueryBuilderMilestoneEditor.tsx",
131
+ "./src/components/QueryBuilderPanelIssueCountBadge.tsx",
131
132
  "./src/components/QueryBuilderParameterPanel.tsx",
132
133
  "./src/components/QueryBuilderPostFilterPanel.tsx",
133
134
  "./src/components/QueryBuilderProjectionPanel.tsx",