@theia/workspace 1.67.0-next.56 → 1.67.0-next.59

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 (150) hide show
  1. package/lib/browser/canonical-uri-service.d.ts +12 -0
  2. package/lib/browser/canonical-uri-service.d.ts.map +1 -0
  3. package/lib/browser/canonical-uri-service.js +55 -0
  4. package/lib/browser/canonical-uri-service.js.map +1 -0
  5. package/lib/browser/diff-service.d.ts +11 -0
  6. package/lib/browser/diff-service.d.ts.map +1 -0
  7. package/lib/browser/diff-service.js +69 -0
  8. package/lib/browser/diff-service.js.map +1 -0
  9. package/lib/browser/index.d.ts +7 -0
  10. package/lib/browser/index.d.ts.map +1 -0
  11. package/lib/browser/index.js +25 -0
  12. package/lib/browser/index.js.map +1 -0
  13. package/lib/browser/quick-open-workspace.d.ts +18 -0
  14. package/lib/browser/quick-open-workspace.d.ts.map +1 -0
  15. package/lib/browser/quick-open-workspace.js +112 -0
  16. package/lib/browser/quick-open-workspace.js.map +1 -0
  17. package/lib/browser/untitled-workspace-exit-dialog.d.ts +20 -0
  18. package/lib/browser/untitled-workspace-exit-dialog.d.ts.map +1 -0
  19. package/lib/browser/untitled-workspace-exit-dialog.js +64 -0
  20. package/lib/browser/untitled-workspace-exit-dialog.js.map +1 -0
  21. package/lib/browser/workspace-breadcrumbs-contribution.d.ts +11 -0
  22. package/lib/browser/workspace-breadcrumbs-contribution.d.ts.map +1 -0
  23. package/lib/browser/workspace-breadcrumbs-contribution.js +59 -0
  24. package/lib/browser/workspace-breadcrumbs-contribution.js.map +1 -0
  25. package/lib/browser/workspace-commands.d.ts +116 -0
  26. package/lib/browser/workspace-commands.d.ts.map +1 -0
  27. package/lib/browser/workspace-commands.js +568 -0
  28. package/lib/browser/workspace-commands.js.map +1 -0
  29. package/lib/browser/workspace-commands.spec.d.ts +2 -0
  30. package/lib/browser/workspace-commands.spec.d.ts.map +1 -0
  31. package/lib/browser/workspace-commands.spec.js +128 -0
  32. package/lib/browser/workspace-commands.spec.js.map +1 -0
  33. package/lib/browser/workspace-compare-handler.d.ts +27 -0
  34. package/lib/browser/workspace-compare-handler.d.ts.map +1 -0
  35. package/lib/browser/workspace-compare-handler.js +59 -0
  36. package/lib/browser/workspace-compare-handler.js.map +1 -0
  37. package/lib/browser/workspace-delete-handler.d.ts +76 -0
  38. package/lib/browser/workspace-delete-handler.d.ts.map +1 -0
  39. package/lib/browser/workspace-delete-handler.js +207 -0
  40. package/lib/browser/workspace-delete-handler.js.map +1 -0
  41. package/lib/browser/workspace-duplicate-handler.d.ts +31 -0
  42. package/lib/browser/workspace-duplicate-handler.d.ts.map +1 -0
  43. package/lib/browser/workspace-duplicate-handler.js +79 -0
  44. package/lib/browser/workspace-duplicate-handler.js.map +1 -0
  45. package/lib/browser/workspace-frontend-contribution.d.ts +111 -0
  46. package/lib/browser/workspace-frontend-contribution.d.ts.map +1 -0
  47. package/lib/browser/workspace-frontend-contribution.js +538 -0
  48. package/lib/browser/workspace-frontend-contribution.js.map +1 -0
  49. package/lib/browser/workspace-frontend-module.d.ts +4 -0
  50. package/lib/browser/workspace-frontend-module.d.ts.map +1 -0
  51. package/lib/browser/workspace-frontend-module.js +93 -0
  52. package/lib/browser/workspace-frontend-module.js.map +1 -0
  53. package/lib/browser/workspace-input-dialog.d.ts +20 -0
  54. package/lib/browser/workspace-input-dialog.d.ts.map +1 -0
  55. package/lib/browser/workspace-input-dialog.js +64 -0
  56. package/lib/browser/workspace-input-dialog.js.map +1 -0
  57. package/lib/browser/workspace-schema-updater.d.ts +34 -0
  58. package/lib/browser/workspace-schema-updater.d.ts.map +1 -0
  59. package/lib/browser/workspace-schema-updater.js +147 -0
  60. package/lib/browser/workspace-schema-updater.js.map +1 -0
  61. package/lib/browser/workspace-service.d.ts +201 -0
  62. package/lib/browser/workspace-service.d.ts.map +1 -0
  63. package/lib/browser/workspace-service.js +758 -0
  64. package/lib/browser/workspace-service.js.map +1 -0
  65. package/lib/browser/workspace-storage-service.d.ts +16 -0
  66. package/lib/browser/workspace-storage-service.d.ts.map +1 -0
  67. package/lib/browser/workspace-storage-service.js +73 -0
  68. package/lib/browser/workspace-storage-service.js.map +1 -0
  69. package/lib/browser/workspace-trust-service.d.ts +30 -0
  70. package/lib/browser/workspace-trust-service.d.ts.map +1 -0
  71. package/lib/browser/workspace-trust-service.js +153 -0
  72. package/lib/browser/workspace-trust-service.js.map +1 -0
  73. package/lib/browser/workspace-uri-contribution.d.ts +21 -0
  74. package/lib/browser/workspace-uri-contribution.d.ts.map +1 -0
  75. package/lib/browser/workspace-uri-contribution.js +106 -0
  76. package/lib/browser/workspace-uri-contribution.js.map +1 -0
  77. package/lib/browser/workspace-uri-contribution.spec.d.ts +2 -0
  78. package/lib/browser/workspace-uri-contribution.spec.d.ts.map +1 -0
  79. package/lib/browser/workspace-uri-contribution.spec.js +170 -0
  80. package/lib/browser/workspace-uri-contribution.spec.js.map +1 -0
  81. package/lib/browser/workspace-user-working-directory-provider.d.ts +13 -0
  82. package/lib/browser/workspace-user-working-directory-provider.d.ts.map +1 -0
  83. package/lib/browser/workspace-user-working-directory-provider.js +55 -0
  84. package/lib/browser/workspace-user-working-directory-provider.js.map +1 -0
  85. package/lib/browser/workspace-utils.d.ts +16 -0
  86. package/lib/browser/workspace-utils.d.ts.map +1 -0
  87. package/lib/browser/workspace-utils.js +47 -0
  88. package/lib/browser/workspace-utils.js.map +1 -0
  89. package/lib/browser/workspace-variable-contribution.d.ts +24 -0
  90. package/lib/browser/workspace-variable-contribution.d.ts.map +1 -0
  91. package/lib/browser/workspace-variable-contribution.js +231 -0
  92. package/lib/browser/workspace-variable-contribution.js.map +1 -0
  93. package/lib/browser/workspace-window-title-updater.d.ts +8 -0
  94. package/lib/browser/workspace-window-title-updater.d.ts.map +1 -0
  95. package/lib/browser/workspace-window-title-updater.js +50 -0
  96. package/lib/browser/workspace-window-title-updater.js.map +1 -0
  97. package/lib/browser-only/browser-only-workspace-server.d.ts +13 -0
  98. package/lib/browser-only/browser-only-workspace-server.d.ts.map +1 -0
  99. package/lib/browser-only/browser-only-workspace-server.js +73 -0
  100. package/lib/browser-only/browser-only-workspace-server.js.map +1 -0
  101. package/lib/browser-only/workspace-frontend-only-module.d.ts +4 -0
  102. package/lib/browser-only/workspace-frontend-only-module.d.ts.map +1 -0
  103. package/lib/browser-only/workspace-frontend-only-module.js +30 -0
  104. package/lib/browser-only/workspace-frontend-only-module.js.map +1 -0
  105. package/lib/common/index.d.ts +5 -0
  106. package/lib/common/index.d.ts.map +1 -0
  107. package/lib/common/index.js +23 -0
  108. package/lib/common/index.js.map +1 -0
  109. package/lib/common/test/mock-workspace-server.d.ts +8 -0
  110. package/lib/common/test/mock-workspace-server.d.ts.map +1 -0
  111. package/lib/common/test/mock-workspace-server.js +31 -0
  112. package/lib/common/test/mock-workspace-server.js.map +1 -0
  113. package/lib/common/untitled-workspace-service.d.ts +9 -0
  114. package/lib/common/untitled-workspace-service.d.ts.map +1 -0
  115. package/lib/common/untitled-workspace-service.js +53 -0
  116. package/lib/common/untitled-workspace-service.js.map +1 -0
  117. package/lib/common/workspace-file-service.d.ts +27 -0
  118. package/lib/common/workspace-file-service.d.ts.map +1 -0
  119. package/lib/common/workspace-file-service.js +67 -0
  120. package/lib/common/workspace-file-service.js.map +1 -0
  121. package/lib/common/workspace-preferences.d.ts +12 -0
  122. package/lib/common/workspace-preferences.d.ts.map +1 -0
  123. package/lib/common/workspace-preferences.js +46 -0
  124. package/lib/common/workspace-preferences.js.map +1 -0
  125. package/lib/common/workspace-protocol.d.ts +27 -0
  126. package/lib/common/workspace-protocol.d.ts.map +1 -0
  127. package/lib/common/workspace-protocol.js +24 -0
  128. package/lib/common/workspace-protocol.js.map +1 -0
  129. package/lib/common/workspace-trust-preferences.d.ts +22 -0
  130. package/lib/common/workspace-trust-preferences.d.ts.map +1 -0
  131. package/lib/common/workspace-trust-preferences.js +66 -0
  132. package/lib/common/workspace-trust-preferences.js.map +1 -0
  133. package/lib/node/default-workspace-server.d.ts +78 -0
  134. package/lib/node/default-workspace-server.d.ts.map +1 -0
  135. package/lib/node/default-workspace-server.js +265 -0
  136. package/lib/node/default-workspace-server.js.map +1 -0
  137. package/lib/node/default-workspace-server.spec.d.ts +2 -0
  138. package/lib/node/default-workspace-server.spec.d.ts.map +1 -0
  139. package/lib/node/default-workspace-server.spec.js +96 -0
  140. package/lib/node/default-workspace-server.spec.js.map +1 -0
  141. package/lib/node/index.d.ts +3 -0
  142. package/lib/node/index.d.ts.map +1 -0
  143. package/lib/node/index.js +21 -0
  144. package/lib/node/index.js.map +1 -0
  145. package/lib/node/workspace-backend-module.d.ts +4 -0
  146. package/lib/node/workspace-backend-module.d.ts.map +1 -0
  147. package/lib/node/workspace-backend-module.js +40 -0
  148. package/lib/node/workspace-backend-module.js.map +1 -0
  149. package/package.json +5 -5
  150. package/src/browser/workspace-service.ts +5 -0
