@finos/legend-application-studio 28.15.3 → 28.15.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. package/lib/__lib__/LegendStudioNavigation.d.ts +1 -1
  2. package/lib/components/LegendStudioWebApplication.js +2 -2
  3. package/lib/components/editor/editor-group/diff-editor/ProjectConfigDiffView.d.ts +22 -0
  4. package/lib/components/editor/editor-group/diff-editor/ProjectConfigDiffView.d.ts.map +1 -0
  5. package/lib/components/editor/editor-group/diff-editor/ProjectConfigDiffView.js +26 -0
  6. package/lib/components/editor/editor-group/diff-editor/ProjectConfigDiffView.js.map +1 -0
  7. package/lib/components/{workspace-review/WorkspaceReviewSideBar.d.ts → project-reviewer/ProjectReviewSideBar.d.ts} +2 -2
  8. package/lib/components/project-reviewer/ProjectReviewSideBar.d.ts.map +1 -0
  9. package/lib/components/{workspace-review/WorkspaceReviewSideBar.js → project-reviewer/ProjectReviewSideBar.js} +34 -18
  10. package/lib/components/project-reviewer/ProjectReviewSideBar.js.map +1 -0
  11. package/lib/components/{workspace-review/WorkspaceReviewStoreProvider.d.ts → project-reviewer/ProjectReviewStoreProvider.d.ts} +5 -5
  12. package/lib/components/project-reviewer/ProjectReviewStoreProvider.d.ts.map +1 -0
  13. package/lib/components/{workspace-review/WorkspaceReviewStoreProvider.js → project-reviewer/ProjectReviewStoreProvider.js} +9 -9
  14. package/lib/components/project-reviewer/ProjectReviewStoreProvider.js.map +1 -0
  15. package/lib/components/{workspace-review/WorkspaceReview.d.ts → project-reviewer/ProjectReviewer.d.ts} +2 -2
  16. package/lib/components/project-reviewer/ProjectReviewer.d.ts.map +1 -0
  17. package/lib/components/{workspace-review/WorkspaceReview.js → project-reviewer/ProjectReviewer.js} +19 -28
  18. package/lib/components/project-reviewer/ProjectReviewer.js.map +1 -0
  19. package/lib/components/{workspace-review/WorkspaceReviewPanel.d.ts → project-reviewer/ProjectReviewerPanel.d.ts} +2 -2
  20. package/lib/components/project-reviewer/ProjectReviewerPanel.d.ts.map +1 -0
  21. package/lib/components/{workspace-review/WorkspaceReviewPanel.js → project-reviewer/ProjectReviewerPanel.js} +26 -10
  22. package/lib/components/project-reviewer/ProjectReviewerPanel.js.map +1 -0
  23. package/lib/index.css +1 -1
  24. package/lib/package.json +1 -1
  25. package/lib/stores/editor/editor-state/diff-viewer-state/EditorDiffViewerState.d.ts +24 -0
  26. package/lib/stores/editor/editor-state/diff-viewer-state/EditorDiffViewerState.d.ts.map +1 -0
  27. package/lib/stores/editor/editor-state/diff-viewer-state/EditorDiffViewerState.js +26 -0
  28. package/lib/stores/editor/editor-state/diff-viewer-state/EditorDiffViewerState.js.map +1 -0
  29. package/lib/stores/editor/editor-state/diff-viewer-state/ProjectConfigurationDiffEditorState.d.ts +31 -0
  30. package/lib/stores/editor/editor-state/diff-viewer-state/ProjectConfigurationDiffEditorState.d.ts.map +1 -0
  31. package/lib/stores/editor/editor-state/diff-viewer-state/ProjectConfigurationDiffEditorState.js +39 -0
  32. package/lib/stores/editor/editor-state/diff-viewer-state/ProjectConfigurationDiffEditorState.js.map +1 -0
  33. package/lib/stores/editor/editor-state/element-editor-state/FunctionActivatorState.d.ts.map +1 -1
  34. package/lib/stores/editor/editor-state/element-editor-state/FunctionActivatorState.js +2 -2
  35. package/lib/stores/editor/editor-state/element-editor-state/FunctionActivatorState.js.map +1 -1
  36. package/lib/stores/editor/editor-state/element-editor-state/function-activator/SnowflakeAppFunctionActivatorEditorState.d.ts +1 -1
  37. package/lib/stores/editor/editor-state/element-editor-state/function-activator/SnowflakeAppFunctionActivatorEditorState.d.ts.map +1 -1
  38. package/lib/stores/editor/editor-state/element-editor-state/function-activator/SnowflakeAppFunctionActivatorEditorState.js +5 -4
  39. package/lib/stores/editor/editor-state/element-editor-state/function-activator/SnowflakeAppFunctionActivatorEditorState.js.map +1 -1
  40. package/lib/stores/editor/editor-state/entity-diff-editor-state/EntityChangeConflictEditorState.js +1 -1
  41. package/lib/stores/editor/editor-state/entity-diff-editor-state/EntityChangeConflictEditorState.js.map +1 -1
  42. package/lib/stores/editor/editor-state/entity-diff-editor-state/EntityDiffEditorState.d.ts +2 -2
  43. package/lib/stores/editor/editor-state/entity-diff-editor-state/EntityDiffEditorState.d.ts.map +1 -1
  44. package/lib/stores/editor/editor-state/entity-diff-editor-state/EntityDiffEditorState.js +2 -2
  45. package/lib/stores/editor/editor-state/entity-diff-editor-state/EntityDiffEditorState.js.map +1 -1
  46. package/lib/stores/editor/editor-state/entity-diff-editor-state/EntityDiffViewState.d.ts +0 -2
  47. package/lib/stores/editor/editor-state/entity-diff-editor-state/EntityDiffViewState.d.ts.map +1 -1
  48. package/lib/stores/editor/editor-state/entity-diff-editor-state/EntityDiffViewState.js +1 -3
  49. package/lib/stores/editor/editor-state/entity-diff-editor-state/EntityDiffViewState.js.map +1 -1
  50. package/lib/stores/project-reviewer/ProjectReviewerStore.d.ts +73 -0
  51. package/lib/stores/project-reviewer/ProjectReviewerStore.d.ts.map +1 -0
  52. package/lib/stores/project-reviewer/ProjectReviewerStore.js +303 -0
  53. package/lib/stores/project-reviewer/ProjectReviewerStore.js.map +1 -0
  54. package/package.json +5 -5
  55. package/src/__lib__/LegendStudioNavigation.ts +1 -1
  56. package/src/components/LegendStudioWebApplication.tsx +2 -2
  57. package/src/components/editor/editor-group/diff-editor/ProjectConfigDiffView.tsx +60 -0
  58. package/src/components/{workspace-review/WorkspaceReviewSideBar.tsx → project-reviewer/ProjectReviewSideBar.tsx} +91 -11
  59. package/src/components/{workspace-review/WorkspaceReviewStoreProvider.tsx → project-reviewer/ProjectReviewStoreProvider.tsx} +13 -13
  60. package/src/components/{workspace-review/WorkspaceReview.tsx → project-reviewer/ProjectReviewer.tsx} +25 -55
  61. package/src/components/{workspace-review/WorkspaceReviewPanel.tsx → project-reviewer/ProjectReviewerPanel.tsx} +54 -36
  62. package/src/stores/editor/editor-state/diff-viewer-state/EditorDiffViewerState.ts +34 -0
  63. package/src/stores/editor/editor-state/diff-viewer-state/ProjectConfigurationDiffEditorState.ts +56 -0
  64. package/src/stores/editor/editor-state/element-editor-state/FunctionActivatorState.ts +2 -1
  65. package/src/stores/editor/editor-state/element-editor-state/function-activator/SnowflakeAppFunctionActivatorEditorState.ts +6 -3
  66. package/src/stores/editor/editor-state/entity-diff-editor-state/EntityChangeConflictEditorState.ts +1 -1
  67. package/src/stores/editor/editor-state/entity-diff-editor-state/EntityDiffEditorState.ts +2 -2
  68. package/src/stores/editor/editor-state/entity-diff-editor-state/EntityDiffViewState.ts +1 -3
  69. package/src/stores/{workspace-review/WorkspaceReviewStore.ts → project-reviewer/ProjectReviewerStore.ts} +235 -57
  70. package/tsconfig.json +8 -5
  71. package/lib/components/workspace-review/WorkspaceReview.d.ts.map +0 -1
  72. package/lib/components/workspace-review/WorkspaceReview.js.map +0 -1
  73. package/lib/components/workspace-review/WorkspaceReviewPanel.d.ts.map +0 -1
  74. package/lib/components/workspace-review/WorkspaceReviewPanel.js.map +0 -1
  75. package/lib/components/workspace-review/WorkspaceReviewSideBar.d.ts.map +0 -1
  76. package/lib/components/workspace-review/WorkspaceReviewSideBar.js.map +0 -1
  77. package/lib/components/workspace-review/WorkspaceReviewStoreProvider.d.ts.map +0 -1
  78. package/lib/components/workspace-review/WorkspaceReviewStoreProvider.js.map +0 -1
  79. package/lib/stores/workspace-review/WorkspaceReviewStore.d.ts +0 -47
  80. package/lib/stores/workspace-review/WorkspaceReviewStore.d.ts.map +0 -1
  81. package/lib/stores/workspace-review/WorkspaceReviewStore.js +0 -207
  82. package/lib/stores/workspace-review/WorkspaceReviewStore.js.map +0 -1
