@finos/legend-application-studio 28.19.117 → 28.21.0

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 (85) hide show
  1. package/lib/__lib__/LegendStudioUserDataHelper.d.ts +4 -1
  2. package/lib/__lib__/LegendStudioUserDataHelper.d.ts.map +1 -1
  3. package/lib/__lib__/LegendStudioUserDataHelper.js +18 -0
  4. package/lib/__lib__/LegendStudioUserDataHelper.js.map +1 -1
  5. package/lib/components/editor/editor-group/EditorGroup.d.ts.map +1 -1
  6. package/lib/components/editor/editor-group/EditorGroup.js +5 -0
  7. package/lib/components/editor/editor-group/EditorGroup.js.map +1 -1
  8. package/lib/components/editor/editor-group/accessor/AccessorQueryBuilder.d.ts +22 -0
  9. package/lib/components/editor/editor-group/accessor/AccessorQueryBuilder.d.ts.map +1 -0
  10. package/lib/components/editor/editor-group/accessor/AccessorQueryBuilder.js +43 -0
  11. package/lib/components/editor/editor-group/accessor/AccessorQueryBuilder.js.map +1 -0
  12. package/lib/components/editor/editor-group/accessor/AccessorQueryBuilderHelper.d.ts.map +1 -1
  13. package/lib/components/editor/editor-group/accessor/AccessorQueryBuilderHelper.js +8 -16
  14. package/lib/components/editor/editor-group/accessor/AccessorQueryBuilderHelper.js.map +1 -1
  15. package/lib/components/editor/editor-group/dataProduct/DataProductEditor.d.ts.map +1 -1
  16. package/lib/components/editor/editor-group/dataProduct/DataProductEditor.js +123 -80
  17. package/lib/components/editor/editor-group/dataProduct/DataProductEditor.js.map +1 -1
  18. package/lib/components/editor/editor-group/database-editor/DatabaseAnnotationDisplay.d.ts +26 -0
  19. package/lib/components/editor/editor-group/database-editor/DatabaseAnnotationDisplay.d.ts.map +1 -0
  20. package/lib/components/editor/editor-group/database-editor/DatabaseAnnotationDisplay.js +101 -0
  21. package/lib/components/editor/editor-group/database-editor/DatabaseAnnotationDisplay.js.map +1 -0
  22. package/lib/components/editor/editor-group/database-editor/DatabaseDiagramCanvas.d.ts +23 -0
  23. package/lib/components/editor/editor-group/database-editor/DatabaseDiagramCanvas.d.ts.map +1 -0
  24. package/lib/components/editor/editor-group/database-editor/DatabaseDiagramCanvas.js +434 -0
  25. package/lib/components/editor/editor-group/database-editor/DatabaseDiagramCanvas.js.map +1 -0
  26. package/lib/components/editor/editor-group/database-editor/DatabaseDiagramHelper.d.ts +242 -0
  27. package/lib/components/editor/editor-group/database-editor/DatabaseDiagramHelper.d.ts.map +1 -0
  28. package/lib/components/editor/editor-group/database-editor/DatabaseDiagramHelper.js +371 -0
  29. package/lib/components/editor/editor-group/database-editor/DatabaseDiagramHelper.js.map +1 -0
  30. package/lib/components/editor/editor-group/database-editor/DatabaseEditor.d.ts +29 -0
  31. package/lib/components/editor/editor-group/database-editor/DatabaseEditor.d.ts.map +1 -0
  32. package/lib/components/editor/editor-group/database-editor/DatabaseEditor.js +78 -0
  33. package/lib/components/editor/editor-group/database-editor/DatabaseEditor.js.map +1 -0
  34. package/lib/components/editor/editor-group/database-editor/DatabaseSchemaTree.d.ts +30 -0
  35. package/lib/components/editor/editor-group/database-editor/DatabaseSchemaTree.d.ts.map +1 -0
  36. package/lib/components/editor/editor-group/database-editor/DatabaseSchemaTree.js +331 -0
  37. package/lib/components/editor/editor-group/database-editor/DatabaseSchemaTree.js.map +1 -0
  38. package/lib/components/editor/editor-group/database-editor/DatabaseTableNode.d.ts +104 -0
  39. package/lib/components/editor/editor-group/database-editor/DatabaseTableNode.d.ts.map +1 -0
  40. package/lib/components/editor/editor-group/database-editor/DatabaseTableNode.js +151 -0
  41. package/lib/components/editor/editor-group/database-editor/DatabaseTableNode.js.map +1 -0
  42. package/lib/components/editor/editor-group/ingest-editor/IngestDefinitionEditor.d.ts.map +1 -1
  43. package/lib/components/editor/editor-group/ingest-editor/IngestDefinitionEditor.js +3 -78
  44. package/lib/components/editor/editor-group/ingest-editor/IngestDefinitionEditor.js.map +1 -1
  45. package/lib/components/editor/editor-group/uml-editor/ClassQueryBuilder.d.ts +3 -1
  46. package/lib/components/editor/editor-group/uml-editor/ClassQueryBuilder.d.ts.map +1 -1
  47. package/lib/components/editor/editor-group/uml-editor/ClassQueryBuilder.js +4 -5
  48. package/lib/components/editor/editor-group/uml-editor/ClassQueryBuilder.js.map +1 -1
  49. package/lib/index.css +2 -2
  50. package/lib/index.css.map +1 -1
  51. package/lib/package.json +4 -1
  52. package/lib/stores/editor/EditorTabManagerState.d.ts.map +1 -1
  53. package/lib/stores/editor/EditorTabManagerState.js +5 -3
  54. package/lib/stores/editor/EditorTabManagerState.js.map +1 -1
  55. package/lib/stores/editor/editor-state/element-editor-state/DatabaseEditorState.d.ts +252 -0
  56. package/lib/stores/editor/editor-state/element-editor-state/DatabaseEditorState.d.ts.map +1 -0
  57. package/lib/stores/editor/editor-state/element-editor-state/DatabaseEditorState.js +755 -0
  58. package/lib/stores/editor/editor-state/element-editor-state/DatabaseEditorState.js.map +1 -0
  59. package/lib/stores/editor/editor-state/element-editor-state/dataProduct/DataProductEditorState.d.ts +2 -1
  60. package/lib/stores/editor/editor-state/element-editor-state/dataProduct/DataProductEditorState.d.ts.map +1 -1
  61. package/lib/stores/editor/editor-state/element-editor-state/dataProduct/DataProductEditorState.js +12 -4
  62. package/lib/stores/editor/editor-state/element-editor-state/dataProduct/DataProductEditorState.js.map +1 -1
  63. package/lib/stores/graph-modifier/DSL_DataProduct_GraphModifierHelper.d.ts +5 -1
  64. package/lib/stores/graph-modifier/DSL_DataProduct_GraphModifierHelper.d.ts.map +1 -1
  65. package/lib/stores/graph-modifier/DSL_DataProduct_GraphModifierHelper.js +12 -0
  66. package/lib/stores/graph-modifier/DSL_DataProduct_GraphModifierHelper.js.map +1 -1
  67. package/package.json +12 -9
  68. package/src/__lib__/LegendStudioUserDataHelper.ts +30 -0
  69. package/src/components/editor/editor-group/EditorGroup.tsx +4 -0
  70. package/src/components/editor/editor-group/accessor/AccessorQueryBuilder.tsx +81 -0
  71. package/src/components/editor/editor-group/accessor/{AccessorQueryBuilderHelper.ts → AccessorQueryBuilderHelper.tsx} +14 -1
  72. package/src/components/editor/editor-group/dataProduct/DataProductEditor.tsx +225 -86
  73. package/src/components/editor/editor-group/database-editor/DatabaseAnnotationDisplay.tsx +200 -0
  74. package/src/components/editor/editor-group/database-editor/DatabaseDiagramCanvas.tsx +701 -0
  75. package/src/components/editor/editor-group/database-editor/DatabaseDiagramHelper.ts +555 -0
  76. package/src/components/editor/editor-group/database-editor/DatabaseEditor.tsx +246 -0
  77. package/src/components/editor/editor-group/database-editor/DatabaseSchemaTree.tsx +1053 -0
  78. package/src/components/editor/editor-group/database-editor/DatabaseTableNode.tsx +465 -0
  79. package/src/components/editor/editor-group/ingest-editor/IngestDefinitionEditor.tsx +2 -242
  80. package/src/components/editor/editor-group/uml-editor/ClassQueryBuilder.tsx +16 -6
  81. package/src/stores/editor/EditorTabManagerState.ts +4 -5
  82. package/src/stores/editor/editor-state/element-editor-state/DatabaseEditorState.ts +938 -0
  83. package/src/stores/editor/editor-state/element-editor-state/dataProduct/DataProductEditorState.ts +14 -5
  84. package/src/stores/graph-modifier/DSL_DataProduct_GraphModifierHelper.ts +27 -0
  85. package/tsconfig.json +9 -1
