@finos/legend-query-builder 0.6.19 → 0.6.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. package/lib/components/QueryBuilder.d.ts +1 -0
  2. package/lib/components/QueryBuilder.d.ts.map +1 -1
  3. package/lib/components/QueryBuilder.js +27 -3
  4. package/lib/components/QueryBuilder.js.map +1 -1
  5. package/lib/components/QueryBuilderComponentTestUtils.d.ts.map +1 -1
  6. package/lib/components/QueryBuilderComponentTestUtils.js +3 -2
  7. package/lib/components/QueryBuilderComponentTestUtils.js.map +1 -1
  8. package/lib/components/QueryBuilderConstantExpressionPanel.d.ts +1 -0
  9. package/lib/components/QueryBuilderConstantExpressionPanel.d.ts.map +1 -1
  10. package/lib/components/QueryBuilderDiffPanel.d.ts +1 -0
  11. package/lib/components/QueryBuilderDiffPanel.d.ts.map +1 -1
  12. package/lib/components/QueryBuilderParametersPanel.d.ts +1 -0
  13. package/lib/components/QueryBuilderParametersPanel.d.ts.map +1 -1
  14. package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts +1 -0
  15. package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts.map +1 -1
  16. package/lib/components/QueryBuilderResultPanel.d.ts +1 -0
  17. package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
  18. package/lib/components/QueryBuilderResultPanel.js +28 -9
  19. package/lib/components/QueryBuilderResultPanel.js.map +1 -1
  20. package/lib/components/QueryBuilderSideBar.d.ts +1 -0
  21. package/lib/components/QueryBuilderSideBar.d.ts.map +1 -1
  22. package/lib/components/QueryBuilderTextEditor.d.ts +1 -0
  23. package/lib/components/QueryBuilderTextEditor.d.ts.map +1 -1
  24. package/lib/components/QueryBuilderUnsupportedQueryEditor.d.ts +1 -0
  25. package/lib/components/QueryBuilderUnsupportedQueryEditor.d.ts.map +1 -1
  26. package/lib/components/QueryBuilder_LegendApplicationPlugin.d.ts +4 -0
  27. package/lib/components/QueryBuilder_LegendApplicationPlugin.d.ts.map +1 -1
  28. package/lib/components/QueryBuilder_LegendApplicationPlugin.js +3 -0
  29. package/lib/components/QueryBuilder_LegendApplicationPlugin.js.map +1 -1
  30. package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts.map +1 -1
  31. package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
  32. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.d.ts +1 -0
  33. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.d.ts.map +1 -1
  34. package/lib/components/explorer/QueryBuilderMilestoningEditor.d.ts +1 -0
  35. package/lib/components/explorer/QueryBuilderMilestoningEditor.d.ts.map +1 -1
  36. package/lib/components/explorer/QueryBuilderPropertySearchPanel.d.ts +1 -0
  37. package/lib/components/explorer/QueryBuilderPropertySearchPanel.d.ts.map +1 -1
  38. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.d.ts +1 -0
  39. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.d.ts.map +1 -1
  40. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts +1 -0
  41. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts.map +1 -1
  42. package/lib/components/fetch-structure/QueryBuilderOLAPGroupByPanel.d.ts +1 -0
  43. package/lib/components/fetch-structure/QueryBuilderOLAPGroupByPanel.d.ts.map +1 -1
  44. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts +1 -0
  45. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
  46. package/lib/components/fetch-structure/QueryBuilderPostTDSPanel.d.ts +1 -0
  47. package/lib/components/fetch-structure/QueryBuilderPostTDSPanel.d.ts.map +1 -1
  48. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts +1 -0
  49. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts.map +1 -1
  50. package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts +1 -0
  51. package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts.map +1 -1
  52. package/lib/components/filter/QueryBuilderFilterPanel.d.ts +1 -0
  53. package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -1
  54. package/lib/components/shared/LambdaEditor.d.ts +1 -0
  55. package/lib/components/shared/LambdaEditor.d.ts.map +1 -1
  56. package/lib/components/shared/LambdaParameterValuesEditor.d.ts +1 -0
  57. package/lib/components/shared/LambdaParameterValuesEditor.d.ts.map +1 -1
  58. package/lib/components/shared/QueryBuilderVariableSelector.d.ts +1 -0
  59. package/lib/components/shared/QueryBuilderVariableSelector.d.ts.map +1 -1
  60. package/lib/components/watermark/QueryBuilderWatermark.d.ts +1 -0
  61. package/lib/components/watermark/QueryBuilderWatermark.d.ts.map +1 -1
  62. package/lib/graphManager/QueryBuilderHashUtils.d.ts +2 -1
  63. package/lib/graphManager/QueryBuilderHashUtils.d.ts.map +1 -1
  64. package/lib/graphManager/QueryBuilderHashUtils.js +1 -0
  65. package/lib/graphManager/QueryBuilderHashUtils.js.map +1 -1
  66. package/lib/index.css +1 -17
  67. package/lib/index.css.map +1 -1
  68. package/lib/index.d.ts +1 -1
  69. package/lib/index.d.ts.map +1 -1
  70. package/lib/index.js +1 -1
  71. package/lib/index.js.map +1 -1
  72. package/lib/package.json +10 -9
  73. package/lib/stores/QueryBuilderResultState.d.ts.map +1 -1
  74. package/lib/stores/QueryBuilderResultState.js +2 -1
  75. package/lib/stores/QueryBuilderResultState.js.map +1 -1
  76. package/lib/stores/QueryBuilderState.d.ts +4 -0
  77. package/lib/stores/QueryBuilderState.d.ts.map +1 -1
  78. package/lib/stores/QueryBuilderState.js +17 -0
  79. package/lib/stores/QueryBuilderState.js.map +1 -1
  80. package/lib/stores/QueryBuilderStateTestUtils.d.ts.map +1 -1
  81. package/lib/stores/QueryBuilderStateTestUtils.js +3 -2
  82. package/lib/stores/QueryBuilderStateTestUtils.js.map +1 -1
  83. package/lib/stores/entitlements/QueryBuilderCheckEntitlementsState.d.ts +25 -0
  84. package/lib/stores/entitlements/QueryBuilderCheckEntitlementsState.d.ts.map +1 -0
  85. package/lib/stores/entitlements/QueryBuilderCheckEntitlementsState.js +40 -0
  86. package/lib/stores/entitlements/QueryBuilderCheckEntitlementsState.js.map +1 -0
  87. package/lib/stores/explorer/QueryBuilderExplorerState.d.ts.map +1 -1
  88. package/lib/stores/explorer/QueryBuilderExplorerState.js +5 -1
  89. package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
  90. package/package.json +17 -16
  91. package/src/components/QueryBuilder.tsx +75 -0
  92. package/src/components/QueryBuilderComponentTestUtils.tsx +3 -1
  93. package/src/components/QueryBuilderResultPanel.tsx +33 -22
  94. package/src/components/QueryBuilder_LegendApplicationPlugin.ts +9 -0
  95. package/src/components/explorer/QueryBuilderExplorerPanel.tsx +0 -1
  96. package/src/graphManager/QueryBuilderHashUtils.ts +2 -0
  97. package/src/index.ts +4 -1
  98. package/src/stores/QueryBuilderResultState.ts +5 -4
  99. package/src/stores/QueryBuilderState.ts +19 -0
  100. package/src/stores/QueryBuilderStateTestUtils.ts +3 -1
  101. package/src/stores/entitlements/QueryBuilderCheckEntitlementsState.ts +46 -0
  102. package/src/stores/explorer/QueryBuilderExplorerState.ts +7 -1
  103. package/tsconfig.json +1 -0
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { AgGridColumn, AgGridReact } from '@ag-grid-community/react';
17
+ import { AgGridReact } from '@ag-grid-community/react';
18
18
  import { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';
19
19
  import {
20
20
  BlankPanelContent,
@@ -59,6 +59,7 @@ import {
59
59
  guaranteeNonNullable,
60
60
  isBoolean,
61
61
  type PlainObject,
62
+ prettyDuration,
62
63
  } from '@finos/legend-shared';
63
64
  import { forwardRef, useState } from 'react';
64
65
  import type { CellMouseOverEvent } from '@ag-grid-community/core';
@@ -362,18 +363,14 @@ const QueryBuilderGridResult = observer(
362
363
  onCellMouseOver={(event): void => {
363
364
  setCellDoubleClickedEvent(event);
364
365
  }}
365
- >
366
- {columns.map((colName) => (
367
- <AgGridColumn
368
- minWidth={50}
369
- sortable={true}
370
- resizable={true}
371
- field={colName}
372
- key={colName}
373
- flex={1}
374
- />
375
- ))}
376
- </AgGridReact>
366
+ columnDefs={columns.map((colName) => ({
367
+ minWidth: 50,
368
+ sortable: true,
369
+ resizable: true,
370
+ field: colName,
371
+ flex: 1,
372
+ }))}
373
+ />
377
374
  </ContextMenu>
378
375
  );
379
376
  },
@@ -498,15 +495,29 @@ export const QueryBuilderResultPanel = observer(
498
495
  );
499
496
  };