@@ -1,207 +0,0 @@
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 { assertErrorThrown, LogEvent, guaranteeNonNullable, } from '@finos/legend-shared';
17
- import { makeObservable, action, flowResult, observable, flow, computed, } from 'mobx';
18
- import { ACTIVITY_MODE } from '../editor/EditorConfig.js';
19
- import { Project, Review } from '@finos/legend-server-sdlc';
20
- import { LEGEND_STUDIO_APP_EVENT } from '../../__lib__/LegendStudioEvent.js';
21
- import { DEFAULT_TAB_SIZE } from '@finos/legend-application';
22
- export class WorkspaceReviewStore {
23
- editorStore;
24
- currentProjectId;
25
- currentProject;
26
- currentPatch;
27
- currentReviewId;
28
- currentReview;
29
- isFetchingCurrentReview = false;
30
- isFetchingComparison = false;
31
- isApprovingReview = false;
32
- isClosingReview = false;
33
- isCommittingReview = false;
34
- isReopeningReview = false;
35
- constructor(editorStore) {
36
- makeObservable(this, {
37
- currentProjectId: observable,
38
- currentProject: observable,
39
- currentPatch: observable,
40
- currentReviewId: observable,
41
- currentReview: observable,
42
- isFetchingCurrentReview: observable,
43
- isFetchingComparison: observable,
44
- isApprovingReview: observable,
45
- isClosingReview: observable,
46
- isCommittingReview: observable,
47
- isReopeningReview: observable,
48
- projectId: computed,
49
- patchReleaseVersionId: computed,
50
- reviewId: computed,
51
- review: computed,
52
- setProjectIdAndReviewId: action,
53
- initialize: flow,
54
- fetchReviewComparison: flow,
55
- fetchProject: flow,
56
- getReview: flow,
57
- approveReview: flow,
58
- commitReview: flow,
59
- reOpenReview: flow,
60
- closeReview: flow,
61
- });
62
- this.editorStore = editorStore;
63
- this.editorStore.activeActivity = ACTIVITY_MODE.REVIEW;
64
- }
65
- get projectId() {
66
- return guaranteeNonNullable(this.currentProjectId, 'Project ID must exist');
67
- }
68
- get patchReleaseVersionId() {
69
- return this.currentPatch?.patchReleaseVersionId.id;
70
- }
71
- get reviewId() {
72
- return guaranteeNonNullable(this.currentReviewId, 'Review ID must exist');
73
- }
74
- get review() {
75
- return guaranteeNonNullable(this.currentReview, 'Review must exist');
76
- }
77
- setProjectIdAndReviewId(projectId, reviewId) {
78
- this.currentProjectId = projectId;
79
- this.currentReviewId = reviewId;
80
- }
81
- *initialize() {
82
- try {
83
- // setup engine
84
- yield this.editorStore.graphManagerState.graphManager.initialize({
85
- env: this.editorStore.applicationStore.config.env,
86
- tabSize: DEFAULT_TAB_SIZE,
87
- clientConfig: {
88
- baseUrl: this.editorStore.applicationStore.config.engineServerUrl,
89
- queryBaseUrl: this.editorStore.applicationStore.config.engineQueryServerUrl,
90
- enableCompression: true,
91
- },
92
- }, {
93
- tracerService: this.editorStore.applicationStore.tracerService,
94
- });
95
- }
96
- catch (error) {
97
- assertErrorThrown(error);
98
- this.editorStore.applicationStore.logService.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
99
- this.editorStore.applicationStore.notificationService.notifyError(error);
100
- }
101
- }
102
- *fetchReviewComparison() {
103
- this.isFetchingComparison = true;
104
- try {
105
- const [fromEntities, toEntities] = (yield Promise.all([
106
- this.editorStore.sdlcServerClient.getReviewFromEntities(this.projectId, this.patchReleaseVersionId, this.review.id),
107
- this.editorStore.sdlcServerClient.getReviewToEntities(this.projectId, this.patchReleaseVersionId, this.review.id),
108
- ]));
109
- this.editorStore.changeDetectionState.workspaceBaseRevisionState.setEntities(fromEntities);
110
- this.editorStore.changeDetectionState.workspaceLocalLatestRevisionState.setEntities(toEntities);
111
- yield Promise.all([
112
- this.editorStore.changeDetectionState.workspaceBaseRevisionState.buildEntityHashesIndex(fromEntities, LogEvent.create(LEGEND_STUDIO_APP_EVENT.CHANGE_DETECTION_BUILD_WORKSPACE_HASHES_INDEX__SUCCESS)),
113
- this.editorStore.changeDetectionState.workspaceLocalLatestRevisionState.buildEntityHashesIndex(toEntities, LogEvent.create(LEGEND_STUDIO_APP_EVENT.CHANGE_DETECTION_BUILD_LOCAL_HASHES_INDEX__SUCCESS)),
114
- ]);
115
- yield flowResult(this.editorStore.changeDetectionState.computeAggregatedWorkspaceChanges());
116
- }
117
- catch (error) {
118
- assertErrorThrown(error);
119
- this.editorStore.applicationStore.logService.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
120
- this.editorStore.applicationStore.notificationService.notifyError(error);
121
- }
122
- finally {
123
- this.isFetchingComparison = false;
124
- }
125
- }
126
- *fetchProject() {
127
- try {
128
- this.currentProject = Project.serialization.fromJson((yield this.editorStore.sdlcServerClient.getProject(this.projectId)));
129
- }
130
- catch (error) {
131
- assertErrorThrown(error);
132
- this.editorStore.applicationStore.logService.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
133
- this.editorStore.applicationStore.notificationService.notifyError(error);
134
- }
135
- }
136
- *getReview() {
137
- try {
138
- this.isFetchingCurrentReview = true;
139
- this.currentReview = Review.serialization.fromJson((yield this.editorStore.sdlcServerClient.getReview(this.projectId, this.patchReleaseVersionId, this.reviewId)));
140
- }
141
- catch (error) {
142
- assertErrorThrown(error);
143
- this.editorStore.applicationStore.logService.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
144
- this.editorStore.applicationStore.notificationService.notifyError(error);
145
- }
146
- finally {
147
- this.isFetchingCurrentReview = false;
148
- }
149
- }
150
- *approveReview() {
151
- this.isApprovingReview = true;
152
- try {
153
- this.currentReview = Review.serialization.fromJson((yield this.editorStore.sdlcServerClient.approveReview(this.projectId, this.patchReleaseVersionId, this.review.id)));
154
- }
155
- catch (error) {
156
- assertErrorThrown(error);
157
- this.editorStore.applicationStore.logService.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
158
- this.editorStore.applicationStore.notificationService.notifyError(error);
159
- }
160
- finally {
161
- this.isApprovingReview = false;
162
- }
163
- }
164
- *commitReview() {
165
- this.isCommittingReview = true;
166
- try {
167
- this.currentReview = Review.serialization.fromJson((yield this.editorStore.sdlcServerClient.commitReview(this.projectId, this.patchReleaseVersionId, this.review.id, { message: `${this.review.title} [review]` })));
168
- }
169
- catch (error) {
170
- assertErrorThrown(error);
171
- this.editorStore.applicationStore.logService.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
172
- this.editorStore.applicationStore.notificationService.notifyError(error);
173
- }
174
- finally {
175
- this.isCommittingReview = false;
176
- }
177
- }
178
- *reOpenReview() {
179
- this.isReopeningReview = true;
180
- try {
181
- this.currentReview = Review.serialization.fromJson((yield this.editorStore.sdlcServerClient.reopenReview(this.projectId, this.patchReleaseVersionId, this.review.id)));
182
- }
183
- catch (error) {
184
- assertErrorThrown(error);
185
- this.editorStore.applicationStore.logService.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
186
- this.editorStore.applicationStore.notificationService.notifyError(error);
187
- }
188
- finally {
189
- this.isReopeningReview = false;
190
- }
191
- }
192
- *closeReview() {
193
- this.isClosingReview = true;
194
- try {
195
- this.currentReview = Review.serialization.fromJson((yield this.editorStore.sdlcServerClient.closeReview(this.projectId, this.patchReleaseVersionId, this.review.id)));
196
- }
197
- catch (error) {
198
- assertErrorThrown(error);
199
- this.editorStore.applicationStore.logService.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
200
- this.editorStore.applicationStore.notificationService.notifyError(error);
201
- }
202
- finally {
203
- this.isClosingReview = false;
204
- }
205
- }
206
- }
207
- //# sourceMappingURL=WorkspaceReviewStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorkspaceReviewStore.js","sourceRoot":"","sources":["../../../src/stores/workspace-review/WorkspaceReviewStore.ts"],"names":[],"mappings":"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"}