@finos/legend-query-builder 4.14.57 → 4.14.59
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.d.ts.map +1 -1
- package/lib/components/QueryBuilder.js +1 -1
- package/lib/components/QueryBuilder.js.map +1 -1
- package/lib/components/QueryChat.d.ts +1 -1
- package/lib/components/QueryChat.d.ts.map +1 -1
- package/lib/components/QueryChat.js +1 -3
- package/lib/components/QueryChat.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts +3 -2
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +33 -54
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.d.ts +5 -2
- package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.js +37 -32
- 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 +4 -2
- package/lib/components/result/tds/QueryBuilderTDSGridResult.js.map +1 -1
- package/lib/index.css +1 -17
- package/lib/index.css.map +1 -1
- package/lib/package.json +3 -3
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts +3 -3
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js +3 -3
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterState.d.ts +3 -3
- package/lib/stores/filter/QueryBuilderFilterState.d.ts.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterState.js +3 -3
- package/lib/stores/filter/QueryBuilderFilterState.js.map +1 -1
- package/package.json +11 -11
- package/src/components/QueryBuilder.tsx +8 -3
- package/src/components/QueryChat.tsx +1 -9
- package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +73 -116
- package/src/components/filter/QueryBuilderFilterPanel.tsx +43 -35
- package/src/components/result/tds/QueryBuilderTDSGridResult.tsx +4 -2
- package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.ts +3 -3
- package/src/stores/filter/QueryBuilderFilterState.ts +3 -3
|
@@ -82,7 +82,6 @@ import {
|
|
|
82
82
|
PostFilterTDSColumnValueConditionValueState,
|
|
83
83
|
} from '../../stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js';
|
|
84
84
|
import {
|
|
85
|
-
type QueryBuilderProjectionColumnState,
|
|
86
85
|
type QueryBuilderProjectionColumnDragSource,
|
|
87
86
|
QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
|
|
88
87
|
QueryBuilderDerivationProjectionColumnState,
|
|
@@ -115,6 +114,23 @@ import {
|
|
|
115
114
|
import { QueryBuilderPropertyNameDisplay } from '../QueryBuilderPropertyExpressionEditor.js';
|
|
116
115
|
import { convertTextToPrimitiveInstanceValue } from '../../stores/shared/ValueSpecificationEditorHelper.js';
|
|
117
116
|
|
|
117
|
+
export const CAN_DROP_MAIN_GROUP_DND_TYPES = [
|
|
118
|
+
QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
|
|
119
|
+
QUERY_BUILDER_WINDOW_COLUMN_DND_TYPE,
|
|
120
|
+
];
|
|
121
|
+
|
|
122
|
+
export const CAN_DROP_POST_FILTER_NODE_DND_TYPES = [
|
|
123
|
+
QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
|
|
124
|
+
QUERY_BUILDER_WINDOW_COLUMN_DND_TYPE,
|
|
125
|
+
QUERY_BUILDER_POST_FILTER_DND_TYPE.CONDITION,
|
|
126
|
+
];
|
|
127
|
+
|
|
128
|
+
export const CAN_DROP_POST_FILTER_VALUE_DND_TYPES = [
|
|
129
|
+
QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
|
|
130
|
+
QUERY_BUILDER_WINDOW_COLUMN_DND_TYPE,
|
|
131
|
+
QUERY_BUILDER_VARIABLE_DND_TYPE,
|
|
132
|
+
];
|
|
133
|
+
|
|
118
134
|
const QueryBuilderPostFilterConditionContextMenu = observer(
|
|
119
135
|
forwardRef<
|
|
120
136
|
HTMLDivElement,
|
|
@@ -169,7 +185,7 @@ const QueryBuilderPostFilterGroupConditionEditor = observer(
|
|
|
169
185
|
isDragOver: boolean;
|
|
170
186
|
isDroppable: boolean;
|
|
171
187
|
}) => {
|
|
172
|
-
const { node, isDragOver, isDroppable
|
|
188
|
+
const { node, isDragOver, isDroppable } = props;
|
|
173
189
|
const switchOperation: React.MouseEventHandler<HTMLDivElement> = (
|
|
174
190
|
event,
|
|
175
191
|
): void => {
|
|
@@ -211,94 +227,50 @@ export const QueryBuilderColumnBadge = observer(
|
|
|
211
227
|
(props: {
|
|
212
228
|
colState: QueryBuilderTDSColumnState;
|
|
213
229
|
removeColumn: () => void;
|
|
214
|
-
onColumnChange?:
|
|
215
|
-
| ((columnState: QueryBuilderProjectionColumnState) => Promise<void>)
|
|
216
|
-
| undefined;
|
|
217
230
|
}) => {
|
|
218
|
-
const { colState,
|
|
219
|
-
const applicationStore = useApplicationStore();
|
|
231
|
+
const { colState, removeColumn } = props;
|
|
220
232
|
const type = colState.getColumnType();
|
|
221
|
-
const handleDrop = onColumnChange
|
|
222
|
-
? useCallback(
|
|
223
|
-
(item: QueryBuilderProjectionColumnDragSource): Promise<void> =>
|
|
224
|
-
onColumnChange(item.columnState),
|
|
225
|
-
[onColumnChange],
|
|
226
|
-
)
|
|
227
|
-
: undefined;
|
|
228
|
-
const [{ isDragOver }, dropConnector] = useDrop<
|
|
229
|
-
QueryBuilderProjectionColumnDragSource,
|
|
230
|
-
void,
|
|
231
|
-
{ isDragOver: boolean }
|
|
232
|
-
>(
|
|
233
|
-
() => ({
|
|
234
|
-
accept: [
|
|
235
|
-
QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
|
|
236
|
-
QUERY_BUILDER_WINDOW_COLUMN_DND_TYPE,
|
|
237
|
-
],
|
|
238
|
-
drop: (item, monitor): void => {
|
|
239
|
-
if (!monitor.didDrop()) {
|
|
240
|
-
handleDrop?.(item).catch(applicationStore.alertUnhandledError);
|
|
241
|
-
} // prevent drop event propagation to accomondate for nested DnD
|
|
242
|
-
},
|
|
243
|
-
collect: (monitor) => ({
|
|
244
|
-
isDragOver: monitor.isOver({ shallow: true }),
|
|
245
|
-
}),
|
|
246
|
-
}),
|
|
247
|
-
[applicationStore, handleDrop],
|
|
248
|
-
);
|
|
249
233
|
|
|
250
|
-
|
|
251
|
-
<div className="query-builder-column-
|
|
252
|
-
|
|
234
|
+
return (
|
|
235
|
+
<div className="query-builder-column-badge">
|
|
236
|
+
<div className="query-builder-column-badge__content">
|
|
237
|
+
{type && (
|
|
238
|
+
<div
|
|
239
|
+
className={clsx('query-builder-column-badge__type', {
|
|
240
|
+
'query-builder-column-badge__type--class':
|
|
241
|
+
type instanceof Class,
|
|
242
|
+
'query-builder-column-badge__type--enumeration':
|
|
243
|
+
type instanceof Enumeration,
|
|
244
|
+
'query-builder-column-badge__type--primitive':
|
|
245
|
+
type instanceof PrimitiveType,
|
|
246
|
+
})}
|
|
247
|
+
>
|
|
248
|
+
{renderPropertyTypeIcon(type)}
|
|
249
|
+
</div>
|
|
250
|
+
)}
|
|
253
251
|
<div
|
|
254
|
-
className=
|
|
255
|
-
|
|
256
|
-
'query-builder-column-badge__type--enumeration':
|
|
257
|
-
type instanceof Enumeration,
|
|
258
|
-
'query-builder-column-badge__type--primitive':
|
|
259
|
-
type instanceof PrimitiveType,
|
|
260
|
-
})}
|
|
252
|
+
className="query-builder-column-badge__property"
|
|
253
|
+
title={`${colState.columnName}`}
|
|
261
254
|
>
|
|
262
|
-
{
|
|
255
|
+
{colState.columnName}
|
|
263
256
|
</div>
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
257
|
+
<QueryBuilderColumnInfoTooltip
|
|
258
|
+
columnState={colState}
|
|
259
|
+
placement="bottom-end"
|
|
260
|
+
>
|
|
261
|
+
<div className="query-builder-column-badge__property__info">
|
|
262
|
+
<InfoCircleIcon />
|
|
263
|
+
</div>
|
|
264
|
+
</QueryBuilderColumnInfoTooltip>
|
|
265
|
+
<button
|
|
266
|
+
className="query-builder-column-badge__action"
|
|
267
|
+
name="Reset"
|
|
268
|
+
title="Reset"
|
|
269
|
+
onClick={removeColumn}
|
|
270
|
+
>
|
|
271
|
+
<RefreshIcon />
|
|
272
|
+
</button>
|
|
270
273
|
</div>
|
|
271
|
-
<QueryBuilderColumnInfoTooltip
|
|
272
|
-
columnState={colState}
|
|
273
|
-
placement="bottom-end"
|
|
274
|
-
>
|
|
275
|
-
<div className="query-builder-column-badge__property__info">
|
|
276
|
-
<InfoCircleIcon />
|
|
277
|
-
</div>
|
|
278
|
-
</QueryBuilderColumnInfoTooltip>
|
|
279
|
-
<button
|
|
280
|
-
className="query-builder-column-badge__action"
|
|
281
|
-
name="Reset"
|
|
282
|
-
title="Reset"
|
|
283
|
-
onClick={removeColumn}
|
|
284
|
-
>
|
|
285
|
-
<RefreshIcon />
|
|
286
|
-
</button>
|
|
287
|
-
</div>
|
|
288
|
-
);
|
|
289
|
-
|
|
290
|
-
return onColumnChange ? (
|
|
291
|
-
<div ref={dropConnector} className="query-builder-column-badge">
|
|
292
|
-
<PanelEntryDropZonePlaceholder
|
|
293
|
-
isDragOver={isDragOver}
|
|
294
|
-
label="Change Property"
|
|
295
|
-
>
|
|
296
|
-
{renderColumnBadgeContent()}
|
|
297
|
-
</PanelEntryDropZonePlaceholder>
|
|
298
|
-
</div>
|
|
299
|
-
) : (
|
|
300
|
-
<div className="query-builder-column-badge">
|
|
301
|
-
{renderColumnBadgeContent()}
|
|
302
274
|
</div>
|
|
303
275
|
);
|
|
304
276
|
},
|
|
@@ -378,10 +350,7 @@ const QueryBuilderPostFilterConditionEditor = observer(
|
|
|
378
350
|
{ isFilterValueDragOver: boolean }
|
|
379
351
|
>(
|
|
380
352
|
() => ({
|
|
381
|
-
accept:
|
|
382
|
-
QUERY_BUILDER_VARIABLE_DND_TYPE,
|
|
383
|
-
QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
|
|
384
|
-
],
|
|
353
|
+
accept: CAN_DROP_POST_FILTER_VALUE_DND_TYPES,
|
|
385
354
|
canDrop: (item): boolean =>
|
|
386
355
|
canDropItemOntoNodeValue(item, node.condition),
|
|
387
356
|
drop: (item, monitor): void => {
|
|
@@ -399,8 +368,9 @@ const QueryBuilderPostFilterConditionEditor = observer(
|
|
|
399
368
|
const { isFilterValueDroppable } = useDragLayer((monitor) => ({
|
|
400
369
|
isFilterValueDroppable:
|
|
401
370
|
monitor.isDragging() &&
|
|
402
|
-
|
|
403
|
-
monitor.getItemType()
|
|
371
|
+
CAN_DROP_POST_FILTER_VALUE_DND_TYPES.includes(
|
|
372
|
+
monitor.getItemType()?.toString() ?? '',
|
|
373
|
+
) &&
|
|
404
374
|
canDropItemOntoNodeValue(monitor.getItem(), node.condition),
|
|
405
375
|
}));
|
|
406
376
|
const resetNode = (): void => {
|
|
@@ -479,11 +449,6 @@ const QueryBuilderPostFilterConditionEditor = observer(
|
|
|
479
449
|
rightConditionValue instanceof
|
|
480
450
|
PostFilterTDSColumnValueConditionValueState
|
|
481
451
|
) {
|
|
482
|
-
const changeRightCol = async (
|
|
483
|
-
columnState: QueryBuilderProjectionColumnState,
|
|
484
|
-
): Promise<void> => {
|
|
485
|
-
rightConditionValue.changeCol(columnState);
|
|
486
|
-
};
|
|
487
452
|
return (
|
|
488
453
|
<div
|
|
489
454
|
ref={dropConnector}
|
|
@@ -496,9 +461,6 @@ const QueryBuilderPostFilterConditionEditor = observer(
|
|
|
496
461
|
>
|
|
497
462
|
<QueryBuilderColumnBadge
|
|
498
463
|
colState={rightConditionValue.tdsColumn}
|
|
499
|
-
onColumnChange={
|
|
500
|
-
isFilterValueDroppable ? changeRightCol : undefined
|
|
501
|
-
}
|
|
502
464
|
removeColumn={removeTDSColumnValue}
|
|
503
465
|
/>
|
|
504
466
|
</PanelEntryDropZonePlaceholder>
|
|
@@ -703,11 +665,7 @@ const QueryBuilderPostFilterTreeNodeContainer = observer(
|
|
|
703
665
|
{ isDragOver: boolean; deepIsDragOver: boolean }
|
|
704
666
|
>(
|
|
705
667
|
() => ({
|
|
706
|
-
accept:
|
|
707
|
-
...Object.values(QUERY_BUILDER_POST_FILTER_DND_TYPE),
|
|
708
|
-
QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
|
|
709
|
-
QUERY_BUILDER_WINDOW_COLUMN_DND_TYPE,
|
|
710
|
-
],
|
|
668
|
+
accept: CAN_DROP_POST_FILTER_NODE_DND_TYPES,
|
|
711
669
|
drop: (item, monitor): void => {
|
|
712
670
|
if (!monitor.didDrop()) {
|
|
713
671
|
handleDrop(item, monitor.getItemType() as string);
|
|
@@ -744,8 +702,9 @@ const QueryBuilderPostFilterTreeNodeContainer = observer(
|
|
|
744
702
|
const { isDroppable } = useDragLayer((monitor) => ({
|
|
745
703
|
isDroppable:
|
|
746
704
|
monitor.isDragging() &&
|
|
747
|
-
|
|
748
|
-
monitor.getItemType()
|
|
705
|
+
CAN_DROP_POST_FILTER_NODE_DND_TYPES.includes(
|
|
706
|
+
monitor.getItemType()?.toString() ?? '',
|
|
707
|
+
),
|
|
749
708
|
}));
|
|
750
709
|
|
|
751
710
|
// context menu
|
|
@@ -761,12 +720,6 @@ const QueryBuilderPostFilterTreeNodeContainer = observer(
|
|
|
761
720
|
data-testid={
|
|
762
721
|
QUERY_BUILDER_TEST_ID.QUERY_BUILDER_POST_FILTER_TREE_NODE_CONTAINER
|
|
763
722
|
}
|
|
764
|
-
onClick={
|
|
765
|
-
node instanceof QueryBuilderPostFilterTreeConditionNodeData ||
|
|
766
|
-
node instanceof QueryBuilderPostFilterTreeBlankConditionNodeData
|
|
767
|
-
? selectNode
|
|
768
|
-
: undefined
|
|
769
|
-
}
|
|
770
723
|
className={clsx('query-builder-post-filter-tree__node__container', {
|
|
771
724
|
'query-builder-post-filter-tree__node__container--group':
|
|
772
725
|
node instanceof QueryBuilderPostFilterTreeGroupNodeData,
|
|
@@ -799,6 +752,12 @@ const QueryBuilderPostFilterTreeNodeContainer = observer(
|
|
|
799
752
|
}
|
|
800
753
|
className="query-builder-post-filter-tree__node__content"
|
|
801
754
|
ref={dragRef}
|
|
755
|
+
onClick={
|
|
756
|
+
node instanceof QueryBuilderPostFilterTreeConditionNodeData ||
|
|
757
|
+
node instanceof QueryBuilderPostFilterTreeBlankConditionNodeData
|
|
758
|
+
? selectNode
|
|
759
|
+
: undefined
|
|
760
|
+
}
|
|
802
761
|
>
|
|
803
762
|
{node instanceof QueryBuilderPostFilterTreeGroupNodeData && (
|
|
804
763
|
<QueryBuilderPostFilterGroupConditionEditor
|
|
@@ -1013,8 +972,9 @@ const QueryBuilderPostFilterPanelContent = observer(
|
|
|
1013
972
|
const { isDroppable } = useDragLayer((monitor) => ({
|
|
1014
973
|
isDroppable:
|
|
1015
974
|
monitor.isDragging() &&
|
|
1016
|
-
|
|
1017
|
-
monitor.getItemType()
|
|
975
|
+
CAN_DROP_MAIN_GROUP_DND_TYPES.includes(
|
|
976
|
+
monitor.getItemType()?.toString() ?? '',
|
|
977
|
+
),
|
|
1018
978
|
}));
|
|
1019
979
|
|
|
1020
980
|
// Drag and Drop
|
|
@@ -1071,10 +1031,7 @@ const QueryBuilderPostFilterPanelContent = observer(
|
|
|
1071
1031
|
{ isDragOver: boolean }
|
|
1072
1032
|
>(
|
|
1073
1033
|
() => ({
|
|
1074
|
-
accept:
|
|
1075
|
-
QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
|
|
1076
|
-
QUERY_BUILDER_WINDOW_COLUMN_DND_TYPE,
|
|
1077
|
-
],
|
|
1034
|
+
accept: CAN_DROP_MAIN_GROUP_DND_TYPES,
|
|
1078
1035
|
drop: (item, monitor): void => {
|
|
1079
1036
|
if (!monitor.didDrop()) {
|
|
1080
1037
|
handleDrop(item).catch(applicationStore.alertUnhandledError);
|
|
@@ -121,6 +121,34 @@ import { buildPropertyExpressionChain } from '../../stores/QueryBuilderValueSpec
|
|
|
121
121
|
import { QueryBuilderPanelIssueCountBadge } from '../shared/QueryBuilderPanelIssueCountBadge.js';
|
|
122
122
|
import { convertTextToPrimitiveInstanceValue } from '../../stores/shared/ValueSpecificationEditorHelper.js';
|
|
123
123
|
|
|
124
|
+
export const CAN_DROP_MAIN_GROUP_DND_TYPES_FETCH_SUPPORTED = [
|
|
125
|
+
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.ENUM_PROPERTY,
|
|
126
|
+
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY,
|
|
127
|
+
QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
|
|
128
|
+
];
|
|
129
|
+
|
|
130
|
+
export const CAN_DROP_MAIN_GROUP_DND_TYPES = [
|
|
131
|
+
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.ENUM_PROPERTY,
|
|
132
|
+
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY,
|
|
133
|
+
];
|
|
134
|
+
|
|
135
|
+
export const CAN_DROP_FILTER_NODE_DND_TYPES_FETCH_SUPPORTED = [
|
|
136
|
+
QUERY_BUILDER_FILTER_DND_TYPE.CONDITION,
|
|
137
|
+
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.ENUM_PROPERTY,
|
|
138
|
+
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY,
|
|
139
|
+
QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
|
|
140
|
+
];
|
|
141
|
+
|
|
142
|
+
export const CAN_DROP_FILTER_NODE_DND_TYPES = [
|
|
143
|
+
QUERY_BUILDER_FILTER_DND_TYPE.CONDITION,
|
|
144
|
+
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.ENUM_PROPERTY,
|
|
145
|
+
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY,
|
|
146
|
+
];
|
|
147
|
+
|
|
148
|
+
export const CAN_DROP_FILTER_VALUE_DND_TYPES = [
|
|
149
|
+
QUERY_BUILDER_VARIABLE_DND_TYPE,
|
|
150
|
+
];
|
|
151
|
+
|
|
124
152
|
const isCollectionProperty = (
|
|
125
153
|
propertyExpression: AbstractPropertyExpression,
|
|
126
154
|
): boolean => {
|
|
@@ -605,19 +633,6 @@ const buildFilterTree = (
|
|
|
605
633
|
}
|
|
606
634
|
};
|
|
607
635
|
|
|
608
|
-
export const IS_DRAGGABLE_FILTER_DND_TYPES_FETCH_SUPPORTED = [
|
|
609
|
-
QUERY_BUILDER_FILTER_DND_TYPE.CONDITION,
|
|
610
|
-
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.ENUM_PROPERTY,
|
|
611
|
-
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY,
|
|
612
|
-
QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
|
|
613
|
-
];
|
|
614
|
-
|
|
615
|
-
export const IS_DRAGGABLE_FILTER_DND_TYPES = [
|
|
616
|
-
QUERY_BUILDER_FILTER_DND_TYPE.CONDITION,
|
|
617
|
-
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.ENUM_PROPERTY,
|
|
618
|
-
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY,
|
|
619
|
-
];
|
|
620
|
-
|
|
621
636
|
const QueryBuilderFilterGroupConditionEditor = observer(
|
|
622
637
|
(props: {
|
|
623
638
|
node: QueryBuilderFilterTreeGroupNodeData;
|
|
@@ -762,7 +777,7 @@ const QueryBuilderFilterConditionEditor = observer(
|
|
|
762
777
|
{ isFilterValueDragOver: boolean }
|
|
763
778
|
>(
|
|
764
779
|
() => ({
|
|
765
|
-
accept:
|
|
780
|
+
accept: CAN_DROP_FILTER_VALUE_DND_TYPES,
|
|
766
781
|
drop: (item, monitor): void => {
|
|
767
782
|
if (!monitor.didDrop()) {
|
|
768
783
|
handleDrop(item);
|
|
@@ -1084,8 +1099,8 @@ const QueryBuilderFilterTreeNodeContainer = observer(
|
|
|
1084
1099
|
() => ({
|
|
1085
1100
|
accept:
|
|
1086
1101
|
queryBuilderState.TEMPORARY__isDnDFetchStructureToFilterSupported
|
|
1087
|
-
?
|
|
1088
|
-
:
|
|
1102
|
+
? CAN_DROP_FILTER_NODE_DND_TYPES_FETCH_SUPPORTED
|
|
1103
|
+
: CAN_DROP_FILTER_NODE_DND_TYPES,
|
|
1089
1104
|
drop: (item, monitor): void => {
|
|
1090
1105
|
if (!monitor.didDrop()) {
|
|
1091
1106
|
handleDrop(item, monitor.getItemType() as string);
|
|
@@ -1121,8 +1136,8 @@ const QueryBuilderFilterTreeNodeContainer = observer(
|
|
|
1121
1136
|
isDroppable:
|
|
1122
1137
|
monitor.isDragging() &&
|
|
1123
1138
|
(queryBuilderState.TEMPORARY__isDnDFetchStructureToFilterSupported
|
|
1124
|
-
?
|
|
1125
|
-
:
|
|
1139
|
+
? CAN_DROP_FILTER_NODE_DND_TYPES_FETCH_SUPPORTED
|
|
1140
|
+
: CAN_DROP_FILTER_NODE_DND_TYPES
|
|
1126
1141
|
).includes(monitor.getItemType()?.toString() ?? ''),
|
|
1127
1142
|
}));
|
|
1128
1143
|
|
|
@@ -1143,12 +1158,6 @@ const QueryBuilderFilterTreeNodeContainer = observer(
|
|
|
1143
1158
|
data-testid={
|
|
1144
1159
|
QUERY_BUILDER_TEST_ID.QUERY_BUILDER_FILTER_TREE_NODE_CONTAINER
|
|
1145
1160
|
}
|
|
1146
|
-
onClick={
|
|
1147
|
-
node instanceof QueryBuilderFilterTreeConditionNodeData ||
|
|
1148
|
-
node instanceof QueryBuilderFilterTreeBlankConditionNodeData
|
|
1149
|
-
? selectNode
|
|
1150
|
-
: undefined
|
|
1151
|
-
}
|
|
1152
1161
|
className={clsx('query-builder-filter-tree__node__container', {
|
|
1153
1162
|
'query-builder-filter-tree__node__container--group':
|
|
1154
1163
|
node instanceof QueryBuilderFilterTreeGroupNodeData,
|
|
@@ -1185,6 +1194,12 @@ const QueryBuilderFilterTreeNodeContainer = observer(
|
|
|
1185
1194
|
}
|
|
1186
1195
|
className="query-builder-filter-tree__node__content"
|
|
1187
1196
|
ref={dragRef}
|
|
1197
|
+
onClick={
|
|
1198
|
+
node instanceof QueryBuilderFilterTreeConditionNodeData ||
|
|
1199
|
+
node instanceof QueryBuilderFilterTreeBlankConditionNodeData
|
|
1200
|
+
? selectNode
|
|
1201
|
+
: undefined
|
|
1202
|
+
}
|
|
1188
1203
|
>
|
|
1189
1204
|
{node instanceof QueryBuilderFilterTreeGroupNodeData && (
|
|
1190
1205
|
<QueryBuilderFilterGroupConditionEditor
|
|
@@ -1408,8 +1423,8 @@ export const QueryBuilderFilterPanel = observer(
|
|
|
1408
1423
|
isDroppable:
|
|
1409
1424
|
monitor.isDragging() &&
|
|
1410
1425
|
(queryBuilderState.TEMPORARY__isDnDFetchStructureToFilterSupported
|
|
1411
|
-
?
|
|
1412
|
-
:
|
|
1426
|
+
? CAN_DROP_MAIN_GROUP_DND_TYPES_FETCH_SUPPORTED
|
|
1427
|
+
: CAN_DROP_MAIN_GROUP_DND_TYPES
|
|
1413
1428
|
).includes(monitor.getItemType()?.toString() ?? ''),
|
|
1414
1429
|
}));
|
|
1415
1430
|
|
|
@@ -1459,15 +1474,8 @@ export const QueryBuilderFilterPanel = observer(
|
|
|
1459
1474
|
() => ({
|
|
1460
1475
|
accept:
|
|
1461
1476
|
queryBuilderState.TEMPORARY__isDnDFetchStructureToFilterSupported
|
|
1462
|
-
?
|
|
1463
|
-
|
|
1464
|
-
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY,
|
|
1465
|
-
QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
|
|
1466
|
-
]
|
|
1467
|
-
: [
|
|
1468
|
-
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.ENUM_PROPERTY,
|
|
1469
|
-
QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY,
|
|
1470
|
-
],
|
|
1477
|
+
? CAN_DROP_MAIN_GROUP_DND_TYPES_FETCH_SUPPORTED
|
|
1478
|
+
: CAN_DROP_MAIN_GROUP_DND_TYPES,
|
|
1471
1479
|
drop: (item, monitor): void => {
|
|
1472
1480
|
if (!monitor.didDrop()) {
|
|
1473
1481
|
handleDrop(item, monitor.getItemType() as string);
|
|
@@ -284,8 +284,10 @@ export const QueryBuilderTDSGridResult = observer(
|
|
|
284
284
|
const selectedCells = [];
|
|
285
285
|
if (selectedRanges) {
|
|
286
286
|
for (const selectedRange of selectedRanges) {
|
|
287
|
-
const
|
|
288
|
-
const
|
|
287
|
+
const rangeStart: number = selectedRange.startRow?.rowIndex ?? 0;
|
|
288
|
+
const rangeEnd: number = selectedRange.endRow?.rowIndex ?? 0;
|
|
289
|
+
const startRow = rangeStart < rangeEnd ? rangeStart : rangeEnd;
|
|
290
|
+
const endRow = rangeStart < rangeEnd ? rangeEnd : rangeStart;
|
|
289
291
|
const selectedColumns: string[] = selectedRange.columns.map((col) =>
|
|
290
292
|
col.getColId(),
|
|
291
293
|
);
|
|
@@ -81,9 +81,9 @@ import { buildtdsPropertyExpressionFromColState } from './operators/QueryBuilder
|
|
|
81
81
|
import { TDS_COLUMN_GETTER } from '../../../../graph/QueryBuilderMetaModelConst.js';
|
|
82
82
|
|
|
83
83
|
export enum QUERY_BUILDER_POST_FILTER_DND_TYPE {
|
|
84
|
-
GROUP_CONDITION = 'GROUP_CONDITION',
|
|
85
|
-
CONDITION = 'CONDITION',
|
|
86
|
-
BLANK_CONDITION = 'BLANK_CONDITION',
|
|
84
|
+
GROUP_CONDITION = 'QUERY_BUILDER_POST_FILTER_DND_TYPE.GROUP_CONDITION',
|
|
85
|
+
CONDITION = 'QUERY_BUILDER_POST_FILTER_DND_TYPE.CONDITION',
|
|
86
|
+
BLANK_CONDITION = 'QUERY_BUILDER_POST_FILTER_DND_TYPE.BLANK_CONDITION',
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
export const getTypeFromDerivedProperty = (
|
|
@@ -62,9 +62,9 @@ import {
|
|
|
62
62
|
import { instanceValue_setValues } from '../shared/ValueSpecificationModifierHelper.js';
|
|
63
63
|
|
|
64
64
|
export enum QUERY_BUILDER_FILTER_DND_TYPE {
|
|
65
|
-
GROUP_CONDITION = 'GROUP_CONDITION',
|
|
66
|
-
CONDITION = 'CONDITION',
|
|
67
|
-
BLANK_CONDITION = 'BLANK_CONDITION',
|
|
65
|
+
GROUP_CONDITION = 'QUERY_BUILDER_FILTER_DND_TYPE.GROUP_CONDITION',
|
|
66
|
+
CONDITION = 'QUERY_BUILDER_FILTER_DND_TYPE.CONDITION',
|
|
67
|
+
BLANK_CONDITION = 'QUERY_BUILDER_FILTER_DND_TYPE.BLANK_CONDITION',
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
export interface QueryBuilderFilterConditionDragSource {
|