@finos/legend-query-builder 4.14.55 → 4.14.56
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/__lib__/QueryBuilderTesting.d.ts +5 -1
- package/lib/__lib__/QueryBuilderTesting.d.ts.map +1 -1
- package/lib/__lib__/QueryBuilderTesting.js +10 -1
- package/lib/__lib__/QueryBuilderTesting.js.map +1 -1
- package/lib/components/QueryBuilder.js +3 -3
- package/lib/components/QueryBuilder.js.map +1 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts +9 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts.map +1 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.js +10 -8
- package/lib/components/QueryBuilderPropertyExpressionEditor.js.map +1 -1
- package/lib/components/QueryLoader.js +3 -3
- package/lib/components/QueryLoader.js.map +1 -1
- package/lib/components/execution-plan/ExecutionPlanViewer.js +2 -2
- package/lib/components/execution-plan/ExecutionPlanViewer.js.map +1 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts +12 -2
- package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts.map +1 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.js +4 -4
- package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
- package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js +2 -2
- package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +55 -45
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js +2 -2
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.js +5 -5
- package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.js.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.js +3 -3
- package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
- package/lib/components/result/QueryBuilderResultPanel.js +3 -3
- package/lib/components/result/QueryBuilderResultPanel.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +12 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +12 -0
- package/lib/index.js.map +1 -1
- package/lib/package.json +3 -3
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts +4 -2
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js +12 -4
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterStateBuilder.d.ts +2 -1
- package/lib/stores/filter/QueryBuilderFilterStateBuilder.d.ts.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterStateBuilder.js +15 -0
- package/lib/stores/filter/QueryBuilderFilterStateBuilder.js.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.d.ts +3 -2
- package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.js +1 -1
- package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.js.map +1 -1
- package/package.json +11 -11
- package/src/__lib__/QueryBuilderTesting.ts +10 -1
- package/src/components/QueryBuilder.tsx +5 -5
- package/src/components/QueryBuilderPropertyExpressionEditor.tsx +35 -16
- package/src/components/QueryLoader.tsx +5 -5
- package/src/components/execution-plan/ExecutionPlanViewer.tsx +3 -3
- package/src/components/explorer/QueryBuilderExplorerPanel.tsx +5 -5
- package/src/components/explorer/QueryBuilderFunctionsExplorerPanel.tsx +3 -3
- package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +181 -160
- package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +3 -3
- package/src/components/fetch-structure/QueryBuilderTDSWindowPanel.tsx +9 -9
- package/src/components/filter/QueryBuilderFilterPanel.tsx +5 -5
- package/src/components/result/QueryBuilderResultPanel.tsx +5 -5
- package/src/index.ts +24 -2
- package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.ts +15 -3
- package/src/stores/filter/QueryBuilderFilterStateBuilder.ts +39 -0
- package/src/stores/filter/QueryBuilderFilterValueSpecificationBuilder.ts +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@finos/legend-query-builder",
|
|
3
|
-
"version": "4.14.
|
|
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.
|
|
46
|
-
"@finos/legend-art": "7.1.
|
|
47
|
-
"@finos/legend-graph": "31.10.
|
|
48
|
-
"@finos/legend-lego": "1.2.
|
|
49
|
-
"@finos/legend-server-depot": "6.0.
|
|
50
|
-
"@finos/legend-shared": "10.0.
|
|
51
|
-
"@finos/legend-storage": "3.0.
|
|
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.
|
|
58
|
-
"mobx": "6.12.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
<
|
|
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
|
-
</
|
|
906
|
-
<
|
|
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
|
-
</
|
|
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
|
|
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
|
-
<
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
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
|
-
|
|
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
|
-
<
|
|
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
|
-
</
|
|
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
|
-
<
|
|
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
|
-
</
|
|
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
|
-
|
|
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
|
-
<
|
|
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
|
-
</
|
|
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
|
-
|
|
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
|
-
<
|
|
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
|
-
</
|
|
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
|
-
|
|
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
|
-
<
|
|
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
|
-
</
|
|
479
|
+
</ControlledDropdownMenu>
|
|
480
480
|
</div>
|
|
481
481
|
</div>
|
|
482
482
|
<div className="panel__content query-builder__functions-explorer__content">
|