@finos/legend-query-builder 4.14.46 → 4.14.48

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. package/lib/__lib__/QueryBuilderDocumentation.d.ts +3 -1
  2. package/lib/__lib__/QueryBuilderDocumentation.d.ts.map +1 -1
  3. package/lib/__lib__/QueryBuilderDocumentation.js +2 -0
  4. package/lib/__lib__/QueryBuilderDocumentation.js.map +1 -1
  5. package/lib/components/QueryBuilder.d.ts.map +1 -1
  6. package/lib/components/QueryBuilder.js +14 -2
  7. package/lib/components/QueryBuilder.js.map +1 -1
  8. package/lib/components/QueryBuilderSideBar.d.ts.map +1 -1
  9. package/lib/components/QueryBuilderSideBar.js +1 -5
  10. package/lib/components/QueryBuilderSideBar.js.map +1 -1
  11. package/lib/components/explorer/{QueryBuilderMilestoningEditor.d.ts → QueryBuilderMilestoningParameterEditor.d.ts} +5 -2
  12. package/lib/components/explorer/QueryBuilderMilestoningParameterEditor.d.ts.map +1 -0
  13. package/lib/components/explorer/QueryBuilderMilestoningParameterEditor.js +52 -0
  14. package/lib/components/explorer/QueryBuilderMilestoningParameterEditor.js.map +1 -0
  15. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts.map +1 -1
  16. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js +192 -21
  17. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js.map +1 -1
  18. package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts.map +1 -1
  19. package/lib/components/fetch-structure/QueryBuilderTDSPanel.js +13 -3
  20. package/lib/components/fetch-structure/QueryBuilderTDSPanel.js.map +1 -1
  21. package/lib/components/result/tds/QueryBuilderTDSGridResult.d.ts.map +1 -1
  22. package/lib/components/result/tds/QueryBuilderTDSGridResult.js +4 -1
  23. package/lib/components/result/tds/QueryBuilderTDSGridResult.js.map +1 -1
  24. package/lib/components/result/tds/QueryBuilderTDSResultShared.d.ts.map +1 -1
  25. package/lib/components/result/tds/QueryBuilderTDSResultShared.js +2 -5
  26. package/lib/components/result/tds/QueryBuilderTDSResultShared.js.map +1 -1
  27. package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.d.ts.map +1 -1
  28. package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.js +4 -1
  29. package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.js.map +1 -1
  30. package/lib/graph-manager/QueryBuilderConfig.d.ts +4 -0
  31. package/lib/graph-manager/QueryBuilderConfig.d.ts.map +1 -1
  32. package/lib/graph-manager/QueryBuilderConfig.js +5 -0
  33. package/lib/graph-manager/QueryBuilderConfig.js.map +1 -1
  34. package/lib/index.css +1 -17
  35. package/lib/index.css.map +1 -1
  36. package/lib/package.json +1 -1
  37. package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts +2 -1
  38. package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts.map +1 -1
  39. package/lib/stores/QueryBuilderValueSpecificationHelper.js +2 -2
  40. package/lib/stores/QueryBuilderValueSpecificationHelper.js.map +1 -1
  41. package/lib/stores/QueryLoaderState.d.ts +1 -0
  42. package/lib/stores/QueryLoaderState.d.ts.map +1 -1
  43. package/lib/stores/QueryLoaderState.js +1 -0
  44. package/lib/stores/QueryLoaderState.js.map +1 -1
  45. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts +1 -0
  46. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts.map +1 -1
  47. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js +8 -0
  48. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js.map +1 -1
  49. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Percentile.d.ts.map +1 -1
  50. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Percentile.js +4 -2
  51. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Percentile.js.map +1 -1
  52. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.d.ts.map +1 -1
  53. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.js +1 -1
  54. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.js.map +1 -1
  55. package/lib/stores/filter/QueryBuilderFilterStateBuilder.d.ts.map +1 -1
  56. package/lib/stores/filter/QueryBuilderFilterStateBuilder.js +1 -1
  57. package/lib/stores/filter/QueryBuilderFilterStateBuilder.js.map +1 -1
  58. package/lib/stores/milestoning/QueryBuilderBitemporalMilestoningImplementation.d.ts +2 -0
  59. package/lib/stores/milestoning/QueryBuilderBitemporalMilestoningImplementation.d.ts.map +1 -1
  60. package/lib/stores/milestoning/QueryBuilderBitemporalMilestoningImplementation.js +13 -2
  61. package/lib/stores/milestoning/QueryBuilderBitemporalMilestoningImplementation.js.map +1 -1
  62. package/lib/stores/milestoning/QueryBuilderBusinessTemporalMilestoningImplementation.d.ts +2 -0
  63. package/lib/stores/milestoning/QueryBuilderBusinessTemporalMilestoningImplementation.d.ts.map +1 -1
  64. package/lib/stores/milestoning/QueryBuilderBusinessTemporalMilestoningImplementation.js +8 -1
  65. package/lib/stores/milestoning/QueryBuilderBusinessTemporalMilestoningImplementation.js.map +1 -1
  66. package/lib/stores/milestoning/QueryBuilderMilestoningHelper.d.ts +1 -1
  67. package/lib/stores/milestoning/QueryBuilderMilestoningHelper.d.ts.map +1 -1
  68. package/lib/stores/milestoning/QueryBuilderMilestoningHelper.js +25 -1
  69. package/lib/stores/milestoning/QueryBuilderMilestoningHelper.js.map +1 -1
  70. package/lib/stores/milestoning/QueryBuilderMilestoningImplementation.d.ts +2 -0
  71. package/lib/stores/milestoning/QueryBuilderMilestoningImplementation.d.ts.map +1 -1
  72. package/lib/stores/milestoning/QueryBuilderMilestoningImplementation.js.map +1 -1
  73. package/lib/stores/milestoning/QueryBuilderMilestoningState.d.ts +2 -0
  74. package/lib/stores/milestoning/QueryBuilderMilestoningState.d.ts.map +1 -1
  75. package/lib/stores/milestoning/QueryBuilderMilestoningState.js +22 -3
  76. package/lib/stores/milestoning/QueryBuilderMilestoningState.js.map +1 -1
  77. package/lib/stores/milestoning/QueryBuilderProcessingTemporalMilestoningImplementation.d.ts +2 -0
  78. package/lib/stores/milestoning/QueryBuilderProcessingTemporalMilestoningImplementation.d.ts.map +1 -1
  79. package/lib/stores/milestoning/QueryBuilderProcessingTemporalMilestoningImplementation.js +8 -1
  80. package/lib/stores/milestoning/QueryBuilderProcessingTemporalMilestoningImplementation.js.map +1 -1
  81. package/package.json +4 -4
  82. package/src/__lib__/QueryBuilderDocumentation.ts +2 -0
  83. package/src/components/QueryBuilder.tsx +44 -0
  84. package/src/components/QueryBuilderSideBar.tsx +0 -22
  85. package/src/components/explorer/QueryBuilderMilestoningParameterEditor.tsx +114 -0
  86. package/src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx +445 -19
  87. package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +118 -21
  88. package/src/components/result/tds/QueryBuilderTDSGridResult.tsx +3 -0
  89. package/src/components/result/tds/QueryBuilderTDSResultShared.tsx +1 -6
  90. package/src/components/result/tds/QueryBuilderTDSSimpleGridResult.tsx +8 -1
  91. package/src/graph-manager/QueryBuilderConfig.ts +6 -0
  92. package/src/stores/QueryBuilderValueSpecificationHelper.ts +3 -0
  93. package/src/stores/QueryLoaderState.ts +1 -0
  94. package/src/stores/fetch-structure/tds/QueryBuilderTDSState.ts +11 -0
  95. package/src/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Percentile.ts +6 -2
  96. package/src/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.ts +1 -0
  97. package/src/stores/filter/QueryBuilderFilterStateBuilder.ts +1 -0
  98. package/src/stores/milestoning/QueryBuilderBitemporalMilestoningImplementation.ts +23 -0
  99. package/src/stores/milestoning/QueryBuilderBusinessTemporalMilestoningImplementation.ts +13 -0
  100. package/src/stores/milestoning/QueryBuilderMilestoningHelper.ts +45 -0
  101. package/src/stores/milestoning/QueryBuilderMilestoningImplementation.ts +3 -0
  102. package/src/stores/milestoning/QueryBuilderMilestoningState.ts +41 -7
  103. package/src/stores/milestoning/QueryBuilderProcessingTemporalMilestoningImplementation.ts +13 -0
  104. package/tsconfig.json +1 -1
  105. package/lib/components/explorer/QueryBuilderMilestoningEditor.d.ts.map +0 -1
  106. package/lib/components/explorer/QueryBuilderMilestoningEditor.js +0 -102
  107. package/lib/components/explorer/QueryBuilderMilestoningEditor.js.map +0 -1
  108. package/src/components/explorer/QueryBuilderMilestoningEditor.tsx +0 -364
