@finos/legend-query-builder 4.15.28 → 4.15.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/QueryBuilder.js +4 -4
- package/lib/components/QueryBuilder.js.map +1 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.js +2 -2
- package/lib/components/QueryBuilderPropertyExpressionEditor.js.map +1 -1
- package/lib/components/QueryBuilderSideBar.js +1 -1
- package/lib/components/QueryBuilderSideBar.js.map +1 -1
- package/lib/components/QueryBuilder_LegendApplicationPlugin.d.ts.map +1 -1
- package/lib/components/QueryBuilder_LegendApplicationPlugin.js +0 -2
- package/lib/components/QueryBuilder_LegendApplicationPlugin.js.map +1 -1
- package/lib/components/QueryLoader.js +1 -1
- package/lib/components/QueryLoader.js.map +1 -1
- package/lib/components/data-access/DataAccessOverview.d.ts.map +1 -1
- package/lib/components/data-access/DataAccessOverview.js +56 -30
- package/lib/components/data-access/DataAccessOverview.js.map +1 -1
- package/lib/components/execution-plan/ExecutionPlanViewer.js +1 -1
- package/lib/components/execution-plan/ExecutionPlanViewer.js.map +1 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.js +3 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
- package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.d.ts.map +1 -1
- package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js +7 -3
- package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js.map +1 -1
- package/lib/components/explorer/QueryBuilderMilestoningParameterEditor.d.ts.map +1 -1
- package/lib/components/explorer/QueryBuilderMilestoningParameterEditor.js +4 -2
- package/lib/components/explorer/QueryBuilderMilestoningParameterEditor.js.map +1 -1
- package/lib/components/explorer/QueryBuilderPropertySearchPanel.d.ts.map +1 -1
- package/lib/components/explorer/QueryBuilderPropertySearchPanel.js +4 -2
- package/lib/components/explorer/QueryBuilderPropertySearchPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderAggParam.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderAggParam.js +5 -2
- package/lib/components/fetch-structure/QueryBuilderAggParam.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.js +2 -2
- package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +11 -9
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js +2 -2
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js +16 -10
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.js +13 -9
- package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.js.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.js +14 -16
- package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSGridResult.d.ts.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSGridResult.js.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.d.ts +2 -1
- package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.d.ts.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.js +7 -62
- package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.js.map +1 -1
- package/lib/components/shared/BasicValueSpecificationEditor.d.ts +1 -1
- package/lib/components/shared/BasicValueSpecificationEditor.d.ts.map +1 -1
- package/lib/components/shared/BasicValueSpecificationEditor.js +1 -1
- package/lib/components/shared/BasicValueSpecificationEditor.js.map +1 -1
- package/lib/components/shared/QueryBuilderPropertyInfoTooltip.d.ts +1 -1
- package/lib/components/shared/QueryBuilderPropertyInfoTooltip.d.ts.map +1 -1
- package/lib/components/shared/QueryBuilderVariableSelector.d.ts.map +1 -1
- package/lib/components/shared/QueryBuilderVariableSelector.js +4 -2
- package/lib/components/shared/QueryBuilderVariableSelector.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/package.json +12 -13
- package/lib/stores/QueryBuilderState.d.ts +2 -1
- package/lib/stores/QueryBuilderState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderState.js +4 -1
- package/lib/stores/QueryBuilderState.js.map +1 -1
- package/lib/stores/QueryBuilderStateBuilder.d.ts.map +1 -1
- package/lib/stores/QueryBuilderStateBuilder.js +0 -1
- package/lib/stores/QueryBuilderStateBuilder.js.map +1 -1
- package/lib/stores/QueryLoaderState.js +1 -1
- package/lib/stores/QueryLoaderState.js.map +1 -1
- package/lib/stores/entitlements/QueryBuilderCheckEntitlementsState.d.ts.map +1 -1
- package/lib/stores/entitlements/QueryBuilderCheckEntitlementsState.js +2 -2
- package/lib/stores/entitlements/QueryBuilderCheckEntitlementsState.js.map +1 -1
- package/lib/stores/explorer/QueryBuilderExplorerState.d.ts +1 -1
- package/lib/stores/explorer/QueryBuilderExplorerState.d.ts.map +1 -1
- package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.d.ts.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js +1 -3
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js +0 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js.map +1 -1
- package/package.json +22 -23
- package/src/components/QueryBuilder.tsx +4 -4
- package/src/components/QueryBuilderPropertyExpressionEditor.tsx +2 -2
- package/src/components/QueryBuilderSideBar.tsx +1 -1
- package/src/components/QueryBuilder_LegendApplicationPlugin.ts +0 -3
- package/src/components/QueryLoader.tsx +1 -1
- package/src/components/data-access/DataAccessOverview.tsx +62 -36
- package/src/components/execution-plan/ExecutionPlanViewer.tsx +1 -1
- package/src/components/explorer/QueryBuilderExplorerPanel.tsx +3 -3
- package/src/components/explorer/QueryBuilderFunctionsExplorerPanel.tsx +7 -6
- package/src/components/explorer/QueryBuilderMilestoningParameterEditor.tsx +5 -2
- package/src/components/explorer/QueryBuilderPropertySearchPanel.tsx +4 -3
- package/src/components/fetch-structure/QueryBuilderAggParam.tsx +5 -4
- package/src/components/fetch-structure/QueryBuilderGraphFetchTreePanel.tsx +2 -2
- package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +13 -10
- package/src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx +2 -2
- package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +18 -13
- package/src/components/fetch-structure/QueryBuilderTDSWindowPanel.tsx +13 -12
- package/src/components/filter/QueryBuilderFilterPanel.tsx +15 -23
- package/src/components/result/tds/QueryBuilderTDSGridResult.tsx +4 -5
- package/src/components/result/tds/QueryBuilderTDSSimpleGridResult.tsx +19 -57
- package/src/components/shared/BasicValueSpecificationEditor.tsx +2 -2
- package/src/components/shared/QueryBuilderPropertyInfoTooltip.tsx +1 -1
- package/src/components/shared/QueryBuilderVariableSelector.tsx +4 -2
- package/src/stores/QueryBuilderState.ts +6 -0
- package/src/stores/QueryBuilderStateBuilder.ts +0 -1
- package/src/stores/QueryLoaderState.ts +1 -1
- package/src/stores/entitlements/QueryBuilderCheckEntitlementsState.ts +1 -4
- package/src/stores/explorer/QueryBuilderExplorerState.ts +1 -1
- package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.ts +1 -1
- package/src/stores/fetch-structure/tds/QueryBuilderTDSState.ts +13 -15
- package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.ts +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@finos/legend-query-builder",
|
|
3
|
-
"version": "4.15.
|
|
3
|
+
"version": "4.15.30",
|
|
4
4
|
"description": "Legend query builder core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"legend",
|
|
@@ -42,44 +42,43 @@
|
|
|
42
42
|
"test:watch": "jest --watch"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@finos/legend-application": "16.0.
|
|
46
|
-
"@finos/legend-art": "7.1.
|
|
47
|
-
"@finos/legend-code-editor": "2.0.
|
|
48
|
-
"@finos/legend-data-cube": "0.0.
|
|
49
|
-
"@finos/legend-graph": "31.10.
|
|
50
|
-
"@finos/legend-lego": "2.0.
|
|
51
|
-
"@finos/legend-server-depot": "6.0.
|
|
52
|
-
"@finos/legend-shared": "10.0.
|
|
53
|
-
"@finos/legend-storage": "3.0.
|
|
45
|
+
"@finos/legend-application": "16.0.13",
|
|
46
|
+
"@finos/legend-art": "7.1.70",
|
|
47
|
+
"@finos/legend-code-editor": "2.0.27",
|
|
48
|
+
"@finos/legend-data-cube": "0.0.32",
|
|
49
|
+
"@finos/legend-graph": "31.10.61",
|
|
50
|
+
"@finos/legend-lego": "2.0.29",
|
|
51
|
+
"@finos/legend-server-depot": "6.0.72",
|
|
52
|
+
"@finos/legend-shared": "10.0.63",
|
|
53
|
+
"@finos/legend-storage": "3.0.114",
|
|
54
54
|
"@testing-library/dom": "10.4.0",
|
|
55
|
-
"@testing-library/react": "16.0
|
|
56
|
-
"@types/react": "
|
|
57
|
-
"@types/react-dom": "
|
|
55
|
+
"@testing-library/react": "16.1.0",
|
|
56
|
+
"@types/react": "19.0.2",
|
|
57
|
+
"@types/react-dom": "19.0.2",
|
|
58
58
|
"chart.js": "4.4.7",
|
|
59
|
-
"mathjs": "14.0.
|
|
59
|
+
"mathjs": "14.0.1",
|
|
60
60
|
"mobx": "6.13.5",
|
|
61
|
-
"mobx-react-lite": "4.0
|
|
62
|
-
"monaco-editor": "0.52.
|
|
63
|
-
"react": "
|
|
64
|
-
"react-chartjs-2": "5.2.0",
|
|
61
|
+
"mobx-react-lite": "4.1.0",
|
|
62
|
+
"monaco-editor": "0.52.2",
|
|
63
|
+
"react": "19.0.0",
|
|
65
64
|
"react-dnd": "16.0.1",
|
|
66
|
-
"react-dom": "
|
|
65
|
+
"react-dom": "19.0.0",
|
|
67
66
|
"serializr": "3.0.3",
|
|
68
67
|
"sql-formatter": "15.4.6"
|
|
69
68
|
},
|
|
70
69
|
"devDependencies": {
|
|
71
|
-
"@finos/legend-dev-utils": "2.1.
|
|
70
|
+
"@finos/legend-dev-utils": "2.1.32",
|
|
72
71
|
"@jest/globals": "29.7.0",
|
|
73
72
|
"cross-env": "7.0.3",
|
|
74
|
-
"eslint": "9.
|
|
73
|
+
"eslint": "9.17.0",
|
|
75
74
|
"jest": "29.7.0",
|
|
76
75
|
"npm-run-all": "4.1.5",
|
|
77
76
|
"rimraf": "6.0.1",
|
|
78
|
-
"sass": "1.
|
|
77
|
+
"sass": "1.83.0",
|
|
79
78
|
"typescript": "5.7.2"
|
|
80
79
|
},
|
|
81
80
|
"peerDependencies": {
|
|
82
|
-
"react": "^
|
|
81
|
+
"react": "^19.0.0"
|
|
83
82
|
},
|
|
84
83
|
"publishConfig": {
|
|
85
84
|
"directory": "build/publishContent"
|
|
@@ -263,7 +263,7 @@ export const QueryBuilder = observer(
|
|
|
263
263
|
(props: { queryBuilderState: QueryBuilderState }) => {
|
|
264
264
|
const { queryBuilderState } = props;
|
|
265
265
|
const applicationStore = queryBuilderState.applicationStore;
|
|
266
|
-
const
|
|
266
|
+
const ref = useRef<HTMLDivElement>(null);
|
|
267
267
|
const isQuerySupported = queryBuilderState.isQuerySupported;
|
|
268
268
|
const fetchStructureState = queryBuilderState.fetchStructureState;
|
|
269
269
|
const isTDSState =
|
|
@@ -536,7 +536,7 @@ export const QueryBuilder = observer(
|
|
|
536
536
|
<div
|
|
537
537
|
data-testid={QUERY_BUILDER_TEST_ID.QUERY_BUILDER}
|
|
538
538
|
className="query-builder"
|
|
539
|
-
ref={
|
|
539
|
+
ref={ref}
|
|
540
540
|
>
|
|
541
541
|
<BackdropContainer
|
|
542
542
|
elementId={QUERY_BUILDER_COMPONENT_ELEMENT_ID.BACKDROP_CONTAINER}
|
|
@@ -581,7 +581,7 @@ export const QueryBuilder = observer(
|
|
|
581
581
|
<div className="query-builder__header__actions">
|
|
582
582
|
<div className="query-builder__header__actions__undo-redo">
|
|
583
583
|
<UndoButton
|
|
584
|
-
parent={
|
|
584
|
+
parent={ref}
|
|
585
585
|
canUndo={
|
|
586
586
|
queryBuilderState.changeHistoryState.canUndo &&
|
|
587
587
|
queryBuilderState.isQuerySupported
|
|
@@ -589,7 +589,7 @@ export const QueryBuilder = observer(
|
|
|
589
589
|
undo={undo}
|
|
590
590
|
/>
|
|
591
591
|
<RedoButton
|
|
592
|
-
parent={
|
|
592
|
+
parent={ref}
|
|
593
593
|
canRedo={
|
|
594
594
|
queryBuilderState.changeHistoryState.canRedo &&
|
|
595
595
|
queryBuilderState.isQuerySupported
|
|
@@ -93,7 +93,7 @@ const DerivedPropertyParameterValueEditor = observer(
|
|
|
93
93
|
},
|
|
94
94
|
[derivedPropertyExpressionState, idx],
|
|
95
95
|
);
|
|
96
|
-
const [{ isParameterValueDragOver },
|
|
96
|
+
const [{ isParameterValueDragOver }, dropConnector] = useDrop<
|
|
97
97
|
QueryBuilderVariableDragSource,
|
|
98
98
|
void,
|
|
99
99
|
{ isParameterValueDragOver: boolean }
|
|
@@ -237,7 +237,7 @@ const DerivedPropertyParameterValueEditor = observer(
|
|
|
237
237
|
<div className="query-builder__variable-editor">
|
|
238
238
|
<PanelDropZone
|
|
239
239
|
isDragOver={isParameterValueDragOver}
|
|
240
|
-
dropTargetConnector={
|
|
240
|
+
dropTargetConnector={dropConnector}
|
|
241
241
|
>
|
|
242
242
|
<BasicValueSpecificationEditor
|
|
243
243
|
valueSpecification={valueSpec}
|
|
@@ -110,7 +110,7 @@ export const QueryBuilderClassSelector = observer(
|
|
|
110
110
|
});
|
|
111
111
|
|
|
112
112
|
const classOptions = classes
|
|
113
|
-
.
|
|
113
|
+
.toSorted((a, b) => a.name.localeCompare(b.name))
|
|
114
114
|
.map((_class) => ({
|
|
115
115
|
value: _class,
|
|
116
116
|
label: generateClassLabel(_class, queryBuilderState),
|
|
@@ -27,7 +27,6 @@ import packageJson from '../../package.json' with { type: 'json' };
|
|
|
27
27
|
import { QUERY_BUILDER_SETTING_CONFIG } from '../__lib__/QueryBuilderSetting.js';
|
|
28
28
|
import { QUERY_BUILDER_COMMAND_CONFIG } from '../stores/QueryBuilderCommand.js';
|
|
29
29
|
import type { QueryBuilderState } from '../stores/QueryBuilderState.js';
|
|
30
|
-
import { configureDataGridComponent } from '@finos/legend-lego/data-grid';
|
|
31
30
|
import { Chart as ChartJS, ArcElement, Tooltip, LinearScale } from 'chart.js';
|
|
32
31
|
|
|
33
32
|
export type CheckEntitlementEditorRender = (
|
|
@@ -50,8 +49,6 @@ export class QueryBuilder_LegendApplicationPlugin extends LegendApplicationPlugi
|
|
|
50
49
|
override getExtraApplicationSetups(): LegendApplicationSetup[] {
|
|
51
50
|
return [
|
|
52
51
|
async (applicationStore) => {
|
|
53
|
-
configureDataGridComponent();
|
|
54
|
-
|
|
55
52
|
// configure chart component
|
|
56
53
|
ChartJS.register(
|
|
57
54
|
ArcElement,
|
|
@@ -203,7 +203,7 @@ export const QueryLoader = observer(
|
|
|
203
203
|
debouncedLoadQueries(queryLoaderState.searchText);
|
|
204
204
|
};
|
|
205
205
|
const toggleCuratedTemplate = (): void => {
|
|
206
|
-
Array.from(queryLoaderState.extraFilters).
|
|
206
|
+
Array.from(queryLoaderState.extraFilters).forEach(([key, value]) =>
|
|
207
207
|
queryLoaderState.extraFilters.set(key, false),
|
|
208
208
|
);
|
|
209
209
|
queryLoaderState.setShowCurrentUserQueriesOnly(false);
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { useEffect } from 'react';
|
|
17
|
+
import { useEffect, useRef } from 'react';
|
|
18
18
|
import { observer } from 'mobx-react-lite';
|
|
19
19
|
import { useApplicationStore } from '@finos/legend-application';
|
|
20
20
|
import type {
|
|
@@ -42,7 +42,6 @@ import {
|
|
|
42
42
|
DatasetEntitlementUnsupportedReport,
|
|
43
43
|
} from '@finos/legend-graph';
|
|
44
44
|
import { Chart as ChartJS, DoughnutController, ArcElement } from 'chart.js';
|
|
45
|
-
import { Doughnut } from 'react-chartjs-2';
|
|
46
45
|
import { getNullableFirstEntry } from '@finos/legend-shared';
|
|
47
46
|
import type { QueryBuilder_LegendApplicationPlugin_Extension } from '../../stores/QueryBuilder_LegendApplicationPlugin_Extension.js';
|
|
48
47
|
|
|
@@ -51,6 +50,8 @@ ChartJS.register(DoughnutController, ArcElement);
|
|
|
51
50
|
const DataAccessOverviewChart = observer(
|
|
52
51
|
(props: { dataAccessState: DataAccessState }) => {
|
|
53
52
|
const { dataAccessState } = props;
|
|
53
|
+
const canvasRef = useRef<HTMLCanvasElement>(null);
|
|
54
|
+
const chartRef = useRef<ChartJS>(null);
|
|
54
55
|
const entitlementCheckInfo = dataAccessState.entitlementCheckInfo;
|
|
55
56
|
const total = entitlementCheckInfo.total;
|
|
56
57
|
const accessGrantedCount =
|
|
@@ -58,43 +59,68 @@ const DataAccessOverviewChart = observer(
|
|
|
58
59
|
const accessGrantedPercentage =
|
|
59
60
|
getNullableFirstEntry(entitlementCheckInfo.data)?.percentage ?? 0;
|
|
60
61
|
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
if (canvasRef.current && !chartRef.current) {
|
|
64
|
+
chartRef.current = new ChartJS(canvasRef.current, {
|
|
65
|
+
type: 'doughnut',
|
|
66
|
+
data: {
|
|
67
|
+
labels: [],
|
|
68
|
+
datasets: [],
|
|
69
|
+
},
|
|
70
|
+
options: {
|
|
71
|
+
responsive: true,
|
|
72
|
+
resizeDelay: 0,
|
|
73
|
+
maintainAspectRatio: false,
|
|
74
|
+
cutout: '75%',
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return () => {
|
|
80
|
+
chartRef.current?.destroy();
|
|
81
|
+
chartRef.current = null;
|
|
82
|
+
};
|
|
83
|
+
}, []);
|
|
84
|
+
|
|
85
|
+
useEffect(() => {
|
|
86
|
+
if (chartRef.current) {
|
|
87
|
+
chartRef.current.data = {
|
|
88
|
+
labels: entitlementCheckInfo.data.map((item) => item.label),
|
|
89
|
+
datasets: [
|
|
90
|
+
{
|
|
91
|
+
data: entitlementCheckInfo.data.map((item) => item.count),
|
|
92
|
+
backgroundColor: entitlementCheckInfo.data.map(
|
|
93
|
+
(item) => item.color,
|
|
94
|
+
),
|
|
95
|
+
hoverBorderWidth: 0,
|
|
96
|
+
borderWidth: 0,
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
};
|
|
100
|
+
chartRef.current.options = {
|
|
101
|
+
...chartRef.current.options,
|
|
102
|
+
plugins: {
|
|
103
|
+
tooltip: {
|
|
104
|
+
enabled: entitlementCheckInfo.total !== 0,
|
|
105
|
+
usePointStyle: false,
|
|
106
|
+
boxPadding: 5,
|
|
107
|
+
callbacks: {
|
|
108
|
+
labelPointStyle: () => ({
|
|
109
|
+
pointStyle: 'rectRounded',
|
|
110
|
+
rotation: 0,
|
|
111
|
+
}),
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
chartRef.current.update('resize');
|
|
117
|
+
}
|
|
118
|
+
}, [entitlementCheckInfo]);
|
|
119
|
+
|
|
61
120
|
return (
|
|
62
121
|
<div className="data-access-overview__chart">
|
|
63
122
|
<div className="data-access-overview__chart__container">
|
|
64
|
-
<
|
|
65
|
-
data={{
|
|
66
|
-
labels: entitlementCheckInfo.data.map((item) => item.label),
|
|
67
|
-
datasets: [
|
|
68
|
-
{
|
|
69
|
-
data: entitlementCheckInfo.data.map((item) => item.count),
|
|
70
|
-
backgroundColor: entitlementCheckInfo.data.map(
|
|
71
|
-
(item) => item.color,
|
|
72
|
-
),
|
|
73
|
-
hoverBorderWidth: 0,
|
|
74
|
-
borderWidth: 0,
|
|
75
|
-
},
|
|
76
|
-
],
|
|
77
|
-
}}
|
|
78
|
-
options={{
|
|
79
|
-
responsive: true,
|
|
80
|
-
resizeDelay: 0,
|
|
81
|
-
maintainAspectRatio: false,
|
|
82
|
-
cutout: '75%',
|
|
83
|
-
plugins: {
|
|
84
|
-
tooltip: {
|
|
85
|
-
enabled: total !== 0,
|
|
86
|
-
usePointStyle: false,
|
|
87
|
-
boxPadding: 5,
|
|
88
|
-
callbacks: {
|
|
89
|
-
labelPointStyle: () => ({
|
|
90
|
-
pointStyle: 'rectRounded',
|
|
91
|
-
rotation: 0,
|
|
92
|
-
}),
|
|
93
|
-
},
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
|
-
}}
|
|
97
|
-
/>
|
|
123
|
+
<canvas ref={canvasRef} />
|
|
98
124
|
<div className="data-access-overview__chart__stats">
|
|
99
125
|
<div className="data-access-overview__chart__stats__percentage">
|
|
100
126
|
{total === 0 ? 0 : accessGrantedPercentage}%
|
|
@@ -288,7 +288,7 @@ export const ExecutionPlanViewerPanelContent: React.FC<{
|
|
|
288
288
|
<div className="query-builder__template--function--editor__code">
|
|
289
289
|
<CodeEditor
|
|
290
290
|
inputValue={templateFunctions.reduce(
|
|
291
|
-
(total, func) =>
|
|
291
|
+
(total, func) => `${total}${func}\n`,
|
|
292
292
|
'',
|
|
293
293
|
)}
|
|
294
294
|
isReadOnly={true}
|
|
@@ -482,6 +482,8 @@ const QueryBuilderExplorerTreeNodeContainer = observer(
|
|
|
482
482
|
}),
|
|
483
483
|
[node],
|
|
484
484
|
);
|
|
485
|
+
const ref = useRef<HTMLDivElement>(null);
|
|
486
|
+
dragConnector(ref);
|
|
485
487
|
useDragPreviewLayer(dragPreviewConnector);
|
|
486
488
|
|
|
487
489
|
const isExpandable = Boolean(node.childrenIds.length);
|
|
@@ -584,9 +586,7 @@ const QueryBuilderExplorerTreeNodeContainer = observer(
|
|
|
584
586
|
: undefined
|
|
585
587
|
}
|
|
586
588
|
onClick={selectNode}
|
|
587
|
-
ref={
|
|
588
|
-
node.mappingData.mapped && !isExpandable ? dragConnector : undefined
|
|
589
|
-
}
|
|
589
|
+
ref={node.mappingData.mapped && !isExpandable ? ref : undefined}
|
|
590
590
|
style={{
|
|
591
591
|
paddingLeft: `${(level - 1) * (stepPaddingInRem ?? 1) + 0.5}rem`,
|
|
592
592
|
display: 'flex',
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { useEffect, useState } from 'react';
|
|
17
|
+
import { useEffect, useRef, useState } from 'react';
|
|
18
18
|
import { observer } from 'mobx-react-lite';
|
|
19
19
|
import {
|
|
20
20
|
type TooltipPlacement,
|
|
@@ -168,13 +168,12 @@ const QueryBuilderFunctionsExplorerListEntry = observer(
|
|
|
168
168
|
}),
|
|
169
169
|
[node],
|
|
170
170
|
);
|
|
171
|
+
const ref = useRef<HTMLDivElement>(null);
|
|
172
|
+
dragConnector(ref);
|
|
171
173
|
useDragPreviewLayer(dragPreviewConnector);
|
|
172
174
|
|
|
173
175
|
return (
|
|
174
|
-
<div
|
|
175
|
-
className="query-builder__functions-explorer__function"
|
|
176
|
-
ref={dragConnector}
|
|
177
|
-
>
|
|
176
|
+
<div className="query-builder__functions-explorer__function" ref={ref}>
|
|
178
177
|
<div className="query-builder__functions-explorer__function__content">
|
|
179
178
|
<div className="query-builder__functions-explorer__function__icon">
|
|
180
179
|
<div className="query-builder__functions-explorer__function-icon">
|
|
@@ -250,6 +249,8 @@ const QueryBuilderFunctionsExplorerTreeNodeContainer = observer(
|
|
|
250
249
|
}),
|
|
251
250
|
[node],
|
|
252
251
|
);
|
|
252
|
+
const ref = useRef<HTMLDivElement>(null);
|
|
253
|
+
dragConnector(ref);
|
|
253
254
|
useDragPreviewLayer(dragPreviewConnector);
|
|
254
255
|
|
|
255
256
|
return (
|
|
@@ -257,7 +258,7 @@ const QueryBuilderFunctionsExplorerTreeNodeContainer = observer(
|
|
|
257
258
|
<div
|
|
258
259
|
className="tree-view__node__container query-builder__functions-explorer__tree__node__container"
|
|
259
260
|
onClick={selectNode}
|
|
260
|
-
ref={!isExpandable ?
|
|
261
|
+
ref={!isExpandable ? ref : undefined}
|
|
261
262
|
style={{
|
|
262
263
|
paddingLeft: `${(level - 1) * (stepPaddingInRem ?? 1) + 0.5}rem`,
|
|
263
264
|
display: 'flex',
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import { observer } from 'mobx-react-lite';
|
|
18
18
|
import type { QueryBuilderState } from '../../stores/QueryBuilderState.js';
|
|
19
|
-
import { useCallback } from 'react';
|
|
19
|
+
import { useCallback, useRef } from 'react';
|
|
20
20
|
import {
|
|
21
21
|
type ValueSpecification,
|
|
22
22
|
GenericType,
|
|
@@ -81,6 +81,9 @@ export const MilestoningParameterEditor = observer(
|
|
|
81
81
|
}),
|
|
82
82
|
[handleDrop],
|
|
83
83
|
);
|
|
84
|
+
const ref = useRef<HTMLDivElement>(null);
|
|
85
|
+
dropConnector(ref);
|
|
86
|
+
|
|
84
87
|
const resetMilestoningParameter = (): void => {
|
|
85
88
|
const param = observe_PrimitiveInstanceValue(
|
|
86
89
|
new PrimitiveInstanceValue(
|
|
@@ -100,7 +103,7 @@ export const MilestoningParameterEditor = observer(
|
|
|
100
103
|
|
|
101
104
|
return (
|
|
102
105
|
<div
|
|
103
|
-
ref={
|
|
106
|
+
ref={ref}
|
|
104
107
|
className="query-builder__milestoning-panel__variable-editor"
|
|
105
108
|
>
|
|
106
109
|
<div className="query-builder__milestoning-panel__variable-editor__variable">
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { useState } from 'react';
|
|
17
|
+
import { useRef, useState } from 'react';
|
|
18
18
|
import {
|
|
19
19
|
clsx,
|
|
20
20
|
CheckSquareIcon,
|
|
@@ -265,7 +265,8 @@ const QueryBuilderTreeNodeViewer = observer(
|
|
|
265
265
|
}),
|
|
266
266
|
[node],
|
|
267
267
|
);
|
|
268
|
-
|
|
268
|
+
const ref = useRef<HTMLDivElement>(null);
|
|
269
|
+
dragConnector(ref);
|
|
269
270
|
useDragPreviewLayer(dragPreviewConnector);
|
|
270
271
|
|
|
271
272
|
const getChildrenNodes = (): QueryBuilderExplorerTreeNodeData[] => {
|
|
@@ -355,7 +356,7 @@ const QueryBuilderTreeNodeViewer = observer(
|
|
|
355
356
|
<>
|
|
356
357
|
<div
|
|
357
358
|
className="tree-view__node__container query-builder-property-search-panel__node__container"
|
|
358
|
-
ref={
|
|
359
|
+
ref={ref}
|
|
359
360
|
style={{
|
|
360
361
|
paddingLeft: `${(level - 1) * stepPaddingInRem + 0.5}rem`,
|
|
361
362
|
display: 'flex',
|
|
@@ -29,6 +29,7 @@ import { type QueryBuilderTDSPanelDropTarget } from './QueryBuilderTDSPanel.js';
|
|
|
29
29
|
import { QueryBuilderAggregateOperator_Wavg } from '../../stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Wavg.js';
|
|
30
30
|
import type { QueryBuilderTDSState } from '../../stores/fetch-structure/tds/QueryBuilderTDSState.js';
|
|
31
31
|
import { QUERY_BUILDER_TEST_ID } from '../../__lib__/QueryBuilderTesting.js';
|
|
32
|
+
import { useRef } from 'react';
|
|
32
33
|
|
|
33
34
|
export const WavgParamDNDZone = (props: {
|
|
34
35
|
column: QueryBuilderAggregateOperator_Wavg;
|
|
@@ -55,7 +56,7 @@ export const WavgParamDNDZone = (props: {
|
|
|
55
56
|
}
|
|
56
57
|
};
|
|
57
58
|
|
|
58
|
-
const [{ isDragOver },
|
|
59
|
+
const [{ isDragOver }, dropConnector] = useDrop<
|
|
59
60
|
QueryBuilderTDSPanelDropTarget,
|
|
60
61
|
void,
|
|
61
62
|
{ isDragOver: boolean }
|
|
@@ -71,7 +72,8 @@ export const WavgParamDNDZone = (props: {
|
|
|
71
72
|
}),
|
|
72
73
|
[handleDrop],
|
|
73
74
|
);
|
|
74
|
-
|
|
75
|
+
const ref = useRef<HTMLDivElement>(null);
|
|
76
|
+
dropConnector(ref);
|
|
75
77
|
const { isDroppable } = useDragLayer((monitor) => ({
|
|
76
78
|
isDroppable:
|
|
77
79
|
monitor.isDragging() &&
|
|
@@ -81,7 +83,6 @@ export const WavgParamDNDZone = (props: {
|
|
|
81
83
|
}));
|
|
82
84
|
|
|
83
85
|
const weightIsSet = () => column.weight !== undefined;
|
|
84
|
-
|
|
85
86
|
const getWeightName = (): string => {
|
|
86
87
|
if (column instanceof QueryBuilderAggregateOperator_Wavg) {
|
|
87
88
|
return column.weight?.func.value.name ?? '';
|
|
@@ -92,8 +93,8 @@ export const WavgParamDNDZone = (props: {
|
|
|
92
93
|
|
|
93
94
|
return (
|
|
94
95
|
<div
|
|
96
|
+
ref={ref}
|
|
95
97
|
data-testid={QUERY_BUILDER_TEST_ID.QUERY_BUILDER_WAVG_DROPZONE}
|
|
96
|
-
ref={dropWavgParam}
|
|
97
98
|
>
|
|
98
99
|
<div>
|
|
99
100
|
<PanelEntryDropZonePlaceholder
|
|
@@ -772,7 +772,7 @@ const QueryBuilderGraphFetchTreePanel = observer(
|
|
|
772
772
|
},
|
|
773
773
|
[graphFetchTreeState, serializationState],
|
|
774
774
|
);
|
|
775
|
-
const [{ isDragOver },
|
|
775
|
+
const [{ isDragOver }, dropConnector] = useDrop<
|
|
776
776
|
QueryBuilderExplorerTreeDragSource,
|
|
777
777
|
void,
|
|
778
778
|
{ isDragOver: boolean }
|
|
@@ -813,7 +813,7 @@ const QueryBuilderGraphFetchTreePanel = observer(
|
|
|
813
813
|
>
|
|
814
814
|
<PanelDropZone
|
|
815
815
|
isDragOver={isDragOver}
|
|
816
|
-
dropTargetConnector={
|
|
816
|
+
dropTargetConnector={dropConnector}
|
|
817
817
|
contentClassName="query-builder-graph-fetch-panel"
|
|
818
818
|
>
|
|
819
819
|
{(!treeData || isGraphFetchTreeDataEmpty(treeData)) && (
|
|
@@ -369,6 +369,9 @@ const QueryBuilderPostFilterConditionEditor = observer(
|
|
|
369
369
|
}),
|
|
370
370
|
[handleDrop],
|
|
371
371
|
);
|
|
372
|
+
const ref = useRef<HTMLDivElement>(null);
|
|
373
|
+
dropConnector(ref);
|
|
374
|
+
|
|
372
375
|
const { isFilterValueDroppable } = useDragLayer((monitor) => ({
|
|
373
376
|
isFilterValueDroppable:
|
|
374
377
|
monitor.isDragging() &&
|
|
@@ -424,7 +427,7 @@ const QueryBuilderPostFilterConditionEditor = observer(
|
|
|
424
427
|
) {
|
|
425
428
|
return (
|
|
426
429
|
<div
|
|
427
|
-
ref={
|
|
430
|
+
ref={ref}
|
|
428
431
|
className="query-builder-post-filter-tree__condition-node__value"
|
|
429
432
|
>
|
|
430
433
|
<PanelEntryDropZonePlaceholder
|
|
@@ -458,7 +461,7 @@ const QueryBuilderPostFilterConditionEditor = observer(
|
|
|
458
461
|
) {
|
|
459
462
|
return (
|
|
460
463
|
<div
|
|
461
|
-
ref={
|
|
464
|
+
ref={ref}
|
|
462
465
|
className="query-builder-post-filter-tree__condition-node__value"
|
|
463
466
|
>
|
|
464
467
|
<PanelEntryDropZonePlaceholder
|
|
@@ -565,7 +568,7 @@ const QueryBuilderPostFilterTreeNodeContainer = observer(
|
|
|
565
568
|
) => {
|
|
566
569
|
const { node, onNodeSelect, innerProps } = props;
|
|
567
570
|
const { tdsState } = innerProps;
|
|
568
|
-
const
|
|
571
|
+
const ref = useRef<HTMLDivElement>(null);
|
|
569
572
|
const [isSelectedFromContextMenu, setIsSelectedFromContextMenu] =
|
|
570
573
|
useState(false);
|
|
571
574
|
const applicationStore = useApplicationStore();
|
|
@@ -702,7 +705,7 @@ const QueryBuilderPostFilterTreeNodeContainer = observer(
|
|
|
702
705
|
}),
|
|
703
706
|
[node, postFilterState],
|
|
704
707
|
);
|
|
705
|
-
dragConnector(dropConnector(
|
|
708
|
+
dragConnector(dropConnector(ref));
|
|
706
709
|
useDragPreviewLayer(dragPreviewConnector);
|
|
707
710
|
|
|
708
711
|
const { isDroppable } = useDragLayer((monitor) => ({
|
|
@@ -757,7 +760,7 @@ const QueryBuilderPostFilterTreeNodeContainer = observer(
|
|
|
757
760
|
QUERY_BUILDER_TEST_ID.QUERY_BUILDER_POST_FILTER_TREE_NODE_CONTENT
|
|
758
761
|
}
|
|
759
762
|
className="query-builder-post-filter-tree__node__content"
|
|
760
|
-
ref={
|
|
763
|
+
ref={ref}
|
|
761
764
|
onClick={
|
|
762
765
|
node instanceof QueryBuilderPostFilterTreeConditionNodeData ||
|
|
763
766
|
node instanceof QueryBuilderPostFilterTreeBlankConditionNodeData
|
|
@@ -1031,7 +1034,7 @@ const QueryBuilderPostFilterPanelContent = observer(
|
|
|
1031
1034
|
},
|
|
1032
1035
|
[applicationStore, postFilterState, tdsState.aggregationState.columns],
|
|
1033
1036
|
);
|
|
1034
|
-
const [{ isDragOver },
|
|
1037
|
+
const [{ isDragOver }, dropConnector] = useDrop<
|
|
1035
1038
|
QueryBuilderProjectionColumnDragSource,
|
|
1036
1039
|
void,
|
|
1037
1040
|
{ isDragOver: boolean }
|
|
@@ -1050,8 +1053,8 @@ const QueryBuilderPostFilterPanelContent = observer(
|
|
|
1050
1053
|
[applicationStore, handleDrop],
|
|
1051
1054
|
);
|
|
1052
1055
|
|
|
1053
|
-
const
|
|
1054
|
-
|
|
1056
|
+
const ref = useRef<HTMLDivElement>(null);
|
|
1057
|
+
dropConnector(ref);
|
|
1055
1058
|
|
|
1056
1059
|
return (
|
|
1057
1060
|
<>
|
|
@@ -1145,7 +1148,7 @@ const QueryBuilderPostFilterPanelContent = observer(
|
|
|
1145
1148
|
<PanelDropZone
|
|
1146
1149
|
isDragOver={isDragOver && postFilterState.isEmpty}
|
|
1147
1150
|
isDroppable={isDroppable && postFilterState.isEmpty}
|
|
1148
|
-
dropTargetConnector={
|
|
1151
|
+
dropTargetConnector={dropConnector}
|
|
1149
1152
|
>
|
|
1150
1153
|
{
|
|
1151
1154
|
<PanelLoadingIndicator
|
|
@@ -1171,7 +1174,7 @@ const QueryBuilderPostFilterPanelContent = observer(
|
|
|
1171
1174
|
)}
|
|
1172
1175
|
{isDroppable && !postFilterState.isEmpty && (
|
|
1173
1176
|
<div
|
|
1174
|
-
ref={
|
|
1177
|
+
ref={ref}
|
|
1175
1178
|
className="query-builder-post-filter-tree__free-drop-zone__container"
|
|
1176
1179
|
>
|
|
1177
1180
|
<PanelEntryDropZonePlaceholder
|
|
@@ -360,7 +360,7 @@ export const QueryResultModifierModal = observer(
|
|
|
360
360
|
setWatermarkValue(watermarkState.getDefaultValue());
|
|
361
361
|
}
|
|
362
362
|
};
|
|
363
|
-
const [{ isParameterValueDragOver },
|
|
363
|
+
const [{ isParameterValueDragOver }, dropConnector] = useDrop<
|
|
364
364
|
QueryBuilderVariableDragSource,
|
|
365
365
|
void,
|
|
366
366
|
{ isParameterValueDragOver: boolean }
|
|
@@ -1047,7 +1047,7 @@ export const QueryResultModifierModal = observer(
|
|
|
1047
1047
|
>
|
|
1048
1048
|
<PanelDropZone
|
|
1049
1049
|
isDragOver={isParameterValueDragOver}
|
|
1050
|
-
dropTargetConnector={
|
|
1050
|
+
dropTargetConnector={dropConnector}
|
|
1051
1051
|
>
|
|
1052
1052
|
<BasicValueSpecificationEditor
|
|
1053
1053
|
valueSpecification={watermarkValue}
|