@finos/legend-application-studio 28.4.4 → 28.5.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 (113) hide show
  1. package/lib/__lib__/LegendStudioDocumentation.d.ts +1 -0
  2. package/lib/__lib__/LegendStudioDocumentation.d.ts.map +1 -1
  3. package/lib/__lib__/LegendStudioDocumentation.js +1 -0
  4. package/lib/__lib__/LegendStudioDocumentation.js.map +1 -1
  5. package/lib/__lib__/LegendStudioNavigation.d.ts +12 -2
  6. package/lib/__lib__/LegendStudioNavigation.d.ts.map +1 -1
  7. package/lib/__lib__/LegendStudioNavigation.js +92 -37
  8. package/lib/__lib__/LegendStudioNavigation.js.map +1 -1
  9. package/lib/components/LegendStudioWebApplication.d.ts.map +1 -1
  10. package/lib/components/LegendStudioWebApplication.js +6 -0
  11. package/lib/components/LegendStudioWebApplication.js.map +1 -1
  12. package/lib/components/editor/ActivityBar.js +1 -1
  13. package/lib/components/editor/ActivityBar.js.map +1 -1
  14. package/lib/components/editor/Editor.d.ts.map +1 -1
  15. package/lib/components/editor/Editor.js +10 -2
  16. package/lib/components/editor/Editor.js.map +1 -1
  17. package/lib/components/editor/StatusBar.d.ts.map +1 -1
  18. package/lib/components/editor/StatusBar.js +4 -1
  19. package/lib/components/editor/StatusBar.js.map +1 -1
  20. package/lib/components/editor/__test-utils__/EditorComponentTestUtils.d.ts.map +1 -1
  21. package/lib/components/editor/__test-utils__/EditorComponentTestUtils.js +1 -1
  22. package/lib/components/editor/__test-utils__/EditorComponentTestUtils.js.map +1 -1
  23. package/lib/components/editor/editor-group/GrammarTextEditor.d.ts.map +1 -1
  24. package/lib/components/editor/editor-group/GrammarTextEditor.js +6 -3
  25. package/lib/components/editor/editor-group/GrammarTextEditor.js.map +1 -1
  26. package/lib/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.d.ts +4 -0
  27. package/lib/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.d.ts.map +1 -1
  28. package/lib/components/editor/side-bar/ProjectOverview.d.ts.map +1 -1
  29. package/lib/components/editor/side-bar/ProjectOverview.js +109 -7
  30. package/lib/components/editor/side-bar/ProjectOverview.js.map +1 -1
  31. package/lib/components/project-view/ProjectViewer.js +1 -1
  32. package/lib/components/project-view/ProjectViewer.js.map +1 -1
  33. package/lib/components/workspace-review/WorkspaceReview.js +1 -1
  34. package/lib/components/workspace-review/WorkspaceReview.js.map +1 -1
  35. package/lib/components/workspace-setup/CreateWorkspaceModal.d.ts +5 -1
  36. package/lib/components/workspace-setup/CreateWorkspaceModal.d.ts.map +1 -1
  37. package/lib/components/workspace-setup/CreateWorkspaceModal.js +34 -6
  38. package/lib/components/workspace-setup/CreateWorkspaceModal.js.map +1 -1
  39. package/lib/components/workspace-setup/WorkspaceSelectorUtils.d.ts.map +1 -1
  40. package/lib/components/workspace-setup/WorkspaceSelectorUtils.js +1 -1
  41. package/lib/components/workspace-setup/WorkspaceSelectorUtils.js.map +1 -1
  42. package/lib/components/workspace-setup/WorkspaceSetup.d.ts +1 -0
  43. package/lib/components/workspace-setup/WorkspaceSetup.d.ts.map +1 -1
  44. package/lib/components/workspace-setup/WorkspaceSetup.js +2 -1
  45. package/lib/components/workspace-setup/WorkspaceSetup.js.map +1 -1
  46. package/lib/index.css +2 -2
  47. package/lib/index.css.map +1 -1
  48. package/lib/package.json +1 -1
  49. package/lib/stores/LegendStudioApplicationPlugin.d.ts +1 -1
  50. package/lib/stores/LegendStudioApplicationPlugin.d.ts.map +1 -1
  51. package/lib/stores/editor/EditorSDLCState.d.ts +8 -2
  52. package/lib/stores/editor/EditorSDLCState.d.ts.map +1 -1
  53. package/lib/stores/editor/EditorSDLCState.js +29 -3
  54. package/lib/stores/editor/EditorSDLCState.js.map +1 -1
  55. package/lib/stores/editor/EditorStore.d.ts +1 -1
  56. package/lib/stores/editor/EditorStore.d.ts.map +1 -1
  57. package/lib/stores/editor/EditorStore.js +8 -5
  58. package/lib/stores/editor/EditorStore.js.map +1 -1
  59. package/lib/stores/editor/StandardEditorMode.d.ts.map +1 -1
  60. package/lib/stores/editor/StandardEditorMode.js +1 -1
  61. package/lib/stores/editor/StandardEditorMode.js.map +1 -1
  62. package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.d.ts.map +1 -1
  63. package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.js +1 -1
  64. package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.js.map +1 -1
  65. package/lib/stores/editor/sidebar-state/ProjectOverviewState.d.ts +9 -3
  66. package/lib/stores/editor/sidebar-state/ProjectOverviewState.d.ts.map +1 -1
  67. package/lib/stores/editor/sidebar-state/ProjectOverviewState.js +71 -7
  68. package/lib/stores/editor/sidebar-state/ProjectOverviewState.js.map +1 -1
  69. package/lib/stores/editor/sidebar-state/WorkspaceReviewState.d.ts.map +1 -1
  70. package/lib/stores/editor/sidebar-state/WorkspaceReviewState.js +6 -6
  71. package/lib/stores/editor/sidebar-state/WorkspaceReviewState.js.map +1 -1
  72. package/lib/stores/editor/sidebar-state/WorkspaceUpdaterState.d.ts.map +1 -1
  73. package/lib/stores/editor/sidebar-state/WorkspaceUpdaterState.js +2 -2
  74. package/lib/stores/editor/sidebar-state/WorkspaceUpdaterState.js.map +1 -1
  75. package/lib/stores/workspace-review/WorkspaceReviewStore.d.ts +3 -1
  76. package/lib/stores/workspace-review/WorkspaceReviewStore.d.ts.map +1 -1
  77. package/lib/stores/workspace-review/WorkspaceReviewStore.js +13 -7
  78. package/lib/stores/workspace-review/WorkspaceReviewStore.js.map +1 -1
  79. package/lib/stores/workspace-setup/ProjectConfigurationStatus.d.ts +1 -1
  80. package/lib/stores/workspace-setup/ProjectConfigurationStatus.d.ts.map +1 -1
  81. package/lib/stores/workspace-setup/ProjectConfigurationStatus.js +2 -2
  82. package/lib/stores/workspace-setup/ProjectConfigurationStatus.js.map +1 -1
  83. package/lib/stores/workspace-setup/WorkspaceSetupStore.d.ts +6 -2
  84. package/lib/stores/workspace-setup/WorkspaceSetupStore.d.ts.map +1 -1
  85. package/lib/stores/workspace-setup/WorkspaceSetupStore.js +45 -12
  86. package/lib/stores/workspace-setup/WorkspaceSetupStore.js.map +1 -1
  87. package/package.json +3 -3
  88. package/src/__lib__/LegendStudioDocumentation.ts +1 -0
  89. package/src/__lib__/LegendStudioNavigation.ts +106 -25
  90. package/src/components/LegendStudioWebApplication.tsx +6 -0
  91. package/src/components/editor/ActivityBar.tsx +1 -1
  92. package/src/components/editor/Editor.tsx +15 -2
  93. package/src/components/editor/StatusBar.tsx +5 -1
  94. package/src/components/editor/__test-utils__/EditorComponentTestUtils.tsx +1 -0
  95. package/src/components/editor/editor-group/GrammarTextEditor.tsx +6 -3
  96. package/src/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.tsx +1 -1
  97. package/src/components/editor/side-bar/ProjectOverview.tsx +340 -8
  98. package/src/components/project-view/ProjectViewer.tsx +1 -1
  99. package/src/components/workspace-review/WorkspaceReview.tsx +1 -1
  100. package/src/components/workspace-setup/CreateWorkspaceModal.tsx +63 -4
  101. package/src/components/workspace-setup/WorkspaceSelectorUtils.tsx +13 -6
  102. package/src/components/workspace-setup/WorkspaceSetup.tsx +3 -0
  103. package/src/stores/LegendStudioApplicationPlugin.ts +1 -1
  104. package/src/stores/editor/EditorSDLCState.ts +45 -0
  105. package/src/stores/editor/EditorStore.ts +15 -2
  106. package/src/stores/editor/StandardEditorMode.ts +1 -0
  107. package/src/stores/editor/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.ts +1 -0
  108. package/src/stores/editor/sidebar-state/ProjectOverviewState.ts +135 -1
  109. package/src/stores/editor/sidebar-state/WorkspaceReviewState.ts +6 -1
  110. package/src/stores/editor/sidebar-state/WorkspaceUpdaterState.ts +2 -0
  111. package/src/stores/workspace-review/WorkspaceReviewStore.ts +15 -1
  112. package/src/stores/workspace-setup/ProjectConfigurationStatus.ts +2 -0
  113. package/src/stores/workspace-setup/WorkspaceSetupStore.ts +71 -7
