@finos/legend-query-builder 3.2.7 → 3.2.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"QueryLoaderState.d.ts","sourceRoot":"","sources":["../../src/stores/QueryLoaderState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryLoaderState.d.ts","sourceRoot":"","sources":["../../src/stores/QueryLoaderState.ts"],"names":[],"mappings":"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"}
@@ -131,6 +131,7 @@ export class QueryLoaderState {
131
131
  let searchSpecification = new QuerySearchSpecification();
132
132
  searchSpecification.searchTerm = searchText;
133
133
  searchSpecification.limit = QUERY_LOADER_TYPEAHEAD_SEARCH_LIMIT + 1;
134
+ searchSpecification.exactMatchName = true;
134
135
  searchSpecification.showCurrentUserQueriesOnly =
135
136
  this.showCurrentUserQueriesOnly;
136
137
  if (this.queryBuilderState) {
@@ -161,7 +162,7 @@ export class QueryLoaderState {
161
162
  try {
162
163
  const query = (yield this.graphManagerState.graphManager.renameQuery(queryId, name));
163
164
  this.onQueryRenamed?.(query);
164
- this.applicationStore.notificationService.notify('Renamed query successfully');
165
+ this.applicationStore.notificationService.notifySuccess('Renamed query successfully');
165
166
  this.renameQueryState.pass();
166
167
  this.searchQueries(this.searchText); // trigger a search to refresh the query list
167
168
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueryLoaderState.js","sourceRoot":"","sources":["../../src/stores/QueryLoaderState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryLoaderState.js","sourceRoot":"","sources":["../../src/stores/QueryLoaderState.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-query-builder",
3
- "version": "3.2.7",
3
+ "version": "3.2.8",
4
4
  "description": "Legend query builder core",
5
5
  "keywords": [
6
6
  "legend",
@@ -42,10 +42,10 @@
42
42
  "test:watch": "jest --watch"
43
43
  },
44
44
  "dependencies": {
45
- "@finos/legend-application": "15.0.12",
46
- "@finos/legend-art": "7.0.13",
47
- "@finos/legend-graph": "28.1.7",
48
- "@finos/legend-lego": "1.0.5",
45
+ "@finos/legend-application": "15.0.13",
46
+ "@finos/legend-art": "7.0.14",
47
+ "@finos/legend-graph": "28.1.8",
48
+ "@finos/legend-lego": "1.0.6",
49
49
  "@finos/legend-server-depot": "6.0.6",
50
50
  "@finos/legend-shared": "10.0.5",
51
51
  "@finos/legend-storage": "3.0.55",
@@ -28,7 +28,18 @@ import {
28
28
  ExclamationTriangleIcon,
29
29
  PanelContent,
30
30
  MenuContentDivider,
31
+ Button,
32
+ SQLIcon,
33
+ Dialog,
34
+ Modal,
35
+ ModalBody,
36
+ ModalFooter,
37
+ ModalFooterButton,
38
+ ModalHeader,
39
+ PanelDivider,
31
40
  } from '@finos/legend-art';
41
+ import { format as formatSQL } from 'sql-formatter';
42
+
32
43
  import { observer } from 'mobx-react-lite';
33
44
  import { flowResult } from 'mobx';
34
45
  import type { QueryBuilderState } from '../stores/QueryBuilderState.js';
@@ -41,6 +52,7 @@ import {
41
52
  RawExecutionResult,
42
53
  EnumValueInstanceValue,
43
54
  EnumValueExplicitReference,
55
+ RelationalExecutionActivities,
44
56
  } from '@finos/legend-graph';
45
57
  import {
46
58
  ActionAlertActionType,
@@ -55,8 +67,9 @@ import {
55
67
  type PlainObject,
56
68
  prettyDuration,
57
69
  prettyCONSTName,
70
+ filterByType,
58
71
  } from '@finos/legend-shared';
59
- import { type MutableRefObject, forwardRef, useRef } from 'react';
72
+ import { type MutableRefObject, forwardRef, useRef, useState } from 'react';
60
73
  import {
61
74
  QueryBuilderDerivationProjectionColumnState,
62
75
  QueryBuilderProjectionColumnState,
@@ -445,6 +458,22 @@ export const QueryBuilderResultPanel = observer(
445
458
  const resultState = queryBuilderState.resultState;
446
459
  const queryParametersState = queryBuilderState.parametersState;
447
460
  const executionResult = resultState.executionResult;
461
+ const [showSqlModal, setShowSqlModal] = useState(false);
462
+ const relationalActivities = executionResult?.activities;
463
+ const executedSqls = relationalActivities
464
+ ?.filter(filterByType(RelationalExecutionActivities))
465
+ .map((relationalActivity) => relationalActivity.sql);
466
+
467
+ let executedSql = '';
468
+ if (executedSqls?.length && executedSqls.length > 1) {
469
+ for (let i = 0; i < executedSqls.length; i++) {
470
+ executedSql += `\n--QUERY #${i + 1}\n`;
471
+ executedSql += `${executedSqls[i]}\n`;
472
+ }
473
+ } else {
474
+ executedSql += executedSqls?.[0];
475
+ }
476
+
448
477
  const fetchStructureImplementation =
449
478
  queryBuilderState.fetchStructureState.implementation;
450
479
  const USER_ATTESTATION_MESSAGE =
@@ -464,7 +493,6 @@ export const QueryBuilderResultPanel = observer(
464
493
  );
465
494
  }
466
495
  };
467
-
468
496
  const confirmExport = (format: string): void => {
469
497
  applicationStore.alertService.setActionAlertInfo({
470
498
  message: USER_ATTESTATION_MESSAGE,
@@ -529,6 +557,19 @@ export const QueryBuilderResultPanel = observer(
529
557
  };
530
558
  const allowSettingPreviewLimit = queryBuilderState.isQuerySupported;
531
559
 
560
+ const copyExpression = (value: string): void => {
561
+ applicationStore.clipboardService
562
+ .copyTextToClipboard(value)
563
+ .then(() =>
564
+ applicationStore.notificationService.notifySuccess(
565
+ 'SQL Query copied',
566
+ undefined,
567
+ 2500,
568
+ ),
569
+ )
570
+ .catch(applicationStore.alertUnhandledError);
571
+ };
572
+
532
573
  const isRunQueryDisabled =
533
574
  !isQueryValid ||
534
575
  resultState.isGeneratingPlan ||
@@ -561,14 +602,59 @@ export const QueryBuilderResultPanel = observer(
561
602
  data-testid={QUERY_BUILDER_TEST_ID.QUERY_BUILDER_RESULT_PANEL}
562
603
  className="panel query-builder__result"
563
604
  >
605
+ {showSqlModal && executedSqls && (
606
+ <Dialog
607
+ open={Boolean(showSqlModal)}
608
+ onClose={() => setShowSqlModal(false)}
609
+ >
610
+ <Modal className="editor-modal" darkMode={true}>
611
+ <ModalHeader title="Executed SQL Query" />
612
+ <ModalBody className="query-builder__sql__modal">
613
+ <>
614
+ <CodeEditor
615
+ inputValue={formatSQL(executedSql)}
616
+ isReadOnly={true}
617
+ language={CODE_EDITOR_LANGUAGE.SQL}
618
+ hideMinimap={true}
619
+ />
620
+
621
+ <PanelDivider />
622
+ </>
623
+ </ModalBody>
624
+ <ModalFooter>
625
+ <ModalFooterButton
626
+ formatText={false}
627
+ onClick={() => copyExpression(executedSql)}
628
+ text="Copy SQL to Clipboard"
629
+ />
630
+
631
+ <ModalFooterButton
632
+ onClick={() => setShowSqlModal(false)}
633
+ text="Close"
634
+ />
635
+ </ModalFooter>
636
+ </Modal>
637
+ </Dialog>
638
+ )}
639
+
564
640
  <div className="panel__header">
565
641
  <div className="panel__header__title">
566
642
  <div className="panel__header__title__label">result</div>
643
+ {executedSqls && (
644
+ <Button
645
+ onClick={() => setShowSqlModal(true)}
646
+ title="Executed SQL"
647
+ className="query-builder__result__sql__actions"
648
+ >
649
+ <SQLIcon />
650
+ </Button>
651
+ )}
567
652
  {resultState.pressedRunQuery.isInProgress && (
568
653
  <div className="panel__header__title__label__status">
569
654
  Running Query...
570
655
  </div>
571
656
  )}
657
+
572
658
  <div className="query-builder__result__analytics">
573
659
  {resultDescription ?? ''}
574
660
  </div>
@@ -38,6 +38,8 @@ import {
38
38
  ModalFooter,
39
39
  PanelSideBarHeader,
40
40
  ModalFooterButton,
41
+ PanelHeader,
42
+ Panel,
41
43
  } from '@finos/legend-art';
42
44
  import {
43
45
  addUniqueEntry,
@@ -428,6 +430,9 @@ const ExecutionPlanViewerContent = observer(
428
430
  }) => {
429
431
  const { executionPlanState, rawPlan } = props;
430
432
  const plan = executionPlanState.plan;
433
+ const isDarkMode =
434
+ !executionPlanState.applicationStore.layoutService
435
+ .TEMPORARY__isLightColorThemeEnabled;
431
436
 
432
437
  return (
433
438
  <div className="execution-plan-viewer__content">
@@ -448,7 +453,13 @@ const ExecutionPlanViewerContent = observer(
448
453
  </div>
449
454
  </ResizablePanel>
450
455
  <ResizablePanelSplitter>
451
- <ResizablePanelSplitterLine color="var(--color-dark-grey-200)" />
456
+ <ResizablePanelSplitterLine
457
+ color={
458
+ isDarkMode
459
+ ? 'var(--color-dark-grey-200)'
460
+ : 'var(--color-legacylight-light-grey-300)'
461
+ }
462
+ />
452
463
  </ResizablePanelSplitter>
453
464
  <ResizablePanel>
454
465
  <ExecutionPlanViewPanel
@@ -480,6 +491,9 @@ export const ExecutionPlanViewer = observer(
480
491
  executionPlanState.setDebugText(undefined);
481
492
  };
482
493
  const rawPlan = executionPlanState.rawPlan;
494
+ const isDarkMode =
495
+ !executionPlanState.applicationStore.layoutService
496
+ .TEMPORARY__isLightColorThemeEnabled;
483
497
 
484
498
  if (!rawPlan) {
485
499
  return null;
@@ -506,17 +520,21 @@ export const ExecutionPlanViewer = observer(
506
520
  />
507
521
  </ResizablePanel>
508
522
  <ResizablePanelSplitter>
509
- <ResizablePanelSplitterLine color="var(--color-dark-grey-200)" />
523
+ <ResizablePanelSplitterLine
524
+ color={
525
+ isDarkMode
526
+ ? 'var(--color-dark-grey-200)'
527
+ : 'var(--color-legacylight-light-grey-300)'
528
+ }
529
+ />
510
530
  </ResizablePanelSplitter>
511
531
  <ResizablePanel size={200} minSize={28}>
512
- <div className="panel execution-plan-viewer__debug-panel">
513
- <div className="panel__header">
514
- <div className="panel__header__title">
515
- <div className="panel__header__title__label">
516
- DEBUG LOG
517
- </div>
518
- </div>
519
- </div>
532
+ <Panel className="panel execution-plan-viewer__debug-panel">
533
+ <PanelHeader
534
+ title="DEBUG LOG"
535
+ keepTitleFormat={true}
536
+ darkMode={isDarkMode}
537
+ />
520
538
  <PanelContent>
521
539
  <CodeEditor
522
540
  inputValue={executionPlanState.debugText}
@@ -524,7 +542,7 @@ export const ExecutionPlanViewer = observer(
524
542
  language={CODE_EDITOR_LANGUAGE.TEXT}
525
543
  />
526
544
  </PanelContent>
527
- </div>
545
+ </Panel>
528
546
  </ResizablePanel>
529
547
  </ResizablePanelGroup>
530
548
  ) : (
@@ -15,13 +15,19 @@
15
15
  */
16
16
 
17
17
  import { observer } from 'mobx-react-lite';
18
- import type { ExecutionPlanState } from '../../stores/execution-plan/ExecutionPlanState.js';
18
+ import {
19
+ type ExecutionPlanState,
20
+ EXECUTION_PLAN_VIEW_MODE,
21
+ } from '../../stores/execution-plan/ExecutionPlanState.js';
19
22
  import { format as formatSQL } from 'sql-formatter';
20
- import type { SQLResultColumn } from '@finos/legend-graph';
23
+ import { type SQLResultColumn, stringifyDataType } from '@finos/legend-graph';
21
24
  import {
22
- CODE_EDITOR_LANGUAGE,
23
- CodeEditor,
24
- } from '@finos/legend-lego/code-editor';
25
+ PanelListItem,
26
+ CopyIcon,
27
+ PanelDivider,
28
+ Button,
29
+ PanelContent,
30
+ } from '@finos/legend-art';
25
31
 
26
32
  /**
27
33
  * TODO: Create a new `AbstractPlugin` for this, called `ExecutionPlanViewerPlugin`
@@ -35,14 +41,95 @@ export const SQLExecutionNodeViewer: React.FC<{
35
41
  resultColumns: SQLResultColumn[];
36
42
  executionPlanState: ExecutionPlanState;
37
43
  }> = observer((props) => {
38
- const { query } = props;
44
+ const { query, resultColumns, executionPlanState } = props;
39
45
 
46
+ const applicationStore = executionPlanState.applicationStore;
47
+ const copyExpression = (value: string): void => {
48
+ applicationStore.clipboardService
49
+ .copyTextToClipboard(value)
50
+ .then(() =>
51
+ applicationStore.notificationService.notifySuccess(
52
+ 'SQL Query copied',
53
+ undefined,
54
+ 2500,
55
+ ),
56
+ )
57
+ .catch(applicationStore.alertUnhandledError);
58
+ };
40
59
  return (
41
- <CodeEditor
42
- inputValue={formatSQL(query)}
43
- isReadOnly={true}
44
- language={CODE_EDITOR_LANGUAGE.SQL}
45
- hideMinimap={true}
46
- />
60
+ <PanelContent
61
+ darkMode={
62
+ !applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled
63
+ }
64
+ >
65
+ <div className="query-builder__sql__container">
66
+ <PanelDivider />
67
+ <div key={query}>
68
+ <div className="query-builder__sql__container__item__label">
69
+ <PanelListItem>
70
+ SQL
71
+ <div>
72
+ <button
73
+ onClick={() => {
74
+ copyExpression(query);
75
+ }}
76
+ title="Copy SQL Expression"
77
+ className="query-builder__sql__container__icon"
78
+ >
79
+ <CopyIcon />
80
+ </button>
81
+ </div>
82
+ </PanelListItem>
83
+ </div>
84
+ <PanelListItem className="query-builder__sql__container__item">
85
+ <pre>{formatSQL(query)} </pre>
86
+ </PanelListItem>
87
+ <PanelDivider />
88
+ </div>
89
+ </div>
90
+ <div className="query-builder__sql__container">
91
+ <div>
92
+ <PanelListItem className="query-builder__sql__container__item__label">
93
+ Result Columns
94
+ </PanelListItem>
95
+ <PanelDivider />
96
+ <table className="table query-builder__sql__container__table">
97
+ <thead>
98
+ <tr>
99
+ <th className="table__cell--left">Label</th>
100
+ <th className="table__cell--left">Data Type</th>
101
+ </tr>
102
+ </thead>
103
+ <tbody>
104
+ {resultColumns.map((column) => (
105
+ <tr key={column.label}>
106
+ <td className="table__cell--left">
107
+ {column.label.replaceAll(`"`, '')}
108
+ </td>
109
+
110
+ {column.dataType && (
111
+ <td className="table__cell--left">
112
+ {stringifyDataType(column.dataType)}
113
+ </td>
114
+ )}
115
+ </tr>
116
+ ))}
117
+ </tbody>
118
+ </table>
119
+ </div>
120
+ </div>
121
+ <PanelDivider />
122
+
123
+ <div className="query-builder__sql__container">
124
+ <Button
125
+ className="btn--dark execution-node-viewer__unsupported-view__to-text-mode__btn"
126
+ onClick={(): void =>
127
+ executionPlanState.setViewMode(EXECUTION_PLAN_VIEW_MODE.JSON)
128
+ }
129
+ text="View JSON"
130
+ />
131
+ </div>
132
+ <PanelDivider />
133
+ </PanelContent>
47
134
  );
48
135
  });
@@ -205,6 +205,7 @@ export class QueryLoaderState {
205
205
  let searchSpecification = new QuerySearchSpecification();
206
206
  searchSpecification.searchTerm = searchText;
207
207
  searchSpecification.limit = QUERY_LOADER_TYPEAHEAD_SEARCH_LIMIT + 1;
208
+ searchSpecification.exactMatchName = true;
208
209
  searchSpecification.showCurrentUserQueriesOnly =
209
210
  this.showCurrentUserQueriesOnly;
210
211
  if (this.queryBuilderState) {
@@ -246,7 +247,7 @@ export class QueryLoaderState {
246
247
  name,
247
248
  )) as Query;
248
249
  this.onQueryRenamed?.(query);
249
- this.applicationStore.notificationService.notify(
250
+ this.applicationStore.notificationService.notifySuccess(
250
251
  'Renamed query successfully',
251
252
  );
252
253
  this.renameQueryState.pass();