@finos/legend-query-builder 4.14.52 → 4.14.53
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/components/QueryBuilder.d.ts.map +1 -1
- package/lib/components/QueryBuilder.js +1 -0
- package/lib/components/QueryBuilder.js.map +1 -1
- package/lib/components/explorer/QueryBuilderMilestoningParameterEditor.d.ts +2 -0
- package/lib/components/explorer/QueryBuilderMilestoningParameterEditor.d.ts.map +1 -1
- package/lib/components/explorer/QueryBuilderMilestoningParameterEditor.js +14 -7
- package/lib/components/explorer/QueryBuilderMilestoningParameterEditor.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js +35 -10
- 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 +4 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js.map +1 -1
- package/lib/components/shared/QueryBuilderVariableSelector.d.ts +3 -0
- package/lib/components/shared/QueryBuilderVariableSelector.d.ts.map +1 -1
- package/lib/components/shared/QueryBuilderVariableSelector.js +2 -2
- package/lib/components/shared/QueryBuilderVariableSelector.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/QueryBuilderState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderState.js +1 -0
- package/lib/stores/QueryBuilderState.js.map +1 -1
- package/lib/stores/QueryBuilder_LegendApplicationPlugin_Extension.d.ts +1 -1
- package/lib/stores/QueryBuilder_LegendApplicationPlugin_Extension.d.ts.map +1 -1
- package/lib/stores/milestoning/QueryBuilderMilestoningState.d.ts +2 -2
- package/lib/stores/milestoning/QueryBuilderMilestoningState.d.ts.map +1 -1
- package/lib/stores/milestoning/QueryBuilderMilestoningState.js +15 -4
- package/lib/stores/milestoning/QueryBuilderMilestoningState.js.map +1 -1
- package/package.json +1 -1
- package/src/components/QueryBuilder.tsx +1 -0
- package/src/components/explorer/QueryBuilderMilestoningParameterEditor.tsx +60 -22
- package/src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx +155 -59
- package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +11 -1
- package/src/components/shared/QueryBuilderVariableSelector.tsx +9 -3
- package/src/index.ts +1 -0
- package/src/stores/QueryBuilderState.ts +1 -0
- package/src/stores/QueryBuilder_LegendApplicationPlugin_Extension.ts +1 -1
- package/src/stores/milestoning/QueryBuilderMilestoningState.ts +22 -9
@@ -419,6 +419,22 @@ export const QueryResultModifierModal = observer(
|
|
419
419
|
);
|
420
420
|
const [startDate, setStartDate] = useState(milestoningState.startDate);
|
421
421
|
const [endDate, setEndDate] = useState(milestoningState.endDate);
|
422
|
+
const [businessDateValue, setBusinessDateValue] = useState(
|
423
|
+
milestoningState.getMilestoningParameterValue(
|
424
|
+
milestoningState.businessDate,
|
425
|
+
),
|
426
|
+
);
|
427
|
+
const [processingDateValue, setProcessingDateValue] = useState(
|
428
|
+
milestoningState.getMilestoningParameterValue(
|
429
|
+
milestoningState.processingDate,
|
430
|
+
),
|
431
|
+
);
|
432
|
+
const [startDateValue, setStartDateValue] = useState(
|
433
|
+
milestoningState.getMilestoningParameterValue(milestoningState.startDate),
|
434
|
+
);
|
435
|
+
const [endDateValue, setEndDateValue] = useState(
|
436
|
+
milestoningState.getMilestoningParameterValue(milestoningState.endDate),
|
437
|
+
);
|
422
438
|
|
423
439
|
const shouldFilterMilestoningParamIfNotUsed = (
|
424
440
|
param: ValueSpecification | undefined,
|
@@ -491,28 +507,28 @@ export const QueryResultModifierModal = observer(
|
|
491
507
|
);
|
492
508
|
setParameterStates(allParamStates);
|
493
509
|
if (!businessDate) {
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
milestoningState.businessDate
|
500
|
-
|
501
|
-
: BUSINESS_DATE_MILESTONING_PROPERTY_NAME),
|
502
|
-
)?.parameter,
|
510
|
+
const lambdaParamState = allParamStates.find(
|
511
|
+
(ps) =>
|
512
|
+
ps.variableName ===
|
513
|
+
(milestoningState.businessDate &&
|
514
|
+
milestoningState.businessDate instanceof VariableExpression
|
515
|
+
? milestoningState.businessDate.name
|
516
|
+
: BUSINESS_DATE_MILESTONING_PROPERTY_NAME),
|
503
517
|
);
|
518
|
+
setBusinessDate(lambdaParamState?.parameter);
|
519
|
+
setBusinessDateValue(lambdaParamState?.value);
|
504
520
|
}
|
505
521
|
if (!processingDate) {
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
milestoningState.processingDate
|
512
|
-
|
513
|
-
: PROCESSING_DATE_MILESTONING_PROPERTY_NAME),
|
514
|
-
)?.parameter,
|
522
|
+
const lambdaParamState = allParamStates.find(
|
523
|
+
(ps) =>
|
524
|
+
ps.variableName ===
|
525
|
+
(milestoningState.businessDate &&
|
526
|
+
milestoningState.processingDate instanceof VariableExpression
|
527
|
+
? milestoningState.processingDate.name
|
528
|
+
: PROCESSING_DATE_MILESTONING_PROPERTY_NAME),
|
515
529
|
);
|
530
|
+
setProcessingDate(lambdaParamState?.parameter);
|
531
|
+
setProcessingDateValue(lambdaParamState?.value);
|
516
532
|
}
|
517
533
|
}
|
518
534
|
setIsAllVersionsEnabled(Boolean(value));
|
@@ -552,6 +568,7 @@ export const QueryResultModifierModal = observer(
|
|
552
568
|
MILESTONING_START_DATE_PARAMETER_NAME,
|
553
569
|
);
|
554
570
|
setStartDate(startDateParameterState.parameter);
|
571
|
+
setStartDateValue(startDateParameterState.value);
|
555
572
|
}
|
556
573
|
if (!(endDate && endDate instanceof VariableExpression)) {
|
557
574
|
endDateParameterState = getOrCreateNewLambdaParameterState(
|
@@ -559,6 +576,7 @@ export const QueryResultModifierModal = observer(
|
|
559
576
|
MILESTONING_END_DATE_PARAMETER_NAME,
|
560
577
|
);
|
561
578
|
setEndDate(endDateParameterState.parameter);
|
579
|
+
setEndDateValue(endDateParameterState.value);
|
562
580
|
}
|
563
581
|
setParameterStates([
|
564
582
|
...new Set([
|
@@ -601,6 +619,24 @@ export const QueryResultModifierModal = observer(
|
|
601
619
|
setParameterStates(
|
602
620
|
milestoningState.queryBuilderState.parametersState.parameterStates,
|
603
621
|
);
|
622
|
+
setStartDateValue(
|
623
|
+
milestoningState.getMilestoningParameterValue(
|
624
|
+
milestoningState.startDate,
|
625
|
+
),
|
626
|
+
);
|
627
|
+
setEndDateValue(
|
628
|
+
milestoningState.getMilestoningParameterValue(milestoningState.endDate),
|
629
|
+
);
|
630
|
+
setProcessingDateValue(
|
631
|
+
milestoningState.getMilestoningParameterValue(
|
632
|
+
milestoningState.processingDate,
|
633
|
+
),
|
634
|
+
);
|
635
|
+
setBusinessDateValue(
|
636
|
+
milestoningState.getMilestoningParameterValue(
|
637
|
+
milestoningState.businessDate,
|
638
|
+
),
|
639
|
+
);
|
604
640
|
};
|
605
641
|
|
606
642
|
// Handle user actions
|
@@ -630,6 +666,11 @@ export const QueryResultModifierModal = observer(
|
|
630
666
|
milestoningState.queryBuilderState.setGetAllFunction(
|
631
667
|
QUERY_BUILDER_SUPPORTED_GET_ALL_FUNCTIONS.GET_ALL_VERSIONS_IN_RANGE,
|
632
668
|
);
|
669
|
+
milestoningState.updateMilestoningParameterValue(
|
670
|
+
startDate,
|
671
|
+
startDateValue,
|
672
|
+
);
|
673
|
+
milestoningState.updateMilestoningParameterValue(endDate, endDateValue);
|
633
674
|
} else if (isAllVersionsEnabled) {
|
634
675
|
milestoningState.clearGetAllParameters();
|
635
676
|
milestoningState.queryBuilderState.setGetAllFunction(
|
@@ -644,6 +685,14 @@ export const QueryResultModifierModal = observer(
|
|
644
685
|
milestoningState.queryBuilderState.setGetAllFunction(
|
645
686
|
QUERY_BUILDER_SUPPORTED_GET_ALL_FUNCTIONS.GET_ALL,
|
646
687
|
);
|
688
|
+
milestoningState.updateMilestoningParameterValue(
|
689
|
+
processingDate,
|
690
|
+
processingDateValue,
|
691
|
+
);
|
692
|
+
milestoningState.updateMilestoningParameterValue(
|
693
|
+
businessDate,
|
694
|
+
businessDateValue,
|
695
|
+
);
|
647
696
|
}
|
648
697
|
milestoningState.updateQueryBuilderState();
|
649
698
|
};
|
@@ -660,7 +709,26 @@ export const QueryResultModifierModal = observer(
|
|
660
709
|
setParameterStates(
|
661
710
|
milestoningState.queryBuilderState.parametersState.parameterStates,
|
662
711
|
);
|
712
|
+
setStartDateValue(
|
713
|
+
milestoningState.getMilestoningParameterValue(
|
714
|
+
milestoningState.startDate,
|
715
|
+
),
|
716
|
+
);
|
717
|
+
setEndDateValue(
|
718
|
+
milestoningState.getMilestoningParameterValue(milestoningState.endDate),
|
719
|
+
);
|
720
|
+
setProcessingDateValue(
|
721
|
+
milestoningState.getMilestoningParameterValue(
|
722
|
+
milestoningState.processingDate,
|
723
|
+
),
|
724
|
+
);
|
725
|
+
setBusinessDateValue(
|
726
|
+
milestoningState.getMilestoningParameterValue(
|
727
|
+
milestoningState.businessDate,
|
728
|
+
),
|
729
|
+
);
|
663
730
|
}, [
|
731
|
+
milestoningState,
|
664
732
|
milestoningState.isAllVersionsEnabled,
|
665
733
|
milestoningState.isAllVersionsInRangeEnabled,
|
666
734
|
milestoningState.queryBuilderState.parametersState.parameterStates,
|
@@ -724,24 +792,34 @@ export const QueryResultModifierModal = observer(
|
|
724
792
|
<div className="panel__content__form__section__header__label">
|
725
793
|
Start Date
|
726
794
|
</div>
|
795
|
+
<div className="panel__content__form__section__header__prompt">
|
796
|
+
Choose a value for this milestoning parameter
|
797
|
+
</div>
|
727
798
|
<MilestoningParameterEditor
|
728
799
|
queryBuilderState={
|
729
800
|
milestoningState.queryBuilderState
|
730
801
|
}
|
731
802
|
parameter={startDate}
|
732
803
|
setParameter={setStartDate}
|
804
|
+
parameterValue={startDateValue}
|
805
|
+
setParameterValue={setStartDateValue}
|
733
806
|
/>
|
734
807
|
</PanelFormSection>
|
735
808
|
<PanelFormSection>
|
736
809
|
<div className="panel__content__form__section__header__label">
|
737
810
|
End Date
|
738
811
|
</div>
|
812
|
+
<div className="panel__content__form__section__header__prompt">
|
813
|
+
Choose a value for this milestoning parameter
|
814
|
+
</div>
|
739
815
|
<MilestoningParameterEditor
|
740
816
|
queryBuilderState={
|
741
817
|
milestoningState.queryBuilderState
|
742
818
|
}
|
743
819
|
parameter={endDate}
|
744
820
|
setParameter={setEndDate}
|
821
|
+
parameterValue={endDateValue}
|
822
|
+
setParameterValue={setEndDateValue}
|
745
823
|
/>
|
746
824
|
</PanelFormSection>
|
747
825
|
</div>
|
@@ -755,12 +833,17 @@ export const QueryResultModifierModal = observer(
|
|
755
833
|
<div className="panel__content__form__section__header__label">
|
756
834
|
Processing Date
|
757
835
|
</div>
|
836
|
+
<div className="panel__content__form__section__header__prompt">
|
837
|
+
Choose a value for this milestoning parameter
|
838
|
+
</div>
|
758
839
|
<MilestoningParameterEditor
|
759
840
|
queryBuilderState={
|
760
841
|
milestoningState.queryBuilderState
|
761
842
|
}
|
762
843
|
parameter={processingDate}
|
763
844
|
setParameter={setProcessingDate}
|
845
|
+
parameterValue={processingDateValue}
|
846
|
+
setParameterValue={setProcessingDateValue}
|
764
847
|
/>
|
765
848
|
</PanelFormSection>
|
766
849
|
)}
|
@@ -769,58 +852,71 @@ export const QueryResultModifierModal = observer(
|
|
769
852
|
<div className="panel__content__form__section__header__label">
|
770
853
|
Business Date
|
771
854
|
</div>
|
855
|
+
<div className="panel__content__form__section__header__prompt">
|
856
|
+
Choose a value for this milestoning parameter
|
857
|
+
</div>
|
772
858
|
<MilestoningParameterEditor
|
773
859
|
queryBuilderState={
|
774
860
|
milestoningState.queryBuilderState
|
775
861
|
}
|
776
862
|
parameter={businessDate}
|
777
863
|
setParameter={setBusinessDate}
|
864
|
+
parameterValue={businessDateValue}
|
865
|
+
setParameterValue={setBusinessDateValue}
|
778
866
|
/>
|
779
867
|
</PanelFormSection>
|
780
868
|
)}
|
781
869
|
</>
|
782
870
|
)}
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
871
|
+
{!(isAllVersionsEnabled && !isAllVersionsInRangeEnabled) && (
|
872
|
+
<>
|
873
|
+
<PanelFormSection>
|
874
|
+
<div className="panel__content__form__section__header__label">
|
875
|
+
List of compatible milestoning parameters
|
876
|
+
</div>
|
877
|
+
</PanelFormSection>
|
878
|
+
<div className="panel__content__form__section__list__items">
|
879
|
+
{filteredParameterStates.length > 0 && (
|
880
|
+
<PanelFormListItems title="Available parameters">
|
881
|
+
{filteredParameterStates.map((pState) => (
|
882
|
+
<VariableViewer
|
883
|
+
key={pState.uuid}
|
884
|
+
variable={pState.parameter}
|
885
|
+
isReadOnly={true}
|
886
|
+
queryBuilderState={
|
887
|
+
milestoningState.queryBuilderState
|
888
|
+
}
|
889
|
+
option={{
|
890
|
+
hideMilestoningParameterValueString: true,
|
891
|
+
}}
|
892
|
+
/>
|
893
|
+
))}
|
894
|
+
</PanelFormListItems>
|
895
|
+
)}
|
896
|
+
{Boolean(filteredConstantState.length) && (
|
897
|
+
<PanelFormListItems title="Available constants">
|
898
|
+
{filteredConstantState.map((constantState) => (
|
899
|
+
<VariableViewer
|
900
|
+
key={constantState.uuid}
|
901
|
+
variable={constantState.variable}
|
902
|
+
value={{
|
903
|
+
val:
|
904
|
+
constantState instanceof
|
905
|
+
QueryBuilderSimpleConstantExpressionState
|
906
|
+
? constantState.value
|
907
|
+
: undefined,
|
908
|
+
}}
|
909
|
+
queryBuilderState={
|
910
|
+
milestoningState.queryBuilderState
|
911
|
+
}
|
912
|
+
isReadOnly={true}
|
913
|
+
/>
|
914
|
+
))}
|
915
|
+
</PanelFormListItems>
|
916
|
+
)}
|
917
|
+
</div>
|
918
|
+
</>
|
919
|
+
)}
|
824
920
|
<div className="query-builder__projection__options__section-name">
|
825
921
|
Other
|
826
922
|
</div>
|
@@ -1353,7 +1353,17 @@ export const QueryBuilderTDSPanel = observer(
|
|
1353
1353
|
: 'Set Query Options'}
|
1354
1354
|
</div>
|
1355
1355
|
</button>
|
1356
|
-
|
1356
|
+
|
1357
|
+
<div
|
1358
|
+
className={clsx(
|
1359
|
+
'query-builder__projection__result-modifier-prompt__divider',
|
1360
|
+
{
|
1361
|
+
'query-builder__projection__result-modifier-prompt__divider--light':
|
1362
|
+
applicationStore.layoutService
|
1363
|
+
.TEMPORARY__isLightColorThemeEnabled,
|
1364
|
+
},
|
1365
|
+
)}
|
1366
|
+
>
|
1357
1367
|
{tdsState.isQueryOptionsSet && ' - '}
|
1358
1368
|
</div>
|
1359
1369
|
{tdsState.queryBuilderState.milestoningState
|
@@ -130,6 +130,9 @@ export const VariableViewer = observer(
|
|
130
130
|
handler: () => void;
|
131
131
|
}[]
|
132
132
|
| undefined;
|
133
|
+
option?: {
|
134
|
+
hideMilestoningParameterValueString?: boolean;
|
135
|
+
};
|
133
136
|
}) => {
|
134
137
|
const {
|
135
138
|
variable,
|
@@ -138,6 +141,7 @@ export const VariableViewer = observer(
|
|
138
141
|
isReadOnly,
|
139
142
|
queryBuilderState,
|
140
143
|
extraContextMenuActions,
|
144
|
+
option,
|
141
145
|
} = props;
|
142
146
|
const isVariableUsed = queryBuilderState.isVariableUsed(variable);
|
143
147
|
const [isSelectedFromContextMenu, setIsSelectedFromContextMenu] =
|
@@ -247,9 +251,11 @@ export const VariableViewer = observer(
|
|
247
251
|
<div className="query-builder__variables__variable__type__label query-builder__variables__variable__type__label--milestoning">
|
248
252
|
milestoning
|
249
253
|
</div>
|
250
|
-
|
251
|
-
|
252
|
-
|
254
|
+
{!option?.hideMilestoningParameterValueString && (
|
255
|
+
<div className="query-builder__constants__value">
|
256
|
+
{milestoningParameterValueString}
|
257
|
+
</div>
|
258
|
+
)}
|
253
259
|
</>
|
254
260
|
)}
|
255
261
|
</div>
|
package/src/index.ts
CHANGED
@@ -54,6 +54,7 @@ export {
|
|
54
54
|
TDS_COLUMN_GETTER,
|
55
55
|
COLUMN_SORT_TYPE,
|
56
56
|
QUERY_BUILDER_SUPPORTED_FUNCTIONS,
|
57
|
+
QUERY_BUILDER_SUPPORTED_GET_ALL_FUNCTIONS,
|
57
58
|
} from './graph/QueryBuilderMetaModelConst.js';
|
58
59
|
export { getQueryBuilderGraphManagerExtension } from './graph-manager/protocol/pure/QueryBuilder_PureGraphManagerExtension.js';
|
59
60
|
export type { ServiceExecutionAnalysisResult } from './graph-manager/action/analytics/ServiceExecutionAnalysis.js';
|
@@ -516,6 +516,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
|
|
516
516
|
this.resetQueryResult();
|
517
517
|
if (!options?.keepQueryContent) {
|
518
518
|
this.resetQueryContent();
|
519
|
+
this.setGetAllFunction(QUERY_BUILDER_SUPPORTED_GET_ALL_FUNCTIONS.GET_ALL);
|
519
520
|
this.milestoningState.updateMilestoningConfiguration();
|
520
521
|
}
|
521
522
|
this.executionContextState.setMapping(val);
|
@@ -86,7 +86,7 @@ export type QueryBuilderHeaderActionConfiguration = {
|
|
86
86
|
export type QueryBuilderMenuActionConfiguration = {
|
87
87
|
key: string;
|
88
88
|
title?: string;
|
89
|
-
disableFunc?: (queryBuilderState: QueryBuilderState) =>
|
89
|
+
disableFunc?: (queryBuilderState: QueryBuilderState) => boolean;
|
90
90
|
label: string;
|
91
91
|
onClick: (queryBuilderState: QueryBuilderState) => void;
|
92
92
|
icon?: React.ReactNode;
|
@@ -482,20 +482,22 @@ export class QueryBuilderMilestoningState implements Hashable {
|
|
482
482
|
}
|
483
483
|
|
484
484
|
updateMilestoningParameterValue(
|
485
|
-
parameter:
|
485
|
+
parameter: ValueSpecification | undefined,
|
486
486
|
value: ValueSpecification | undefined,
|
487
487
|
): void {
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
variableState
|
488
|
+
if (parameter instanceof VariableExpression) {
|
489
|
+
const variableState =
|
490
|
+
this.queryBuilderState.parametersState.parameterStates.find(
|
491
|
+
(param) => param.parameter.name === parameter.name,
|
492
|
+
);
|
493
|
+
if (variableState) {
|
494
|
+
variableState.setValue(value);
|
495
|
+
}
|
494
496
|
}
|
495
497
|
}
|
496
498
|
|
497
499
|
getMilestoningParameterValue(
|
498
|
-
milestoningParameter: ValueSpecification,
|
500
|
+
milestoningParameter: ValueSpecification | undefined,
|
499
501
|
): ValueSpecification | undefined {
|
500
502
|
let value: ValueSpecification | undefined = milestoningParameter;
|
501
503
|
if (milestoningParameter instanceof VariableExpression) {
|
@@ -515,7 +517,18 @@ export class QueryBuilderMilestoningState implements Hashable {
|
|
515
517
|
const usedInProcessingDate = this.processingDate
|
516
518
|
? isValueExpressionReferencedInValue(variable, this.processingDate)
|
517
519
|
: false;
|
518
|
-
|
520
|
+
const usedInStartDate = this.startDate
|
521
|
+
? isValueExpressionReferencedInValue(variable, this.startDate)
|
522
|
+
: false;
|
523
|
+
const usedInEndState = this.endDate
|
524
|
+
? isValueExpressionReferencedInValue(variable, this.endDate)
|
525
|
+
: false;
|
526
|
+
return (
|
527
|
+
usedInBusiness ||
|
528
|
+
usedInProcessingDate ||
|
529
|
+
usedInStartDate ||
|
530
|
+
usedInEndState
|
531
|
+
);
|
519
532
|
}
|
520
533
|
|
521
534
|
isMilestoningParameter(parameter: VariableExpression): boolean {
|