@theia/navigator 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 (121) hide show
  1. package/lib/browser/abstract-navigator-tree-widget.d.ts +11 -0
  2. package/lib/browser/abstract-navigator-tree-widget.d.ts.map +1 -0
  3. package/lib/browser/abstract-navigator-tree-widget.js +62 -0
  4. package/lib/browser/abstract-navigator-tree-widget.js.map +1 -0
  5. package/lib/browser/file-navigator-commands.d.ts +19 -0
  6. package/lib/browser/file-navigator-commands.d.ts.map +1 -0
  7. package/lib/browser/file-navigator-commands.js +76 -0
  8. package/lib/browser/file-navigator-commands.js.map +1 -0
  9. package/lib/browser/index.d.ts +5 -0
  10. package/lib/browser/index.d.ts.map +1 -0
  11. package/lib/browser/index.js +23 -0
  12. package/lib/browser/index.js.map +1 -0
  13. package/lib/browser/navigator-container.d.ts +7 -0
  14. package/lib/browser/navigator-container.d.ts.map +1 -0
  15. package/lib/browser/navigator-container.js +48 -0
  16. package/lib/browser/navigator-container.js.map +1 -0
  17. package/lib/browser/navigator-context-key-service.d.ts +21 -0
  18. package/lib/browser/navigator-context-key-service.d.ts.map +1 -0
  19. package/lib/browser/navigator-context-key-service.js +65 -0
  20. package/lib/browser/navigator-context-key-service.js.map +1 -0
  21. package/lib/browser/navigator-contribution.d.ts +111 -0
  22. package/lib/browser/navigator-contribution.d.ts.map +1 -0
  23. package/lib/browser/navigator-contribution.js +616 -0
  24. package/lib/browser/navigator-contribution.js.map +1 -0
  25. package/lib/browser/navigator-decorator-service.d.ts +14 -0
  26. package/lib/browser/navigator-decorator-service.d.ts.map +1 -0
  27. package/lib/browser/navigator-decorator-service.js +43 -0
  28. package/lib/browser/navigator-decorator-service.js.map +1 -0
  29. package/lib/browser/navigator-diff.d.ts +39 -0
  30. package/lib/browser/navigator-diff.d.ts.map +1 -0
  31. package/lib/browser/navigator-diff.js +131 -0
  32. package/lib/browser/navigator-diff.js.map +1 -0
  33. package/lib/browser/navigator-diff.spec.d.ts +2 -0
  34. package/lib/browser/navigator-diff.spec.d.ts.map +1 -0
  35. package/lib/browser/navigator-diff.spec.js +100 -0
  36. package/lib/browser/navigator-diff.spec.js.map +1 -0
  37. package/lib/browser/navigator-filter.d.ts +72 -0
  38. package/lib/browser/navigator-filter.d.ts.map +1 -0
  39. package/lib/browser/navigator-filter.js +130 -0
  40. package/lib/browser/navigator-filter.js.map +1 -0
  41. package/lib/browser/navigator-filter.spec.d.ts +2 -0
  42. package/lib/browser/navigator-filter.spec.d.ts.map +1 -0
  43. package/lib/browser/navigator-filter.spec.js +131 -0
  44. package/lib/browser/navigator-filter.spec.js.map +1 -0
  45. package/lib/browser/navigator-frontend-module.d.ts +6 -0
  46. package/lib/browser/navigator-frontend-module.d.ts.map +1 -0
  47. package/lib/browser/navigator-frontend-module.js +76 -0
  48. package/lib/browser/navigator-frontend-module.js.map +1 -0
  49. package/lib/browser/navigator-layout-migrations.d.ts +10 -0
  50. package/lib/browser/navigator-layout-migrations.d.ts.map +1 -0
  51. package/lib/browser/navigator-layout-migrations.js +76 -0
  52. package/lib/browser/navigator-layout-migrations.js.map +1 -0
  53. package/lib/browser/navigator-model.d.ts +44 -0
  54. package/lib/browser/navigator-model.d.ts.map +1 -0
  55. package/lib/browser/navigator-model.js +229 -0
  56. package/lib/browser/navigator-model.js.map +1 -0
  57. package/lib/browser/navigator-symlink-decorator.d.ts +14 -0
  58. package/lib/browser/navigator-symlink-decorator.d.ts.map +1 -0
  59. package/lib/browser/navigator-symlink-decorator.js +74 -0
  60. package/lib/browser/navigator-symlink-decorator.js.map +1 -0
  61. package/lib/browser/navigator-tab-bar-decorator.d.ts +17 -0
  62. package/lib/browser/navigator-tab-bar-decorator.d.ts.map +1 -0
  63. package/lib/browser/navigator-tab-bar-decorator.js +71 -0
  64. package/lib/browser/navigator-tab-bar-decorator.js.map +1 -0
  65. package/lib/browser/navigator-tree.d.ts +43 -0
  66. package/lib/browser/navigator-tree.d.ts.map +1 -0
  67. package/lib/browser/navigator-tree.js +125 -0
  68. package/lib/browser/navigator-tree.js.map +1 -0
  69. package/lib/browser/navigator-widget-factory.d.ts +13 -0
  70. package/lib/browser/navigator-widget-factory.d.ts.map +1 -0
  71. package/lib/browser/navigator-widget-factory.js +76 -0
  72. package/lib/browser/navigator-widget-factory.js.map +1 -0
  73. package/lib/browser/navigator-widget.d.ts +46 -0
  74. package/lib/browser/navigator-widget.d.ts.map +1 -0
  75. package/lib/browser/navigator-widget.js +210 -0
  76. package/lib/browser/navigator-widget.js.map +1 -0
  77. package/lib/browser/open-editors-widget/navigator-deleted-editor-decorator.d.ts +16 -0
  78. package/lib/browser/open-editors-widget/navigator-deleted-editor-decorator.d.ts.map +1 -0
  79. package/lib/browser/open-editors-widget/navigator-deleted-editor-decorator.js +105 -0
  80. package/lib/browser/open-editors-widget/navigator-deleted-editor-decorator.js.map +1 -0
  81. package/lib/browser/open-editors-widget/navigator-open-editors-commands.d.ts +8 -0
  82. package/lib/browser/open-editors-widget/navigator-open-editors-commands.d.ts.map +1 -0
  83. package/lib/browser/open-editors-widget/navigator-open-editors-commands.js +48 -0
  84. package/lib/browser/open-editors-widget/navigator-open-editors-commands.js.map +1 -0
  85. package/lib/browser/open-editors-widget/navigator-open-editors-decorator-service.d.ts +8 -0
  86. package/lib/browser/open-editors-widget/navigator-open-editors-decorator-service.d.ts.map +1 -0
  87. package/lib/browser/open-editors-widget/navigator-open-editors-decorator-service.js +37 -0
  88. package/lib/browser/open-editors-widget/navigator-open-editors-decorator-service.js.map +1 -0
  89. package/lib/browser/open-editors-widget/navigator-open-editors-menus.d.ts +10 -0
  90. package/lib/browser/open-editors-widget/navigator-open-editors-menus.d.ts.map +1 -0
  91. package/lib/browser/open-editors-widget/navigator-open-editors-menus.js +28 -0
  92. package/lib/browser/open-editors-widget/navigator-open-editors-menus.js.map +1 -0
  93. package/lib/browser/open-editors-widget/navigator-open-editors-tree-model.d.ts +39 -0
  94. package/lib/browser/open-editors-widget/navigator-open-editors-tree-model.d.ts.map +1 -0
  95. package/lib/browser/open-editors-widget/navigator-open-editors-tree-model.js +251 -0
  96. package/lib/browser/open-editors-widget/navigator-open-editors-tree-model.js.map +1 -0
  97. package/lib/browser/open-editors-widget/navigator-open-editors-widget.d.ts +46 -0
  98. package/lib/browser/open-editors-widget/navigator-open-editors-widget.d.ts.map +1 -0
  99. package/lib/browser/open-editors-widget/navigator-open-editors-widget.js +225 -0
  100. package/lib/browser/open-editors-widget/navigator-open-editors-widget.js.map +1 -0
  101. package/lib/common/navigator-preferences.d.ts +15 -0
  102. package/lib/common/navigator-preferences.d.ts.map +1 -0
  103. package/lib/common/navigator-preferences.js +58 -0
  104. package/lib/common/navigator-preferences.js.map +1 -0
  105. package/lib/electron-browser/electron-navigator-menu-contribution.d.ts +22 -0
  106. package/lib/electron-browser/electron-navigator-menu-contribution.d.ts.map +1 -0
  107. package/lib/electron-browser/electron-navigator-menu-contribution.js +120 -0
  108. package/lib/electron-browser/electron-navigator-menu-contribution.js.map +1 -0
  109. package/lib/electron-browser/electron-navigator-module.d.ts +4 -0
  110. package/lib/electron-browser/electron-navigator-module.d.ts.map +1 -0
  111. package/lib/electron-browser/electron-navigator-module.js +27 -0
  112. package/lib/electron-browser/electron-navigator-module.js.map +1 -0
  113. package/lib/node/navigator-backend-module.d.ts +4 -0
  114. package/lib/node/navigator-backend-module.d.ts.map +1 -0
  115. package/lib/node/navigator-backend-module.js +23 -0
  116. package/lib/node/navigator-backend-module.js.map +1 -0
  117. package/lib/package.spec.d.ts +1 -0
  118. package/lib/package.spec.d.ts.map +1 -0
  119. package/lib/package.spec.js +26 -0
  120. package/lib/package.spec.js.map +1 -0
  121. package/package.json +5 -5
