@finos/legend-query-builder 4.0.13 → 4.1.1

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.
Files changed (44) hide show
  1. package/lib/__lib__/QueryBuilderEvent.d.ts +3 -1
  2. package/lib/__lib__/QueryBuilderEvent.d.ts.map +1 -1
  3. package/lib/__lib__/QueryBuilderEvent.js +2 -0
  4. package/lib/__lib__/QueryBuilderEvent.js.map +1 -1
  5. package/lib/__lib__/QueryBuilderTelemetryHelper.d.ts +5 -0
  6. package/lib/__lib__/QueryBuilderTelemetryHelper.d.ts.map +1 -1
  7. package/lib/__lib__/QueryBuilderTelemetryHelper.js +6 -0
  8. package/lib/__lib__/QueryBuilderTelemetryHelper.js.map +1 -1
  9. package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
  10. package/lib/components/QueryBuilderResultPanel.js +7 -3
  11. package/lib/components/QueryBuilderResultPanel.js.map +1 -1
  12. package/lib/components/QueryUsageViewer.d.ts +22 -0
  13. package/lib/components/QueryUsageViewer.d.ts.map +1 -0
  14. package/lib/components/QueryUsageViewer.js +33 -0
  15. package/lib/components/QueryUsageViewer.js.map +1 -0
  16. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
  17. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +3 -1
  18. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
  19. package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -1
  20. package/lib/components/filter/QueryBuilderFilterPanel.js +3 -1
  21. package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
  22. package/lib/index.css +2 -2
  23. package/lib/index.css.map +1 -1
  24. package/lib/package.json +2 -2
  25. package/lib/stores/QueryBuilderResultState.d.ts +2 -0
  26. package/lib/stores/QueryBuilderResultState.d.ts.map +1 -1
  27. package/lib/stores/QueryBuilderResultState.js +7 -1
  28. package/lib/stores/QueryBuilderResultState.js.map +1 -1
  29. package/lib/stores/QueryBuilder_LegendApplicationPlugin_Extension.d.ts +10 -0
  30. package/lib/stores/QueryBuilder_LegendApplicationPlugin_Extension.d.ts.map +1 -1
  31. package/lib/stores/explorer/QueryBuilderExplorerState.d.ts.map +1 -1
  32. package/lib/stores/explorer/QueryBuilderExplorerState.js +9 -2
  33. package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
  34. package/package.json +6 -6
  35. package/src/__lib__/QueryBuilderEvent.ts +3 -0
  36. package/src/__lib__/QueryBuilderTelemetryHelper.ts +23 -0
  37. package/src/components/QueryBuilderResultPanel.tsx +18 -1
  38. package/src/components/QueryUsageViewer.tsx +111 -0
  39. package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +4 -1
  40. package/src/components/filter/QueryBuilderFilterPanel.tsx +4 -1
  41. package/src/stores/QueryBuilderResultState.ts +8 -2
  42. package/src/stores/QueryBuilder_LegendApplicationPlugin_Extension.ts +12 -0
  43. package/src/stores/explorer/QueryBuilderExplorerState.ts +20 -0
  44. package/tsconfig.json +1 -0
@@ -38,6 +38,13 @@ export type DatasetEntitlementAccessReportActionConfiguration = {
38
38
  ) => React.ReactNode;
39
39
  };
40
40
 
41
+ export type QueryExportUsageConfiguration = {
42
+ key: string;
43
+ title: string;
44
+ icon?: React.ReactNode | undefined;
45
+ renderer(): React.ReactNode;
46
+ };
47
+
41
48
  export interface QueryBuilder_LegendApplicationPlugin_Extension