500
497
  const allowSettingPreviewLimit = queryBuilderState.isQuerySupported;
501
- const resultSetSize = (result: ExecutionResult | undefined): string =>
502
- result
503
- ? result instanceof TDSExecutionResult
504
- ? `${
505
- result.result.rows.length
506
- } row(s) in ${resultState.executionDuration?.toString()} ms`
507
- : `run in ${resultState.executionDuration?.toString()} ms`
508
- : '';
509
498
 
499
+ const getResultSetDescription = (
500
+ _executionResult: ExecutionResult,
501
+ ): string | undefined => {
502
+ const queryDuration = resultState.executionDuration
503
+ ? prettyDuration(resultState.executionDuration, {
504
+ ms: true,
505
+ })
506
+ : undefined;
507
+ if (_executionResult instanceof TDSExecutionResult) {
508
+ const rowLength = _executionResult.result.rows.length;
509
+ return `${rowLength} row(s)${
510
+ queryDuration ? ` in ${queryDuration}` : ''
511
+ }`;
512
+ }
513
+ if (!queryDuration) {
514
+ return undefined;
515
+ }
516
+ return `query ran in ${queryDuration}`;
517
+ };
518
+ const resultDescription = executionResult
519
+ ? getResultSetDescription(executionResult)
520
+ : undefined;
510
521
  return (
511
522
  <div
512
523
  data-testid={QUERY_BUILDER_TEST_ID.QUERY_BUILDER_RESULT_PANEL}
@@ -516,7 +527,7 @@ export const QueryBuilderResultPanel = observer(
516
527
  <div className="panel__header__title">
517
528
  <div className="panel__header__title__label">result</div>
518
529
  <div className="query-builder__result__analytics">
519
- {resultSetSize(executionResult)}
530
+ {resultDescription ?? ''}
520
531
  </div>
521
532
  {executionResult && resultState.checkForStaleResults && (
522
533
  <div className="query-builder__result__stale-status">
@@ -22,6 +22,11 @@ import {
22
22
  } from '@finos/legend-application';
23
23
  import packageJson from '../../package.json';
24
24
  import { QUERY_BUILDER_COMMAND_CONFIG } from '../stores/QueryBuilderCommand.js';
25
+ import type { QueryBuilderState } from '../stores/QueryBuilderState.js';
26
+
27
+ export type CheckEntitlementEditorRender = (
28
+ queryBuilderState: QueryBuilderState,
29
+ ) => React.ReactNode | undefined;
25
30
 
26
31
  export class QueryBuilder_LegendApplicationPlugin extends LegendApplicationPlugin {
27
32
  static NAME = packageJson.extensions.applicationPlugin;
@@ -41,4 +46,8 @@ export class QueryBuilder_LegendApplicationPlugin extends LegendApplicationPlugi
41
46
  QUERY_BUILDER_COMMAND_CONFIG,
42
47
  );
43
48
  }
49
+
50
+ getCheckEntitlementsEditorRender(): CheckEntitlementEditorRender | undefined {
51
+ return undefined;
52
+ }
44
53
  }
@@ -803,7 +803,6 @@ export const QueryBuilderExplorerPanel = observer(
803
803
  applicationStore.alertUnhandledError,
804
804
  );
805
805
  }, [applicationStore, explorerState, queryBuilderState.mapping]);
