@finos/legend-query-builder 4.14.54 → 4.14.56

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. package/lib/__lib__/QueryBuilderTesting.d.ts +5 -1
  2. package/lib/__lib__/QueryBuilderTesting.d.ts.map +1 -1
  3. package/lib/__lib__/QueryBuilderTesting.js +10 -1
  4. package/lib/__lib__/QueryBuilderTesting.js.map +1 -1
  5. package/lib/components/QueryBuilder.js +3 -3
  6. package/lib/components/QueryBuilder.js.map +1 -1
  7. package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts +9 -1
  8. package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts.map +1 -1
  9. package/lib/components/QueryBuilderPropertyExpressionEditor.js +10 -8
  10. package/lib/components/QueryBuilderPropertyExpressionEditor.js.map +1 -1
  11. package/lib/components/QueryLoader.js +3 -3
  12. package/lib/components/QueryLoader.js.map +1 -1
  13. package/lib/components/execution-plan/ExecutionPlanViewer.js +2 -2
  14. package/lib/components/execution-plan/ExecutionPlanViewer.js.map +1 -1
  15. package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts +12 -2
  16. package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts.map +1 -1
  17. package/lib/components/explorer/QueryBuilderExplorerPanel.js +4 -4
  18. package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
  19. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js +2 -2
  20. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js.map +1 -1
  21. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts +1 -1
  22. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
  23. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +55 -45
  24. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
  25. package/lib/components/fetch-structure/QueryBuilderTDSPanel.js +2 -2
  26. package/lib/components/fetch-structure/QueryBuilderTDSPanel.js.map +1 -1
  27. package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.js +5 -5
  28. package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.js.map +1 -1
  29. package/lib/components/filter/QueryBuilderFilterPanel.js +3 -3
  30. package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
  31. package/lib/components/result/QueryBuilderResultPanel.js +3 -3
  32. package/lib/components/result/QueryBuilderResultPanel.js.map +1 -1
  33. package/lib/components/result/tds/QueryBuilderTDSGridResult.d.ts.map +1 -1
  34. package/lib/components/result/tds/QueryBuilderTDSGridResult.js +2 -1
  35. package/lib/components/result/tds/QueryBuilderTDSGridResult.js.map +1 -1
  36. package/lib/index.css +17 -1
  37. package/lib/index.css.map +1 -1
  38. package/lib/index.d.ts +12 -0
  39. package/lib/index.d.ts.map +1 -1
  40. package/lib/index.js +12 -0
  41. package/lib/index.js.map +1 -1
  42. package/lib/package.json +3 -3
  43. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts +4 -2
  44. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts.map +1 -1
  45. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js +12 -4
  46. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js.map +1 -1
  47. package/lib/stores/filter/QueryBuilderFilterStateBuilder.d.ts +2 -1
  48. package/lib/stores/filter/QueryBuilderFilterStateBuilder.d.ts.map +1 -1
  49. package/lib/stores/filter/QueryBuilderFilterStateBuilder.js +15 -0
  50. package/lib/stores/filter/QueryBuilderFilterStateBuilder.js.map +1 -1
  51. package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.d.ts +3 -2
  52. package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.d.ts.map +1 -1
  53. package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.js +1 -1
  54. package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.js.map +1 -1
  55. package/lib/stores/workflows/ServiceQueryBuilderState.js +1 -1
  56. package/lib/stores/workflows/ServiceQueryBuilderState.js.map +1 -1
  57. package/package.json +11 -11
  58. package/src/__lib__/QueryBuilderTesting.ts +10 -1
  59. package/src/components/QueryBuilder.tsx +5 -5
  60. package/src/components/QueryBuilderPropertyExpressionEditor.tsx +35 -16
  61. package/src/components/QueryLoader.tsx +5 -5
  62. package/src/components/execution-plan/ExecutionPlanViewer.tsx +3 -3
  63. package/src/components/explorer/QueryBuilderExplorerPanel.tsx +5 -5
  64. package/src/components/explorer/QueryBuilderFunctionsExplorerPanel.tsx +3 -3
  65. package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +181 -160
  66. package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +3 -3
  67. package/src/components/fetch-structure/QueryBuilderTDSWindowPanel.tsx +9 -9
  68. package/src/components/filter/QueryBuilderFilterPanel.tsx +5 -5
  69. package/src/components/result/QueryBuilderResultPanel.tsx +5 -5
  70. package/src/components/result/tds/QueryBuilderTDSGridResult.tsx +2 -1
  71. package/src/index.ts +24 -2
  72. package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.ts +15 -3
  73. package/src/stores/filter/QueryBuilderFilterStateBuilder.ts +39 -0
  74. package/src/stores/filter/QueryBuilderFilterValueSpecificationBuilder.ts +1 -1
  75. package/src/stores/workflows/ServiceQueryBuilderState.ts +1 -1