@@ -0,0 +1,616 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2017-2018 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.FileNavigatorContribution = exports.FILE_NAVIGATOR_TOGGLE_COMMAND_ID = exports.NavigatorContextMenu = exports.SHELL_TABBAR_CONTEXT_REVEAL = exports.NAVIGATOR_CONTEXT_MENU = exports.NavigatorMoreToolbarGroups = exports.FileNavigatorCommands = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const view_contribution_1 = require("@theia/core/lib/browser/shell/view-contribution");
22
+ const browser_1 = require("@theia/core/lib/browser");
23
+ const file_download_command_contribution_1 = require("@theia/filesystem/lib/browser/download/file-download-command-contribution");
24
+ const common_1 = require("@theia/core/lib/common");
25
+ const browser_2 = require("@theia/workspace/lib/browser");
26
+ const navigator_widget_factory_1 = require("./navigator-widget-factory");
27
+ const navigator_widget_1 = require("./navigator-widget");
28
+ const navigator_preferences_1 = require("../common/navigator-preferences");
29
+ const navigator_filter_1 = require("./navigator-filter");
30
+ const navigator_tree_1 = require("./navigator-tree");
31
+ const navigator_context_key_service_1 = require("./navigator-context-key-service");
32
+ const tab_bar_toolbar_1 = require("@theia/core/lib/browser/shell/tab-bar-toolbar");
33
+ const filesystem_frontend_contribution_1 = require("@theia/filesystem/lib/browser/filesystem-frontend-contribution");
34
+ const navigator_diff_1 = require("./navigator-diff");
35
+ const browser_3 = require("@theia/filesystem/lib/browser");
36
+ const clipboard_service_1 = require("@theia/core/lib/browser/clipboard-service");
37
+ const selection_service_1 = require("@theia/core/lib/common/selection-service");
38
+ const navigator_open_editors_widget_1 = require("./open-editors-widget/navigator-open-editors-widget");
39
+ const navigator_open_editors_menus_1 = require("./open-editors-widget/navigator-open-editors-menus");
40
+ const navigator_open_editors_commands_1 = require("./open-editors-widget/navigator-open-editors-commands");
41
+ const nls_1 = require("@theia/core/lib/common/nls");
42
+ const uri_command_handler_1 = require("@theia/core/lib/common/uri-command-handler");
43
+ const file_navigator_commands_1 = require("./file-navigator-commands");
44
+ Object.defineProperty(exports, "FileNavigatorCommands", { enumerable: true, get: function () { return file_navigator_commands_1.FileNavigatorCommands; } });
45
+ const common_2 = require("@theia/workspace/lib/common");
46
+ /**
47
+ * Navigator `More Actions...` toolbar item groups.
48
+ * Used in order to group items present in the toolbar.
49
+ */
50
+ var NavigatorMoreToolbarGroups;
51
+ (function (NavigatorMoreToolbarGroups) {
52
+ NavigatorMoreToolbarGroups.NEW_OPEN = '1_navigator_new_open';
53
+ NavigatorMoreToolbarGroups.TOOLS = '2_navigator_tools';
54
+ NavigatorMoreToolbarGroups.WORKSPACE = '3_navigator_workspace';
55
+ })(NavigatorMoreToolbarGroups || (exports.NavigatorMoreToolbarGroups = NavigatorMoreToolbarGroups = {}));
56
+ exports.NAVIGATOR_CONTEXT_MENU = ['navigator-context-menu'];
57
+ exports.SHELL_TABBAR_CONTEXT_REVEAL = [...browser_1.SHELL_TABBAR_CONTEXT_MENU, '2_reveal'];
58
+ /**
59
+ * Navigator context menu default groups should be aligned
60
+ * with VS Code default groups: https://code.visualstudio.com/api/references/contribution-points#contributes.menus
61
+ */
62
+ var NavigatorContextMenu;
63
+ (function (NavigatorContextMenu) {
64
+ NavigatorContextMenu.NAVIGATION = [...exports.NAVIGATOR_CONTEXT_MENU, 'navigation'];
65
+ /** @deprecated use NAVIGATION */
66
+ NavigatorContextMenu.OPEN = NavigatorContextMenu.NAVIGATION;
67
+ /** @deprecated use NAVIGATION */
68
+ NavigatorContextMenu.NEW = NavigatorContextMenu.NAVIGATION;
69
+ NavigatorContextMenu.WORKSPACE = [...exports.NAVIGATOR_CONTEXT_MENU, '2_workspace'];
70
+ NavigatorContextMenu.COMPARE = [...exports.NAVIGATOR_CONTEXT_MENU, '3_compare'];
71
+ /** @deprecated use COMPARE */
72
+ NavigatorContextMenu.DIFF = NavigatorContextMenu.COMPARE;
73
+ NavigatorContextMenu.SEARCH = [...exports.NAVIGATOR_CONTEXT_MENU, '4_search'];
74
+ NavigatorContextMenu.CLIPBOARD = [...exports.NAVIGATOR_CONTEXT_MENU, '5_cutcopypaste'];
75
+ NavigatorContextMenu.MODIFICATION = [...exports.NAVIGATOR_CONTEXT_MENU, '7_modification'];
76
+ /** @deprecated use MODIFICATION */
77
+ NavigatorContextMenu.MOVE = NavigatorContextMenu.MODIFICATION;
78
+ /** @deprecated use MODIFICATION */
79
+ NavigatorContextMenu.ACTIONS = NavigatorContextMenu.MODIFICATION;
80
+ /** @deprecated use the `FileNavigatorCommands.OPEN_WITH` command */
81
+ NavigatorContextMenu.OPEN_WITH = [...NavigatorContextMenu.NAVIGATION, 'open_with'];
82
+ })(NavigatorContextMenu || (exports.NavigatorContextMenu = NavigatorContextMenu = {}));
83
+ exports.FILE_NAVIGATOR_TOGGLE_COMMAND_ID = 'fileNavigator:toggle';
84
+ let FileNavigatorContribution = class FileNavigatorContribution extends view_contribution_1.AbstractViewContribution {
85
+ constructor(fileNavigatorPreferences, openerService, fileNavigatorFilter, workspaceService, workspacePreferences) {
86
+ super({
87
+ viewContainerId: navigator_widget_factory_1.EXPLORER_VIEW_CONTAINER_ID,
88
+ widgetId: navigator_widget_1.FILE_NAVIGATOR_ID,
89
+ widgetName: navigator_widget_factory_1.EXPLORER_VIEW_CONTAINER_TITLE_OPTIONS.label,
90
+ defaultWidgetOptions: {
91
+ area: 'left',
92
+ rank: 100
93
+ },
94
+ toggleCommandId: exports.FILE_NAVIGATOR_TOGGLE_COMMAND_ID,
95
+ toggleKeybinding: 'ctrlcmd+shift+e'
96
+ });
97
+ this.fileNavigatorPreferences = fileNavigatorPreferences;
98
+ this.openerService = openerService;
99
+ this.fileNavigatorFilter = fileNavigatorFilter;
100
+ this.workspaceService = workspaceService;
101
+ this.workspacePreferences = workspacePreferences;
102
+ /**
103
+ * Register commands to the `More Actions...` navigator toolbar item.
104
+ */
105
+ this.registerMoreToolbarItem = (item) => {
106
+ const commandId = item.command;
107
+ const id = 'navigator.tabbar.toolbar.' + commandId;
108
+ const command = this.commandRegistry.getCommand(commandId);
109
+ this.commandRegistry.registerCommand({ id, iconClass: command && command.iconClass }, {
110
+ execute: (w, ...args) => w instanceof navigator_widget_1.FileNavigatorWidget
111
+ && this.commandRegistry.executeCommand(commandId, ...args),
112
+ isEnabled: (w, ...args) => w instanceof navigator_widget_1.FileNavigatorWidget
113
+ && this.commandRegistry.isEnabled(commandId, ...args),
114
+ isVisible: (w, ...args) => w instanceof navigator_widget_1.FileNavigatorWidget
115
+ && this.commandRegistry.isVisible(commandId, ...args),
116
+ isToggled: (w, ...args) => w instanceof navigator_widget_1.FileNavigatorWidget
117
+ && this.commandRegistry.isToggled(commandId, ...args),
118
+ });
119
+ item.command = id;
120
+ this.tabbarToolbarRegistry.registerItem(item);
121
+ };
122
+ }
123
+ init() {
124
+ this.doInit();
125
+ }
126
+ async doInit() {
127
+ await this.fileNavigatorPreferences.ready;
128
+ this.shell.onDidChangeCurrentWidget(() => this.onCurrentWidgetChangedHandler());
129
+ const updateFocusContextKeys = () => {
130
+ const hasFocus = this.shell.activeWidget instanceof navigator_widget_1.FileNavigatorWidget;
131
+ this.contextKeyService.explorerViewletFocus.set(hasFocus);
132
+ this.contextKeyService.filesExplorerFocus.set(hasFocus);
133
+ };
134
+ updateFocusContextKeys();
135
+ this.shell.onDidChangeActiveWidget(updateFocusContextKeys);
136
+ this.workspaceCommandContribution.onDidCreateNewFile(async (event) => this.onDidCreateNewResource(event));
137
+ this.workspaceCommandContribution.onDidCreateNewFolder(async (event) => this.onDidCreateNewResource(event));
138
+ }
139
+ async onDidCreateNewResource(event) {
140
+ const navigator = this.tryGetWidget();
141
+ if (!navigator || !navigator.isVisible) {
142
+ return;
143
+ }
144
+ const model = navigator.model;
145
+ const parent = await model.revealFile(event.parent);
146
+ if (browser_3.DirNode.is(parent)) {
147
+ await model.refresh(parent);
148
+ }
149
+ const node = await model.revealFile(event.uri);
150
+ if (browser_1.SelectableTreeNode.is(node)) {
151
+ model.selectNode(node);
152
+ if (browser_3.DirNode.is(node)) {
153
+ this.openView({ activate: true });
154
+ }
155
+ }
156
+ }
157
+ async initializeLayout(app) {
158
+ await this.openView();
159
+ }
160
+ registerCommands(registry) {
161
+ super.registerCommands(registry);
162
+ registry.registerCommand(file_navigator_commands_1.FileNavigatorCommands.FOCUS, {
163
+ execute: () => this.openView({ activate: true })
164
+ });
165
+ registry.registerCommand(file_navigator_commands_1.FileNavigatorCommands.REVEAL_IN_NAVIGATOR, uri_command_handler_1.UriAwareCommandHandler.MonoSelect(this.selectionService, {
166
+ execute: async (uri) => {
167
+ if (await this.selectFileNode(uri)) {
168
+ this.openView({ activate: false, reveal: true });
169
+ }
170
+ },
171
+ isEnabled: uri => !!this.workspaceService.getWorkspaceRootUri(uri),
172
+ isVisible: uri => !!this.workspaceService.getWorkspaceRootUri(uri),
173
+ }));
174
+ registry.registerCommand(file_navigator_commands_1.FileNavigatorCommands.TOGGLE_HIDDEN_FILES, {
175
+ execute: () => {
176
+ this.fileNavigatorFilter.toggleHiddenFiles();
177
+ },
178
+ isEnabled: () => true,
179
+ isVisible: () => true
180
+ });
181
+ registry.registerCommand(file_navigator_commands_1.FileNavigatorCommands.TOGGLE_AUTO_REVEAL, {
182
+ isEnabled: widget => this.withWidget(widget, () => this.workspaceService.opened),
183
+ isVisible: widget => this.withWidget(widget, () => this.workspaceService.opened),
184
+ execute: () => {
185
+ const autoReveal = !this.fileNavigatorPreferences['explorer.autoReveal'];
186
+ this.preferenceService.set('explorer.autoReveal', autoReveal, common_1.PreferenceScope.User);
187
+ if (autoReveal) {
188
+ this.selectWidgetFileNode(this.shell.currentWidget);
189
+ }
190
+ },
191
+ isToggled: () => this.fileNavigatorPreferences['explorer.autoReveal']
192
+ });
193
+ registry.registerCommand(file_navigator_commands_1.FileNavigatorCommands.COLLAPSE_ALL, {
194
+ execute: widget => this.withWidget(widget, () => this.collapseFileNavigatorTree()),
195
+ isEnabled: widget => this.withWidget(widget, () => this.workspaceService.opened),
196
+ isVisible: widget => this.withWidget(widget, () => this.workspaceService.opened)
197
+ });
198
+ registry.registerCommand(file_navigator_commands_1.FileNavigatorCommands.REFRESH_NAVIGATOR, {
199
+ execute: widget => this.withWidget(widget, () => this.refreshWorkspace()),
200
+ isEnabled: widget => this.withWidget(widget, () => this.workspaceService.opened),
201
+ isVisible: widget => this.withWidget(widget, () => this.workspaceService.opened)
202
+ });
203
+ registry.registerCommand(file_navigator_commands_1.FileNavigatorCommands.ADD_ROOT_FOLDER, {
204
+ execute: (...args) => registry.executeCommand(browser_2.WorkspaceCommands.ADD_FOLDER.id, ...args),
205
+ isEnabled: (...args) => registry.isEnabled(browser_2.WorkspaceCommands.ADD_FOLDER.id, ...args),
206
+ isVisible: (...args) => {
207
+ if (!registry.isVisible(browser_2.WorkspaceCommands.ADD_FOLDER.id, ...args)) {
208
+ return false;
209
+ }
210
+ const navigator = this.tryGetWidget();
211
+ const selection = navigator === null || navigator === void 0 ? void 0 : navigator.model.getFocusedNode();
212
+ // The node that is selected when the user clicks in empty space.
213
+ const root = navigator === null || navigator === void 0 ? void 0 : navigator.getContainerTreeNode();
214
+ return selection === root;
215
+ }
216
+ });
217
+ registry.registerCommand(navigator_diff_1.NavigatorDiffCommands.COMPARE_FIRST, {
218
+ execute: () => {
219
+ this.navigatorDiff.addFirstComparisonFile();
220
+ },
221
+ isEnabled: () => true,
222
+ isVisible: () => true
223
+ });
224
+ registry.registerCommand(navigator_diff_1.NavigatorDiffCommands.COMPARE_SECOND, {
225
+ execute: () => {
226
+ this.navigatorDiff.compareFiles();
227
+ },
228
+ isEnabled: () => this.navigatorDiff.isFirstFileSelected,
229
+ isVisible: () => this.navigatorDiff.isFirstFileSelected
230
+ });
231
+ registry.registerCommand(file_navigator_commands_1.FileNavigatorCommands.OPEN, {
232
+ isEnabled: () => this.getSelectedFileNodes().length > 0,
233
+ isVisible: () => this.getSelectedFileNodes().length > 0,
234
+ execute: () => {
235
+ this.getSelectedFileNodes().forEach(async (node) => {
236
+ const opener = await this.openerService.getOpener(node.uri);
237
+ opener.open(node.uri);
238
+ });
239
+ }
240
+ });
241
+ registry.registerCommand(file_navigator_commands_1.FileNavigatorCommands.OPEN_WITH, uri_command_handler_1.UriAwareCommandHandler.MonoSelect(this.selectionService, {
242
+ isEnabled: uri => this.openWithService.getHandlers(uri).length > 0,
243
+ isVisible: uri => this.openWithService.getHandlers(uri).length > 0,
244
+ execute: uri => this.openWithService.openWith(uri)
245
+ }));
246
+ registry.registerCommand(navigator_open_editors_commands_1.OpenEditorsCommands.CLOSE_ALL_TABS_FROM_TOOLBAR, {
247
+ execute: widget => this.withOpenEditorsWidget(widget, () => this.shell.closeMany(this.editorWidgets)),
248
+ isEnabled: widget => this.withOpenEditorsWidget(widget, () => true),
249
+ isVisible: widget => this.withOpenEditorsWidget(widget, () => true)
250
+ });
251
+ registry.registerCommand(navigator_open_editors_commands_1.OpenEditorsCommands.SAVE_ALL_TABS_FROM_TOOLBAR, {
252
+ execute: widget => this.withOpenEditorsWidget(widget, () => registry.executeCommand(browser_1.CommonCommands.SAVE_ALL.id)),
253
+ isEnabled: widget => this.withOpenEditorsWidget(widget, () => true),
254
+ isVisible: widget => this.withOpenEditorsWidget(widget, () => true)
255
+ });
256
+ const filterEditorWidgets = (title) => {
257
+ const { owner } = title;
258
+ return browser_1.NavigatableWidget.is(owner);
259
+ };
260
+ registry.registerCommand(navigator_open_editors_commands_1.OpenEditorsCommands.CLOSE_ALL_EDITORS_IN_GROUP_FROM_ICON, {
261
+ execute: (tabBarOrArea) => {
262
+ this.shell.closeTabs(tabBarOrArea, filterEditorWidgets);
263
+ },
264
+ isVisible: () => false
265
+ });
266
+ registry.registerCommand(navigator_open_editors_commands_1.OpenEditorsCommands.SAVE_ALL_IN_GROUP_FROM_ICON, {
267
+ execute: (tabBarOrArea) => {
268
+ this.shell.saveTabs(tabBarOrArea, filterEditorWidgets);
269
+ },
270
+ isVisible: () => false
271
+ });
272
+ registry.registerCommand(file_navigator_commands_1.FileNavigatorCommands.NEW_FILE_TOOLBAR, {
273
+ execute: (...args) => registry.executeCommand(browser_2.WorkspaceCommands.NEW_FILE.id, ...args),
274
+ isEnabled: widget => this.withWidget(widget, () => this.workspaceService.opened),
275
+ isVisible: widget => this.withWidget(widget, () => this.workspaceService.opened)
276
+ });
277
+ registry.registerCommand(file_navigator_commands_1.FileNavigatorCommands.NEW_FOLDER_TOOLBAR, {
278
+ execute: (...args) => registry.executeCommand(browser_2.WorkspaceCommands.NEW_FOLDER.id, ...args),
279
+ isEnabled: widget => this.withWidget(widget, () => this.workspaceService.opened),
280
+ isVisible: widget => this.withWidget(widget, () => this.workspaceService.opened)
281
+ });
282
+ }
283
+ get editorWidgets() {
284
+ var _a;
285
+ const openEditorsWidget = this.widgetManager.tryGetWidget(navigator_open_editors_widget_1.OpenEditorsWidget.ID);
286
+ return (_a = openEditorsWidget === null || openEditorsWidget === void 0 ? void 0 : openEditorsWidget.editorWidgets) !== null && _a !== void 0 ? _a : [];
287
+ }
288
+ getSelectedFileNodes() {
289
+ var _a;
290
+ return ((_a = this.tryGetWidget()) === null || _a === void 0 ? void 0 : _a.model.selectedNodes.filter(browser_3.FileNode.is)) || [];
291
+ }
292
+ withWidget(widget = this.tryGetWidget(), cb) {
293
+ if (widget instanceof navigator_widget_1.FileNavigatorWidget && widget.id === navigator_widget_1.FILE_NAVIGATOR_ID) {
294
+ return cb(widget);
295
+ }
296
+ return false;
297
+ }
298
+ withOpenEditorsWidget(widget, cb) {
299
+ if (widget instanceof navigator_open_editors_widget_1.OpenEditorsWidget && widget.id === navigator_open_editors_widget_1.OpenEditorsWidget.ID) {
300
+ return cb(widget);
301
+ }
302
+ return false;
303
+ }
304
+ registerMenus(registry) {
305
+ super.registerMenus(registry);
306
+ registry.registerMenuAction(exports.SHELL_TABBAR_CONTEXT_REVEAL, {
307
+ commandId: file_navigator_commands_1.FileNavigatorCommands.REVEAL_IN_NAVIGATOR.id,
308
+ label: file_navigator_commands_1.FileNavigatorCommands.REVEAL_IN_NAVIGATOR.label,
309
+ order: '5'
310
+ });
311
+ registry.registerMenuAction(NavigatorContextMenu.NAVIGATION, {
312
+ commandId: file_navigator_commands_1.FileNavigatorCommands.OPEN.id,
313
+ label: nls_1.nls.localizeByDefault('Open')
314
+ });
315
+ registry.registerMenuAction(NavigatorContextMenu.NAVIGATION, {
316
+ commandId: file_navigator_commands_1.FileNavigatorCommands.OPEN_WITH.id,
317
+ when: '!explorerResourceIsFolder',
318
+ label: nls_1.nls.localizeByDefault('Open With...')
319
+ });
320
+ registry.registerMenuAction(NavigatorContextMenu.CLIPBOARD, {
321
+ commandId: browser_1.CommonCommands.COPY.id,
322
+ order: 'a'
323
+ });
324
+ registry.registerMenuAction(NavigatorContextMenu.CLIPBOARD, {
325
+ commandId: browser_1.CommonCommands.PASTE.id,
326
+ order: 'b'
327
+ });
328
+ registry.registerMenuAction(NavigatorContextMenu.CLIPBOARD, {
329
+ commandId: browser_1.CommonCommands.COPY_PATH.id,
330
+ order: 'c'
331
+ });
332
+ registry.registerMenuAction(NavigatorContextMenu.CLIPBOARD, {
333
+ commandId: browser_2.WorkspaceCommands.COPY_RELATIVE_FILE_PATH.id,
334
+ label: browser_2.WorkspaceCommands.COPY_RELATIVE_FILE_PATH.label,
335
+ order: 'd'
336
+ });
337
+ registry.registerMenuAction(NavigatorContextMenu.CLIPBOARD, {
338
+ commandId: file_download_command_contribution_1.FileDownloadCommands.COPY_DOWNLOAD_LINK.id,
339
+ order: 'z'
340
+ });
341
+ registry.registerMenuAction(NavigatorContextMenu.MODIFICATION, {
342
+ commandId: browser_2.WorkspaceCommands.FILE_RENAME.id
343
+ });
344
+ registry.registerMenuAction(NavigatorContextMenu.MODIFICATION, {
345
+ commandId: browser_2.WorkspaceCommands.FILE_DELETE.id
346
+ });
347
+ registry.registerMenuAction(NavigatorContextMenu.MODIFICATION, {
348
+ commandId: browser_2.WorkspaceCommands.FILE_DUPLICATE.id
349
+ });
350
+ const downloadUploadMenu = [...exports.NAVIGATOR_CONTEXT_MENU, '6_downloadupload'];
351
+ registry.registerMenuAction(downloadUploadMenu, {
352
+ commandId: filesystem_frontend_contribution_1.FileSystemCommands.UPLOAD.id,
353
+ order: 'a'
354
+ });
355
+ registry.registerMenuAction(downloadUploadMenu, {
356
+ commandId: file_download_command_contribution_1.FileDownloadCommands.DOWNLOAD.id,
357
+ order: 'b'
358
+ });
359
+ registry.registerMenuAction(NavigatorContextMenu.NAVIGATION, {
360
+ commandId: browser_2.WorkspaceCommands.NEW_FILE.id,
361
+ when: 'explorerResourceIsFolder'
362
+ });
363
+ registry.registerMenuAction(NavigatorContextMenu.NAVIGATION, {
364
+ commandId: browser_2.WorkspaceCommands.NEW_FOLDER.id,
365
+ when: 'explorerResourceIsFolder'
366
+ });
367
+ registry.registerMenuAction(NavigatorContextMenu.COMPARE, {
368
+ commandId: browser_2.WorkspaceCommands.FILE_COMPARE.id
369
+ });
370
+ registry.registerMenuAction(NavigatorContextMenu.MODIFICATION, {
371
+ commandId: file_navigator_commands_1.FileNavigatorCommands.COLLAPSE_ALL.id,
372
+ label: nls_1.nls.localizeByDefault('Collapse All'),
373
+ order: 'z2'
374
+ });
375
+ registry.registerMenuAction(NavigatorContextMenu.COMPARE, {
376
+ commandId: navigator_diff_1.NavigatorDiffCommands.COMPARE_FIRST.id,
377
+ order: 'za'
378
+ });
379
+ registry.registerMenuAction(NavigatorContextMenu.COMPARE, {
380
+ commandId: navigator_diff_1.NavigatorDiffCommands.COMPARE_SECOND.id,
381
+ order: 'zb'
382
+ });
383
+ // Open Editors Widget Menu Items
384
+ registry.registerMenuAction(navigator_open_editors_menus_1.OpenEditorsContextMenu.CLIPBOARD, {
385
+ commandId: browser_1.CommonCommands.COPY_PATH.id,
386
+ order: 'a'
387
+ });
388
+ registry.registerMenuAction(navigator_open_editors_menus_1.OpenEditorsContextMenu.CLIPBOARD, {
389
+ commandId: browser_2.WorkspaceCommands.COPY_RELATIVE_FILE_PATH.id,
390
+ order: 'b'
391
+ });
392
+ registry.registerMenuAction(navigator_open_editors_menus_1.OpenEditorsContextMenu.SAVE, {
393
+ commandId: browser_1.CommonCommands.SAVE.id,
394
+ order: 'a'
395
+ });
396
+ registry.registerMenuAction(navigator_open_editors_menus_1.OpenEditorsContextMenu.COMPARE, {
397
+ commandId: navigator_diff_1.NavigatorDiffCommands.COMPARE_FIRST.id,
398
+ order: 'a'
399
+ });
400
+ registry.registerMenuAction(navigator_open_editors_menus_1.OpenEditorsContextMenu.COMPARE, {
401
+ commandId: navigator_diff_1.NavigatorDiffCommands.COMPARE_SECOND.id,
402
+ order: 'b'
403
+ });
404
+ registry.registerMenuAction(navigator_open_editors_menus_1.OpenEditorsContextMenu.MODIFICATION, {
405
+ commandId: browser_1.CommonCommands.CLOSE_TAB.id,
406
+ label: nls_1.nls.localizeByDefault('Close'),
407
+ order: 'a'
408
+ });
409
+ registry.registerMenuAction(navigator_open_editors_menus_1.OpenEditorsContextMenu.MODIFICATION, {
410
+ commandId: browser_1.CommonCommands.CLOSE_OTHER_TABS.id,
411
+ label: nls_1.nls.localizeByDefault('Close Others'),
412
+ order: 'b'
413
+ });
414
+ registry.registerMenuAction(navigator_open_editors_menus_1.OpenEditorsContextMenu.MODIFICATION, {
415
+ commandId: browser_1.CommonCommands.CLOSE_ALL_MAIN_TABS.id,
416
+ label: nls_1.nls.localizeByDefault('Close All'),
417
+ order: 'c'
418
+ });
419
+ registry.registerMenuAction(NavigatorContextMenu.WORKSPACE, {
420
+ commandId: file_navigator_commands_1.FileNavigatorCommands.ADD_ROOT_FOLDER.id,
421
+ label: browser_2.WorkspaceCommands.ADD_FOLDER.label
422
+ });
423
+ registry.registerMenuAction(NavigatorContextMenu.WORKSPACE, {
424
+ commandId: browser_2.WorkspaceCommands.REMOVE_FOLDER.id
425
+ });
426
+ }
427
+ registerKeybindings(registry) {
428
+ super.registerKeybindings(registry);
429
+ registry.registerKeybinding({
430
+ command: file_navigator_commands_1.FileNavigatorCommands.REVEAL_IN_NAVIGATOR.id,
431
+ keybinding: 'alt+r'
432
+ });
433
+ registry.registerKeybinding({
434
+ command: browser_2.WorkspaceCommands.FILE_DELETE.id,
435
+ keybinding: common_1.isOSX ? 'cmd+backspace' : 'del',
436
+ when: 'filesExplorerFocus'
437
+ });
438
+ registry.registerKeybinding({
439
+ command: browser_2.WorkspaceCommands.FILE_RENAME.id,
440
+ keybinding: 'f2',
441
+ when: 'filesExplorerFocus'
442
+ });
443
+ registry.registerKeybinding({
444
+ command: file_navigator_commands_1.FileNavigatorCommands.TOGGLE_HIDDEN_FILES.id,
445
+ keybinding: 'ctrlcmd+i',
446
+ when: 'filesExplorerFocus'
447
+ });
448
+ }
449
+ async registerToolbarItems(toolbarRegistry) {
450
+ toolbarRegistry.registerItem({
451
+ id: file_navigator_commands_1.FileNavigatorCommands.NEW_FILE_TOOLBAR.id,
452
+ command: file_navigator_commands_1.FileNavigatorCommands.NEW_FILE_TOOLBAR.id,
453
+ tooltip: nls_1.nls.localizeByDefault('New File...'),
454
+ priority: 0,
455
+ });
456
+ toolbarRegistry.registerItem({
457
+ id: file_navigator_commands_1.FileNavigatorCommands.NEW_FOLDER_TOOLBAR.id,
458
+ command: file_navigator_commands_1.FileNavigatorCommands.NEW_FOLDER_TOOLBAR.id,
459
+ tooltip: nls_1.nls.localizeByDefault('New Folder...'),
460
+ priority: 1,
461
+ });
462
+ toolbarRegistry.registerItem({
463
+ id: file_navigator_commands_1.FileNavigatorCommands.REFRESH_NAVIGATOR.id,
464
+ command: file_navigator_commands_1.FileNavigatorCommands.REFRESH_NAVIGATOR.id,
465
+ tooltip: nls_1.nls.localizeByDefault('Refresh Explorer'),
466
+ priority: 2,
467
+ });
468
+ toolbarRegistry.registerItem({
469
+ id: file_navigator_commands_1.FileNavigatorCommands.COLLAPSE_ALL.id,
470
+ command: file_navigator_commands_1.FileNavigatorCommands.COLLAPSE_ALL.id,
471
+ tooltip: nls_1.nls.localizeByDefault('Collapse All'),
472
+ priority: 3,
473
+ });
474
+ // More (...) toolbar items.
475
+ this.registerMoreToolbarItem({
476
+ id: file_navigator_commands_1.FileNavigatorCommands.TOGGLE_AUTO_REVEAL.id,
477
+ command: file_navigator_commands_1.FileNavigatorCommands.TOGGLE_AUTO_REVEAL.id,
478
+ tooltip: file_navigator_commands_1.FileNavigatorCommands.TOGGLE_AUTO_REVEAL.label,
479
+ group: NavigatorMoreToolbarGroups.TOOLS,
480
+ });
481
+ this.registerMoreToolbarItem({
482
+ id: browser_2.WorkspaceCommands.ADD_FOLDER.id,
483
+ command: browser_2.WorkspaceCommands.ADD_FOLDER.id,
484
+ tooltip: browser_2.WorkspaceCommands.ADD_FOLDER.label,
485
+ group: NavigatorMoreToolbarGroups.WORKSPACE,
486
+ });
487
+ // Open Editors toolbar items.
488
+ toolbarRegistry.registerItem({
489
+ id: navigator_open_editors_commands_1.OpenEditorsCommands.SAVE_ALL_TABS_FROM_TOOLBAR.id,
490
+ command: navigator_open_editors_commands_1.OpenEditorsCommands.SAVE_ALL_TABS_FROM_TOOLBAR.id,
491
+ tooltip: navigator_open_editors_commands_1.OpenEditorsCommands.SAVE_ALL_TABS_FROM_TOOLBAR.label,
492
+ priority: 0,
493
+ });
494
+ toolbarRegistry.registerItem({
495
+ id: navigator_open_editors_commands_1.OpenEditorsCommands.CLOSE_ALL_TABS_FROM_TOOLBAR.id,
496
+ command: navigator_open_editors_commands_1.OpenEditorsCommands.CLOSE_ALL_TABS_FROM_TOOLBAR.id,
497
+ tooltip: navigator_open_editors_commands_1.OpenEditorsCommands.CLOSE_ALL_TABS_FROM_TOOLBAR.label,
498
+ priority: 1,
499
+ });
500
+ }
501
+ /**
502
+ * Reveals and selects node in the file navigator to which given widget is related.
503
+ * Does nothing if given widget undefined or doesn't have related resource.
504
+ *
505
+ * @param widget widget file resource of which should be revealed and selected
506
+ */
507
+ async selectWidgetFileNode(widget) {
508
+ return this.selectFileNode(browser_1.NavigatableWidget.getUri(widget));
509
+ }
510
+ async selectFileNode(uri) {
511
+ if (uri) {
512
+ const { model } = await this.widget;
513
+ const node = await model.revealFile(uri);
514
+ if (browser_1.SelectableTreeNode.is(node)) {
515
+ model.selectNode(node);
516
+ return true;
517
+ }
518
+ }
519
+ return false;
520
+ }
521
+ onCurrentWidgetChangedHandler() {
522
+ if (this.fileNavigatorPreferences['explorer.autoReveal']) {
523
+ this.selectWidgetFileNode(this.shell.currentWidget);
524
+ }
525
+ }
526
+ /**
527
+ * Collapse file navigator nodes and set focus on first visible node
528
+ * - single root workspace: collapse all nodes except root
529
+ * - multiple root workspace: collapse all nodes, even roots
530
+ */
531
+ async collapseFileNavigatorTree() {
532
+ const { model } = await this.widget;
533
+ // collapse all child nodes which are not the root (single root workspace)
534
+ // collapse all root nodes (multiple root workspace)
535
+ let root = model.root;
536
+ if (navigator_tree_1.WorkspaceNode.is(root) && root.children.length === 1) {
537
+ root = root.children[0];
538
+ }
539
+ root.children.forEach(child => browser_1.CompositeTreeNode.is(child) && model.collapseAll(child));
540
+ // select first visible node
541
+ const firstChild = navigator_tree_1.WorkspaceNode.is(root) ? root.children[0] : root;
542
+ if (browser_1.SelectableTreeNode.is(firstChild)) {
543
+ model.selectNode(firstChild);
544
+ }
545
+ }
546
+ /**
547
+ * force refresh workspace in navigator
548
+ */
549
+ async refreshWorkspace() {
550
+ const { model } = await this.widget;
551
+ await model.refresh();
552
+ }
553
+ };
554
+ exports.FileNavigatorContribution = FileNavigatorContribution;
555
+ tslib_1.__decorate([
556
+ (0, inversify_1.inject)(clipboard_service_1.ClipboardService),
557
+ tslib_1.__metadata("design:type", Object)
558
+ ], FileNavigatorContribution.prototype, "clipboardService", void 0);
559
+ tslib_1.__decorate([
560
+ (0, inversify_1.inject)(common_1.CommandRegistry),
561
+ tslib_1.__metadata("design:type", common_1.CommandRegistry)
562
+ ], FileNavigatorContribution.prototype, "commandRegistry", void 0);
563
+ tslib_1.__decorate([
564
+ (0, inversify_1.inject)(tab_bar_toolbar_1.TabBarToolbarRegistry),
565
+ tslib_1.__metadata("design:type", tab_bar_toolbar_1.TabBarToolbarRegistry)
566
+ ], FileNavigatorContribution.prototype, "tabbarToolbarRegistry", void 0);
567
+ tslib_1.__decorate([
568
+ (0, inversify_1.inject)(navigator_context_key_service_1.NavigatorContextKeyService),
569
+ tslib_1.__metadata("design:type", navigator_context_key_service_1.NavigatorContextKeyService)
570
+ ], FileNavigatorContribution.prototype, "contextKeyService", void 0);
571
+ tslib_1.__decorate([
572
+ (0, inversify_1.inject)(common_1.MenuModelRegistry),
573
+ tslib_1.__metadata("design:type", common_1.MenuModelRegistry)
574
+ ], FileNavigatorContribution.prototype, "menuRegistry", void 0);
575
+ tslib_1.__decorate([
576
+ (0, inversify_1.inject)(navigator_diff_1.NavigatorDiff),
577
+ tslib_1.__metadata("design:type", navigator_diff_1.NavigatorDiff)
578
+ ], FileNavigatorContribution.prototype, "navigatorDiff", void 0);
579
+ tslib_1.__decorate([
580
+ (0, inversify_1.inject)(common_1.PreferenceService),
581
+ tslib_1.__metadata("design:type", Object)
582
+ ], FileNavigatorContribution.prototype, "preferenceService", void 0);
583
+ tslib_1.__decorate([
584
+ (0, inversify_1.inject)(selection_service_1.SelectionService),
585
+ tslib_1.__metadata("design:type", selection_service_1.SelectionService)
586
+ ], FileNavigatorContribution.prototype, "selectionService", void 0);
587
+ tslib_1.__decorate([
588
+ (0, inversify_1.inject)(browser_2.WorkspaceCommandContribution),
589
+ tslib_1.__metadata("design:type", browser_2.WorkspaceCommandContribution)
590
+ ], FileNavigatorContribution.prototype, "workspaceCommandContribution", void 0);
591
+ tslib_1.__decorate([
592
+ (0, inversify_1.inject)(browser_1.OpenWithService),
593
+ tslib_1.__metadata("design:type", browser_1.OpenWithService)
594
+ ], FileNavigatorContribution.prototype, "openWithService", void 0);
595
+ tslib_1.__decorate([
596
+ (0, inversify_1.inject)(common_1.QuickInputService),
597
+ (0, inversify_1.optional)(),
598
+ tslib_1.__metadata("design:type", Object)
599
+ ], FileNavigatorContribution.prototype, "quickInputService", void 0);
600
+ tslib_1.__decorate([
601
+ (0, inversify_1.postConstruct)(),
602
+ tslib_1.__metadata("design:type", Function),
603
+ tslib_1.__metadata("design:paramtypes", []),
604
+ tslib_1.__metadata("design:returntype", void 0)
605
+ ], FileNavigatorContribution.prototype, "init", null);
606
+ exports.FileNavigatorContribution = FileNavigatorContribution = tslib_1.__decorate([
607
+ (0, inversify_1.injectable)(),
608
+ tslib_1.__param(0, (0, inversify_1.inject)(navigator_preferences_1.FileNavigatorPreferences)),
609
+ tslib_1.__param(1, (0, inversify_1.inject)(browser_1.OpenerService)),
610
+ tslib_1.__param(2, (0, inversify_1.inject)(navigator_filter_1.FileNavigatorFilter)),
611
+ tslib_1.__param(3, (0, inversify_1.inject)(browser_2.WorkspaceService)),
612
+ tslib_1.__param(4, (0, inversify_1.inject)(common_2.WorkspacePreferences)),
613
+ tslib_1.__metadata("design:paramtypes", [Object, Object, navigator_filter_1.FileNavigatorFilter,
614
+ browser_2.WorkspaceService, Object])
615
+ ], FileNavigatorContribution);
616
+ //# sourceMappingURL=navigator-contribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigator-contribution.js","sourceRoot":"","sources":["../../src/browser/navigator-contribution.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,8CAA8C;AAC9C,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,4DAA2F;AAC3F,uFAA2F;AAC3F,qDAeiC;AACjC,kIAAiH;AACjH,mDASgC;AAChC,0DAKsC;AACtC,yEAA+G;AAC/G,yDAA4E;AAC5E,2EAA2E;AAC3E,yDAAyD;AACzD,qDAAiD;AACjD,mFAA6E;AAC7E,mFAIuD;AACvD,qHAAoG;AACpG,qDAAwE;AACxE,2DAAkE;AAElE,iFAA6E;AAC7E,gFAA4E;AAC5E,uGAAwF;AACxF,qGAA4F;AAC5F,2GAA4F;AAC5F,oDAAiD;AAEjD,oFAAoF;AACpF,uEAAkE;AAEzD,sGAFA,+CAAqB,OAEA;AAD9B,wDAAmE;AAGnE;;;GAGG;AACH,IAAiB,0BAA0B,CAI1C;AAJD,WAAiB,0BAA0B;IAC1B,mCAAQ,GAAG,sBAAsB,CAAC;IAClC,gCAAK,GAAG,mBAAmB,CAAC;IAC5B,oCAAS,GAAG,uBAAuB,CAAC;AACrD,CAAC,EAJgB,0BAA0B,0CAA1B,0BAA0B,QAI1C;AAEY,QAAA,sBAAsB,GAAa,CAAC,wBAAwB,CAAC,CAAC;AAC9D,QAAA,2BAA2B,GAAa,CAAC,GAAG,mCAAyB,EAAE,UAAU,CAAC,CAAC;AAEhG;;;GAGG;AACH,IAAiB,oBAAoB,CAwBpC;AAxBD,WAAiB,oBAAoB;IACpB,+BAAU,GAAG,CAAC,GAAG,8BAAsB,EAAE,YAAY,CAAC,CAAC;IACpE,iCAAiC;IACpB,yBAAI,GAAG,qBAAA,UAAU,CAAC;IAC/B,iCAAiC;IACpB,wBAAG,GAAG,qBAAA,UAAU,CAAC;IAEjB,8BAAS,GAAG,CAAC,GAAG,8BAAsB,EAAE,aAAa,CAAC,CAAC;IAEvD,4BAAO,GAAG,CAAC,GAAG,8BAAsB,EAAE,WAAW,CAAC,CAAC;IAChE,8BAA8B;IACjB,yBAAI,GAAG,qBAAA,OAAO,CAAC;IAEf,2BAAM,GAAG,CAAC,GAAG,8BAAsB,EAAE,UAAU,CAAC,CAAC;IACjD,8BAAS,GAAG,CAAC,GAAG,8BAAsB,EAAE,gBAAgB,CAAC,CAAC;IAE1D,iCAAY,GAAG,CAAC,GAAG,8BAAsB,EAAE,gBAAgB,CAAC,CAAC;IAC1E,mCAAmC;IACtB,yBAAI,GAAG,qBAAA,YAAY,CAAC;IACjC,mCAAmC;IACtB,4BAAO,GAAG,qBAAA,YAAY,CAAC;IAEpC,oEAAoE;IACvD,8BAAS,GAAG,CAAC,GAAG,qBAAA,UAAU,EAAE,WAAW,CAAC,CAAC;AAC1D,CAAC,EAxBgB,oBAAoB,oCAApB,oBAAoB,QAwBpC;AAEY,QAAA,gCAAgC,GAAG,sBAAsB,CAAC;AAGhE,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,4CAA6C;IAmCxF,YACsC,wBAAqE,EAChF,aAA+C,EACzC,mBAA2D,EAC9D,gBAAqD,EACjD,oBAA6D;QAE3F,KAAK,CAAC;YACF,eAAe,EAAE,qDAA0B;YAC3C,QAAQ,EAAE,oCAAiB;YAC3B,UAAU,EAAE,gEAAqC,CAAC,KAAK;YACvD,oBAAoB,EAAE;gBAClB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,GAAG;aACZ;YACD,eAAe,EAAE,wCAAgC;YACjD,gBAAgB,EAAE,iBAAiB;SACtC,CAAC,CAAC;QAhBkD,6BAAwB,GAAxB,wBAAwB,CAA0B;QAC7D,kBAAa,GAAb,aAAa,CAAe;QACtB,wBAAmB,GAAnB,mBAAmB,CAAqB;QAC3C,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC9B,yBAAoB,GAApB,oBAAoB,CAAsB;QAua/F;;WAEG;QACI,4BAAuB,GAAG,CAAC,IAA0D,EAAE,EAAE;YAC5F,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,GAAG,2BAA2B,GAAG,SAAS,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC3D,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,EAAE;gBAClF,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,sCAAmB;uBAClD,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC;gBAC9D,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,sCAAmB;uBACpD,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC;gBACzD,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,sCAAmB;uBACpD,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC;gBACzD,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,sCAAmB;uBACpD,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC;aAC5D,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC;IA7aF,CAAC;IAGS,IAAI;QACV,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAES,KAAK,CAAC,MAAM;QAClB,MAAM,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,CAAC;QAEhF,MAAM,sBAAsB,GAAG,GAAG,EAAE;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,YAAY,sCAAmB,CAAC;YACxE,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5D,CAAC,CAAC;QACF,sBAAsB,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,CAAC;QAC3D,IAAI,CAAC,4BAA4B,CAAC,kBAAkB,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;QACxG,IAAI,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9G,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,KAAgC;QACjE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YACrC,OAAO;QACX,CAAC;QACD,MAAM,KAAK,GAAuB,SAAS,CAAC,KAAK,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,iBAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,4BAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,iBAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAwB;QAC3C,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;IAEQ,gBAAgB,CAAC,QAAyB;QAC/C,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACjC,QAAQ,CAAC,eAAe,CAAC,+CAAqB,CAAC,KAAK,EAAE;YAClD,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SACnD,CAAC,CAAC;QACH,QAAQ,CAAC,eAAe,CAAC,+CAAqB,CAAC,mBAAmB,EAAE,4CAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACzH,OAAO,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE;gBACjB,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjC,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrD,CAAC;YACL,CAAC;YACD,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,CAAC;YAClE,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,CAAC;SACrE,CAAC,CAAC,CAAC;QACJ,QAAQ,CAAC,eAAe,CAAC,+CAAqB,CAAC,mBAAmB,EAAE;YAChE,OAAO,EAAE,GAAG,EAAE;gBACV,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,CAAC;YACjD,CAAC;YACD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;YACrB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;SACxB,CAAC,CAAC;QACH,QAAQ,CAAC,eAAe,CAAC,+CAAqB,CAAC,kBAAkB,EAAE;YAC/D,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAChF,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAChF,OAAO,EAAE,GAAG,EAAE;gBACV,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;gBACzE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,qBAAqB,EAAE,UAAU,EAAE,wBAAe,CAAC,IAAI,CAAC,CAAC;gBACpF,IAAI,UAAU,EAAE,CAAC;oBACb,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACxD,CAAC;YACL,CAAC;YACD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,CAAC;SACxE,CAAC,CAAC;QACH,QAAQ,CAAC,eAAe,CAAC,+CAAqB,CAAC,YAAY,EAAE;YACzD,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAClF,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAChF,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;SACnF,CAAC,CAAC;QACH,QAAQ,CAAC,eAAe,CAAC,+CAAqB,CAAC,iBAAiB,EAAE;YAC9D,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAChF,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;SACnF,CAAC,CAAC;QACH,QAAQ,CAAC,eAAe,CAAC,+CAAqB,CAAC,eAAe,EAAE;YAC5D,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAAiB,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;YACvF,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,2BAAiB,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;YACpF,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;gBACnB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,2BAAiB,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;oBAChE,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtC,MAAM,SAAS,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,CAAC,cAAc,EAAE,CAAC;gBACpD,iEAAiE;gBACjE,MAAM,IAAI,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,oBAAoB,EAAE,CAAC;gBAC/C,OAAO,SAAS,KAAK,IAAI,CAAC;YAC9B,CAAC;SACJ,CAAC,CAAC;QAEH,QAAQ,CAAC,eAAe,CAAC,sCAAqB,CAAC,aAAa,EAAE;YAC1D,OAAO,EAAE,GAAG,EAAE;gBACV,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;YAChD,CAAC;YACD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;YACrB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI;SACxB,CAAC,CAAC;QACH,QAAQ,CAAC,eAAe,CAAC,sCAAqB,CAAC,cAAc,EAAE;YAC3D,OAAO,EAAE,GAAG,EAAE;gBACV,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;YACtC,CAAC;YACD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB;YACvD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB;SAC1D,CAAC,CAAC;QACH,QAAQ,CAAC,eAAe,CAAC,+CAAqB,CAAC,IAAI,EAAE;YACjD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,GAAG,CAAC;YACvD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,GAAG,CAAC;YACvD,OAAO,EAAE,GAAG,EAAE;gBACV,IAAI,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE;oBAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC5D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;YACP,CAAC;SACJ,CAAC,CAAC;QACH,QAAQ,CAAC,eAAe,CAAC,+CAAqB,CAAC,SAAS,EAAE,4CAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC/G,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;YAClE,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;YAClE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;SACrD,CAAC,CAAC,CAAC;QACJ,QAAQ,CAAC,eAAe,CAAC,qDAAmB,CAAC,2BAA2B,EAAE;YACtE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACrG,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;YACnE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;SACtE,CAAC,CAAC;QACH,QAAQ,CAAC,eAAe,CAAC,qDAAmB,CAAC,0BAA0B,EAAE;YACrE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAChH,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;YACnE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;SACtE,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,CAAC,KAAoB,EAAE,EAAE;YACjD,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;YACxB,OAAO,2BAAiB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC;QACF,QAAQ,CAAC,eAAe,CAAC,qDAAmB,CAAC,oCAAoC,EAAE;YAC/E,OAAO,EAAE,CAAC,YAAoD,EAAQ,EAAE;gBACpE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;YAC5D,CAAC;YACD,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK;SACzB,CAAC,CAAC;QACH,QAAQ,CAAC,eAAe,CAAC,qDAAmB,CAAC,2BAA2B,EAAE;YACtE,OAAO,EAAE,CAAC,YAAoD,EAAE,EAAE;gBAC9D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;YAC3D,CAAC;YACD,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK;SACzB,CAAC,CAAC;QAEH,QAAQ,CAAC,eAAe,CAAC,+CAAqB,CAAC,gBAAgB,EAAE;YAC7D,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;YACrF,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAChF,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;SACnF,CAAC,CAAC;QACH,QAAQ,CAAC,eAAe,CAAC,+CAAqB,CAAC,kBAAkB,EAAE;YAC/D,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAAiB,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;YACvF,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAChF,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;SACnF,CAAC,CAAC;IACP,CAAC;IAED,IAAc,aAAa;;QACvB,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAoB,iDAAiB,CAAC,EAAE,CAAC,CAAC;QACnG,OAAO,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,aAAa,mCAAI,EAAE,CAAC;IAClD,CAAC;IAES,oBAAoB;;QAC1B,OAAO,CAAA,MAAA,IAAI,CAAC,YAAY,EAAE,0CAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,kBAAQ,CAAC,EAAE,CAAC,KAAI,EAAE,CAAC;IAC9E,CAAC;IAES,UAAU,CAAI,SAA6B,IAAI,CAAC,YAAY,EAAE,EAAE,EAAyC;QAC/G,IAAI,MAAM,YAAY,sCAAmB,IAAI,MAAM,CAAC,EAAE,KAAK,oCAAiB,EAAE,CAAC;YAC3E,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,qBAAqB,CAAI,MAAc,EAAE,EAAuC;QACtF,IAAI,MAAM,YAAY,iDAAiB,IAAI,MAAM,CAAC,EAAE,KAAK,iDAAiB,CAAC,EAAE,EAAE,CAAC;YAC5E,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEQ,aAAa,CAAC,QAA2B;QAC9C,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC9B,QAAQ,CAAC,kBAAkB,CAAC,mCAA2B,EAAE;YACrD,SAAS,EAAE,+CAAqB,CAAC,mBAAmB,CAAC,EAAE;YACvD,KAAK,EAAE,+CAAqB,CAAC,mBAAmB,CAAC,KAAK;YACtD,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,UAAU,EAAE;YACzD,SAAS,EAAE,+CAAqB,CAAC,IAAI,CAAC,EAAE;YACxC,KAAK,EAAE,SAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC;SACvC,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,UAAU,EAAE;YACzD,SAAS,EAAE,+CAAqB,CAAC,SAAS,CAAC,EAAE;YAC7C,IAAI,EAAE,2BAA2B;YACjC,KAAK,EAAE,SAAG,CAAC,iBAAiB,CAAC,cAAc,CAAC;SAC/C,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACxD,SAAS,EAAE,wBAAc,CAAC,IAAI,CAAC,EAAE;YACjC,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACxD,SAAS,EAAE,wBAAc,CAAC,KAAK,CAAC,EAAE;YAClC,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACxD,SAAS,EAAE,wBAAc,CAAC,SAAS,CAAC,EAAE;YACtC,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACxD,SAAS,EAAE,2BAAiB,CAAC,uBAAuB,CAAC,EAAE;YACvD,KAAK,EAAE,2BAAiB,CAAC,uBAAuB,CAAC,KAAK;YACtD,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACxD,SAAS,EAAE,yDAAoB,CAAC,kBAAkB,CAAC,EAAE;YACrD,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,YAAY,EAAE;YAC3D,SAAS,EAAE,2BAAiB,CAAC,WAAW,CAAC,EAAE;SAC9C,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,YAAY,EAAE;YAC3D,SAAS,EAAE,2BAAiB,CAAC,WAAW,CAAC,EAAE;SAC9C,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,YAAY,EAAE;YAC3D,SAAS,EAAE,2BAAiB,CAAC,cAAc,CAAC,EAAE;SACjD,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,CAAC,GAAG,8BAAsB,EAAE,kBAAkB,CAAC,CAAC;QAC3E,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;QAEH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,UAAU,EAAE;YACzD,SAAS,EAAE,2BAAiB,CAAC,QAAQ,CAAC,EAAE;YACxC,IAAI,EAAE,0BAA0B;SACnC,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,UAAU,EAAE;YACzD,SAAS,EAAE,2BAAiB,CAAC,UAAU,CAAC,EAAE;YAC1C,IAAI,EAAE,0BAA0B;SACnC,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,EAAE;YACtD,SAAS,EAAE,2BAAiB,CAAC,YAAY,CAAC,EAAE;SAC/C,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,YAAY,EAAE;YAC3D,SAAS,EAAE,+CAAqB,CAAC,YAAY,CAAC,EAAE;YAChD,KAAK,EAAE,SAAG,CAAC,iBAAiB,CAAC,cAAc,CAAC;YAC5C,KAAK,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,EAAE;YACtD,SAAS,EAAE,sCAAqB,CAAC,aAAa,CAAC,EAAE;YACjD,KAAK,EAAE,IAAI;SACd,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,EAAE;YACtD,SAAS,EAAE,sCAAqB,CAAC,cAAc,CAAC,EAAE;YAClD,KAAK,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,iCAAiC;QACjC,QAAQ,CAAC,kBAAkB,CAAC,qDAAsB,CAAC,SAAS,EAAE;YAC1D,SAAS,EAAE,wBAAc,CAAC,SAAS,CAAC,EAAE;YACtC,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,qDAAsB,CAAC,SAAS,EAAE;YAC1D,SAAS,EAAE,2BAAiB,CAAC,uBAAuB,CAAC,EAAE;YACvD,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,qDAAsB,CAAC,IAAI,EAAE;YACrD,SAAS,EAAE,wBAAc,CAAC,IAAI,CAAC,EAAE;YACjC,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAkB,CAAC,qDAAsB,CAAC,OAAO,EAAE;YACxD,SAAS,EAAE,sCAAqB,CAAC,aAAa,CAAC,EAAE;YACjD,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,qDAAsB,CAAC,OAAO,EAAE;YACxD,SAAS,EAAE,sCAAqB,CAAC,cAAc,CAAC,EAAE;YAClD,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAkB,CAAC,qDAAsB,CAAC,YAAY,EAAE;YAC7D,SAAS,EAAE,wBAAc,CAAC,SAAS,CAAC,EAAE;YACtC,KAAK,EAAE,SAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC;YACrC,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,qDAAsB,CAAC,YAAY,EAAE;YAC7D,SAAS,EAAE,wBAAc,CAAC,gBAAgB,CAAC,EAAE;YAC7C,KAAK,EAAE,SAAG,CAAC,iBAAiB,CAAC,cAAc,CAAC;YAC5C,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,qDAAsB,CAAC,YAAY,EAAE;YAC7D,SAAS,EAAE,wBAAc,CAAC,mBAAmB,CAAC,EAAE;YAChD,KAAK,EAAE,SAAG,CAAC,iBAAiB,CAAC,WAAW,CAAC;YACzC,KAAK,EAAE,GAAG;SACb,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACxD,SAAS,EAAE,+CAAqB,CAAC,eAAe,CAAC,EAAE;YACnD,KAAK,EAAE,2BAAiB,CAAC,UAAU,CAAC,KAAK;SAC5C,CAAC,CAAC;QACH,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,SAAS,EAAE;YACxD,SAAS,EAAE,2BAAiB,CAAC,aAAa,CAAC,EAAE;SAChD,CAAC,CAAC;IACP,CAAC;IAEQ,mBAAmB,CAAC,QAA4B;QACrD,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACpC,QAAQ,CAAC,kBAAkB,CAAC;YACxB,OAAO,EAAE,+CAAqB,CAAC,mBAAmB,CAAC,EAAE;YACrD,UAAU,EAAE,OAAO;SACtB,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAkB,CAAC;YACxB,OAAO,EAAE,2BAAiB,CAAC,WAAW,CAAC,EAAE;YACzC,UAAU,EAAE,cAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK;YAC3C,IAAI,EAAE,oBAAoB;SAC7B,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAkB,CAAC;YACxB,OAAO,EAAE,2BAAiB,CAAC,WAAW,CAAC,EAAE;YACzC,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,oBAAoB;SAC7B,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAkB,CAAC;YACxB,OAAO,EAAE,+CAAqB,CAAC,mBAAmB,CAAC,EAAE;YACrD,UAAU,EAAE,WAAW;YACvB,IAAI,EAAE,oBAAoB;SAC7B,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,eAAsC;QAC7D,eAAe,CAAC,YAAY,CAAC;YACzB,EAAE,EAAE,+CAAqB,CAAC,gBAAgB,CAAC,EAAE;YAC7C,OAAO,EAAE,+CAAqB,CAAC,gBAAgB,CAAC,EAAE;YAClD,OAAO,EAAE,SAAG,CAAC,iBAAiB,CAAC,aAAa,CAAC;YAC7C,QAAQ,EAAE,CAAC;SACd,CAAC,CAAC;QACH,eAAe,CAAC,YAAY,CAAC;YACzB,EAAE,EAAE,+CAAqB,CAAC,kBAAkB,CAAC,EAAE;YAC/C,OAAO,EAAE,+CAAqB,CAAC,kBAAkB,CAAC,EAAE;YACpD,OAAO,EAAE,SAAG,CAAC,iBAAiB,CAAC,eAAe,CAAC;YAC/C,QAAQ,EAAE,CAAC;SACd,CAAC,CAAC;QACH,eAAe,CAAC,YAAY,CAAC;YACzB,EAAE,EAAE,+CAAqB,CAAC,iBAAiB,CAAC,EAAE;YAC9C,OAAO,EAAE,+CAAqB,CAAC,iBAAiB,CAAC,EAAE;YACnD,OAAO,EAAE,SAAG,CAAC,iBAAiB,CAAC,kBAAkB,CAAC;YAClD,QAAQ,EAAE,CAAC;SACd,CAAC,CAAC;QACH,eAAe,CAAC,YAAY,CAAC;YACzB,EAAE,EAAE,+CAAqB,CAAC,YAAY,CAAC,EAAE;YACzC,OAAO,EAAE,+CAAqB,CAAC,YAAY,CAAC,EAAE;YAC9C,OAAO,EAAE,SAAG,CAAC,iBAAiB,CAAC,cAAc,CAAC;YAC9C,QAAQ,EAAE,CAAC;SACd,CAAC,CAAC;QAEH,4BAA4B;QAC5B,IAAI,CAAC,uBAAuB,CAAC;YACzB,EAAE,EAAE,+CAAqB,CAAC,kBAAkB,CAAC,EAAE;YAC/C,OAAO,EAAE,+CAAqB,CAAC,kBAAkB,CAAC,EAAE;YACpD,OAAO,EAAE,+CAAqB,CAAC,kBAAkB,CAAC,KAAK;YACvD,KAAK,EAAE,0BAA0B,CAAC,KAAK;SAC1C,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,CAAC;YACzB,EAAE,EAAE,2BAAiB,CAAC,UAAU,CAAC,EAAE;YACnC,OAAO,EAAE,2BAAiB,CAAC,UAAU,CAAC,EAAE;YACxC,OAAO,EAAE,2BAAiB,CAAC,UAAU,CAAC,KAAK;YAC3C,KAAK,EAAE,0BAA0B,CAAC,SAAS;SAC9C,CAAC,CAAC;QAEH,8BAA8B;QAC9B,eAAe,CAAC,YAAY,CAAC;YACzB,EAAE,EAAE,qDAAmB,CAAC,0BAA0B,CAAC,EAAE;YACrD,OAAO,EAAE,qDAAmB,CAAC,0BAA0B,CAAC,EAAE;YAC1D,OAAO,EAAE,qDAAmB,CAAC,0BAA0B,CAAC,KAAK;YAC7D,QAAQ,EAAE,CAAC;SACd,CAAC,CAAC;QACH,eAAe,CAAC,YAAY,CAAC;YACzB,EAAE,EAAE,qDAAmB,CAAC,2BAA2B,CAAC,EAAE;YACtD,OAAO,EAAE,qDAAmB,CAAC,2BAA2B,CAAC,EAAE;YAC3D,OAAO,EAAE,qDAAmB,CAAC,2BAA2B,CAAC,KAAK;YAC9D,QAAQ,EAAE,CAAC;SACd,CAAC,CAAC;IACP,CAAC;IAuBD;;;;;OAKG;IACH,KAAK,CAAC,oBAAoB,CAAC,MAA0B;QACjD,OAAO,IAAI,CAAC,cAAc,CAAC,2BAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAS;QAC1B,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,4BAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvB,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,6BAA6B;QACnC,IAAI,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,yBAAyB;QAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QAEpC,0EAA0E;QAC1E,oDAAoD;QACpD,IAAI,IAAI,GAAG,KAAK,CAAC,IAAyB,CAAC;QAC3C,IAAI,8BAAa,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,2BAAiB,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAExF,4BAA4B;QAC5B,MAAM,UAAU,GAAG,8BAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,IAAI,4BAAkB,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QAClB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QACpC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;CAEJ,CAAA;AA/hBY,8DAAyB;AAGf;IADlB,IAAA,kBAAM,EAAC,oCAAgB,CAAC;;mEAC6B;AAGnC;IADlB,IAAA,kBAAM,EAAC,wBAAe,CAAC;sCACY,wBAAe;kEAAC;AAGjC;IADlB,IAAA,kBAAM,EAAC,uCAAqB,CAAC;sCACY,uCAAqB;wEAAC;AAG7C;IADlB,IAAA,kBAAM,EAAC,0DAA0B,CAAC;sCACG,0DAA0B;oEAAC;AAG9C;IADlB,IAAA,kBAAM,EAAC,0BAAiB,CAAC;sCACO,0BAAiB;+DAAC;AAGhC;IADlB,IAAA,kBAAM,EAAC,8BAAa,CAAC;sCACY,8BAAa;gEAAC;AAG7B;IADlB,IAAA,kBAAM,EAAC,0BAAiB,CAAC;;oEAC8B;AAGrC;IADlB,IAAA,kBAAM,EAAC,oCAAgB,CAAC;sCACY,oCAAgB;mEAAC;AAGnC;IADlB,IAAA,kBAAM,EAAC,sCAA4B,CAAC;sCACY,sCAA4B;+EAAC;AAG3D;IADlB,IAAA,kBAAM,EAAC,yBAAe,CAAC;sCACY,yBAAe;kEAAC;AAGjC;IADlB,IAAA,kBAAM,EAAC,0BAAiB,CAAC;IAAE,IAAA,oBAAQ,GAAE;;oEACkB;AAuB9C;IADT,IAAA,yBAAa,GAAE;;;;qDAGf;oCA1DQ,yBAAyB;IADrC,IAAA,sBAAU,GAAE;IAqCJ,mBAAA,IAAA,kBAAM,EAAC,gDAAwB,CAAC,CAAA;IAChC,mBAAA,IAAA,kBAAM,EAAC,uBAAa,CAAC,CAAA;IACrB,mBAAA,IAAA,kBAAM,EAAC,sCAAmB,CAAC,CAAA;IAC3B,mBAAA,IAAA,kBAAM,EAAC,0BAAgB,CAAC,CAAA;IACxB,mBAAA,IAAA,kBAAM,EAAC,6BAAoB,CAAC,CAAA;6DAFwC,sCAAmB;QACzB,0BAAgB;GAvC1E,yBAAyB,CA+hBrC"}