806
-
807
806
  return (
808
807
  <div
809
808
  data-testid={QUERY_BUILDER_TEST_ID.QUERY_BUILDER_EXPLORER}
@@ -113,4 +113,6 @@ export enum QUERY_BUILDER_HASH_STRUCTURE {
113
113
  MILESTONING_STATE = 'MILESTONING_STATE',
114
114
  UNSUPPORTED_QUERY_STATE = 'UNSUPPORTED_QUERY_STATE',
115
115
  QUERY_BUILDER_STATE = 'QUERY_BUILDER_STATE',
116
+
117
+ CHECK_ENTITLEMENTS_STATE = 'CHECK_ENTITLEMENTS_STATE',
116
118
  }
package/src/index.ts CHANGED
@@ -18,7 +18,10 @@ export * from './stores/QueryBuilderBootstraper.js';
18
18
  export { QueryBuilder_GraphManagerPreset } from './graphManager/QueryBuilder_GraphManagerPreset.js';
19
19
 
20
20
  export { QUERY_BUILDER_TEST_ID } from './components/QueryBuilder_TestID.js';
21
- export { QueryBuilder_LegendApplicationPlugin } from './components/QueryBuilder_LegendApplicationPlugin.js';
21
+ export {
22
+ type CheckEntitlementEditorRender,
23
+ QueryBuilder_LegendApplicationPlugin,
24
+ } from './components/QueryBuilder_LegendApplicationPlugin.js';
22
25
  export { QueryBuilderNavigationBlocker } from './components/QueryBuilderNavigationBlocker.js';
23
26
  export {
24
27
  QueryBuilder,
@@ -210,6 +210,10 @@ export class QueryBuilderResultState {
210
210
  `Runtime is required to execute query`,
211
211
  );
212
212
  const query = this.buildExecutionRawLambda();
213
+ const parameterValues = buildExecutionParameterValues(
214
+ this.queryBuilderState.parametersState.parameterStates,
215
+ this.queryBuilderState.graphManagerState,
216
+ );
213
217
  const startTime = Date.now();
214
218
  const promise =
215
219
  this.queryBuilderState.graphManagerState.graphManager.runQuery(
@@ -218,10 +222,7 @@ export class QueryBuilderResultState {
218
222
  runtime,
219
223
  this.queryBuilderState.graphManagerState.graph,
220
224
  {
221
- parameterValues: buildExecutionParameterValues(
222
- this.queryBuilderState.parametersState.parameterStates,
223
- this.queryBuilderState.graphManagerState,
224
- ),
225
+ parameterValues,
225
226
  },
226
227
  );
227
228
  this.setQueryRunPromise(promise);
@@ -77,6 +77,7 @@ import { QUERY_BUILDER_HASH_STRUCTURE } from '../graphManager/QueryBuilderHashUt
77
77
  import { QUERY_BUILDER_COMMAND_KEY } from './QueryBuilderCommand.js';
78
78
  import { QueryBuilderWatermarkState } from './watermark/QueryBuilderWatermarkState.js';
79
79
  import { QueryBuilderConstantsState } from './QueryBuilderConstantsState.js';
80
+ import { QueryBuilderCheckEntitlementsState } from './entitlements/QueryBuilderCheckEntitlementsState.js';
80
81
 
81
82
  export abstract class QueryBuilderState implements CommandRegistrar {
82
83
  applicationStore: GenericLegendApplicationStore;
@@ -91,6 +92,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
91
92
  fetchStructureState: QueryBuilderFetchStructureState;
92
93
  filterState: QueryBuilderFilterState;
93
94
  watermarkState: QueryBuilderWatermarkState;
95
+ checkEntitlementsState: QueryBuilderCheckEntitlementsState;
94
96
  filterOperators: QueryBuilderFilterOperator[] =
95
97
  getQueryBuilderCoreFilterOperators();
96
98
  resultState: QueryBuilderResultState;
@@ -102,6 +104,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
102
104
  showFunctionsExplorerPanel = false;
103
105
  showParametersPanel = false;
104
106
  isEditingWatermark = false;
107
+ isCheckingEntitlments = false;
105
108
 
106
109
  class?: Class | undefined;
107
110
  mapping?: Mapping | undefined;
@@ -123,12 +126,14 @@ export abstract class QueryBuilderState implements CommandRegistrar {
123
126
  fetchStructureState: observable,
124
127
  filterState: observable,
125
128
  watermarkState: observable,
129
+ checkEntitlementsState: observable,
126
130
  resultState: observable,
127
131
  textEditorState: observable,
128
132
  unsupportedQueryState: observable,
129
133
  showFunctionsExplorerPanel: observable,
130
134
  showParametersPanel: observable,
131
135
  isEditingWatermark: observable,
136
+ isCheckingEntitlments: observable,
132
137
  changeDetectionState: observable,
133
138
  class: observable,
134
139
  mapping: observable,
@@ -141,6 +146,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
141
146
  setShowFunctionsExplorerPanel: action,
142
147
  setShowParametersPanel: action,
143
148
  setIsEditingWatermark: action,
149
+ setIsCheckingEntitlments: action,
144
150
  setClass: action,
145
151
  setMapping: action,
146
152
  setRuntimeValue: action,
@@ -167,6 +173,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
167
173
  this.fetchStructureState = new QueryBuilderFetchStructureState(this);
168
174
  this.filterState = new QueryBuilderFilterState(this, this.filterOperators);
169
175
  this.watermarkState = new QueryBuilderWatermarkState(this);
176
+ this.checkEntitlementsState = new QueryBuilderCheckEntitlementsState(this);
170
177
  this.resultState = new QueryBuilderResultState(this);
171
178
  this.textEditorState = new QueryBuilderTextEditorState(this);
172
179
  this.unsupportedQueryState = new QueryBuilderUnsupportedQueryState(this);
@@ -230,6 +237,10 @@ export abstract class QueryBuilderState implements CommandRegistrar {
230
237
  this.isEditingWatermark = val;
231
238
  }
232
239
 
240
+ setIsCheckingEntitlments(val: boolean): void {
241
+ this.isCheckingEntitlments = val;
242
+ }
243
+
233
244
  setClass(val: Class | undefined): void {
234
245
  this.class = val;
235
246
  }
@@ -284,13 +295,20 @@ export abstract class QueryBuilderState implements CommandRegistrar {
284
295
  this.textEditorState = new QueryBuilderTextEditorState(this);
285
296
  this.unsupportedQueryState = new QueryBuilderUnsupportedQueryState(this);
286
297
  this.milestoningState = new QueryBuilderMilestoningState(this);
298
+ const mappingModelCoverageAnalysisResult =
299
+ this.explorerState.mappingModelCoverageAnalysisResult;
287
300
  this.explorerState = new QueryBuilderExplorerState(this);
301
+ if (mappingModelCoverageAnalysisResult) {
302
+ this.explorerState.mappingModelCoverageAnalysisResult =
303
+ mappingModelCoverageAnalysisResult;
304
+ }
288
305
  this.explorerState.refreshTreeData();
289
306
  this.parametersState = new QueryBuilderParametersState(this);
290
307
  this.constantState = new QueryBuilderConstantsState(this);
291
308
  this.functionsExplorerState = new QueryFunctionsExplorerState(this);
292
309
  this.filterState = new QueryBuilderFilterState(this, this.filterOperators);
293
310
  this.watermarkState = new QueryBuilderWatermarkState(this);
311
+ this.checkEntitlementsState = new QueryBuilderCheckEntitlementsState(this);
294
312
 
295
313
  const currentFetchStructureImplementationType =
296
314
  this.fetchStructureState.implementation.type;
@@ -528,6 +546,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
528
546
  this.parametersState,
529
547
  this.filterState,
530
548
  this.watermarkState,
549
+ this.checkEntitlementsState,
531
550
  this.fetchStructureState.implementation,
532
551
  ]);
533
552
  }
@@ -74,13 +74,15 @@ export const TEST__setUpQueryBuilderState = async (
74
74
  }
75
75
  }
76
76
 
77
- if (rawMappingModelCoverageAnalysisResult) {
77
+ if (rawMappingModelCoverageAnalysisResult && executionContext) {
78
+ const graph = queryBuilderState.graphManagerState.graph;
78
79
  createSpy(
79
80
  queryBuilderState.graphManagerState.graphManager,
80
81
  'analyzeMappingModelCoverage',
81
82
  ).mockResolvedValue(
82
83
  queryBuilderState.graphManagerState.graphManager.buildMappingModelCoverageAnalysisResult(
83
84
  rawMappingModelCoverageAnalysisResult,
85
+ graph.getMapping(executionContext.mapping),
84
86
  ),
85
87
  );
86
88
  }
@@ -0,0 +1,46 @@
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 { type Hashable, hashArray } from '@finos/legend-shared';
18
+ import { makeObservable, observable, action, computed } from 'mobx';
19
+ import { QUERY_BUILDER_HASH_STRUCTURE } from '../../graphManager/QueryBuilderHashUtils.js';
20
+ import type { QueryBuilderState } from '../QueryBuilderState.js';
21
+
22
+ export class QueryBuilderCheckEntitlementsState implements Hashable {
23
+ readonly queryBuilderState: QueryBuilderState;
24
+ isCheckingEntitlements = false;
25
+
26
+ constructor(queryBuilderState: QueryBuilderState) {
27
+ makeObservable(this, {
28
+ isCheckingEntitlements: observable,
29
+ setIsCheckingEntitlements: action,
30
+ hashCode: computed,
31
+ });
32
+
33
+ this.queryBuilderState = queryBuilderState;
34
+ }
35
+
36
+ setIsCheckingEntitlements(val: boolean): void {
37
+ this.isCheckingEntitlements = val;
38
+ }
39
+
40
+ get hashCode(): string {
41
+ return hashArray([
42
+ QUERY_BUILDER_HASH_STRUCTURE.CHECK_ENTITLEMENTS_STATE,
43
+ this.isCheckingEntitlements,
44
+ ]);
45
+ }
46
+ }
@@ -660,7 +660,13 @@ export class QueryBuilderExplorerState {
660
660
  }
661
661
 
662
662
  *analyzeMappingModelCoverage(): GeneratorFn<void> {
663
- if (this.queryBuilderState.mapping) {
663
+ // We will only refetch if the analysis result's mapping has changed.
664
+ // This makes the assumption that the mapping has not been edited, which is a valid assumption since query is not for editing mappings
665
+ if (
666
+ this.queryBuilderState.mapping &&
667
+ this.queryBuilderState.mapping !==
668
+ this.mappingModelCoverageAnalysisResult?.mapping
669
+ ) {
664
670
  this.mappingModelCoverageAnalysisState.inProgress();
665
671
  this.mappingModelCoverageAnalysisState.setMessage('Analyzing Mapping...');
666
672
  try {
package/tsconfig.json CHANGED
@@ -68,6 +68,7 @@
68
68
  "./src/stores/QueryBuilderValueSpecificationBuilderHelper.ts",
69
69
  "./src/stores/QueryBuilderValueSpecificationHelper.ts",
70
70
  "./src/stores/ServiceInfo.ts",
71
+ "./src/stores/entitlements/QueryBuilderCheckEntitlementsState.ts",
71
72
  "./src/stores/explorer/QueryBuilderExplorerState.ts",
72
73
  "./src/stores/explorer/QueryBuilderPropertySearchState.ts",
73
74
  "./src/stores/explorer/QueryFunctionsExplorerState.ts",