42
49
  extends LegendApplicationPlugin {
43
50
  /**
@@ -49,4 +56,9 @@ export interface QueryBuilder_LegendApplicationPlugin_Extension
49
56
  * Get the list of dataset entitlement access report action configurations.
50
57
  */
51
58
  getExtraDatasetEntitlementAccessNotGrantedReportActionConfigurations?(): DatasetEntitlementAccessReportActionConfiguration[];
59
+
60
+ /**
61
+ * Get the list of query usage configurations
62
+ */
63
+ getExtraQueryUsageConfigurations?(): QueryExportUsageConfiguration[];
52
64
  }
@@ -23,6 +23,7 @@ import {
23
23
  type GeneratorFn,
24
24
  assertType,
25
25
  UnsupportedOperationError,
26
+ StopWatch,
26
27
  } from '@finos/legend-shared';
27
28
  import {
28
29
  type AbstractProperty,
@@ -57,6 +58,7 @@ import {
57
58
  type ExecutionResult,
58
59
  getAllSubclasses,
59
60
  PropertyExplicitReference,
61
+ reportGraphAnalytics,
60
62
  } from '@finos/legend-graph';
61
63
  import type { QueryBuilderState } from '../QueryBuilderState.js';
62
64
  import { action, flow, flowResult, makeObservable, observable } from 'mobx';
@@ -69,6 +71,7 @@ import {
69
71
  import { QueryBuilderPropertySearchState } from './QueryBuilderPropertySearchState.js';
70
72
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../graph/QueryBuilderMetaModelConst.js';
71
73
  import { propertyExpression_setFunc } from '../shared/ValueSpecificationModifierHelper.js';
74
+ import { QueryBuilderTelemetryHelper } from '../../__lib__/QueryBuilderTelemetryHelper.js';
72
75
 
73
76
  export enum QUERY_BUILDER_EXPLORER_TREE_DND_TYPE {
74
77
  ROOT = 'ROOT',
@@ -669,6 +672,14 @@ export class QueryBuilderExplorerState {
669
672
  this.mappingModelCoverageAnalysisResult?.mapping
670
673
  ) {
671
674
  this.mappingModelCoverageAnalysisState.inProgress();
675
+ QueryBuilderTelemetryHelper.logEvent_QueryMappingModelCoverageAnalysisLaunched(
676
+ this.queryBuilderState.applicationStore.telemetryService,
677
+ );
678
+
679
+ const stopWatch = new StopWatch();
680
+ const report = reportGraphAnalytics(
681
+ this.queryBuilderState.graphManagerState.graph,
682
+ );
672
683
  this.mappingModelCoverageAnalysisState.setMessage('Analyzing Mapping...');
673
684
  try {
674
685
  this.mappingModelCoverageAnalysisResult = (yield flowResult(
@@ -678,6 +689,15 @@ export class QueryBuilderExplorerState {
678
689
  ),
679
690
  )) as MappingModelCoverageAnalysisResult;
680
691
  this.refreshTreeData();
692
+ report.timings =
693
+ this.queryBuilderState.applicationStore.timeService.finalizeTimingsRecord(
694
+ stopWatch,
695
+ report.timings,
696
+ );
697
+ QueryBuilderTelemetryHelper.logEvent_QueryMappingModelCoverageAnalysisSucceeded(
698
+ this.queryBuilderState.applicationStore.telemetryService,
699
+ report,
700
+ );
681
701
  } catch (error) {
682
702
  assertErrorThrown(error);
683
703
  this.queryBuilderState.applicationStore.notificationService.notifyError(
package/tsconfig.json CHANGED
@@ -218,6 +218,7 @@
218
218
  "./src/components/QueryBuilderTextEditor.tsx",
219
219
  "./src/components/QueryBuilderUnsupportedQueryEditor.tsx",
220
220
  "./src/components/QueryLoader.tsx",
221
+ "./src/components/QueryUsageViewer.tsx",
221
222
  "./src/components/ServiceQuerySetupUtils.tsx",
222
223
  "./src/components/__test-utils__/QueryBuilderComponentTestUtils.tsx",
223
224
  "./src/components/data-access/DataAccessOverview.tsx",