@@ -0,0 +1,568 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2017 TypeFox and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.WorkspaceRootUriAwareCommandHandler = exports.WorkspaceCommandContribution = exports.EditMenuContribution = exports.FileMenuContribution = exports.WorkspaceCommands = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const selection_service_1 = require("@theia/core/lib/common/selection-service");
22
+ const command_1 = require("@theia/core/lib/common/command");
23
+ const common_menus_1 = require("@theia/core/lib/browser/common-menus");
24
+ const browser_1 = require("@theia/filesystem/lib/browser");
25
+ const dialogs_1 = require("@theia/core/lib/browser/dialogs");
26
+ const browser_2 = require("@theia/core/lib/browser");
27
+ const uri_command_handler_1 = require("@theia/core/lib/common/uri-command-handler");
28
+ const workspace_service_1 = require("./workspace-service");
29
+ const message_service_1 = require("@theia/core/lib/common/message-service");
30
+ const workspace_preferences_1 = require("../common/workspace-preferences");
31
+ const workspace_delete_handler_1 = require("./workspace-delete-handler");
32
+ const workspace_duplicate_handler_1 = require("./workspace-duplicate-handler");
33
+ const common_1 = require("@theia/filesystem/lib/common");
34
+ const workspace_compare_handler_1 = require("./workspace-compare-handler");
35
+ const file_download_command_contribution_1 = require("@theia/filesystem/lib/browser/download/file-download-command-contribution");
36
+ const filesystem_frontend_contribution_1 = require("@theia/filesystem/lib/browser/filesystem-frontend-contribution");
37
+ const workspace_input_dialog_1 = require("./workspace-input-dialog");
38
+ const common_2 = require("@theia/core/lib/common");
39
+ const file_service_1 = require("@theia/filesystem/lib/browser/file-service");
40
+ const nls_1 = require("@theia/core/lib/common/nls");
41
+ const clipboard_service_1 = require("@theia/core/lib/browser/clipboard-service");
42
+ const validFilename = require('valid-filename');
43
+ var WorkspaceCommands;
44
+ (function (WorkspaceCommands) {
45
+ const WORKSPACE_CATEGORY = 'Workspaces';
46
+ const FILE_CATEGORY = browser_2.CommonCommands.FILE_CATEGORY;
47
+ // On Linux and Windows, both files and folders cannot be opened at the same time in electron.
48
+ // `OPEN_FILE` and `OPEN_FOLDER` must be available only on Linux and Windows in electron.
49
+ // `OPEN` must *not* be available on Windows and Linux in electron.
50
+ // VS Code does the same. See: https://github.com/eclipse-theia/theia/pull/3202#issuecomment-430585357
51
+ WorkspaceCommands.OPEN = {
52
+ ...command_1.Command.toDefaultLocalizedCommand({
53
+ id: 'workspace:open',
54
+ category: browser_2.CommonCommands.FILE_CATEGORY,
55
+ label: 'Open...'
56
+ }),
57
+ dialogLabel: nls_1.nls.localizeByDefault('Open')
58
+ };
59
+ // No `label`. Otherwise, it shows up in the `Command Palette`.
60
+ WorkspaceCommands.OPEN_FILE = {
61
+ id: 'workspace:openFile',
62
+ originalCategory: FILE_CATEGORY,
63
+ category: nls_1.nls.localizeByDefault(browser_2.CommonCommands.FILE_CATEGORY),
64
+ dialogLabel: nls_1.nls.localizeByDefault('Open File')
65
+ };
66
+ WorkspaceCommands.OPEN_FOLDER = {
67
+ id: 'workspace:openFolder',
68
+ dialogLabel: nls_1.nls.localizeByDefault('Open Folder') // No `label`. Otherwise, it shows up in the `Command Palette`.
69
+ };
70
+ WorkspaceCommands.OPEN_WORKSPACE = {
71
+ ...command_1.Command.toDefaultLocalizedCommand({
72
+ id: 'workspace:openWorkspace',
73
+ category: browser_2.CommonCommands.FILE_CATEGORY,
74
+ label: 'Open Workspace from File...',
75
+ }),
76
+ dialogLabel: nls_1.nls.localizeByDefault('Open Workspace from File')
77
+ };
78
+ WorkspaceCommands.OPEN_RECENT_WORKSPACE = command_1.Command.toLocalizedCommand({
79
+ id: 'workspace:openRecent',
80
+ category: FILE_CATEGORY,
81
+ label: 'Open Recent Workspace...'
82
+ }, 'theia/workspace/openRecentWorkspace', browser_2.CommonCommands.FILE_CATEGORY_KEY);
83
+ WorkspaceCommands.CLOSE = command_1.Command.toDefaultLocalizedCommand({
84
+ id: 'workspace:close',
85
+ category: WORKSPACE_CATEGORY,
86
+ label: 'Close Workspace'
87
+ });
88
+ WorkspaceCommands.NEW_FILE = command_1.Command.toDefaultLocalizedCommand({
89
+ id: 'file.newFile',
90
+ category: FILE_CATEGORY,
91
+ label: 'New File...'
92
+ });
93
+ WorkspaceCommands.NEW_FOLDER = command_1.Command.toDefaultLocalizedCommand({
94
+ id: 'file.newFolder',
95
+ category: FILE_CATEGORY,
96
+ label: 'New Folder...'
97
+ });
98
+ /** @deprecated Use the `OpenWithService` instead */
99
+ WorkspaceCommands.FILE_OPEN_WITH = (opener) => ({
100
+ id: `file.openWith.${opener.id}`
101
+ });
102
+ WorkspaceCommands.FILE_RENAME = command_1.Command.toDefaultLocalizedCommand({
103
+ id: 'file.rename',
104
+ category: FILE_CATEGORY,
105
+ label: 'Rename'
106
+ });
107
+ WorkspaceCommands.FILE_DELETE = command_1.Command.toDefaultLocalizedCommand({
108
+ id: 'file.delete',
109
+ category: FILE_CATEGORY,
110
+ label: 'Delete'
111
+ });
112
+ WorkspaceCommands.FILE_DUPLICATE = command_1.Command.toLocalizedCommand({
113
+ id: 'file.duplicate',
114
+ category: FILE_CATEGORY,
115
+ label: 'Duplicate'
116
+ }, 'theia/workspace/duplicate', browser_2.CommonCommands.FILE_CATEGORY_KEY);
117
+ WorkspaceCommands.FILE_COMPARE = command_1.Command.toLocalizedCommand({
118
+ id: 'file.compare',
119
+ category: FILE_CATEGORY,
120
+ label: 'Compare with Each Other'
121
+ }, 'theia/workspace/compareWithEachOther', browser_2.CommonCommands.FILE_CATEGORY_KEY);
122
+ WorkspaceCommands.ADD_FOLDER = command_1.Command.toDefaultLocalizedCommand({
123
+ id: 'workspace:addFolder',
124
+ category: WORKSPACE_CATEGORY,
125
+ label: 'Add Folder to Workspace...'
126
+ });
127
+ WorkspaceCommands.REMOVE_FOLDER = command_1.Command.toDefaultLocalizedCommand({
128
+ id: 'workspace:removeFolder',
129
+ category: WORKSPACE_CATEGORY,
130
+ label: 'Remove Folder from Workspace'
131
+ });
132
+ WorkspaceCommands.SAVE_WORKSPACE_AS = command_1.Command.toDefaultLocalizedCommand({
133
+ id: 'workspace:saveAs',
134
+ category: WORKSPACE_CATEGORY,
135
+ label: 'Save Workspace As...'
136
+ });
137
+ WorkspaceCommands.OPEN_WORKSPACE_FILE = command_1.Command.toDefaultLocalizedCommand({
138
+ id: 'workspace:openConfigFile',
139
+ category: WORKSPACE_CATEGORY,
140
+ label: 'Open Workspace Configuration File'
141
+ });
142
+ /** @deprecated @since 1.24.0 Use `CommonCommands.SAVE_AS` instead */
143
+ WorkspaceCommands.SAVE_AS = browser_2.CommonCommands.SAVE_AS;
144
+ WorkspaceCommands.COPY_RELATIVE_FILE_PATH = command_1.Command.toDefaultLocalizedCommand({
145
+ id: 'navigator.copyRelativeFilePath',
146
+ label: 'Copy Relative Path'
147
+ });
148
+ })(WorkspaceCommands || (exports.WorkspaceCommands = WorkspaceCommands = {}));
149
+ let FileMenuContribution = class FileMenuContribution {
150
+ registerMenus(registry) {
151
+ registry.registerMenuAction(common_menus_1.CommonMenus.FILE_NEW_TEXT, {
152
+ commandId: WorkspaceCommands.NEW_FOLDER.id,
153
+ order: 'b'
154
+ });
155
+ const downloadUploadMenu = [...common_menus_1.CommonMenus.FILE, '4_downloadupload'];
156
+ registry.registerMenuAction(downloadUploadMenu, {
157
+ commandId: filesystem_frontend_contribution_1.FileSystemCommands.UPLOAD.id,
158
+ order: 'a'
159
+ });
160
+ registry.registerMenuAction(downloadUploadMenu, {
161
+ commandId: file_download_command_contribution_1.FileDownloadCommands.DOWNLOAD.id,
162
+ order: 'b'
163
+ });
164
+ }
165
+ };
166
+ exports.FileMenuContribution = FileMenuContribution;
167
+ exports.FileMenuContribution = FileMenuContribution = tslib_1.__decorate([
168
+ (0, inversify_1.injectable)()
169
+ ], FileMenuContribution);
170
+ let EditMenuContribution = class EditMenuContribution {
171
+ registerMenus(registry) {
172
+ registry.registerMenuAction(common_menus_1.CommonMenus.EDIT_CLIPBOARD, {
173
+ commandId: file_download_command_contribution_1.FileDownloadCommands.COPY_DOWNLOAD_LINK.id,
174
+ order: '9999'
175
+ });
176
+ }
177
+ };
178
+ exports.EditMenuContribution = EditMenuContribution;
179
+ exports.EditMenuContribution = EditMenuContribution = tslib_1.__decorate([
180
+ (0, inversify_1.injectable)()
181
+ ], EditMenuContribution);
182
+ let WorkspaceCommandContribution = class WorkspaceCommandContribution {
183
+ constructor() {
184
+ this.onDidCreateNewFileEmitter = new common_2.Emitter();
185
+ this.onDidCreateNewFolderEmitter = new common_2.Emitter();
186
+ }
187
+ get onDidCreateNewFile() {
188
+ return this.onDidCreateNewFileEmitter.event;
189
+ }
190
+ get onDidCreateNewFolder() {
191
+ return this.onDidCreateNewFolderEmitter.event;
192
+ }
193
+ fireCreateNewFile(uri) {
194
+ this.onDidCreateNewFileEmitter.fire(uri);
195
+ }
196
+ fireCreateNewFolder(uri) {
197
+ this.onDidCreateNewFolderEmitter.fire(uri);
198
+ }
199
+ registerCommands(registry) {
200
+ registry.registerCommand(WorkspaceCommands.NEW_FILE, this.newWorkspaceRootUriAwareCommandHandler({
201
+ execute: uri => this.getDirectory(uri).then(parent => {
202
+ if (parent) {
203
+ const parentUri = parent.resource;
204
+ const { fileName, fileExtension } = this.getDefaultFileConfig();
205
+ const targetUri = parentUri.resolve(fileName + fileExtension);
206
+ const vacantChildUri = common_1.FileSystemUtils.generateUniqueResourceURI(parent, targetUri, false);
207
+ const dialog = new workspace_input_dialog_1.WorkspaceInputDialog({
208
+ title: nls_1.nls.localizeByDefault('New File...'),
209
+ maxWidth: 400,
210
+ parentUri: parentUri,
211
+ initialValue: vacantChildUri.path.base,
212
+ placeholder: nls_1.nls.localize('theia/workspace/newFilePlaceholder', 'File Name'),
213
+ validate: name => this.validateFileName(name, parent, true)
214
+ }, this.labelProvider);
215
+ dialog.open().then(async (name) => {
216
+ if (name) {
217
+ const fileUri = parentUri.resolve(name);
218
+ await this.fileService.create(fileUri);
219
+ this.fireCreateNewFile({ parent: parentUri, uri: fileUri });
220
+ (0, browser_2.open)(this.openerService, fileUri);
221
+ }
222
+ });
223
+ }
224
+ })
225
+ }));
226
+ registry.registerCommand(WorkspaceCommands.NEW_FOLDER, this.newWorkspaceRootUriAwareCommandHandler({
227
+ execute: uri => this.getDirectory(uri).then(parent => {
228
+ if (parent) {
229
+ const parentUri = parent.resource;
230
+ const targetUri = parentUri.resolve('Untitled');
231
+ const vacantChildUri = common_1.FileSystemUtils.generateUniqueResourceURI(parent, targetUri, true);
232
+ const dialog = new workspace_input_dialog_1.WorkspaceInputDialog({
233
+ title: nls_1.nls.localizeByDefault('New Folder...'),
234
+ maxWidth: 400,
235
+ parentUri: parentUri,
236
+ initialValue: vacantChildUri.path.base,
237
+ placeholder: nls_1.nls.localize('theia/workspace/newFolderPlaceholder', 'Folder Name'),
238
+ validate: name => this.validateFileName(name, parent, true)
239
+ }, this.labelProvider);
240
+ dialog.open().then(async (name) => {
241
+ if (name) {
242
+ const folderUri = parentUri.resolve(name);
243
+ await this.fileService.createFolder(folderUri);
244
+ this.fireCreateNewFile({ parent: parentUri, uri: folderUri });
245
+ }
246
+ });
247
+ }
248
+ })
249
+ }));
250
+ registry.registerCommand(WorkspaceCommands.FILE_RENAME, this.newMultiUriAwareCommandHandler({
251
+ isEnabled: uris => uris.some(uri => !this.isWorkspaceRoot(uri)) && uris.length === 1,
252
+ isVisible: uris => uris.some(uri => !this.isWorkspaceRoot(uri)) && uris.length === 1,
253
+ execute: async (uris) => {
254
+ const uri = uris[0]; /* Since there is only one item in the array. */
255
+ const parent = await this.getParent(uri);
256
+ if (parent) {
257
+ const oldName = uri.path.base;
258
+ const dialog = new dialogs_1.SingleTextInputDialog({
259
+ title: nls_1.nls.localizeByDefault('Rename'),
260
+ maxWidth: 400,
261
+ initialValue: oldName,
262
+ initialSelectionRange: {
263
+ start: 0,
264
+ end: uri.path.name.length
265
+ },
266
+ validate: async (newName, mode) => {
267
+ if (oldName === newName && mode === 'preview') {
268
+ return false;
269
+ }
270
+ return this.validateFileRename(oldName, newName, parent);
271
+ }
272
+ });
273
+ const fileName = await dialog.open();
274
+ if (fileName) {
275
+ const oldUri = uri;
276
+ const newUri = uri.parent.resolve(fileName);
277
+ return this.fileService.move(oldUri, newUri);
278
+ }
279
+ }
280
+ }
281
+ }));
282
+ registry.registerCommand(WorkspaceCommands.FILE_DUPLICATE, this.newMultiUriAwareCommandHandler(this.duplicateHandler));
283
+ registry.registerCommand(WorkspaceCommands.FILE_DELETE, this.newMultiUriAwareCommandHandler(this.deleteHandler));
284
+ registry.registerCommand(WorkspaceCommands.FILE_COMPARE, this.newMultiUriAwareCommandHandler(this.compareHandler));
285
+ registry.registerCommand(WorkspaceCommands.COPY_RELATIVE_FILE_PATH, uri_command_handler_1.UriAwareCommandHandler.MultiSelect(this.selectionService, {
286
+ isEnabled: uris => !!uris.length,
287
+ isVisible: uris => !!uris.length,
288
+ execute: async (uris) => {
289
+ const lineDelimiter = common_2.EOL;
290
+ const text = uris.map((uri) => {
291
+ var _a;
292
+ const workspaceRoot = this.workspaceService.getWorkspaceRootUri(uri);
293
+ if (workspaceRoot) {
294
+ return (_a = workspaceRoot.relative(uri)) === null || _a === void 0 ? void 0 : _a.fsPath();
295
+ }
296
+ else {
297
+ return uri.path.fsPath();
298
+ }
299
+ }).join(lineDelimiter);
300
+ await this.clipboardService.writeText(text);
301
+ }
302
+ }));
303
+ registry.registerCommand(WorkspaceCommands.ADD_FOLDER, {
304
+ isEnabled: () => this.workspaceService.opened,
305
+ isVisible: () => this.workspaceService.opened,
306
+ execute: async () => {
307
+ const selection = await this.fileDialogService.showOpenDialog({
308
+ title: WorkspaceCommands.ADD_FOLDER.label,
309
+ canSelectFiles: false,
310
+ canSelectFolders: true,
311
+ canSelectMany: true,
312
+ });
313
+ if (!selection) {
314
+ return;
315
+ }
316
+ const uris = Array.isArray(selection) ? selection : [selection];
317
+ const workspaceSavedBeforeAdding = this.workspaceService.saved;
318
+ await this.addFolderToWorkspace(...uris);
319
+ if (!workspaceSavedBeforeAdding) {
320
+ this.saveWorkspaceWithPrompt(registry);
321
+ }
322
+ }
323
+ });
324
+ registry.registerCommand(WorkspaceCommands.REMOVE_FOLDER, this.newMultiUriAwareCommandHandler({
325
+ execute: uris => this.removeFolderFromWorkspace(uris),
326
+ isEnabled: () => this.workspaceService.isMultiRootWorkspaceOpened,
327
+ isVisible: uris => this.areWorkspaceRoots(uris) && this.workspaceService.saved
328
+ }));
329
+ }
330
+ newUriAwareCommandHandler(handler) {
331
+ return uri_command_handler_1.UriAwareCommandHandler.MonoSelect(this.selectionService, handler);
332
+ }
333
+ newMultiUriAwareCommandHandler(handler) {
334
+ return uri_command_handler_1.UriAwareCommandHandler.MultiSelect(this.selectionService, handler);
335
+ }
336
+ newWorkspaceRootUriAwareCommandHandler(handler) {
337
+ return new WorkspaceRootUriAwareCommandHandler(this.workspaceService, this.selectionService, handler);
338
+ }
339
+ async validateFileRename(oldName, newName, parent) {
340
+ if (common_2.OS.backend.isWindows && parent.resource.resolve(newName).isEqual(parent.resource.resolve(oldName), false)) {
341
+ return '';
342
+ }
343
+ return this.validateFileName(newName, parent, false);
344
+ }
345
+ /**
346
+ * Returns an error message if the file name is invalid. Otherwise, an empty string.
347
+ *
348
+ * @param name the simple file name of the file to validate.
349
+ * @param parent the parent directory's file stat.
350
+ * @param allowNested allow file or folder creation using recursive path
351
+ */
352
+ async validateFileName(name, parent, allowNested = false) {
353
+ if (!name) {
354
+ return '';
355
+ }
356
+ // do not allow recursive rename
357
+ if (!allowNested && !validFilename(name)) {
358
+ return nls_1.nls.localizeByDefault('The name **{0}** is not valid as a file or folder name. Please choose a different name.', this.trimFileName(name))
359
+ .replace(/\*\*/g, '');
360
+ }
361
+ if (name.startsWith('/')) {
362
+ return nls_1.nls.localizeByDefault('A file or folder name cannot start with a slash.');
363
+ }
364
+ else if (name.startsWith(' ') || name.endsWith(' ')) {
365
+ return nls_1.nls.localizeByDefault('Leading or trailing whitespace detected in file or folder name.');
366
+ }
367
+ // check and validate each sub-paths
368
+ if (name.split(/[\\/]/).some(file => !file || !validFilename(file) || /^\s+$/.test(file))) {
369
+ return nls_1.nls.localizeByDefault('\'{0}\' is not a valid file name', this.trimFileName(name));
370
+ }
371
+ const childUri = parent.resource.resolve(name);
372
+ const exists = await this.fileService.exists(childUri);
373
+ if (exists) {
374
+ return nls_1.nls.localizeByDefault('A file or folder **{0}** already exists at this location. Please choose a different name.', this.trimFileName(name))
375
+ .replace(/\*\*/g, '');
376
+ }
377
+ return '';
378
+ }
379
+ trimFileName(name) {
380
+ if (name && name.length > 30) {
381
+ return `${name.substring(0, 30)}...`;
382
+ }
383
+ return name;
384
+ }
385
+ async getDirectory(candidate) {
386
+ let stat;
387
+ try {
388
+ stat = await this.fileService.resolve(candidate);
389
+ }
390
+ catch { }
391
+ if (stat && stat.isDirectory) {
392
+ return stat;
393
+ }
394
+ return this.getParent(candidate);
395
+ }
396
+ async getParent(candidate) {
397
+ try {
398
+ return await this.fileService.resolve(candidate.parent);
399
+ }
400
+ catch {
401
+ return undefined;
402
+ }
403
+ }
404
+ async addFolderToWorkspace(...uris) {
405
+ if (uris.length) {
406
+ const foldersToAdd = [];
407
+ try {
408
+ for (const uri of uris) {
409
+ const stat = await this.fileService.resolve(uri);
410
+ if (stat.isDirectory) {
411
+ foldersToAdd.push(uri);
412
+ }
413
+ }
414
+ await this.workspaceService.addRoot(foldersToAdd);
415
+ }
416
+ catch { }
417
+ }
418
+ }
419
+ areWorkspaceRoots(uris) {
420
+ return this.workspaceService.areWorkspaceRoots(uris);
421
+ }
422
+ isWorkspaceRoot(uri) {
423
+ const rootUris = new Set(this.workspaceService.tryGetRoots().map(root => root.resource.toString()));
424
+ return rootUris.has(uri.toString());
425
+ }
426
+ getDefaultFileConfig() {
427
+ return {
428
+ fileName: 'Untitled',
429
+ fileExtension: '.txt'
430
+ };
431
+ }
432
+ /**
433
+ * Removes the list of folders from the workspace upon confirmation from the user.
434
+ * @param uris the list of folder uris to remove.
435
+ */
436
+ async removeFolderFromWorkspace(uris) {
437
+ const roots = new Set(this.workspaceService.tryGetRoots().map(root => root.resource.toString()));
438
+ const toRemove = uris.filter(uri => roots.has(uri.toString()));
439
+ if (toRemove.length > 0) {
440
+ const messageContainer = document.createElement('div');
441
+ if (toRemove.length > 1) {
442
+ messageContainer.textContent = nls_1.nls.localize('theia/workspace/removeFolders', 'Are you sure you want to remove the following folders from the workspace?');
443
+ }
444
+ else {
445
+ messageContainer.textContent = nls_1.nls.localize('theia/workspace/removeFolder', 'Are you sure you want to remove the following folder from the workspace?');
446
+ }
447
+ messageContainer.title = nls_1.nls.localize('theia/workspace/noErasure', 'Note: Nothing will be erased from disk');
448
+ const list = document.createElement('div');
449
+ list.classList.add('theia-dialog-node');
450
+ toRemove.forEach(uri => {
451
+ const listItem = document.createElement('div');
452
+ listItem.classList.add('theia-dialog-node-content');
453
+ const folderIcon = document.createElement('span');
454
+ folderIcon.classList.add('codicon', 'codicon-root-folder', 'theia-dialog-icon');
455
+ listItem.appendChild(folderIcon);
456
+ listItem.title = this.labelProvider.getLongName(uri);
457
+ const listContent = document.createElement('span');
458
+ listContent.classList.add('theia-dialog-node-segment');
459
+ listContent.appendChild(document.createTextNode(this.labelProvider.getName(uri)));
460
+ listItem.appendChild(listContent);
461
+ list.appendChild(listItem);
462
+ });
463
+ messageContainer.appendChild(list);
464
+ const dialog = new dialogs_1.ConfirmDialog({
465
+ title: nls_1.nls.localizeByDefault('Remove Folder from Workspace'),
466
+ msg: messageContainer
467
+ });
468
+ if (await dialog.open()) {
469
+ await this.workspaceService.removeRoots(toRemove);
470
+ }
471
+ }
472
+ }
473
+ async saveWorkspaceWithPrompt(registry) {
474
+ const saveCommand = registry.getCommand(WorkspaceCommands.SAVE_WORKSPACE_AS.id);
475
+ if (saveCommand && await new dialogs_1.ConfirmDialog({
476
+ title: nls_1.nls.localize('theia/workspace/workspaceFolderAddedTitle', 'Folder added to Workspace'),
477
+ msg: nls_1.nls.localize('theia/workspace/workspaceFolderAdded', 'A workspace with multiple roots was created. Do you want to save your workspace configuration as a file?'),
478
+ ok: dialogs_1.Dialog.YES,
479
+ cancel: dialogs_1.Dialog.NO
480
+ }).open()) {
481
+ return registry.executeCommand(saveCommand.id);
482
+ }
483
+ }
484
+ };
485
+ exports.WorkspaceCommandContribution = WorkspaceCommandContribution;
486
+ tslib_1.__decorate([
487
+ (0, inversify_1.inject)(browser_2.LabelProvider),
488
+ tslib_1.__metadata("design:type", browser_2.LabelProvider)
489
+ ], WorkspaceCommandContribution.prototype, "labelProvider", void 0);
490
+ tslib_1.__decorate([
491
+ (0, inversify_1.inject)(file_service_1.FileService),
492
+ tslib_1.__metadata("design:type", file_service_1.FileService)
493
+ ], WorkspaceCommandContribution.prototype, "fileService", void 0);
494
+ tslib_1.__decorate([
495
+ (0, inversify_1.inject)(workspace_service_1.WorkspaceService),
496
+ tslib_1.__metadata("design:type", workspace_service_1.WorkspaceService)
497
+ ], WorkspaceCommandContribution.prototype, "workspaceService", void 0);
498
+ tslib_1.__decorate([
499
+ (0, inversify_1.inject)(selection_service_1.SelectionService),
500
+ tslib_1.__metadata("design:type", selection_service_1.SelectionService)
501
+ ], WorkspaceCommandContribution.prototype, "selectionService", void 0);
502
+ tslib_1.__decorate([
503
+ (0, inversify_1.inject)(browser_2.OpenerService),
504
+ tslib_1.__metadata("design:type", Object)
505
+ ], WorkspaceCommandContribution.prototype, "openerService", void 0);
506
+ tslib_1.__decorate([
507
+ (0, inversify_1.inject)(browser_2.FrontendApplication),
508
+ tslib_1.__metadata("design:type", browser_2.FrontendApplication)
509
+ ], WorkspaceCommandContribution.prototype, "app", void 0);
510
+ tslib_1.__decorate([
511
+ (0, inversify_1.inject)(message_service_1.MessageService),
512
+ tslib_1.__metadata("design:type", message_service_1.MessageService)
513
+ ], WorkspaceCommandContribution.prototype, "messageService", void 0);
514
+ tslib_1.__decorate([
515
+ (0, inversify_1.inject)(workspace_preferences_1.WorkspacePreferences),
516
+ tslib_1.__metadata("design:type", Object)
517
+ ], WorkspaceCommandContribution.prototype, "preferences", void 0);
518
+ tslib_1.__decorate([
519
+ (0, inversify_1.inject)(browser_1.FileDialogService),
520
+ tslib_1.__metadata("design:type", Object)
521
+ ], WorkspaceCommandContribution.prototype, "fileDialogService", void 0);
522
+ tslib_1.__decorate([
523
+ (0, inversify_1.inject)(workspace_delete_handler_1.WorkspaceDeleteHandler),
524
+ tslib_1.__metadata("design:type", workspace_delete_handler_1.WorkspaceDeleteHandler)
525
+ ], WorkspaceCommandContribution.prototype, "deleteHandler", void 0);
526
+ tslib_1.__decorate([
527
+ (0, inversify_1.inject)(workspace_duplicate_handler_1.WorkspaceDuplicateHandler),
528
+ tslib_1.__metadata("design:type", workspace_duplicate_handler_1.WorkspaceDuplicateHandler)
529
+ ], WorkspaceCommandContribution.prototype, "duplicateHandler", void 0);
530
+ tslib_1.__decorate([
531
+ (0, inversify_1.inject)(workspace_compare_handler_1.WorkspaceCompareHandler),
532
+ tslib_1.__metadata("design:type", workspace_compare_handler_1.WorkspaceCompareHandler)
533
+ ], WorkspaceCommandContribution.prototype, "compareHandler", void 0);
534
+ tslib_1.__decorate([
535
+ (0, inversify_1.inject)(clipboard_service_1.ClipboardService),
536
+ tslib_1.__metadata("design:type", Object)
537
+ ], WorkspaceCommandContribution.prototype, "clipboardService", void 0);
538
+ exports.WorkspaceCommandContribution = WorkspaceCommandContribution = tslib_1.__decorate([
539
+ (0, inversify_1.injectable)()
540
+ ], WorkspaceCommandContribution);
541
+ class WorkspaceRootUriAwareCommandHandler extends uri_command_handler_1.UriAwareCommandHandler {
542
+ constructor(workspaceService, selectionService, handler) {
543
+ super(selectionService, handler);
544
+ this.workspaceService = workspaceService;
545
+ }
546
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
547
+ isEnabled(...args) {
548
+ return super.isEnabled(...args) && !!this.workspaceService.tryGetRoots().length;
549
+ }
550
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
551
+ isVisible(...args) {
552
+ return super.isVisible(...args) && !!this.workspaceService.tryGetRoots().length;
553
+ }
554
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
555
+ getUri(...args) {
556
+ const uri = super.getUri(...args);
557
+ // Return the `uri` immediately if the resource exists in any of the workspace roots.
558
+ if (uri && this.workspaceService.getWorkspaceRootUri(uri)) {
559
+ return uri;
560
+ }
561
+ // Return the first root if available.
562
+ if (!!this.workspaceService.tryGetRoots().length) {
563
+ return this.workspaceService.tryGetRoots()[0].resource;
564
+ }
565
+ }
566
+ }
567
+ exports.WorkspaceRootUriAwareCommandHandler = WorkspaceRootUriAwareCommandHandler;
568
+ //# sourceMappingURL=workspace-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-commands.js","sourceRoot":"","sources":["../../src/browser/workspace-commands.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4DAAkE;AAElE,gFAA4E;AAC5E,4DAA+F;AAE/F,uEAAmE;AACnE,2DAAkE;AAClE,6DAA+F;AAC/F,qDAA+H;AAC/H,oFAAuG;AACvG,2DAAuD;AACvD,4EAAwE;AACxE,2EAAuE;AACvE,yEAAoE;AACpE,+EAA0E;AAC1E,yDAA+D;AAC/D,2EAAsE;AACtE,kIAAiH;AACjH,qHAAoG;AACpG,qEAAgE;AAChE,mDAAiE;AACjE,6EAAyE;AAEzE,oDAAiD;AACjD,iFAA6E;AAE7E,MAAM,aAAa,GAA6B,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE1E,IAAiB,iBAAiB,CA0GjC;AA1GD,WAAiB,iBAAiB;IAE9B,MAAM,kBAAkB,GAAG,YAAY,CAAC;IACxC,MAAM,aAAa,GAAG,wBAAc,CAAC,aAAa,CAAC;IAEnD,8FAA8F;IAC9F,yFAAyF;IACzF,mEAAmE;IACnE,sGAAsG;IACzF,sBAAI,GAAsC;QACnD,GAAG,iBAAO,CAAC,yBAAyB,CAAC;YACjC,EAAE,EAAE,gBAAgB;YACpB,QAAQ,EAAE,wBAAc,CAAC,aAAa;YACtC,KAAK,EAAE,SAAS;SACnB,CAAC;QACF,WAAW,EAAE,SAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC;KAC7C,CAAC;IACF,+DAA+D;IAClD,2BAAS,GAAsC;QACxD,EAAE,EAAE,oBAAoB;QACxB,gBAAgB,EAAE,aAAa;QAC/B,QAAQ,EAAE,SAAG,CAAC,iBAAiB,CAAC,wBAAc,CAAC,aAAa,CAAC;QAC7D,WAAW,EAAE,SAAG,CAAC,iBAAiB,CAAC,WAAW,CAAC;KAClD,CAAC;IACW,6BAAW,GAAsC;QAC1D,EAAE,EAAE,sBAAsB;QAC1B,WAAW,EAAE,SAAG,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,+DAA+D;KACpH,CAAC;IACW,gCAAc,GAAsC;QAC7D,GAAG,iBAAO,CAAC,yBAAyB,CAAC;YACjC,EAAE,EAAE,yBAAyB;YAC7B,QAAQ,EAAE,wBAAc,CAAC,aAAa;YACtC,KAAK,EAAE,6BAA6B;SACvC,CAAC;QACF,WAAW,EAAE,SAAG,CAAC,iBAAiB,CAAC,0BAA0B,CAAC;KACjE,CAAC;IACW,uCAAqB,GAAG,iBAAO,CAAC,kBAAkB,CAAC;QAC5D,EAAE,EAAE,sBAAsB;QAC1B,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,0BAA0B;KACpC,EAAE,qCAAqC,EAAE,wBAAc,CAAC,iBAAiB,CAAC,CAAC;IAC/D,uBAAK,GAAG,iBAAO,CAAC,yBAAyB,CAAC;QACnD,EAAE,EAAE,iBAAiB;QACrB,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,iBAAiB;KAC3B,CAAC,CAAC;IACU,0BAAQ,GAAG,iBAAO,CAAC,yBAAyB,CAAC;QACtD,EAAE,EAAE,cAAc;QAClB,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,aAAa;KACvB,CAAC,CAAC;IACU,4BAAU,GAAG,iBAAO,CAAC,yBAAyB,CAAC;QACxD,EAAE,EAAE,gBAAgB;QACpB,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,eAAe;KACzB,CAAC,CAAC;IACH,oDAAoD;IACvC,gCAAc,GAAG,CAAC,MAAmB,EAAW,EAAE,CAAC,CAAC;QAC7D,EAAE,EAAE,iBAAiB,MAAM,CAAC,EAAE,EAAE;KACnC,CAAC,CAAC;IACU,6BAAW,GAAG,iBAAO,CAAC,yBAAyB,CAAC;QACzD,EAAE,EAAE,aAAa;QACjB,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,QAAQ;KAClB,CAAC,CAAC;IACU,6BAAW,GAAG,iBAAO,CAAC,yBAAyB,CAAC;QACzD,EAAE,EAAE,aAAa;QACjB,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,QAAQ;KAClB,CAAC,CAAC;IACU,gCAAc,GAAG,iBAAO,CAAC,kBAAkB,CAAC;QACrD,EAAE,EAAE,gBAAgB;QACpB,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,WAAW;KACrB,EAAE,2BAA2B,EAAE,wBAAc,CAAC,iBAAiB,CAAC,CAAC;IACrD,8BAAY,GAAG,iBAAO,CAAC,kBAAkB,CAAC;QACnD,EAAE,EAAE,cAAc;QAClB,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,yBAAyB;KACnC,EAAE,sCAAsC,EAAE,wBAAc,CAAC,iBAAiB,CAAC,CAAC;IAChE,4BAAU,GAAG,iBAAO,CAAC,yBAAyB,CAAC;QACxD,EAAE,EAAE,qBAAqB;QACzB,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,4BAA4B;KACtC,CAAC,CAAC;IACU,+BAAa,GAAG,iBAAO,CAAC,yBAAyB,CAAC;QAC3D,EAAE,EAAE,wBAAwB;QAC5B,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,8BAA8B;KACxC,CAAC,CAAC;IACU,mCAAiB,GAAG,iBAAO,CAAC,yBAAyB,CAAC;QAC/D,EAAE,EAAE,kBAAkB;QACtB,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,sBAAsB;KAChC,CAAC,CAAC;IACU,qCAAmB,GAAG,iBAAO,CAAC,yBAAyB,CAAC;QACjE,EAAE,EAAE,0BAA0B;QAC9B,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,mCAAmC;KAC7C,CAAC,CAAC;IACH,qEAAqE;IACxD,yBAAO,GAAG,wBAAc,CAAC,OAAO,CAAC;IACjC,yCAAuB,GAAG,iBAAO,CAAC,yBAAyB,CAAC;QACrE,EAAE,EAAE,gCAAgC;QACpC,KAAK,EAAE,oBAAoB;KAC9B,CAAC,CAAC;AACP,CAAC,EA1GgB,iBAAiB,iCAAjB,iBAAiB,QA0GjC;AAGM,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAE7B,aAAa,CAAC,QAA2B;QACrC,QAAQ,CAAC,kBAAkB,CAAC,0BAAW,CAAC,aAAa,EAAE;YACnD,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,EAAE;YAC1C,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,CAAC,GAAG,0BAAW,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACrE,QAAQ,CAAC,kBAAkB,CAAC,kBAAkB,EAAE;YAC5C,SAAS,EAAE,qDAAkB,CAAC,MAAM,CAAC,EAAE;YACvC,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,kBAAkB,EAAE;YAC5C,SAAS,EAAE,yDAAoB,CAAC,QAAQ,CAAC,EAAE;YAC3C,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;IACP,CAAC;CAEJ,CAAA;AAlBY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,sBAAU,GAAE;GACA,oBAAoB,CAkBhC;AAGM,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAE7B,aAAa,CAAC,QAA2B;QACrC,QAAQ,CAAC,kBAAkB,CAAC,0BAAW,CAAC,cAAc,EAAE;YACpD,SAAS,EAAE,yDAAoB,CAAC,kBAAkB,CAAC,EAAE;YACrD,KAAK,EAAE,MAAM;SAChB,CAAC,CAAC;IACP,CAAC;CAEJ,CAAA;AATY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,sBAAU,GAAE;GACA,oBAAoB,CAShC;AAQM,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IAAlC;QAgBc,8BAAyB,GAAG,IAAI,gBAAO,EAA6B,CAAC;QACrE,gCAA2B,GAAG,IAAI,gBAAO,EAA6B,CAAC;IA2T5F,CAAC;IAzTG,IAAI,kBAAkB;QAClB,OAAO,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;IAChD,CAAC;IAED,IAAI,oBAAoB;QACpB,OAAO,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC;IAClD,CAAC;IAES,iBAAiB,CAAC,GAA8B;QACtD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAES,mBAAmB,CAAC,GAA8B;QACxD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,gBAAgB,CAAC,QAAyB;QACtC,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,sCAAsC,CAAC;YAC7F,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACjD,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;oBAClC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAChE,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAC;oBAC9D,MAAM,cAAc,GAAG,wBAAe,CAAC,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;oBAE3F,MAAM,MAAM,GAAG,IAAI,6CAAoB,CAAC;wBACpC,KAAK,EAAE,SAAG,CAAC,iBAAiB,CAAC,aAAa,CAAC;wBAC3C,QAAQ,EAAE,GAAG;wBACb,SAAS,EAAE,SAAS;wBACpB,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI;wBACtC,WAAW,EAAE,SAAG,CAAC,QAAQ,CAAC,oCAAoC,EAAE,WAAW,CAAC;wBAC5E,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;qBAC9D,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;oBAEvB,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE;wBAC5B,IAAI,IAAI,EAAE,CAAC;4BACP,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BACxC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;4BACvC,IAAI,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;4BAC5D,IAAA,cAAI,EAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;wBACtC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC,CAAC;SACL,CAAC,CAAC,CAAC;QACJ,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,sCAAsC,CAAC;YAC/F,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACjD,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;oBAClC,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAChD,MAAM,cAAc,GAAG,wBAAe,CAAC,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;oBAC1F,MAAM,MAAM,GAAG,IAAI,6CAAoB,CAAC;wBACpC,KAAK,EAAE,SAAG,CAAC,iBAAiB,CAAC,eAAe,CAAC;wBAC7C,QAAQ,EAAE,GAAG;wBACb,SAAS,EAAE,SAAS;wBACpB,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI;wBACtC,WAAW,EAAE,SAAG,CAAC,QAAQ,CAAC,sCAAsC,EAAE,aAAa,CAAC;wBAChF,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;qBAC9D,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;oBACvB,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE;wBAC5B,IAAI,IAAI,EAAE,CAAC;4BACP,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BAC1C,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;4BAC/C,IAAI,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;wBAClE,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC,CAAC;SACL,CAAC,CAAC,CAAC;QACJ,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,8BAA8B,CAAC;YACxF,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YACpF,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YACpF,OAAO,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;gBAClB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,gDAAgD;gBACrE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC9B,MAAM,MAAM,GAAG,IAAI,+BAAqB,CAAC;wBACrC,KAAK,EAAE,SAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC;wBACtC,QAAQ,EAAE,GAAG;wBACb,YAAY,EAAE,OAAO;wBACrB,qBAAqB,EAAE;4BACnB,KAAK,EAAE,CAAC;4BACR,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;yBAC5B;wBACD,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;4BAC9B,IAAI,OAAO,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gCAC5C,OAAO,KAAK,CAAC;4BACjB,CAAC;4BACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;wBAC7D,CAAC;qBACJ,CAAC,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;oBACrC,IAAI,QAAQ,EAAE,CAAC;wBACX,MAAM,MAAM,GAAG,GAAG,CAAC;wBACnB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAC5C,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACjD,CAAC;gBACL,CAAC;YACL,CAAC;SACJ,CAAC,CAAC,CAAC;QACJ,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,cAAc,EAAE,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACvH,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACjH,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QACnH,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,4CAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1H,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;YAChC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;YAChC,OAAO,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;gBAClB,MAAM,aAAa,GAAG,YAAG,CAAC;gBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;;oBAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;oBACrE,IAAI,aAAa,EAAE,CAAC;wBAChB,OAAO,MAAA,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,0CAAE,MAAM,EAAE,CAAC;oBACjD,CAAC;yBAAM,CAAC;wBACJ,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC7B,CAAC;gBACL,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACvB,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC;SACJ,CAAC,CAAC,CAAC;QACJ,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,UAAU,EAAE;YACnD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM;YAC7C,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM;YAC7C,OAAO,EAAE,KAAK,IAAI,EAAE;gBAChB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC;oBAC1D,KAAK,EAAE,iBAAiB,CAAC,UAAU,CAAC,KAAM;oBAC1C,cAAc,EAAE,KAAK;oBACrB,gBAAgB,EAAE,IAAI;oBACtB,aAAa,EAAE,IAAI;iBACtB,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,EAAE,CAAC;oBACb,OAAO;gBACX,CAAC;gBACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAChE,MAAM,0BAA0B,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;gBAC/D,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,CAAC;gBACzC,IAAI,CAAC,0BAA0B,EAAE,CAAC;oBAC9B,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;gBAC3C,CAAC;YACL,CAAC;SACJ,CAAC,CAAC;QACH,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,8BAA8B,CAAC;YAC1F,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC;YACrD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,0BAA0B;YACjE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK;SACjF,CAAC,CAAC,CAAC;IACR,CAAC;IAES,yBAAyB,CAAC,OAA+B;QAC/D,OAAO,4CAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAES,8BAA8B,CAAC,OAAiC;QACtE,OAAO,4CAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAES,sCAAsC,CAAC,OAA+B;QAC5E,OAAO,IAAI,mCAAmC,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC1G,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,OAAe,EAAE,OAAe,EAAE,MAAgB;QACjF,IAAI,WAAE,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5G,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,MAAgB,EAAE,cAAuB,KAAK;QACzF,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;QACd,CAAC;QACD,gCAAgC;QAChC,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,OAAO,SAAG,CAAC,iBAAiB,CAAC,yFAAyF,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;iBAC3I,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,SAAG,CAAC,iBAAiB,CAAC,kDAAkD,CAAC,CAAC;QACrF,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,OAAO,SAAG,CAAC,iBAAiB,CAAC,iEAAiE,CAAC,CAAC;QACpG,CAAC;QACD,oCAAoC;QACpC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACxF,OAAO,SAAG,CAAC,iBAAiB,CAAC,kCAAkC,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,SAAG,CAAC,iBAAiB,CAAC,2FAA2F,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;iBAC7I,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAES,YAAY,CAAC,IAAY;QAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC3B,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,SAAc;QACvC,IAAI,IAA0B,CAAC;QAC/B,IAAI,CAAC;YACD,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC,CAAC,CAAC;QACX,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,SAAc;QACpC,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,GAAG,IAAW;QAC/C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,YAAY,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC;gBACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACjD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;wBACnB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC3B,CAAC;gBACL,CAAC;gBACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC;QACf,CAAC;IACL,CAAC;IAES,iBAAiB,CAAC,IAAW;QACnC,OAAO,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAES,eAAe,CAAC,GAAQ;QAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpG,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;IAES,oBAAoB;QAC1B,OAAO;YACH,QAAQ,EAAE,UAAU;YACpB,aAAa,EAAE,MAAM;SACxB,CAAC;IACN,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,yBAAyB,CAAC,IAAW;QACjD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACjG,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACvD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,gBAAgB,CAAC,WAAW,GAAG,SAAG,CAAC,QAAQ,CAAC,+BAA+B,EACvE,2EAA2E,CAAC,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACJ,gBAAgB,CAAC,WAAW,GAAG,SAAG,CAAC,QAAQ,CAAC,8BAA8B,EACtE,0EAA0E,CAAC,CAAC;YACpF,CAAC;YACD,gBAAgB,CAAC,KAAK,GAAG,SAAG,CAAC,QAAQ,CAAC,2BAA2B,EAAE,wCAAwC,CAAC,CAAC;YAC7G,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACxC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACnB,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC/C,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACpD,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAClD,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,qBAAqB,EAAE,mBAAmB,CAAC,CAAC;gBAChF,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBACjC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACnD,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACvD,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClF,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBAClC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,uBAAa,CAAC;gBAC7B,KAAK,EAAE,SAAG,CAAC,iBAAiB,CAAC,8BAA8B,CAAC;gBAC5D,GAAG,EAAE,gBAAgB;aACxB,CAAC,CAAC;YACH,IAAI,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACtD,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,QAAyB;QACnD,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAChF,IAAI,WAAW,IAAI,MAAM,IAAI,uBAAa,CAAC;YACvC,KAAK,EAAE,SAAG,CAAC,QAAQ,CAAC,2CAA2C,EAAE,2BAA2B,CAAC;YAC7F,GAAG,EAAE,SAAG,CAAC,QAAQ,CAAC,sCAAsC,EACpD,0GAA0G,CAAC;YAC/G,EAAE,EAAE,gBAAM,CAAC,GAAG;YACd,MAAM,EAAE,gBAAM,CAAC,EAAE;SACpB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACR,OAAO,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;CACJ,CAAA;AA5UY,oEAA4B;AAEK;IAAzC,IAAA,kBAAM,EAAC,uBAAa,CAAC;sCAAmC,uBAAa;mEAAC;AAC/B;IAAvC,IAAA,kBAAM,EAAC,0BAAW,CAAC;sCAAiC,0BAAW;iEAAC;AACpB;IAA5C,IAAA,kBAAM,EAAC,oCAAgB,CAAC;sCAAsC,oCAAgB;sEAAC;AACnC;IAA5C,IAAA,kBAAM,EAAC,oCAAgB,CAAC;sCAAsC,oCAAgB;sEAAC;AACtC;IAAzC,IAAA,kBAAM,EAAC,uBAAa,CAAC;;mEAAiD;AACvB;IAA/C,IAAA,kBAAM,EAAC,6BAAmB,CAAC;sCAAyB,6BAAmB;yDAAC;AAC9B;IAA1C,IAAA,kBAAM,EAAC,gCAAc,CAAC;sCAAoC,gCAAc;oEAAC;AACzB;IAAhD,IAAA,kBAAM,EAAC,4CAAoB,CAAC;;iEAAsD;AACrC;IAA7C,IAAA,kBAAM,EAAC,2BAAiB,CAAC;;uEAAyD;AAChC;IAAlD,IAAA,kBAAM,EAAC,iDAAsB,CAAC;sCAAmC,iDAAsB;mEAAC;AACnC;IAArD,IAAA,kBAAM,EAAC,uDAAyB,CAAC;sCAAsC,uDAAyB;sEAAC;AAC9C;IAAnD,IAAA,kBAAM,EAAC,mDAAuB,CAAC;sCAAoC,mDAAuB;oEAAC;AAC/C;IAA5C,IAAA,kBAAM,EAAC,oCAAgB,CAAC;;sEAAuD;uCAdvE,4BAA4B;IADxC,IAAA,sBAAU,GAAE;GACA,4BAA4B,CA4UxC;AAED,MAAa,mCAAoC,SAAQ,4CAA2B;IAEhF,YACuB,gBAAkC,EACrD,gBAAkC,EAClC,OAA+B;QAE/B,KAAK,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAJd,qBAAgB,GAAhB,gBAAgB,CAAkB;IAKzD,CAAC;IAED,8DAA8D;IAC9C,SAAS,CAAC,GAAG,IAAW;QACpC,OAAO,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;IACpF,CAAC;IAED,8DAA8D;IAC9C,SAAS,CAAC,GAAG,IAAW;QACpC,OAAO,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;IACpF,CAAC;IAED,8DAA8D;IAC3C,MAAM,CAAC,GAAG,IAAW;QACpC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QAClC,qFAAqF;QACrF,IAAI,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;YACxD,OAAO,GAAG,CAAC;QACf,CAAC;QACD,sCAAsC;QACtC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC3D,CAAC;IACL,CAAC;CAEJ;AAjCD,kFAiCC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=workspace-commands.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-commands.spec.d.ts","sourceRoot":"","sources":["../../src/browser/workspace-commands.spec.ts"],"names":[],"mappings":""}