@@ -0,0 +1,252 @@
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
+ import { ElementEditorState } from './ElementEditorState.js';
17
+ import { type GeneratorFn } from '@finos/legend-shared';
18
+ import { type Column, Database, type Filter, type Join, type PackageableElement, type Table, type View } from '@finos/legend-graph';
19
+ import type { EditorStore } from '../../EditorStore.js';
20
+ /**
21
+ * Top-level tabs inside the Database form-mode editor. `VIEW` shows the ERD
22
+ * canvas; `GRAMMAR` shows a read-only preview of the same Pure DSL grammar
23
+ * that the global Text Mode would render.
24
+ */
25
+ export declare enum DATABASE_EDITOR_TAB {
26
+ VIEW = "VIEW",
27
+ GRAMMAR = "GRAMMAR"
28
+ }
29
+ /**
30
+ * Stable id for an element of the schema tree. We use a string id (rather than
31
+ * holding object references) so the side-panel's expand/collapse state can
32
+ * survive reprocessing without any cross-instance bookkeeping.
33
+ *
34
+ * Tables and Views share the same id namespace because they share the same
35
+ * `<schema>.<name>` qualifier — the metamodel doesn't allow a table and a view
36
+ * to collide on name within a schema.
37
+ */
38
+ export declare const getSchemaNodeId: (schemaName: string) => string;
39
+ export declare const getRelationNodeId: (schemaName: string, relationName: string) => string;
40
+ /**
41
+ * Stable key used to look up the Pure-code formula for a single view column
42
+ * inside `DatabaseEditorState.viewColumnFormulas`. Joins schema, view, and
43
+ * column so it survives reprocessing and can't collide across schemas.
44
+ */
45
+ export declare const getViewColumnFormulaKey: (schemaName: string, viewName: string, columnName: string) => string;
46
+ /**
47
+ * Stable key used to look up the Pure-code formula for a single filter inside
48
+ * `DatabaseEditorState.filterFormulas`. Filter names are unique within a
49
+ * Database (they live as a flat `Database.filters: Filter[]`), so the name
50
+ * alone is sufficient — no schema qualifier needed.
51
+ */
52
+ export declare const getFilterFormulaKey: (filterName: string) => string;
53
+ /**
54
+ * Stable key used to look up the Pure-code formula for a single join. Join
55
+ * names are unique within a Database (they live as a flat
56
+ * `Database.joins: Join[]`), so the name alone is sufficient. Mirrors the
57
+ * filter helper above.
58
+ */
59
+ export declare const getJoinFormulaKey: (joinName: string) => string;
60
+ /**
61
+ * Stable key used to look up the Pure-code formula for a single view's
62
+ * groupBy column expression. Views are scoped to a schema and groupBy
63
+ * positions matter (the engine renders them in declaration order), so the
64
+ * key includes both the schema-qualified view name and the position index.
65
+ */
66
+ export declare const getViewGroupByFormulaKey: (schemaName: string, viewName: string, index: number) => string;
67
+ /**
68
+ * View-only form mode for `Database` elements. Renders an ERD-style canvas
69
+ * (tables as nodes, joins as edges) plus a side-panel tree of schemas/tables/
70
+ * columns. A second tab shows the same grammar that Text Mode would show.
71
+ *
72
+ * Layout positions are derived per-render via dagre and not persisted yet —
73
+ * persistence + edit support are intended follow-ups.
74
+ */
75
+ export declare class DatabaseEditorState extends ElementEditorState {
76
+ selectedTab: DATABASE_EDITOR_TAB;
77
+ selectedRelation: Table | View | undefined;
78
+ selectedColumn: Column | undefined;
79
+ selectedJoin: Join | undefined;
80
+ selectedFilter: Filter | undefined;
81
+ selectedViewColumnName: string | undefined;
82
+ expandedSchemaIds: Set<string>;
83
+ expandedRelationIds: Set<string>;
84
+ panToSelectedRequestCounter: number;
85
+ fitAllRequestCounter: number;
86
+ resetLayoutRequestCounter: number;
87
+ searchText: string;
88
+ viewColumnFormulas: Map<string, string>;
89
+ isLoadingViewColumnFormulas: boolean;
90
+ filterFormulas: Map<string, string>;
91
+ isLoadingFilterFormulas: boolean;
92
+ joinFormulas: Map<string, string>;
93
+ isLoadingJoinFormulas: boolean;
94
+ viewGroupByFormulas: Map<string, string>;
95
+ isLoadingViewGroupByFormulas: boolean;
96
+ isSidePanelCollapsed: boolean;
97
+ theme: 'dark' | 'light';
98
+ constructor(editorStore: EditorStore, element: PackageableElement);
99
+ get database(): Database;
100
+ setSelectedTab(tab: DATABASE_EDITOR_TAB): void;
101
+ /**
102
+ * Generate the Pure grammar for the underlying Database element and store
103
+ * it in `textContent`. Mirrors `generateElementGrammar()` from the base
104
+ * class but is kept local so the consumer doesn't need to know about the
105
+ * inherited flow.
106
+ */
107
+ generateGrammarText(): ReturnType<DatabaseEditorState['generateElementGrammar']>;
108
+ /**
109
+ * Render every view column-mapping's relational operation as Pure code, in
110
+ * a single batched engine call.
111
+ *
112
+ * Strategy: rather than transform metamodel `RelationalOperationElement`
113
+ * instances by hand (the V1 transformer isn't a public export), we rely on
114
+ * `elementToEntity(database)` which serializes the Database to its V1 JSON
115
+ * form synchronously. The resulting `entity.content` already contains the
116
+ * raw operations under
117
+ * `schemas[].views[].columnMappings[].operation`
118
+ * — exactly the shape `relationalOperationElementToPureCode` expects. We
119
+ * walk that JSON, build a Map keyed by `<schema>.<view>.<column>`, and let
120
+ * the engine return the rendered Pure code.
121
+ *
122
+ * On any failure (network/server/serialization), the partial map (possibly
123
+ * empty) stays in place and consumers fall back to the placeholder.
124
+ */
125
+ loadViewColumnFormulas(): GeneratorFn<void>;
126
+ /**
127
+ * Render every database-level filter's relational operation as Pure code, in
128
+ * a single batched engine call.
129
+ *
130
+ * Same strategy as `loadViewColumnFormulas`: serialize the database to its
131
+ * V1 JSON via `elementToEntity` and walk the `filters[]` array on the root
132
+ * for `{ name, operation }` pairs. Filter names are unique within a
133
+ * Database, so the lookup key is just the filter name.
134
+ *
135
+ * On any failure (network/server/serialization), the partial map (possibly
136
+ * empty) stays in place and consumers fall back to the placeholder.
137
+ */
138
+ loadFilterFormulas(): GeneratorFn<void>;
139
+ /**
140
+ * Render every join's relational operation as Pure code, in a single
141
+ * batched engine call. Same strategy as `loadFilterFormulas`: serialize
142
+ * the database to its V1 JSON via `elementToEntity` and walk the
143
+ * `joins[]` array on the root for `{ name, operation }` pairs. Join
144
+ * names are unique within a Database, so the lookup key is just the
145
+ * join name.
146
+ *
147
+ * On any failure (network/server/serialization), the partial map
148
+ * (possibly empty) stays in place and consumers fall back to the
149
+ * placeholder.
150
+ */
151
+ loadJoinFormulas(): GeneratorFn<void>;
152
+ /**
153
+ * Render every view's groupBy column expressions as Pure code, in a
154
+ * single batched engine call. Same strategy as `loadViewColumnFormulas`:
155
+ * serialize the database to its V1 JSON via `elementToEntity` and walk
156
+ * the `schemas[].views[].groupBy.columns[]` arrays for raw operations.
157
+ *
158
+ * Skips the round-trip entirely when no view declares a groupBy. On any
159
+ * failure the partial map (possibly empty) stays in place and consumers
160
+ * fall back to the static placeholder.
161
+ */
162
+ loadViewGroupByFormulas(): GeneratorFn<void>;
163
+ /**
164
+ * Plain relation selection — used when the user clicks directly on a node
165
+ * on the canvas. Doesn't trigger a pan because the user is already looking
166
+ * at the node they clicked. Clears any active join/filter selection
167
+ * (selecting a relation moves us out of those focus modes).
168
+ */
169
+ setSelectedRelation(relation: Table | View | undefined): void;
170
+ /**
171
+ * Side-panel relation click — selects the relation AND requests a pan so
172
+ * the canvas centers on it. Works identically for tables and views.
173
+ */
174
+ focusOnRelation(relation: Table | View): void;
175
+ /**
176
+ * Side-panel column click — selects the parent table, the specific column,
177
+ * and requests a pan. Inside the table-node component this drives the
178
+ * single-row highlight. Only meaningful for tables; view column-mappings
179
+ * use `focusOnRelation` for now.
180
+ */
181
+ focusOnColumn(table: Table, column: Column): void;
182
+ /**
183
+ * Side-panel view column-mapping click \u2014 selects the parent view AND
184
+ * the specific column-mapping by name (views don't have `Column` refs).
185
+ * Drives the per-row highlight inside the view's canvas node, mirroring
186
+ * how `focusOnColumn` works for tables.
187
+ */
188
+ focusOnViewColumn(view: View, columnMappingName: string): void;
189
+ /**
190
+ * Side-panel join click (or canvas edge click) — selects the join and
191
+ * requests a pan that fits BOTH endpoint relations in view. We clear the
192
+ * relation/column selection because join-mode is its own focus state with
193
+ * its own visual treatment (yellow rings on the two endpoints rather than
194
+ * a single blue ring on one).
195
+ */
196
+ focusOnJoin(join: Join): void;
197
+ /**
198
+ * Side-panel filter click — selects the filter. Filters don't have a
199
+ * canvas representation in the MVP (they live at the database level rather
200
+ * than tied to a specific table/edge), so this only highlights the row in
201
+ * the side panel; no pan is requested. Other selection axes are cleared so
202
+ * the highlight states stay mutually exclusive.
203
+ */
204
+ focusOnFilter(filter: Filter): void;
205
+ /**
206
+ * Clear all selections. Called from the canvas pane click handler so that
207
+ * clicking empty space deselects everything regardless of which selection
208
+ * axis is active.
209
+ */
210
+ clearSelection(): void;
211
+ toggleSchemaExpanded(id: string): void;
212
+ toggleRelationExpanded(id: string): void;
213
+ expandAllSchemas(): void;
214
+ collapseAll(): void;
215
+ /**
216
+ * Set the side panel's collapsed state directly. Useful for syncing the
217
+ * state when the user drags the splitter all the way down (i.e., the
218
+ * panel sets itself to collapsed in response to a resize event).
219
+ */
220
+ setSidePanelCollapsed(collapsed: boolean): void;
221
+ /**
222
+ * Flip the side panel's collapsed state. Driven by the explicit toggle
223
+ * button in the panel header (and the chevron rendered when collapsed).
224
+ */
225
+ toggleSidePanelCollapsed(): void;
226
+ /**
227
+ * Flip the editor's local theme between dark (the Studio default) and
228
+ * light. Scoped to this editor only — the rest of Studio remains in its
229
+ * configured theme. The toggle is exposed via a button in the editor's
230
+ * tab header. The new value is persisted to `UserDataService` so the
231
+ * choice survives reloads.
232
+ */
233
+ toggleTheme(): void;
234
+ /**
235
+ * Set the tree search/filter text. Empty string means \u201cno filter\u201d.
236
+ * The schema-tree consumer derives a lowercase form per render rather
237
+ * than computing it here so identical successive sets stay cheap.
238
+ */
239
+ setSearchText(text: string): void;
240
+ /**
241
+ * Bump the fit-all counter. The canvas observes this and runs
242
+ * `fitView()` over the full graph (no `nodes` filter).
243
+ */
244
+ requestFitAll(): void;
245
+ /**
246
+ * Bump the reset-layout counter. The canvas observes this and re-runs
247
+ * dagre over the current nodes/edges, undoing any user-initiated drags.
248
+ */
249
+ requestResetLayout(): void;
250
+ reprocess(newElement: Database, editorStore: EditorStore): DatabaseEditorState;
251
+ }
252
+ //# sourceMappingURL=DatabaseEditorState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseEditorState.d.ts","sourceRoot":"","sources":["../../../../../src/stores/editor/editor-state/element-editor-state/DatabaseEditorState.ts"],"names":[],"mappings":"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"}