@@ -46,6 +46,7 @@ import {
46
46
  clsx,
47
47
  DocumentationIcon,
48
48
  CodeIcon,
49
+ QuestionIcon,
49
50
  } from '@finos/legend-art';
50
51
  import { QueryBuilderFilterPanel } from './filter/QueryBuilderFilterPanel.js';
51
52
  import { QueryBuilderExplorerPanel } from './explorer/QueryBuilderExplorerPanel.js';
@@ -442,6 +443,14 @@ export const QueryBuilder = observer(
442
443
  const queryDocEntry = applicationStore.documentationService.getDocEntry(
443
444
  QUERY_BUILDER_DOCUMENTATION_KEY.TUTORIAL_QUERY_BUILDER,
444
445
  );
446
+ const frequentlyAskedQuestionEntry =
447
+ applicationStore.documentationService.getDocEntry(
448
+ QUERY_BUILDER_DOCUMENTATION_KEY.FREQUENTLY_ASKED_QUESTIONS,
449
+ );
450
+ const supportTicketsEntry =
451
+ applicationStore.documentationService.getDocEntry(
452
+ QUERY_BUILDER_DOCUMENTATION_KEY.SUPPORT_TICKETS_LINK,
453
+ );
445
454
  const openQueryTutorial = (): void => {
446
455
  if (queryDocEntry?.url) {
447
456
  applicationStore.navigationService.navigator.visitAddress(
@@ -449,6 +458,21 @@ export const QueryBuilder = observer(
449
458
  );
450
459
  }
451
460
  };
461
+ const openFrequentlyAskedQuestions = (): void => {
462
+ if (frequentlyAskedQuestionEntry?.url) {
463
+ applicationStore.navigationService.navigator.visitAddress(
464
+ frequentlyAskedQuestionEntry.url,
465
+ );
466
+ }
467
+ };
468
+ const openSupportTickets = (): void => {
469
+ if (supportTicketsEntry?.url) {
470
+ applicationStore.navigationService.navigator.visitAddress(
471
+ supportTicketsEntry.url,
472
+ );
473
+ }
474
+ };
475
+
452
476
  const toggleAssistant = (): void =>
453
477
  applicationStore.assistantService.toggleAssistant();
454
478
 
@@ -893,6 +917,26 @@ export const QueryBuilder = observer(
893
917
  </MenuContentItemLabel>
894
918
  </MenuContentItem>
895
919
  )}
920
+ {frequentlyAskedQuestionEntry && (
921
+ <MenuContentItem onClick={openFrequentlyAskedQuestions}>
922
+ <MenuContentItemIcon>
923
+ <QuestionIcon />
924
+ </MenuContentItemIcon>
925
+ <MenuContentItemLabel>
926
+ Frequently Asked Questions
927
+ </MenuContentItemLabel>
928
+ </MenuContentItem>
929
+ )}
930
+ {supportTicketsEntry && (
931
+ <MenuContentItem onClick={openSupportTickets}>
932
+ <MenuContentItemIcon>
933
+ <QuestionIcon />
934
+ </MenuContentItemIcon>
935
+ <MenuContentItemLabel>
936
+ Open Support Tickets
937
+ </MenuContentItemLabel>
938
+ </MenuContentItem>
939
+ )}
896
940
  <MenuContentItem onClick={toggleAssistant}>
897
941
  <MenuContentItemIcon>
898
942
  {!applicationStore.assistantService.isHidden ? (
@@ -47,7 +47,6 @@ import {
47
47
  getPackageableElementOptionFormatter,
48
48
  type PackageableElementOption,
49
49
  } from '@finos/legend-lego/graph-editor';
50
- import { MilestoningParametersEditor } from './explorer/QueryBuilderMilestoningEditor.js';
51
50
  import type { QueryBuilder_LegendApplicationPlugin_Extension } from '../stores/QueryBuilder_LegendApplicationPlugin_Extension.js';
52
51
 
53
52
  export const getParameterValue = (
@@ -120,7 +119,6 @@ export const QueryBuilderClassSelector = observer(
120
119
  noMatchMessage?: string | undefined;
121
120
  }) => {
122
121
  const { queryBuilderState, classes, onClassChange, noMatchMessage } = props;
123
- const milestoningState = queryBuilderState.milestoningState;
124
122
  const applicationStore = useApplicationStore();
125
123
 
126
124
  // class
@@ -151,10 +149,6 @@ export const QueryBuilderClassSelector = observer(
151
149
  onClassChange?.(val.value);
152
150
  };
153
151
 
154
- // milestoning
155
- const showMilestoningEditor = (): void =>
156
- milestoningState.setShowMilestoningEditor(true);
157
-
158
152
  return (
159
153
  <div className="query-builder__setup__config-group query-builder__setup__config-group--class">
160
154
  <div className="query-builder__setup__config-group__item ">
@@ -192,22 +186,6 @@ export const QueryBuilderClassSelector = observer(
192
186
  .TEMPORARY__isLightColorThemeEnabled,
193
187
  })}
194
188
  />
195
- {queryBuilderState.isQuerySupported && (
196
- <button
197
- className="btn--dark btn__icon--dark query-builder__setup__milestoning"
198
- tabIndex={-1}
199
- onClick={showMilestoningEditor}
200
- disabled={!milestoningState.isMilestonedQuery}
201
- title="Edit Milestoning Parameters"
202
- >
203
- <ClockIcon />
204
- </button>
205
- )}
206
- {milestoningState.isMilestonedQuery && (
207
- <MilestoningParametersEditor
208
- queryBuilderState={queryBuilderState}
209
- />
210
- )}
211
189
  </div>
212
190
  </div>
213
191
  );
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { observer } from 'mobx-react-lite';
18
+ import type { QueryBuilderState } from '../../stores/QueryBuilderState.js';
19
+ import { useCallback } from 'react';
20
+ import {
21
+ type ValueSpecification,
22
+ GenericType,
23
+ GenericTypeExplicitReference,
24
+ observe_PrimitiveInstanceValue,
25
+ PrimitiveInstanceValue,
26
+ PRIMITIVE_TYPE,
27
+ PrimitiveType,
28
+ } from '@finos/legend-graph';
29
+ import { useDrop } from 'react-dnd';
30
+ import { PanelEntryDropZonePlaceholder } from '@finos/legend-art';
31
+ import { generateDefaultValueForPrimitiveType } from '../../stores/QueryBuilderValueSpecificationHelper.js';
32
+ import {
33
+ BasicValueSpecificationEditor,
34
+ type QueryBuilderVariableDragSource,
35
+ QUERY_BUILDER_VARIABLE_DND_TYPE,
36
+ } from '../shared/BasicValueSpecificationEditor.js';
37
+ import { instanceValue_setValues } from '../../stores/shared/ValueSpecificationModifierHelper.js';
38
+
39
+ export const MilestoningParameterEditor = observer(
40
+ (props: {
41
+ queryBuilderState: QueryBuilderState;
42
+ parameter: ValueSpecification;
43
+ setParameter: (val: ValueSpecification) => void;
44
+ }) => {
45
+ const { queryBuilderState, parameter, setParameter } = props;
46
+ const handleDrop = useCallback(
47
+ (item: QueryBuilderVariableDragSource): void => {
48
+ setParameter(item.variable);
49
+ },
50
+ [setParameter],
51
+ );
52
+ const [{ isDragOver }, dropConnector] = useDrop<
53
+ QueryBuilderVariableDragSource,
54
+ void,
55
+ { isDragOver: boolean }
56
+ >(
57
+ () => ({
58
+ accept: [QUERY_BUILDER_VARIABLE_DND_TYPE],
59
+ drop: (item, monitor): void => {
60
+ if (!monitor.didDrop()) {
61
+ handleDrop(item);
62
+ }
63
+ },
64
+ collect: (monitor): { isDragOver: boolean } => ({
65
+ isDragOver: monitor.isOver({
66
+ shallow: true,
67
+ }),
68
+ }),
69
+ }),
70
+ [handleDrop],
71
+ );
72
+ const resetMilestoningParameter = (): void => {
73
+ const param = observe_PrimitiveInstanceValue(
74
+ new PrimitiveInstanceValue(
75
+ GenericTypeExplicitReference.create(
76
+ new GenericType(PrimitiveType.STRICTDATE),
77
+ ),
78
+ ),
79
+ queryBuilderState.observerContext,
80
+ );
81
+ instanceValue_setValues(
82
+ param,
83
+ [generateDefaultValueForPrimitiveType(PRIMITIVE_TYPE.STRICTDATE)],
84
+ queryBuilderState.observerContext,
85
+ );
86
+ setParameter(param);
87
+ };
88
+
89
+ return (
90
+ <div ref={dropConnector} className="query-builder__variable-editor">
91
+ <PanelEntryDropZonePlaceholder
92
+ isDragOver={isDragOver}
93
+ label="Change Milestoning Parameter Value"
94
+ >
95
+ <BasicValueSpecificationEditor
96
+ valueSpecification={parameter}
97
+ graph={queryBuilderState.graphManagerState.graph}
98
+ obseverContext={queryBuilderState.observerContext}
99
+ setValueSpecification={(val: ValueSpecification): void =>
100
+ setParameter(val)
101
+ }
102
+ typeCheckOption={{
103
+ expectedType: PrimitiveType.DATE,
104
+ }}
105
+ resetValue={resetMilestoningParameter}
106
+ isConstant={queryBuilderState.constantState.isValueSpecConstant(
107
+ parameter,
108
+ )}
109
+ />
110
+ </PanelEntryDropZonePlaceholder>
111
+ </div>
112
+ );
113
+ },
114
+ );