@@ -71,7 +71,7 @@ export class ServiceQueryBuilderState extends QueryBuilderState {
71
71
  }
72
72
  get sideBarClassName() {
73
73
  return this.executionContexts.length
74
- ? 'query-builder__setup__service--with-mutiple-execution'
74
+ ? 'query-builder__setup__service--with-multiple-execution'
75
75
  : 'query-builder__setup__service';
76
76
  }
77
77
  get isMappingReadOnly() {
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceQueryBuilderState.js","sourceRoot":"","sources":["../../../src/stores/workflows/ServiceQueryBuilderState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServiceQueryBuilderState.js","sourceRoot":"","sources":["../../../src/stores/workflows/ServiceQueryBuilderState.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-query-builder",
3
- "version": "4.14.54",
3
+ "version": "4.14.56",
4
4
  "description": "Legend query builder core",
5
5
  "keywords": [
6
6
  "legend",
@@ -42,20 +42,20 @@
42
42
  "test:watch": "jest --watch"
43
43
  },
44
44
  "dependencies": {
45
- "@finos/legend-application": "15.1.12",
46
- "@finos/legend-art": "7.1.40",
47
- "@finos/legend-graph": "31.10.7",
48
- "@finos/legend-lego": "1.2.43",
49
- "@finos/legend-server-depot": "6.0.47",
50
- "@finos/legend-shared": "10.0.42",
51
- "@finos/legend-storage": "3.0.92",
45
+ "@finos/legend-application": "15.1.13",
46
+ "@finos/legend-art": "7.1.41",
47
+ "@finos/legend-graph": "31.10.8",
48
+ "@finos/legend-lego": "1.2.44",
49
+ "@finos/legend-server-depot": "6.0.48",
50
+ "@finos/legend-shared": "10.0.43",
51
+ "@finos/legend-storage": "3.0.93",
52
52
  "@testing-library/dom": "10.2.0",
53
53
  "@testing-library/react": "16.0.0",
54
54
  "@types/react": "18.3.3",
55
55
  "@types/react-dom": "18.3.0",
56
56
  "chart.js": "4.4.3",
57
- "mathjs": "13.0.0",
58
- "mobx": "6.12.4",
57
+ "mathjs": "13.0.1",
58
+ "mobx": "6.12.5",
59
59
  "mobx-react-lite": "4.0.7",
60
60
  "monaco-editor": "0.50.0",
61
61
  "react": "18.3.1",
@@ -66,7 +66,7 @@
66
66
  "sql-formatter": "15.3.2"
67
67
  },
68
68
  "devDependencies": {
69
- "@finos/legend-dev-utils": "2.1.10",
69
+ "@finos/legend-dev-utils": "2.1.11",
70
70
  "@jest/globals": "29.7.0",
71
71
  "cross-env": "7.0.3",
72
72
  "eslint": "8.57.0",
@@ -36,13 +36,22 @@ export enum QUERY_BUILDER_TEST_ID {
36
36
  QUERY_BUILDER_FILTER_TREE_CONDITION_NODE_VALUE = 'query-builder-filter-tree__condition-node__value',
37
37
  // post filter
38
38
  QUERY_BUILDER_POST_FILTER_PANEL = 'query__builder__post__filter-panel',
39
- QUERY_BUILDER_POST_FILTER_TREE_NODE_CONTENT = 'query__builder__post__filter-tree-node__content',
39
+ QUERY_BUILDER_POST_FILTER_TREE = 'query__builder__post__filter__tree',
40
+ QUERY_BUILDER_POST_FILTER_TREE_NODE_BLOCK = 'query__builder__post__filter__tree__node-block',
41
+ QUERY_BUILDER_POST_FILTER_TREE_NODE_CHILDREN = 'query__builder__post__filter__tree__node-children',
42
+ QUERY_BUILDER_POST_FILTER_TREE_NODE_CONTAINER = 'query__builder__post__filter__tree__node-container',
43
+ QUERY_BUILDER_POST_FILTER_TREE_NODE_CONTENT = 'query__builder__post__filter__tree__node-content',
44
+ // window function panel
40
45
  QUERY_BUILDER_WINDOW_GROUPBY = 'query__builder__window',
46
+ // explorer panel
41
47
  QUERY_BUILDER_EXPLORER = 'query__builder__explorer',
42
48
  QUERY_BUILDER_PROPERTY_SEARCH_PANEL = 'query__builder__property__search__panel',
43
49
  QUERY_BUILDER_PERCENTILE_PANEL = 'query__builder__percentile__panel',
50
+ // parameter panel
44
51
  QUERY_BUILDER_PARAMETERS = 'query-builder__parameters',
52
+ // constant panel
45
53
  QUERY_BUILDER_CONSTANTS = 'query-builder__constants',
54
+ // other
46
55
  QUERY_BUILDER_TOOLTIP_ICON = 'query-builder__tooltip__icon',
47
56
  // result panel
48
57
  QUERY_BUILDER_RESULT_VALUES = 'QUERY_BUILDER_RESULT_VALUES',
@@ -21,7 +21,7 @@ import {
21
21
  ResizablePanel,
22
22
  ResizablePanelSplitter,
23
23
  HackerIcon,
24
- DropdownMenu,
24
+ ControlledDropdownMenu,
25
25
  MenuContent,
26
26
  MenuContentItem,
27
27
  MenuContentItemIcon,
@@ -602,7 +602,7 @@ export const QueryBuilder = observer(
602
602
  {actionConfig.renderer(queryBuilderState)}
603
603
  </Fragment>
604
604
  ))}
605
- <DropdownMenu
605
+ <ControlledDropdownMenu
606
606
  className="query-builder__header__advanced-dropdown"
607
607
  title="Show Advanced Menu..."
608
608
  content={
@@ -902,8 +902,8 @@ export const QueryBuilder = observer(
902
902
  Advanced
903
903
  </div>
904
904
  <CaretDownIcon className="query-builder__header__advanced-dropdown__icon" />
905
- </DropdownMenu>
906
- <DropdownMenu
905
+ </ControlledDropdownMenu>
906
+ <ControlledDropdownMenu
907
907
  className="query-builder__header__advanced-dropdown"
908
908
  content={
909
909
  <MenuContent>
@@ -960,7 +960,7 @@ export const QueryBuilder = observer(
960
960
  Help...
961
961
  </div>
962
962
  <CaretDownIcon className="query-builder__header__advanced-dropdown__icon" />
963
- </DropdownMenu>
963
+ </ControlledDropdownMenu>
964
964
  </div>
965
965
  </div>
966
966
  <div className="query-builder__main">
@@ -376,10 +376,36 @@ export const QueryBuilderPropertyExpressionEditor = observer(
376
376
  },
377
377
  );
378
378
 
379
+ export const QueryBuilderPropertyNameDisplay = observer(
380
+ (props: {
381
+ columnName: string;
382
+ title: string;
383
+ error?: boolean | undefined;
384
+ setIsEditingColumnName?: ((isEditing: boolean) => void) | undefined;
385
+ }) => {
386
+ const { columnName, title, error, setIsEditingColumnName } = props;
387
+ return (
388
+ <div className="query-builder__property__name__display" title={title}>
389
+ <span
390
+ className={clsx('query-builder__property__name__display__content', {
391
+ 'query-builder__property__name__display__content--error': error,
392
+ 'editable-value': setIsEditingColumnName,
393
+ })}
394
+ onClick={() => {
395
+ setIsEditingColumnName?.(true);
396
+ }}
397
+ >
398
+ {columnName}
399
+ </span>
400
+ </div>
401
+ );
402
+ },
403
+ );
404
+
379
405
  export const QueryBuilderEditablePropertyName = observer(
380
406
  (props: {
381
407
  columnName: string;
382
- setColumnName?: ((columnName: string) => void) | undefined;
408
+ setColumnName: ((columnName: string) => void) | undefined;
383
409
  error: string | undefined;
384
410
  title: string;
385
411
  defaultColumnName: string;
@@ -435,21 +461,14 @@ export const QueryBuilderEditablePropertyName = observer(
435
461
  />
436
462
  </div>
437
463
  ) : (
438
- <div className="query-builder__property__name__display" title={title}>
439
- <span
440
- className={clsx('query-builder__property__name__display__content', {
441
- 'query-builder__property__name__display__content--error': error,
442
- 'editable-value': setColumnName,
443
- })}
444
- onClick={() => {
445
- if (setColumnName) {
446
- setIsEditingColumnName(true);
447
- }
448
- }}
449
- >
450
- {columnName}
451
- </span>
452
- </div>
464
+ <QueryBuilderPropertyNameDisplay
465
+ columnName={columnName}
466
+ title={title}
467
+ error={Boolean(error)}
468
+ setIsEditingColumnName={
469
+ setColumnName ? setIsEditingColumnName : undefined
470
+ }
471
+ />
453
472
  );
454
473
  },
455
474
  );
@@ -26,7 +26,7 @@ import {
26
26
  clsx,
27
27
  SearchIcon,
28
28
  TimesIcon,
29
- DropdownMenu,
29
+ ControlledDropdownMenu,
30
30
  MenuContent,
31
31
  MenuContentItem,
32
32
  BlankPanelContent,
@@ -474,7 +474,7 @@ export const QueryLoader = observer(
474
474
  </div>
475
475
  </div>
476
476
  </div>
477
- <DropdownMenu
477
+ <ControlledDropdownMenu
478
478
  className="query-loader__result__actions-menu"
479
479
  title="More Actions..."
480
480
  content={
@@ -518,7 +518,7 @@ export const QueryLoader = observer(
518
518
  }}
519
519
  >
520
520
  <MoreVerticalIcon />
521
- </DropdownMenu>
521
+ </ControlledDropdownMenu>
522
522
  <div className="query-loader__result__arrow">
523
523
  <ThinChevronRightIcon />
524
524
  </div>
@@ -555,7 +555,7 @@ export const QueryLoader = observer(
555
555
  {templateQuery.description}
556
556
  </div>
557
557
  </div>
558
- <DropdownMenu
558
+ <ControlledDropdownMenu
559
559
  className="query-loader__result__actions-menu"
560
560
  title="More Actions..."
561
561
  content={
@@ -585,7 +585,7 @@ export const QueryLoader = observer(
585
585
  }}
586
586
  >
587
587
  <MoreVerticalIcon />
588
- </DropdownMenu>
588
+ </ControlledDropdownMenu>
589
589
  <div className="query-loader__result__arrow">
590
590
  <ThinChevronRightIcon />
591
591
  </div>
@@ -28,7 +28,7 @@ import {
28
28
  ChevronRightIcon,
29
29
  MenuContentItem,
30
30
  MenuContent,
31
- DropdownMenu,
31
+ ControlledDropdownMenu,
32
32
  BlankPanelContent,
33
33
  PanelContent,
34
34
  ModalHeader,
@@ -684,7 +684,7 @@ const ExecutionPlanViewPanel = observer(
684
684
  {executionPlanState.selectedNode.label}
685
685
  </button>
686
686
  </div>
687
- <DropdownMenu
687
+ <ControlledDropdownMenu
688
688
  className="execution-plan-viewer__panel__view-mode__type"
689
689
  title="View as..."
690
690
  content={
@@ -717,7 +717,7 @@ const ExecutionPlanViewPanel = observer(
717
717
  <div className="execution-plan-viewer__panel__view-mode__type__label">
718
718
  {executionPlanState.viewMode}
719
719
  </div>
720
- </DropdownMenu>
720
+ </ControlledDropdownMenu>
721
721
  </div>
722
722
  <div className="panel__content execution-plan-viewer__panel__content">
723
723
  {executionPlanState.viewMode === EXECUTION_PLAN_VIEW_MODE.JSON &&
@@ -26,7 +26,7 @@ import {
26
26
  Dialog,
27
27
  TreeView,
28
28
  BlankPanelContent,
29
- DropdownMenu,
29
+ ControlledDropdownMenu,
30
30
  ContextMenu,
31
31
  MenuContent,
32
32
  MenuContentItem,
@@ -106,7 +106,7 @@ import { getClassPropertyIcon } from '@finos/legend-lego/graph-editor';
106
106
  import { QueryBuilderRootClassInfoTooltip } from '../shared/QueryBuilderRootClassInfoTooltip.js';
107
107
  import { QueryBuilderTelemetryHelper } from '../../__lib__/QueryBuilderTelemetryHelper.js';
108
108
 
109
- const checkForDeprecatedNode = (
109
+ export const checkForDeprecatedNode = (
110
110
  node: QueryBuilderExplorerTreeNodeData,
111
111
  graph: PureModel,
112
112
  treeData: TreeData<QueryBuilderExplorerTreeNodeData>,
@@ -754,7 +754,7 @@ const QueryBuilderExplorerTreeNodeView = observer(
754
754
  * 4. Class Subtypes
755
755
  * Note: Derived property nodes will be ranked lower for each relevant return type
756
756
  */
757
- const getQueryBuilderExplorerTreeNodeSortRank = (
757
+ export const getQueryBuilderExplorerTreeNodeSortRank = (
758
758
  node: QueryBuilderExplorerTreeNodeData,
759
759
  ): number => {
760
760
  if (node instanceof QueryBuilderExplorerTreeSubTypeNodeData) {
@@ -928,7 +928,7 @@ export const QueryBuilderExplorerPanel = observer(
928
928
  <PanelHeaderActionItem onClick={collapseTree} title="Collapse Tree">
929
929
  <CompressIcon />
930
930
  </PanelHeaderActionItem>
931
- <DropdownMenu
931
+ <ControlledDropdownMenu
932
932
  className="panel__header__action"
933
933
  title="Show Options Menu..."
934
934
  content={
@@ -972,7 +972,7 @@ export const QueryBuilderExplorerPanel = observer(
972
972
  }}
973
973
  >
974
974
  <MoreVerticalIcon className="query-builder__icon__more-options" />
975
- </DropdownMenu>
975
+ </ControlledDropdownMenu>
976
976
  </PanelHeaderActions>
977
977
  {propertySearchPanelState.isSearchPanelOpen && (
978
978
  <QueryBuilderPropertySearchPanel
@@ -32,7 +32,7 @@ import {
32
32
  TreeView,
33
33
  BlankPanelContent,
34
34
  MenuContentItem,
35
- DropdownMenu,
35
+ ControlledDropdownMenu,
36
36
  MenuContent,
37
37
  CheckIcon,
38
38
  MenuContentItemIcon,
@@ -454,7 +454,7 @@ export const QueryBuilderFunctionsExplorerPanel = observer(
454
454
  />
455
455
  )}
456
456
  </div>
457
- <DropdownMenu
457
+ <ControlledDropdownMenu
458
458
  className="panel__header__action"
459
459
  title="Show Options Menu..."
460
460
  content={
@@ -476,7 +476,7 @@ export const QueryBuilderFunctionsExplorerPanel = observer(
476
476
  }}
477
477
  >
478
478
  <MoreVerticalIcon className="query-builder__icon__more-options" />
479
- </DropdownMenu>
479
+ </ControlledDropdownMenu>
480
480
  </div>
481
481
  </div>
482
482
  <div className="panel__content query-builder__functions-explorer__content">