@@ -21,6 +21,7 @@ import { generatePath } from '@finos/legend-application/browser';
21
21
 
22
22
  export enum LEGEND_STUDIO_ROUTE_PATTERN_TOKEN {
23
23
  PROJECT_ID = 'projectId',
24
+ PATCH_RELEASE_VERSION_ID = 'patchReleaseVersionId',
24
25
  WORKSPACE_ID = 'workspaceId',
25
26
  GROUP_WORKSPACE_ID = 'groupWorkspaceId',
26
27
  REVISION_ID = 'revisionId',
@@ -38,12 +39,19 @@ export const LEGEND_STUDIO_ROUTE_PATTERN = Object.freeze({
38
39
  VIEW_BY_REVISION_ENTITY: `/view/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID}/revision/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.REVISION_ID}/entity/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.ENTITY_PATH}`,
39
40
  VIEW_BY_VERSION_ENTITY: `/view/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID}/version/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.VERSION_ID}/entity/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.ENTITY_PATH}`,
40
41
  REVIEW: `/review/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID}/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.REVIEW_ID}`,
42
+ PATCH_REVIEW: `/review/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID}/patches/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PATCH_RELEASE_VERSION_ID}/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.REVIEW_ID}`,
41
43
  EDIT_WORKSPACE: `/edit/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID}/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.WORKSPACE_ID}/`,
44
+ EDIT_PATCH_WORKSPACE: `/edit/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID}/patches/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PATCH_RELEASE_VERSION_ID}/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.WORKSPACE_ID}/`,
42
45
  EDIT_WORKSPACE_ENTITY: `/edit/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID}/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.WORKSPACE_ID}/entity/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.ENTITY_PATH}`,
46
+ EDIT_PATCH_WORKSPACE_ENTITY: `/edit/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID}/patches/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PATCH_RELEASE_VERSION_ID}/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.WORKSPACE_ID}/entity/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.ENTITY_PATH}`,
43
47
  EDIT_GROUP_WORKSPACE: `/edit/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID}/groupWorkspace/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.GROUP_WORKSPACE_ID}/`,
48
+ EDIT_PATCH_GROUP_WORKSPACE: `/edit/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID}/patches/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PATCH_RELEASE_VERSION_ID}/groupWorkspace/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.GROUP_WORKSPACE_ID}/`,
44
49
  EDIT_GROUP_WORKSPACE_ENTITY: `/edit/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID}/groupWorkspace/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.GROUP_WORKSPACE_ID}/entity/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.ENTITY_PATH}`,
50
+ EDIT_PATCH_GROUP_WORKSPACE_ENTITY: `/edit/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID}/patches/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PATCH_RELEASE_VERSION_ID}/groupWorkspace/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.GROUP_WORKSPACE_ID}/entity/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.ENTITY_PATH}`,
45
51
  SETUP_WORKSPACE: `/setup/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID}?/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.WORKSPACE_ID}?`,
52
+ SETUP_PATCH_WORKSPACE: `/setup/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID}/patches/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PATCH_RELEASE_VERSION_ID}?/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.WORKSPACE_ID}?`,
46
53
  SETUP_GROUP_WORKSPACE: `/setup/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID}/groupWorkspace/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.GROUP_WORKSPACE_ID}/`,
54
+ SETUP_PATCH_GROUP_WORKSPACE: `/setup/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID}/patches/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PATCH_RELEASE_VERSION_ID}?/groupWorkspace/:${LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.GROUP_WORKSPACE_ID}/`,
47
55
  });
48
56
 
49
57
  export const LEGEND_STUDIO_SDLC_BYPASSED_ROUTE_PATTERN = Object.freeze({
@@ -67,6 +75,7 @@ export type ProjectViewerPathParams = {
67
75
 
68
76
  export type WorkspaceEditorPathParams = {
69
77
  [LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID]: string;
78
+ [LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PATCH_RELEASE_VERSION_ID]?: string;
70
79
  [LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.WORKSPACE_ID]?: string;
71
80
  [LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.GROUP_WORKSPACE_ID]?: string;
72
81
  [LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.ENTITY_PATH]?: string;
@@ -74,6 +83,7 @@ export type WorkspaceEditorPathParams = {
74
83
 
75
84
  export type WorkspaceSetupPathParams = {
76
85
  [LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PROJECT_ID]?: string;
86
+ [LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.PATCH_RELEASE_VERSION_ID]?: string;
77
87
  [LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.WORKSPACE_ID]?: string;
78
88
  [LEGEND_STUDIO_ROUTE_PATTERN_TOKEN.GROUP_WORKSPACE_ID]?: string;
79
89
  };
@@ -85,53 +95,99 @@ export type ElementPreviewPathParams = {
85
95
 
86
96
  const generateGroupWorkspaceSetupRoute = (
87
97
  projectId: string | undefined,
98
+ patchReleaseVersionId: string | undefined,
88
99
  groupWorkspaceId: string,
89
100
  ): string =>
90
- generatePath(LEGEND_STUDIO_ROUTE_PATTERN.SETUP_GROUP_WORKSPACE, {
91
- // FIXME: due to some problem with typings, we will need to cast like this
92
- // we will fix this when upgrading react-router
93
- // See https://github.com/finos/legend-studio/issues/688
94
- projectId: projectId as string,
95
- groupWorkspaceId,
96
- });
101
+ patchReleaseVersionId
102
+ ? generatePath(LEGEND_STUDIO_ROUTE_PATTERN.SETUP_PATCH_GROUP_WORKSPACE, {
103
+ // FIXME: due to some problem with typings, we will need to cast like this
104
+ // we will fix this when upgrading react-router
105
+ // See https://github.com/finos/legend-studio/issues/688
106
+ projectId: projectId as string,
107
+ patchReleaseVersionId: patchReleaseVersionId,
108
+ groupWorkspaceId,
109
+ })
110
+ : generatePath(LEGEND_STUDIO_ROUTE_PATTERN.SETUP_GROUP_WORKSPACE, {
111
+ // FIXME: due to some problem with typings, we will need to cast like this
112
+ // we will fix this when upgrading react-router
113
+ // See https://github.com/finos/legend-studio/issues/688
114
+ projectId: projectId as string,
115
+ groupWorkspaceId,
116
+ });
97
117
 
98
118
  const generateWorkspaceSetupRoute = (
99
119
  projectId: string | undefined,
120
+ patchReleaseVersionId: string | undefined,
100
121
  workspaceId?: string,
101
122
  ): string =>
102
- generatePath(LEGEND_STUDIO_ROUTE_PATTERN.SETUP_WORKSPACE, {
103
- // FIXME: due to some problem with typings, we will need to cast like this
104
- // we will fix this when upgrading react-router
105
- // See https://github.com/finos/legend-studio/issues/688
106
- projectId: projectId as string,
107
- // FIXME: due to some problem with typings, we will need to cast like this
108
- // we will fix this when upgrading react-router
109
- // See https://github.com/finos/legend-studio/issues/688
110
- workspaceId: workspaceId as string,
111
- });
123
+ patchReleaseVersionId
124
+ ? generatePath(LEGEND_STUDIO_ROUTE_PATTERN.SETUP_PATCH_WORKSPACE, {
125
+ // FIXME: due to some problem with typings, we will need to cast like this
126
+ // we will fix this when upgrading react-router
127
+ // See https://github.com/finos/legend-studio/issues/688
128
+ projectId: projectId as string,
129
+ patchReleaseVersionId: patchReleaseVersionId,
130
+ // FIXME: due to some problem with typings, we will need to cast like this
131
+ // we will fix this when upgrading react-router
132
+ // See https://github.com/finos/legend-studio/issues/688
133
+ workspaceId: workspaceId as string,
134
+ })
135
+ : generatePath(LEGEND_STUDIO_ROUTE_PATTERN.SETUP_WORKSPACE, {
136
+ // FIXME: due to some problem with typings, we will need to cast like this
137
+ // we will fix this when upgrading react-router
138
+ // See https://github.com/finos/legend-studio/issues/688
139
+ projectId: projectId as string,
140
+ // FIXME: due to some problem with typings, we will need to cast like this
141
+ // we will fix this when upgrading react-router
142
+ // See https://github.com/finos/legend-studio/issues/688
143
+ workspaceId: workspaceId as string,
144
+ });
112
145
 
113
146
  export const generateSetupRoute = (
114
147
  projectId: string | undefined,
148
+ patchReleaseVersionId: string | undefined,
115
149
  workspaceId?: string | undefined,
116
150
  workspaceType?: WorkspaceType | undefined,
117
151
  ): string =>
118
152
  workspaceType === WorkspaceType.GROUP
119
153
  ? generateGroupWorkspaceSetupRoute(
120
154
  projectId,
155
+ patchReleaseVersionId,
121
156
  guaranteeNonNullable(workspaceId),
122
157
  )
123
- : generateWorkspaceSetupRoute(projectId, workspaceId);
158
+ : generateWorkspaceSetupRoute(
159
+ projectId,
160
+ patchReleaseVersionId,
161
+ workspaceId,
162
+ );
124
163
 
125
164
  const generateGroupWorkspaceEditorRoute = (
126
165
  projectId: string,
166
+ patchReleaseVersionId: string | undefined,
127
167
  groupWorkspaceId: string,
128
168
  entityPath?: string | undefined,
129
169
  ): string =>
130
170
  !entityPath
131
- ? generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT_GROUP_WORKSPACE, {
132
- projectId,
133
- groupWorkspaceId,
134
- })
171
+ ? patchReleaseVersionId
172
+ ? generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT_PATCH_GROUP_WORKSPACE, {
173
+ projectId,
174
+ patchReleaseVersionId,
175
+ groupWorkspaceId,
176
+ })
177
+ : generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT_GROUP_WORKSPACE, {
178
+ projectId,
179
+ groupWorkspaceId,
180
+ })
181
+ : patchReleaseVersionId
182
+ ? generatePath(
183
+ LEGEND_STUDIO_ROUTE_PATTERN.EDIT_PATCH_GROUP_WORKSPACE_ENTITY,
184
+ {
185
+ projectId,
186
+ patchReleaseVersionId,
187
+ groupWorkspaceId,
188
+ entityPath,
189
+ },
190
+ )
135
191
  : generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT_GROUP_WORKSPACE_ENTITY, {
136
192
  projectId,
137
193
  groupWorkspaceId,
@@ -140,13 +196,27 @@ const generateGroupWorkspaceEditorRoute = (
140
196
 
141
197
  const generateWorkspaceEditorRoute = (
142
198
  projectId: string,
199
+ patchReleaseVersionId: string | undefined,
143
200
  workspaceId: string,
144
201
  entityPath?: string | undefined,
145
202
  ): string =>
146
203
  !entityPath
147
- ? generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT_WORKSPACE, {
204
+ ? patchReleaseVersionId
205
+ ? generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT_PATCH_WORKSPACE, {
206
+ projectId,
207
+ patchReleaseVersionId,
208
+ workspaceId,
209
+ })
210
+ : generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT_WORKSPACE, {
211
+ projectId,
212
+ workspaceId,
213
+ })
214
+ : patchReleaseVersionId
215
+ ? generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT_PATCH_WORKSPACE_ENTITY, {
148
216
  projectId,
217
+ patchReleaseVersionId,
149
218
  workspaceId,
219
+ entityPath,
150
220
  })
151
221
  : generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT_WORKSPACE_ENTITY, {
152
222
  projectId,
@@ -156,13 +226,24 @@ const generateWorkspaceEditorRoute = (
156
226
 
157
227
  export const generateEditorRoute = (
158
228
  projectId: string,
229
+ patchReleaseVersionId: string | undefined,
159
230
  workspaceId: string,
160
231
  workspaceType: WorkspaceType,
161
232
  entityPath?: string | undefined,
162
233
  ): string =>
163
234
  workspaceType === WorkspaceType.GROUP
164
- ? generateGroupWorkspaceEditorRoute(projectId, workspaceId, entityPath)
165
- : generateWorkspaceEditorRoute(projectId, workspaceId, entityPath);
235
+ ? generateGroupWorkspaceEditorRoute(
236
+ projectId,
237
+ patchReleaseVersionId,
238
+ workspaceId,
239
+ entityPath,
240
+ )
241
+ : generateWorkspaceEditorRoute(
242
+ projectId,
243
+ patchReleaseVersionId,
244
+ workspaceId,
245
+ entityPath,
246
+ );
166
247
 
167
248
  export const generateReviewRoute = (
168
249
  projectId: string,
@@ -170,9 +170,13 @@ export const LegendStudioWebApplicationRouter = observer(() => {
170
170
  strict={true}
171
171
  path={[
172
172
  LEGEND_STUDIO_ROUTE_PATTERN.EDIT_GROUP_WORKSPACE,
173
+ LEGEND_STUDIO_ROUTE_PATTERN.EDIT_PATCH_GROUP_WORKSPACE,
173
174
  LEGEND_STUDIO_ROUTE_PATTERN.EDIT_GROUP_WORKSPACE_ENTITY,
175
+ LEGEND_STUDIO_ROUTE_PATTERN.EDIT_PATCH_GROUP_WORKSPACE_ENTITY,
174
176
  LEGEND_STUDIO_ROUTE_PATTERN.EDIT_WORKSPACE,
177
+ LEGEND_STUDIO_ROUTE_PATTERN.EDIT_PATCH_WORKSPACE,
175
178
  LEGEND_STUDIO_ROUTE_PATTERN.EDIT_WORKSPACE_ENTITY,
179
+ LEGEND_STUDIO_ROUTE_PATTERN.EDIT_PATCH_WORKSPACE_ENTITY,
176
180
  ]}
177
181
  component={
178
182
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
@@ -185,7 +189,9 @@ export const LegendStudioWebApplicationRouter = observer(() => {
185
189
  // root path will lead to setup page (home page)
186
190
  '/',
187
191
  LEGEND_STUDIO_ROUTE_PATTERN.SETUP_WORKSPACE,
192
+ LEGEND_STUDIO_ROUTE_PATTERN.SETUP_PATCH_WORKSPACE,
188
193
  LEGEND_STUDIO_ROUTE_PATTERN.SETUP_GROUP_WORKSPACE,
194
+ LEGEND_STUDIO_ROUTE_PATTERN.SETUP_PATCH_GROUP_WORKSPACE,
189
195
  ]}
190
196
  component={
191
197
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
@@ -89,7 +89,7 @@ export const ActivityBarMenu: React.FC = () => {
89
89
  const goToWorkspaceSetup = (): void =>
90
90
  applicationStore.navigationService.navigator.visitAddress(
91
91
  applicationStore.navigationService.navigator.generateAddress(
92
- generateSetupRoute(undefined),
92
+ generateSetupRoute(undefined, undefined),
93
93
  ),
94
94
  );
95
95
  // help
@@ -58,6 +58,7 @@ export const Editor = withEditorStore(
58
58
  observer(() => {
59
59
  const params = useParams<WorkspaceEditorPathParams>();
60
60
  const projectId = params.projectId;
61
+ const patchReleaseVersionId = params.patchReleaseVersionId;
61
62
  const workspaceType = params.groupWorkspaceId
62
63
  ? WorkspaceType.GROUP
63
64
  : WorkspaceType.USER;
@@ -130,9 +131,21 @@ export const Editor = withEditorStore(
130
131
  }, [editorStore, params]);
131
132
  useEffect(() => {
132
133
  flowResult(
133
- editorStore.initialize(projectId, workspaceId, workspaceType),
134
+ editorStore.initialize(
135
+ projectId,
136
+ patchReleaseVersionId,
137
+ workspaceId,
138
+ workspaceType,
139
+ ),
134
140
  ).catch(applicationStore.alertUnhandledError);
135
- }, [editorStore, applicationStore, projectId, workspaceId, workspaceType]);
141
+ }, [
142
+ editorStore,
143
+ patchReleaseVersionId,
144
+ applicationStore,
145
+ projectId,
146
+ workspaceId,
147
+ workspaceType,
148
+ ]);
136
149
 
137
150
  useEffect(() => {
138
151
  applicationStore.navigationService.navigator.blockNavigation(
@@ -57,6 +57,9 @@ export const StatusBar = observer((props: { actionsDisabled: boolean }) => {
57
57
  const workspaceType = params.groupWorkspaceId
58
58
  ? WorkspaceType.GROUP
59
59
  : WorkspaceType.USER;
60
+ const patchReleaseVersionId = params.patchReleaseVersionId
61
+ ? `patch / ${params.patchReleaseVersionId} / `
62
+ : '';
60
63
  const workspaceId = guaranteeNonNullable(
61
64
  params.groupWorkspaceId ?? params.workspaceId,
62
65
  `Workspace/group workspace ID is not provided`,
@@ -171,7 +174,7 @@ export const StatusBar = observer((props: { actionsDisabled: boolean }) => {
171
174
  onClick={(): void =>
172
175
  applicationStore.navigationService.navigator.visitAddress(
173
176
  applicationStore.navigationService.navigator.generateAddress(
174
- generateSetupRoute(projectId),
177
+ generateSetupRoute(projectId, undefined),
175
178
  ),
176
179
  )
177
180
  }
@@ -191,6 +194,7 @@ export const StatusBar = observer((props: { actionsDisabled: boolean }) => {
191
194
  )
192
195
  }
193
196
  >
197
+ {patchReleaseVersionId}
194
198
  {workspaceId}
195
199
  {editorStore.localChangesState.hasUnpushedChanges ? '*' : ''}
196
200
  </button>
@@ -332,6 +332,7 @@ export const TEST__setUpEditor = async (
332
332
  initialEntries: [
333
333
  generateEditorRoute(
334
334
  (workspace as unknown as Workspace).projectId,
335
+ undefined,
335
336
  (workspace as unknown as Workspace).workspaceId,
336
337
  WorkspaceType.USER,
337
338
  ),
@@ -984,7 +984,8 @@ export const GrammarTextEditor = observer(() => {
984
984
  (plugin) =>
985
985
  (
986
986
  plugin as DSL_LegendStudioApplicationPlugin_Extension
987
- ).getAutoFoldingCandidateToken?.() ?? [],
987
+ ).getExtraGrammarTextEditorAutoFoldingElementCreatorKeywords?.() ??
988
+ [],
988
989
  );
989
990
  const foldingClass = editor?.getContribution('editor.contrib.folding');
990
991
 
@@ -1056,7 +1057,8 @@ export const GrammarTextEditor = observer(() => {
1056
1057
  (plugin) =>
1057
1058
  (
1058
1059
  plugin as DSL_LegendStudioApplicationPlugin_Extension
1059
- ).getAutoFoldingCandidateToken?.() ?? [],
1060
+ ).getExtraGrammarTextEditorAutoFoldingElementCreatorKeywords?.() ??
1061
+ [],
1060
1062
  );
1061
1063
  const foldingClass = editor.getContribution('editor.contrib.folding');
1062
1064
 
@@ -1110,7 +1112,8 @@ export const GrammarTextEditor = observer(() => {
1110
1112
  (plugin) =>
1111
1113
  (
1112
1114
  plugin as DSL_LegendStudioApplicationPlugin_Extension
1113
- ).getAutoFoldingCandidateToken?.() ?? [],
1115
+ ).getExtraGrammarTextEditorAutoFoldingElementCreatorKeywords?.() ??
1116
+ [],
1114
1117
  );
1115
1118
  const foldingClass = editor.getContribution('editor.contrib.folding');
1116
1119
 
@@ -97,7 +97,7 @@ import {
97
97
  import { LEGEND_STUDIO_TEST_ID } from '../../../../__lib__/LegendStudioTesting.js';
98
98
  import { useEditorStore } from '../../EditorStoreProvider.js';
99
99
 
100
- interface VersionOption {
100
+ export interface VersionOption {
101
101
  label: string;
102
102
  value: string;
103
103
  }