@finos/legend-query-builder 4.14.18 → 4.14.20
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 +5 -3
- package/lib/components/QueryBuilder.js.map +1 -1
- package/lib/components/QueryBuilderConstantExpressionPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderConstantExpressionPanel.js +71 -45
- package/lib/components/QueryBuilderConstantExpressionPanel.js.map +1 -1
- package/lib/components/QueryBuilderDiffPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderDiffPanel.js +2 -1
- package/lib/components/QueryBuilderDiffPanel.js.map +1 -1
- package/lib/components/QueryBuilderParametersPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderParametersPanel.js +25 -26
- package/lib/components/QueryBuilderParametersPanel.js.map +1 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts +11 -2
- package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts.map +1 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.js +35 -10
- package/lib/components/QueryBuilderPropertyExpressionEditor.js.map +1 -1
- package/lib/components/QueryBuilderSideBar.d.ts.map +1 -1
- package/lib/components/QueryBuilderSideBar.js +6 -1
- package/lib/components/QueryBuilderSideBar.js.map +1 -1
- package/lib/components/QueryBuilderTextEditor.d.ts.map +1 -1
- package/lib/components/QueryBuilderTextEditor.js +3 -3
- package/lib/components/QueryBuilderTextEditor.js.map +1 -1
- package/lib/components/QueryLoader.d.ts.map +1 -1
- package/lib/components/QueryLoader.js +90 -39
- package/lib/components/QueryLoader.js.map +1 -1
- package/lib/components/QueryUsageViewer.d.ts.map +1 -1
- package/lib/components/QueryUsageViewer.js +2 -2
- package/lib/components/QueryUsageViewer.js.map +1 -1
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.d.ts +2 -0
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.d.ts.map +1 -1
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js +19 -2
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js.map +1 -1
- package/lib/components/data-access/DataAccessOverview.d.ts.map +1 -1
- package/lib/components/data-access/DataAccessOverview.js +6 -1
- package/lib/components/data-access/DataAccessOverview.js.map +1 -1
- package/lib/components/execution-plan/ExecutionPlanViewer.d.ts.map +1 -1
- package/lib/components/execution-plan/ExecutionPlanViewer.js +6 -6
- package/lib/components/execution-plan/ExecutionPlanViewer.js.map +1 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts.map +1 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.js +3 -2
- package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
- package/lib/components/explorer/QueryBuilderMilestoningEditor.d.ts.map +1 -1
- package/lib/components/explorer/QueryBuilderMilestoningEditor.js +3 -2
- package/lib/components/explorer/QueryBuilderMilestoningEditor.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.js +6 -3
- package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js +4 -3
- 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 +11 -22
- 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 +2 -2
- package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.js.map +1 -1
- package/lib/components/result/QueryBuilderResultPanel.d.ts.map +1 -1
- package/lib/components/result/QueryBuilderResultPanel.js +2 -1
- package/lib/components/result/QueryBuilderResultPanel.js.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSGridResult.d.ts.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSGridResult.js +5 -1
- package/lib/components/result/tds/QueryBuilderTDSGridResult.js.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.d.ts.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.js +11 -2
- package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.js.map +1 -1
- package/lib/components/shared/BasicValueSpecificationEditor.d.ts.map +1 -1
- package/lib/components/shared/BasicValueSpecificationEditor.js +25 -22
- package/lib/components/shared/BasicValueSpecificationEditor.js.map +1 -1
- package/lib/components/shared/CustomDatePicker.d.ts.map +1 -1
- package/lib/components/shared/CustomDatePicker.js +8 -5
- package/lib/components/shared/CustomDatePicker.js.map +1 -1
- package/lib/components/shared/LambdaEditor.d.ts.map +1 -1
- package/lib/components/shared/LambdaEditor.js +17 -3
- package/lib/components/shared/LambdaEditor.js.map +1 -1
- package/lib/components/shared/LambdaParameterValuesEditor.d.ts.map +1 -1
- package/lib/components/shared/LambdaParameterValuesEditor.js +2 -2
- package/lib/components/shared/LambdaParameterValuesEditor.js.map +1 -1
- package/lib/components/shared/QueryBuilderPropertyInfoTooltip.d.ts +6 -0
- package/lib/components/shared/QueryBuilderPropertyInfoTooltip.d.ts.map +1 -1
- package/lib/components/shared/QueryBuilderPropertyInfoTooltip.js +40 -3
- package/lib/components/shared/QueryBuilderPropertyInfoTooltip.js.map +1 -1
- package/lib/components/watermark/QueryBuilderWatermark.d.ts.map +1 -1
- package/lib/components/watermark/QueryBuilderWatermark.js +28 -12
- package/lib/components/watermark/QueryBuilderWatermark.js.map +1 -1
- package/lib/index.css +17 -1
- package/lib/index.css.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/QueryBuilderConstantsState.d.ts +1 -0
- package/lib/stores/QueryBuilderConstantsState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderConstantsState.js +7 -1
- package/lib/stores/QueryBuilderConstantsState.js.map +1 -1
- package/lib/stores/QueryBuilder_LegendApplicationPlugin_Extension.d.ts +24 -1
- package/lib/stores/QueryBuilder_LegendApplicationPlugin_Extension.d.ts.map +1 -1
- package/lib/stores/QueryLoaderState.d.ts +14 -4
- package/lib/stores/QueryLoaderState.d.ts.map +1 -1
- package/lib/stores/QueryLoaderState.js +35 -5
- package/lib/stores/QueryLoaderState.js.map +1 -1
- package/lib/stores/watermark/QueryBuilderWatermarkState.d.ts +1 -2
- package/lib/stores/watermark/QueryBuilderWatermarkState.d.ts.map +1 -1
- package/lib/stores/watermark/QueryBuilderWatermarkState.js +2 -12
- package/lib/stores/watermark/QueryBuilderWatermarkState.js.map +1 -1
- package/package.json +8 -8
- package/src/components/QueryBuilder.tsx +14 -2
- package/src/components/QueryBuilderConstantExpressionPanel.tsx +145 -69
- package/src/components/QueryBuilderDiffPanel.tsx +10 -2
- package/src/components/QueryBuilderParametersPanel.tsx +42 -37
- package/src/components/QueryBuilderPropertyExpressionEditor.tsx +87 -24
- package/src/components/QueryBuilderSideBar.tsx +20 -0
- package/src/components/QueryBuilderTextEditor.tsx +6 -4
- package/src/components/QueryLoader.tsx +291 -130
- package/src/components/QueryUsageViewer.tsx +7 -1
- package/src/components/__test-utils__/QueryBuilderComponentTestUtils.tsx +40 -4
- package/src/components/data-access/DataAccessOverview.tsx +9 -1
- package/src/components/execution-plan/ExecutionPlanViewer.tsx +11 -8
- package/src/components/explorer/QueryBuilderExplorerPanel.tsx +5 -2
- package/src/components/explorer/QueryBuilderMilestoningEditor.tsx +5 -2
- package/src/components/fetch-structure/QueryBuilderGraphFetchTreePanel.tsx +12 -5
- package/src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx +8 -4
- package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +56 -72
- package/src/components/fetch-structure/QueryBuilderTDSWindowPanel.tsx +8 -2
- package/src/components/result/QueryBuilderResultPanel.tsx +8 -1
- package/src/components/result/tds/QueryBuilderTDSGridResult.tsx +6 -3
- package/src/components/result/tds/QueryBuilderTDSSimpleGridResult.tsx +14 -4
- package/src/components/shared/BasicValueSpecificationEditor.tsx +39 -25
- package/src/components/shared/CustomDatePicker.tsx +18 -5
- package/src/components/shared/LambdaEditor.tsx +27 -11
- package/src/components/shared/LambdaParameterValuesEditor.tsx +4 -1
- package/src/components/shared/QueryBuilderPropertyInfoTooltip.tsx +115 -64
- package/src/components/watermark/QueryBuilderWatermark.tsx +60 -19
- package/src/stores/QueryBuilderConstantsState.ts +12 -0
- package/src/stores/QueryBuilder_LegendApplicationPlugin_Extension.ts +39 -1
- package/src/stores/QueryLoaderState.ts +64 -12
- package/src/stores/watermark/QueryBuilderWatermarkState.ts +2 -12
|
@@ -14,7 +14,13 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
useCallback,
|
|
19
|
+
useEffect,
|
|
20
|
+
useRef,
|
|
21
|
+
useState,
|
|
22
|
+
type ChangeEvent,
|
|
23
|
+
} from 'react';
|
|
18
24
|
import {
|
|
19
25
|
clsx,
|
|
20
26
|
Dialog,
|
|
@@ -26,6 +32,7 @@ import {
|
|
|
26
32
|
ModalBody,
|
|
27
33
|
ModalFooter,
|
|
28
34
|
ModalFooterButton,
|
|
35
|
+
InputWithInlineValidation,
|
|
29
36
|
} from '@finos/legend-art';
|
|
30
37
|
import { observer } from 'mobx-react-lite';
|
|
31
38
|
import {
|
|
@@ -301,6 +308,8 @@ const DerivedPropertyExpressionEditor = observer(
|
|
|
301
308
|
export const QueryBuilderPropertyExpressionEditor = observer(
|
|
302
309
|
(props: { propertyExpressionState: QueryBuilderPropertyExpressionState }) => {
|
|
303
310
|
const { propertyExpressionState } = props;
|
|
311
|
+
const applicationStore =
|
|
312
|
+
propertyExpressionState.queryBuilderState.applicationStore;
|
|
304
313
|
const handleClose = (): void =>
|
|
305
314
|
propertyExpressionState.setIsEditingDerivedProperty(false);
|
|
306
315
|
const isParameterCompatibleWithDerivedProperty = (
|
|
@@ -334,7 +343,9 @@ export const QueryBuilderPropertyExpressionEditor = observer(
|
|
|
334
343
|
}}
|
|
335
344
|
>
|
|
336
345
|
<Modal
|
|
337
|
-
darkMode={
|
|
346
|
+
darkMode={
|
|
347
|
+
!applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled
|
|
348
|
+
}
|
|
338
349
|
className="editor-modal query-builder-property-editor"
|
|
339
350
|
>
|
|
340
351
|
<ModalHeader title="Derived Property" />
|
|
@@ -368,6 +379,72 @@ export const QueryBuilderPropertyExpressionEditor = observer(
|
|
|
368
379
|
},
|
|
369
380
|
);
|
|
370
381
|
|
|
382
|
+
export const QueryBuilderEditablePropertyName = observer(
|
|
383
|
+
(props: {
|
|
384
|
+
columnName: string;
|
|
385
|
+
changeColumnName?:
|
|
386
|
+
| ((event: ChangeEvent<HTMLInputElement>) => void)
|
|
387
|
+
| undefined;
|
|
388
|
+
error: string | undefined;
|
|
389
|
+
title: string;
|
|
390
|
+
}) => {
|
|
391
|
+
const { columnName, changeColumnName, error, title } = props;
|
|
392
|
+
|
|
393
|
+
const [isEditingColumnName, setIsEditingColumnName] = useState(false);
|
|
394
|
+
const columnNameInputRef = useRef<HTMLInputElement>(null);
|
|
395
|
+
|
|
396
|
+
useEffect(() => {
|
|
397
|
+
if (isEditingColumnName) {
|
|
398
|
+
columnNameInputRef.current?.focus();
|
|
399
|
+
}
|
|
400
|
+
}, [isEditingColumnName, columnNameInputRef]);
|
|
401
|
+
|
|
402
|
+
return isEditingColumnName ? (
|
|
403
|
+
<div className="query-builder__property__name__editor">
|
|
404
|
+
<InputWithInlineValidation
|
|
405
|
+
className="query-builder__property__name__editor__input input-group__input"
|
|
406
|
+
spellCheck={false}
|
|
407
|
+
value={columnName}
|
|
408
|
+
onChange={changeColumnName}
|
|
409
|
+
onKeyDown={(event: React.KeyboardEvent<HTMLInputElement>) => {
|
|
410
|
+
if (event.key === 'Enter') {
|
|
411
|
+
setIsEditingColumnName(false);
|
|
412
|
+
}
|
|
413
|
+
}}
|
|
414
|
+
onBlur={() => {
|
|
415
|
+
setIsEditingColumnName(false);
|
|
416
|
+
}}
|
|
417
|
+
error={error}
|
|
418
|
+
ref={columnNameInputRef}
|
|
419
|
+
draggable={true}
|
|
420
|
+
onDragStart={(e: React.DragEvent<HTMLInputElement>) => {
|
|
421
|
+
// The below 2 lines are to allow dragging to select text in the input instead of
|
|
422
|
+
// dragging the draggable element containing the input.
|
|
423
|
+
e.preventDefault();
|
|
424
|
+
e.stopPropagation();
|
|
425
|
+
}}
|
|
426
|
+
/>
|
|
427
|
+
</div>
|
|
428
|
+
) : (
|
|
429
|
+
<div className="query-builder__property__name__display" title={title}>
|
|
430
|
+
<span
|
|
431
|
+
className={clsx('query-builder__property__name__display__content', {
|
|
432
|
+
'query-builder__property__name__display__content--error': error,
|
|
433
|
+
'editable-value': changeColumnName,
|
|
434
|
+
})}
|
|
435
|
+
onClick={() => {
|
|
436
|
+
if (changeColumnName) {
|
|
437
|
+
setIsEditingColumnName(true);
|
|
438
|
+
}
|
|
439
|
+
}}
|
|
440
|
+
>
|
|
441
|
+
{columnName}
|
|
442
|
+
</span>
|
|
443
|
+
</div>
|
|
444
|
+
);
|
|
445
|
+
},
|
|
446
|
+
);
|
|
447
|
+
|
|
371
448
|
export const QueryBuilderPropertyExpressionBadge = observer(
|
|
372
449
|
(props: {
|
|
373
450
|
columnName?: string;
|
|
@@ -375,14 +452,14 @@ export const QueryBuilderPropertyExpressionBadge = observer(
|
|
|
375
452
|
onPropertyExpressionChange: (
|
|
376
453
|
node: QueryBuilderExplorerTreePropertyNodeData,
|
|
377
454
|
) => void;
|
|
378
|
-
|
|
379
|
-
error?:
|
|
455
|
+
changeColumnName?: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
456
|
+
error?: string | undefined;
|
|
380
457
|
}) => {
|
|
381
458
|
const {
|
|
382
459
|
columnName,
|
|
383
460
|
propertyExpressionState,
|
|
384
461
|
onPropertyExpressionChange,
|
|
385
|
-
|
|
462
|
+
changeColumnName,
|
|
386
463
|
error,
|
|
387
464
|
} = props;
|
|
388
465
|
const type =
|
|
@@ -446,26 +523,12 @@ export const QueryBuilderPropertyExpressionBadge = observer(
|
|
|
446
523
|
},
|
|
447
524
|
)}
|
|
448
525
|
>
|
|
449
|
-
<
|
|
450
|
-
|
|
526
|
+
<QueryBuilderEditablePropertyName
|
|
527
|
+
columnName={columnName ?? propertyExpressionState.title}
|
|
528
|
+
changeColumnName={changeColumnName}
|
|
529
|
+
error={error}
|
|
451
530
|
title={`${propertyExpressionState.title} - ${propertyExpressionState.path}`}
|
|
452
|
-
|
|
453
|
-
<span
|
|
454
|
-
className={clsx(
|
|
455
|
-
'query-builder-property-expression-badge__property__content',
|
|
456
|
-
{
|
|
457
|
-
'query-builder-property-expression-badge__property__content--error':
|
|
458
|
-
error,
|
|
459
|
-
'editable-value': !!setIsEditingColumnName,
|
|
460
|
-
},
|
|
461
|
-
)}
|
|
462
|
-
onClick={() => {
|
|
463
|
-
setIsEditingColumnName?.(true);
|
|
464
|
-
}}
|
|
465
|
-
>
|
|
466
|
-
{columnName ?? propertyExpressionState.title}
|
|
467
|
-
</span>
|
|
468
|
-
</div>
|
|
531
|
+
/>
|
|
469
532
|
{hasDerivedPropertyInExpression && (
|
|
470
533
|
<button
|
|
471
534
|
className={clsx(
|
|
@@ -49,6 +49,7 @@ import {
|
|
|
49
49
|
type PackageableElementOption,
|
|
50
50
|
} from '@finos/legend-lego/graph-editor';
|
|
51
51
|
import { MilestoningParametersEditor } from './explorer/QueryBuilderMilestoningEditor.js';
|
|
52
|
+
import type { QueryBuilder_LegendApplicationPlugin_Extension } from '../stores/QueryBuilder_LegendApplicationPlugin_Extension.js';
|
|
52
53
|
|
|
53
54
|
export const getParameterValue = (
|
|
54
55
|
parameter: ValueSpecification | undefined,
|
|
@@ -602,6 +603,22 @@ export const QueryBuilderSidebar = observer(
|
|
|
602
603
|
children: React.ReactNode;
|
|
603
604
|
}) => {
|
|
604
605
|
const { queryBuilderState, children } = props;
|
|
606
|
+
const applicationStore = useApplicationStore();
|
|
607
|
+
const extraTemplateQueryPanelContentRenderer =
|
|
608
|
+
applicationStore.pluginManager
|
|
609
|
+
.getApplicationPlugins()
|
|
610
|
+
.flatMap(
|
|
611
|
+
(plugin) =>
|
|
612
|
+
(
|
|
613
|
+
plugin as QueryBuilder_LegendApplicationPlugin_Extension
|
|
614
|
+
).getExtraTemplateQueryPanelContentRenderer?.() ?? [],
|
|
615
|
+
);
|
|
616
|
+
const templateQueryPanelContentTab =
|
|
617
|
+
extraTemplateQueryPanelContentRenderer[0] ? (
|
|
618
|
+
extraTemplateQueryPanelContentRenderer[0](queryBuilderState)
|
|
619
|
+
) : (
|
|
620
|
+
<></>
|
|
621
|
+
);
|
|
605
622
|
|
|
606
623
|
return (
|
|
607
624
|
<div
|
|
@@ -620,6 +637,9 @@ export const QueryBuilderSidebar = observer(
|
|
|
620
637
|
)}
|
|
621
638
|
</div>
|
|
622
639
|
</div>
|
|
640
|
+
<div className="query-builder__template-query">
|
|
641
|
+
{templateQueryPanelContentTab}
|
|
642
|
+
</div>
|
|
623
643
|
<div className="query-builder__side-bar__content">{children}</div>
|
|
624
644
|
</div>
|
|
625
645
|
);
|
|
@@ -71,7 +71,9 @@ export const QueryBuilderTextEditor = observer(
|
|
|
71
71
|
}}
|
|
72
72
|
>
|
|
73
73
|
<Modal
|
|
74
|
-
darkMode={
|
|
74
|
+
darkMode={
|
|
75
|
+
!applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled
|
|
76
|
+
}
|
|
75
77
|
className={clsx('editor-modal query-builder-text-mode__modal', {
|
|
76
78
|
'query-builder-text-mode__modal--has-error': Boolean(
|
|
77
79
|
queryTextEditorState.parserError,
|
|
@@ -135,13 +137,13 @@ export const QueryBuilderTextEditor = observer(
|
|
|
135
137
|
text="Discard Changes"
|
|
136
138
|
/>
|
|
137
139
|
)}
|
|
138
|
-
<
|
|
139
|
-
className="btn btn--dark"
|
|
140
|
+
<ModalFooterButton
|
|
140
141
|
onClick={close}
|
|
141
142
|
disabled={
|
|
142
143
|
Boolean(queryTextEditorState.parserError) ||
|
|
143
144
|
queryBuilderState.textEditorState.closingQueryState.isInProgress
|
|
144
145
|
}
|
|
146
|
+
type="secondary"
|
|
145
147
|
>
|
|
146
148
|
{queryBuilderState.textEditorState.closingQueryState
|
|
147
149
|
.isInProgress ? (
|
|
@@ -154,7 +156,7 @@ export const QueryBuilderTextEditor = observer(
|
|
|
154
156
|
) : (
|
|
155
157
|
<> Close </>
|
|
156
158
|
)}
|
|
157
|
-
</
|
|
159
|
+
</ModalFooterButton>
|
|
158
160
|
</ModalFooter>
|
|
159
161
|
</Modal>
|
|
160
162
|
</Dialog>
|