monaco-editor-core 0.56.0-dev-20251219 → 0.56.0-dev-20251220

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 (189) hide show
  1. package/esm/nls.keys.json +1 -1
  2. package/esm/nls.messages.cs.js +2 -2
  3. package/esm/nls.messages.de.js +2 -2
  4. package/esm/nls.messages.es.js +2 -2
  5. package/esm/nls.messages.fr.js +2 -2
  6. package/esm/nls.messages.it.js +2 -2
  7. package/esm/nls.messages.ja.js +2 -2
  8. package/esm/nls.messages.js +1 -1
  9. package/esm/nls.messages.json +1 -1
  10. package/esm/nls.messages.ko.js +2 -2
  11. package/esm/nls.messages.pl.js +2 -2
  12. package/esm/nls.messages.pt-br.js +2 -2
  13. package/esm/nls.messages.ru.js +2 -2
  14. package/esm/nls.messages.tr.js +2 -2
  15. package/esm/nls.messages.zh-cn.js +2 -2
  16. package/esm/nls.messages.zh-tw.js +2 -2
  17. package/esm/nls.metadata.json +0 -2
  18. package/esm/vs/editor/common/core/editorColorRegistry.js +33 -34
  19. package/esm/vs/editor/common/core/editorColorRegistry.js.map +1 -1
  20. package/esm/vs/editor/common/editorContextKeys.js +47 -47
  21. package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
  22. package/esm/vs/editor/common/languages.js +56 -56
  23. package/esm/vs/editor/common/model/editStack.js +1 -1
  24. package/esm/vs/editor/common/standaloneStrings.js +11 -11
  25. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
  26. package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
  27. package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +9 -18
  28. package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js.map +1 -1
  29. package/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
  30. package/esm/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
  31. package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +17 -17
  32. package/esm/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
  33. package/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
  34. package/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
  35. package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
  36. package/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
  37. package/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
  38. package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
  39. package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
  40. package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
  41. package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +1 -1
  42. package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
  43. package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
  44. package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +10 -10
  45. package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
  46. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
  47. package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
  48. package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
  49. package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
  50. package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
  51. package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
  52. package/esm/vs/editor/contrib/find/browser/findController.js +16 -16
  53. package/esm/vs/editor/contrib/find/browser/findWidget.js +26 -26
  54. package/esm/vs/editor/contrib/folding/browser/folding.js +20 -20
  55. package/esm/vs/editor/contrib/folding/browser/folding.js.map +1 -1
  56. package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
  57. package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
  58. package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
  59. package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
  60. package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
  61. package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
  62. package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
  63. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
  64. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
  65. package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
  66. package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
  67. package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
  68. package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
  69. package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
  70. package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
  71. package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js +2 -2
  72. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +9 -9
  73. package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
  74. package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  75. package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
  76. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
  77. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +21 -21
  78. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +13 -13
  79. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +1 -1
  80. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
  81. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
  82. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +2 -1
  83. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
  84. package/esm/vs/editor/contrib/inlineCompletions/browser/model/renameSymbolProcessor.js +2 -2
  85. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
  86. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +7 -7
  87. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
  88. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
  89. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js.map +1 -1
  90. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +13 -11
  91. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
  92. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCustomView.js +5 -7
  93. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCustomView.js.map +1 -1
  94. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.js +6 -5
  95. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.js.map +1 -1
  96. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js +6 -5
  97. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js.map +1 -1
  98. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsLineReplacementView.js +9 -7
  99. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsLineReplacementView.js.map +1 -1
  100. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsSideBySideView.js +14 -9
  101. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsSideBySideView.js.map +1 -1
  102. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js +12 -10
  103. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js.map +1 -1
  104. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js +5 -4
  105. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js.map +1 -1
  106. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.js +2 -1
  107. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.js.map +1 -1
  108. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +40 -21
  109. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js.map +1 -1
  110. package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  111. package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  112. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +31 -31
  113. package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  114. package/esm/vs/editor/contrib/links/browser/links.js +10 -10
  115. package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
  116. package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  117. package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  118. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  119. package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  120. package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  121. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +11 -11
  122. package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  123. package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  124. package/esm/vs/editor/contrib/rename/browser/rename.js +11 -11
  125. package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
  126. package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  127. package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  128. package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  129. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  130. package/esm/vs/editor/contrib/suggest/browser/suggest.js +9 -9
  131. package/esm/vs/editor/contrib/suggest/browser/suggestController.js +11 -11
  132. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
  133. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
  134. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  135. package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  136. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  137. package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  138. package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  139. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  140. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
  141. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  142. package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  143. package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
  144. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +3 -3
  145. package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
  146. package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
  147. package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
  148. package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
  149. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
  150. package/esm/vs/platform/actions/browser/toolbar.js +2 -2
  151. package/esm/vs/platform/actions/common/menuService.js +2 -2
  152. package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
  153. package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  154. package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
  155. package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
  156. package/esm/vs/platform/contextkey/common/scanner.js +5 -5
  157. package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  158. package/esm/vs/platform/hover/browser/hoverWidget.js +1 -1
  159. package/esm/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
  160. package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
  161. package/esm/vs/platform/list/browser/listService.js +27 -27
  162. package/esm/vs/platform/markers/common/markerService.js +2 -2
  163. package/esm/vs/platform/markers/common/markers.js +6 -6
  164. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +8 -8
  165. package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
  166. package/esm/vs/platform/quickinput/browser/quickInput.js +13 -47
  167. package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
  168. package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
  169. package/esm/vs/platform/quickinput/browser/quickInputController.js +7 -6
  170. package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
  171. package/esm/vs/platform/quickinput/browser/quickInputList.js +1 -1
  172. package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  173. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
  174. package/esm/vs/platform/quickinput/common/quickInput.js.map +1 -1
  175. package/esm/vs/platform/theme/common/colorUtils.js +2 -2
  176. package/esm/vs/platform/theme/common/colors/baseColors.js +18 -18
  177. package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
  178. package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
  179. package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
  180. package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
  181. package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
  182. package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
  183. package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
  184. package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
  185. package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
  186. package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
  187. package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
  188. package/esm/vs/platform/workspace/common/workspace.js +1 -1
  189. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/platform/quickinput/browser/quickInputController.ts"],"names":[],"mappings":"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","file":"quickInputController.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as dom from '../../../base/browser/dom.js';\nimport * as domStylesheetsJs from '../../../base/browser/domStylesheets.js';\nimport { ActionBar } from '../../../base/browser/ui/actionbar/actionbar.js';\nimport { ActionViewItem } from '../../../base/browser/ui/actionbar/actionViewItems.js';\nimport { Button } from '../../../base/browser/ui/button/button.js';\nimport { CountBadge } from '../../../base/browser/ui/countBadge/countBadge.js';\nimport { ProgressBar } from '../../../base/browser/ui/progressbar/progressbar.js';\nimport { CancellationToken } from '../../../base/common/cancellation.js';\nimport { Emitter, Event } from '../../../base/common/event.js';\nimport { Disposable, DisposableStore, dispose } from '../../../base/common/lifecycle.js';\nimport Severity from '../../../base/common/severity.js';\nimport { isString } from '../../../base/common/types.js';\nimport { isModifierKey } from '../../../base/common/keyCodes.js';\nimport { localize } from '../../../nls.js';\nimport { IInputBox, IInputOptions, IKeyMods, IPickOptions, IQuickInput, IQuickInputButton, IQuickPick, IQuickPickItem, QuickInputHideReason, QuickPickInput, QuickInputType } from '../common/quickInput.js';\nimport { QuickInputBox } from './quickInputBox.js';\nimport { QuickInputUI, Writeable, IQuickInputStyles, IQuickInputOptions, QuickPick, backButton, InputBox, Visibilities, InQuickInputContextKey, QuickInputTypeContextKey, EndOfQuickInputBoxContextKey, QuickInputAlignmentContextKey } from './quickInput.js';\nimport { ILayoutService } from '../../layout/browser/layoutService.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { IInstantiationService } from '../../instantiation/common/instantiation.js';\nimport { QuickInputList } from './quickInputList.js';\nimport { IContextKey, IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport './quickInputActions.js';\nimport { autorun, observableValue } from '../../../base/common/observable.js';\nimport { StandardMouseEvent } from '../../../base/browser/mouseEvent.js';\nimport { IStorageService, StorageScope, StorageTarget } from '../../storage/common/storage.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { Platform, platform, setTimeout0 } from '../../../base/common/platform.js';\nimport { getWindowControlsStyle, WindowControlsStyle } from '../../window/common/window.js';\nimport { getZoomFactor } from '../../../base/browser/browser.js';\nimport { TriStateCheckbox, createToggleActionViewItemProvider } from '../../../base/browser/ui/toggle/toggle.js';\nimport { defaultCheckboxStyles } from '../../theme/browser/defaultStyles.js';\nimport { QuickInputTreeController } from './tree/quickInputTreeController.js';\n\nconst $ = dom.$;\n\nconst VIEWSTATE_STORAGE_KEY = 'workbench.quickInput.viewState';\n\ntype QuickInputViewState = {\n\treadonly top?: number;\n\treadonly left?: number;\n};\n\nexport class QuickInputController extends Disposable {\n\tprivate static readonly MAX_WIDTH = 600; // Max total width of quick input widget\n\n\tprivate idPrefix: string;\n\tprivate ui: QuickInputUI | undefined;\n\tprivate dimension?: dom.IDimension;\n\tprivate titleBarOffset?: number;\n\tprivate enabled = true;\n\tprivate readonly onDidAcceptEmitter = this._register(new Emitter<void>());\n\tprivate readonly onDidCustomEmitter = this._register(new Emitter<void>());\n\tprivate readonly onDidTriggerButtonEmitter = this._register(new Emitter<IQuickInputButton>());\n\tprivate keyMods: Writeable<IKeyMods> = { ctrlCmd: false, alt: false };\n\n\tprivate controller: IQuickInput | null = null;\n\tget currentQuickInput() { return this.controller ?? undefined; }\n\n\tprivate _container: HTMLElement;\n\tget container() { return this._container; }\n\n\tprivate styles: IQuickInputStyles;\n\n\tprivate onShowEmitter = this._register(new Emitter<void>());\n\treadonly onShow = this.onShowEmitter.event;\n\n\tprivate onHideEmitter = this._register(new Emitter<void>());\n\treadonly onHide = this.onHideEmitter.event;\n\n\tprivate previousFocusElement?: HTMLElement;\n\n\tprivate viewState: QuickInputViewState | undefined;\n\tprivate dndController: QuickInputDragAndDropController | undefined;\n\n\tprivate readonly inQuickInputContext: IContextKey<boolean>;\n\tprivate readonly quickInputTypeContext: IContextKey<QuickInputType>;\n\tprivate readonly endOfQuickInputBoxContext: IContextKey<boolean>;\n\n\tconstructor(\n\t\tprivate options: IQuickInputOptions,\n\t\t@ILayoutService private readonly layoutService: ILayoutService,\n\t\t@IInstantiationService private readonly instantiationService: IInstantiationService,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IStorageService private readonly storageService: IStorageService\n\t) {\n\t\tsuper();\n\n\t\tthis.inQuickInputContext = InQuickInputContextKey.bindTo(contextKeyService);\n\t\tthis.quickInputTypeContext = QuickInputTypeContextKey.bindTo(contextKeyService);\n\t\tthis.endOfQuickInputBoxContext = EndOfQuickInputBoxContextKey.bindTo(contextKeyService);\n\n\t\tthis.idPrefix = options.idPrefix;\n\t\tthis._container = options.container;\n\t\tthis.styles = options.styles;\n\t\tthis._register(Event.runAndSubscribe(dom.onDidRegisterWindow, ({ window, disposables }) => this.registerKeyModsListeners(window, disposables), { window: mainWindow, disposables: this._store }));\n\t\tthis._register(dom.onWillUnregisterWindow(window => {\n\t\t\tif (this.ui && dom.getWindow(this.ui.container) === window) {\n\t\t\t\t// The window this quick input is contained in is about to\n\t\t\t\t// close, so we have to make sure to reparent it back to an\n\t\t\t\t// existing parent to not loose functionality.\n\t\t\t\t// (https://github.com/microsoft/vscode/issues/195870)\n\t\t\t\tthis.reparentUI(this.layoutService.mainContainer);\n\t\t\t\tthis.layout(this.layoutService.mainContainerDimension, this.layoutService.mainContainerOffset.quickPickTop);\n\t\t\t}\n\t\t}));\n\t\tthis.viewState = this.loadViewState();\n\t}\n\n\tprivate registerKeyModsListeners(window: Window, disposables: DisposableStore): void {\n\t\tconst listener = (e: KeyboardEvent | MouseEvent) => {\n\t\t\tthis.keyMods.ctrlCmd = e.ctrlKey || e.metaKey;\n\t\t\tthis.keyMods.alt = e.altKey;\n\t\t};\n\n\t\tfor (const event of [dom.EventType.KEY_DOWN, dom.EventType.KEY_UP, dom.EventType.MOUSE_DOWN]) {\n\t\t\tdisposables.add(dom.addDisposableListener(window, event, listener, true));\n\t\t}\n\t}\n\n\tprivate getUI(showInActiveContainer?: boolean): QuickInputUI {\n\t\tif (this.ui) {\n\t\t\t// In order to support aux windows, re-parent the controller\n\t\t\t// if the original event is from a different document\n\t\t\tif (showInActiveContainer) {\n\t\t\t\tif (dom.getWindow(this._container) !== dom.getWindow(this.layoutService.activeContainer)) {\n\t\t\t\t\tthis.reparentUI(this.layoutService.activeContainer);\n\t\t\t\t\tthis.layout(this.layoutService.activeContainerDimension, this.layoutService.activeContainerOffset.quickPickTop);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.ui;\n\t\t}\n\n\t\tconst container = dom.append(this._container, $('.quick-input-widget.show-file-icons'));\n\t\tcontainer.tabIndex = -1;\n\t\tcontainer.style.display = 'none';\n\n\t\tconst styleSheet = domStylesheetsJs.createStyleSheet(container);\n\n\t\tconst titleBar = dom.append(container, $('.quick-input-titlebar'));\n\n\t\tconst leftActionBar = this._register(new ActionBar(titleBar, {\n\t\t\thoverDelegate: this.options.hoverDelegate,\n\t\t\tactionViewItemProvider: createToggleActionViewItemProvider(this.styles.toggle)\n\t\t}));\n\t\tleftActionBar.domNode.classList.add('quick-input-left-action-bar');\n\n\t\tconst title = dom.append(titleBar, $('.quick-input-title'));\n\n\t\tconst rightActionBar = this._register(new ActionBar(titleBar, {\n\t\t\thoverDelegate: this.options.hoverDelegate,\n\t\t\tactionViewItemProvider: createToggleActionViewItemProvider(this.styles.toggle)\n\t\t}));\n\t\trightActionBar.domNode.classList.add('quick-input-right-action-bar');\n\n\t\tconst headerContainer = dom.append(container, $('.quick-input-header'));\n\n\t\tconst checkAll = this._register(new TriStateCheckbox(localize('quickInput.checkAll', \"Toggle all checkboxes\"), false, { ...defaultCheckboxStyles, size: 15 }));\n\t\tdom.append(headerContainer, checkAll.domNode);\n\t\tthis._register(checkAll.onChange(() => {\n\t\t\tconst checked = checkAll.checked;\n\t\t\tlist.setAllVisibleChecked(checked === true);\n\t\t}));\n\t\tthis._register(dom.addDisposableListener(checkAll.domNode, dom.EventType.CLICK, e => {\n\t\t\tif (e.x || e.y) { // Avoid 'click' triggered by 'space'...\n\t\t\t\tinputBox.setFocus();\n\t\t\t}\n\t\t}));\n\n\t\tconst description2 = dom.append(headerContainer, $('.quick-input-description'));\n\t\tconst inputContainer = dom.append(headerContainer, $('.quick-input-and-message'));\n\t\tconst filterContainer = dom.append(inputContainer, $('.quick-input-filter'));\n\n\t\tconst inputBox = this._register(new QuickInputBox(filterContainer, this.styles.inputBox, this.styles.toggle));\n\t\tinputBox.setAttribute('aria-describedby', `${this.idPrefix}message`);\n\n\t\tconst visibleCountContainer = dom.append(filterContainer, $('.quick-input-visible-count'));\n\t\tvisibleCountContainer.setAttribute('aria-live', 'polite');\n\t\tvisibleCountContainer.setAttribute('aria-atomic', 'true');\n\t\tconst visibleCount = this._register(new CountBadge(visibleCountContainer, { countFormat: localize({ key: 'quickInput.visibleCount', comment: ['This tells the user how many items are shown in a list of items to select from. The items can be anything. Currently not visible, but read by screen readers.'] }, \"{0} Results\") }, this.styles.countBadge));\n\n\t\tconst countContainer = dom.append(filterContainer, $('.quick-input-count'));\n\t\tcountContainer.setAttribute('aria-live', 'polite');\n\t\tconst count = this._register(new CountBadge(countContainer, { countFormat: localize({ key: 'quickInput.countSelected', comment: ['This tells the user how many items are selected in a list of items to select from. The items can be anything.'] }, \"{0} Selected\") }, this.styles.countBadge));\n\n\t\tconst inlineActionBar = this._register(new ActionBar(headerContainer, {\n\t\t\thoverDelegate: this.options.hoverDelegate,\n\t\t\tactionViewItemProvider: createToggleActionViewItemProvider(this.styles.toggle)\n\t\t}));\n\t\tinlineActionBar.domNode.classList.add('quick-input-inline-action-bar');\n\n\t\tconst okContainer = dom.append(headerContainer, $('.quick-input-action'));\n\t\tconst ok = this._register(new Button(okContainer, this.styles.button));\n\t\tok.label = localize('ok', \"OK\");\n\t\tthis._register(ok.onDidClick(e => {\n\t\t\tthis.onDidAcceptEmitter.fire();\n\t\t}));\n\n\t\tconst customButtonContainer = dom.append(headerContainer, $('.quick-input-action'));\n\t\tconst customButton = this._register(new Button(customButtonContainer, { ...this.styles.button, supportIcons: true }));\n\t\tcustomButton.label = localize('custom', \"Custom\");\n\t\tthis._register(customButton.onDidClick(e => {\n\t\t\tthis.onDidCustomEmitter.fire();\n\t\t}));\n\n\t\tconst message = dom.append(inputContainer, $(`#${this.idPrefix}message.quick-input-message`));\n\n\t\tconst progressBar = this._register(new ProgressBar(container, this.styles.progressBar));\n\t\tprogressBar.getContainer().classList.add('quick-input-progress');\n\n\t\tconst widget = dom.append(container, $('.quick-input-html-widget'));\n\t\twidget.tabIndex = -1;\n\n\t\tconst description1 = dom.append(container, $('.quick-input-description'));\n\n\t\t// List\n\t\tconst listId = this.idPrefix + 'list';\n\t\tconst list = this._register(this.instantiationService.createInstance(QuickInputList, container, this.options.hoverDelegate, this.options.linkOpenerDelegate, listId, this.styles));\n\t\tinputBox.setAttribute('aria-controls', listId);\n\t\tthis._register(list.onDidChangeFocus(() => {\n\t\t\tif (inputBox.hasFocus()) {\n\t\t\t\tconst activeDescendant = list.getActiveDescendant();\n\t\t\t\tif (activeDescendant) {\n\t\t\t\t\tinputBox.setAttribute('aria-activedescendant', activeDescendant);\n\t\t\t\t} else {\n\t\t\t\t\tinputBox.removeAttribute('aria-activedescendant');\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\t\tthis._register(list.onChangedAllVisibleChecked(checked => {\n\t\t\t// TODO: Support tri-state checkbox when we remove the .indent property that is faking tree structure.\n\t\t\tcheckAll.checked = checked;\n\t\t}));\n\t\tthis._register(list.onChangedVisibleCount(c => {\n\t\t\tvisibleCount.setCount(c);\n\t\t}));\n\t\tthis._register(list.onChangedCheckedCount(c => {\n\t\t\t// TODO@TylerLeonhardt: Without this setTimeout, the screen reader will not read out\n\t\t\t// the final count of checked items correctly. Investigate a better way\n\t\t\t// to do this. ref https://github.com/microsoft/vscode/issues/258617\n\t\t\tsetTimeout0(() => count.setCount(c));\n\t\t}));\n\t\tthis._register(list.onLeave(() => {\n\t\t\t// Defer to avoid the input field reacting to the triggering key.\n\t\t\t// TODO@TylerLeonhardt https://github.com/microsoft/vscode/issues/203675\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!this.controller) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tinputBox.setFocus();\n\t\t\t\tif (this.controller instanceof QuickPick && this.controller.canSelectMany) {\n\t\t\t\t\tlist.clearFocus();\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t}));\n\n\t\t// Tree\n\t\tconst tree = this._register(this.instantiationService.createInstance(\n\t\t\tQuickInputTreeController,\n\t\t\tcontainer,\n\t\t\tthis.options.hoverDelegate,\n\t\t\tthis.styles\n\t\t));\n\t\tthis._register(tree.tree.onDidChangeFocus(() => {\n\t\t\tif (inputBox.hasFocus()) {\n\t\t\t\tconst activeDescendant = tree.getActiveDescendant();\n\t\t\t\tif (activeDescendant) {\n\t\t\t\t\tinputBox.setAttribute('aria-activedescendant', activeDescendant);\n\t\t\t\t} else {\n\t\t\t\t\tinputBox.removeAttribute('aria-activedescendant');\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\t\tthis._register(tree.onLeave(() => {\n\t\t\t// Defer to avoid the input field reacting to the triggering key.\n\t\t\t// TODO@TylerLeonhardt https://github.com/microsoft/vscode/issues/203675\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!this.controller) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tinputBox.setFocus();\n\t\t\t\ttree.tree.setFocus([]);\n\t\t\t}, 0);\n\t\t}));\n\t\t// Wire up tree's accept event to the UI's accept emitter for non-pickable items\n\t\tthis._register(tree.onDidAccept(() => {\n\t\t\tthis.onDidAcceptEmitter.fire();\n\t\t}));\n\t\tthis._register(tree.tree.onDidChangeContentHeight(() => this.updateLayout()));\n\n\t\tconst focusTracker = dom.trackFocus(container);\n\t\tthis._register(focusTracker);\n\t\tthis._register(dom.addDisposableListener(container, dom.EventType.FOCUS, e => {\n\t\t\tconst ui = this.getUI();\n\t\t\tif (dom.isAncestor(e.relatedTarget as HTMLElement, ui.inputContainer)) {\n\t\t\t\tconst value = ui.inputBox.isSelectionAtEnd();\n\t\t\t\tif (this.endOfQuickInputBoxContext.get() !== value) {\n\t\t\t\t\tthis.endOfQuickInputBoxContext.set(value);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Ignore focus events within container\n\t\t\tif (dom.isAncestor(e.relatedTarget as HTMLElement, ui.container)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.inQuickInputContext.set(true);\n\t\t\tthis.previousFocusElement = dom.isHTMLElement(e.relatedTarget) ? e.relatedTarget : undefined;\n\t\t}, true));\n\t\tthis._register(focusTracker.onDidBlur(() => {\n\t\t\tif (!this.getUI().ignoreFocusOut && !this.options.ignoreFocusOut()) {\n\t\t\t\tthis.hide(QuickInputHideReason.Blur);\n\t\t\t}\n\t\t\tthis.inQuickInputContext.set(false);\n\t\t\tthis.endOfQuickInputBoxContext.set(false);\n\t\t\tthis.previousFocusElement = undefined;\n\t\t}));\n\t\tthis._register(inputBox.onKeyDown(e => {\n\t\t\tconst value = this.getUI().inputBox.isSelectionAtEnd();\n\t\t\tif (this.endOfQuickInputBoxContext.get() !== value) {\n\t\t\t\tthis.endOfQuickInputBoxContext.set(value);\n\t\t\t}\n\t\t\t// Allow screen readers to read what's in the input\n\t\t\t// Note: this works for arrow keys and selection changes,\n\t\t\t// but not for deletions since that often triggers a\n\t\t\t// change in the list.\n\t\t\t// Don't remove aria-activedescendant when only modifier keys are pressed\n\t\t\t// to prevent screen reader re-announcements when users press Ctrl to silence speech.\n\t\t\t// See: https://github.com/microsoft/vscode/issues/271032\n\t\t\tif (!isModifierKey(e.keyCode)) {\n\t\t\t\tinputBox.removeAttribute('aria-activedescendant');\n\t\t\t}\n\t\t}));\n\t\tthis._register(dom.addDisposableListener(container, dom.EventType.FOCUS, (e: FocusEvent) => {\n\t\t\tinputBox.setFocus();\n\t\t}));\n\n\t\t// Drag and Drop support\n\t\tthis.dndController = this._register(this.instantiationService.createInstance(\n\t\t\tQuickInputDragAndDropController,\n\t\t\tthis._container,\n\t\t\tcontainer,\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tnode: titleBar,\n\t\t\t\t\tincludeChildren: true,\n\t\t\t\t\texcludeNodes: [leftActionBar.domNode, rightActionBar.domNode]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnode: headerContainer,\n\t\t\t\t\tincludeChildren: false\n\t\t\t\t}\n\t\t\t],\n\t\t\tthis.viewState\n\t\t));\n\n\t\t// DnD update layout\n\t\tthis._register(autorun(reader => {\n\t\t\tconst dndViewState = this.dndController?.dndViewState.read(reader);\n\t\t\tif (!dndViewState) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (dndViewState.top !== undefined && dndViewState.left !== undefined) {\n\t\t\t\tthis.viewState = {\n\t\t\t\t\t...this.viewState,\n\t\t\t\t\ttop: dndViewState.top,\n\t\t\t\t\tleft: dndViewState.left\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\t// Reset position/size\n\t\t\t\tthis.viewState = undefined;\n\t\t\t}\n\n\t\t\tthis.updateLayout();\n\n\t\t\t// Save position\n\t\t\tif (dndViewState.done) {\n\t\t\t\tthis.saveViewState(this.viewState);\n\t\t\t}\n\t\t}));\n\n\t\tthis.ui = {\n\t\t\tcontainer,\n\t\t\tstyleSheet,\n\t\t\tleftActionBar,\n\t\t\ttitleBar,\n\t\t\ttitle,\n\t\t\tdescription1,\n\t\t\tdescription2,\n\t\t\twidget,\n\t\t\trightActionBar,\n\t\t\tinlineActionBar,\n\t\t\tcheckAll,\n\t\t\tinputContainer,\n\t\t\tfilterContainer,\n\t\t\tinputBox,\n\t\t\tvisibleCountContainer,\n\t\t\tvisibleCount,\n\t\t\tcountContainer,\n\t\t\tcount,\n\t\t\tokContainer,\n\t\t\tok,\n\t\t\tmessage,\n\t\t\tcustomButtonContainer,\n\t\t\tcustomButton,\n\t\t\tlist,\n\t\t\ttree,\n\t\t\tprogressBar,\n\t\t\tonDidAccept: this.onDidAcceptEmitter.event,\n\t\t\tonDidCustom: this.onDidCustomEmitter.event,\n\t\t\tonDidTriggerButton: this.onDidTriggerButtonEmitter.event,\n\t\t\tignoreFocusOut: false,\n\t\t\tkeyMods: this.keyMods,\n\t\t\tshow: controller => this.show(controller),\n\t\t\thide: () => this.hide(),\n\t\t\tsetVisibilities: visibilities => this.setVisibilities(visibilities),\n\t\t\tsetEnabled: enabled => this.setEnabled(enabled),\n\t\t\tsetContextKey: contextKey => this.options.setContextKey(contextKey),\n\t\t\tlinkOpenerDelegate: content => this.options.linkOpenerDelegate(content)\n\t\t};\n\t\tthis.updateStyles();\n\t\treturn this.ui;\n\t}\n\n\tprivate reparentUI(container: HTMLElement): void {\n\t\tif (this.ui) {\n\t\t\tthis._container = container;\n\t\t\tdom.append(this._container, this.ui.container);\n\t\t\tthis.dndController?.reparentUI(this._container);\n\t\t}\n\t}\n\n\tpick<T extends IQuickPickItem, O extends IPickOptions<T>>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options: IPickOptions<T> = {}, token: CancellationToken = CancellationToken.None): Promise<(O extends { canPickMany: true } ? T[] : T) | undefined> {\n\t\ttype R = (O extends { canPickMany: true } ? T[] : T) | undefined;\n\t\treturn new Promise<R>((doResolve, reject) => {\n\t\t\tlet resolve = (result: R) => {\n\t\t\t\tresolve = doResolve;\n\t\t\t\toptions.onKeyMods?.(input.keyMods);\n\t\t\t\tdoResolve(result);\n\t\t\t};\n\t\t\tif (token.isCancellationRequested) {\n\t\t\t\tresolve(undefined);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst input = this.createQuickPick<T>({ useSeparators: true });\n\t\t\tlet activeItem: T | undefined;\n\t\t\tconst disposables = [\n\t\t\t\tinput,\n\t\t\t\tinput.onDidAccept(() => {\n\t\t\t\t\tif (input.canSelectMany) {\n\t\t\t\t\t\tresolve(<R>input.selectedItems.slice());\n\t\t\t\t\t\tinput.hide();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst result = input.activeItems[0];\n\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\tresolve(<R>result);\n\t\t\t\t\t\t\tinput.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tinput.onDidChangeActive(items => {\n\t\t\t\t\tconst focused = items[0];\n\t\t\t\t\tif (focused && options.onDidFocus) {\n\t\t\t\t\t\toptions.onDidFocus(focused);\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tinput.onDidChangeSelection(items => {\n\t\t\t\t\tif (!input.canSelectMany) {\n\t\t\t\t\t\tconst result = items[0];\n\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\tresolve(<R>result);\n\t\t\t\t\t\t\tinput.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tinput.onDidTriggerItemButton(event => options.onDidTriggerItemButton && options.onDidTriggerItemButton({\n\t\t\t\t\t...event,\n\t\t\t\t\tremoveItem: () => {\n\t\t\t\t\t\tconst index = input.items.indexOf(event.item);\n\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\tconst items = input.items.slice();\n\t\t\t\t\t\t\tconst removed = items.splice(index, 1);\n\t\t\t\t\t\t\tconst activeItems = input.activeItems.filter(activeItem => activeItem !== removed[0]);\n\t\t\t\t\t\t\tconst keepScrollPositionBefore = input.keepScrollPosition;\n\t\t\t\t\t\t\tinput.keepScrollPosition = true;\n\t\t\t\t\t\t\tinput.items = items;\n\t\t\t\t\t\t\tif (activeItems) {\n\t\t\t\t\t\t\t\tinput.activeItems = activeItems;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinput.keepScrollPosition = keepScrollPositionBefore;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})),\n\t\t\t\tinput.onDidTriggerSeparatorButton(event => options.onDidTriggerSeparatorButton?.(event)),\n\t\t\t\tinput.onDidChangeValue(value => {\n\t\t\t\t\tif (activeItem && !value && (input.activeItems.length !== 1 || input.activeItems[0] !== activeItem)) {\n\t\t\t\t\t\tinput.activeItems = [activeItem];\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttoken.onCancellationRequested(() => {\n\t\t\t\t\tinput.hide();\n\t\t\t\t}),\n\t\t\t\tinput.onDidHide(() => {\n\t\t\t\t\tdispose(disposables);\n\t\t\t\t\tresolve(undefined);\n\t\t\t\t}),\n\t\t\t];\n\t\t\tinput.title = options.title;\n\t\t\tif (options.value) {\n\t\t\t\tinput.value = options.value;\n\t\t\t}\n\t\t\tinput.canSelectMany = !!options.canPickMany;\n\t\t\tinput.placeholder = options.placeHolder;\n\t\t\tinput.prompt = options.prompt;\n\t\t\tinput.ignoreFocusOut = !!options.ignoreFocusLost;\n\t\t\tinput.matchOnDescription = !!options.matchOnDescription;\n\t\t\tinput.matchOnDetail = !!options.matchOnDetail;\n\t\t\tif (options.sortByLabel !== undefined) {\n\t\t\t\tinput.sortByLabel = options.sortByLabel;\n\t\t\t}\n\t\t\tinput.matchOnLabel = (options.matchOnLabel === undefined) || options.matchOnLabel; // default to true\n\t\t\tinput.quickNavigate = options.quickNavigate;\n\t\t\tinput.hideInput = !!options.hideInput;\n\t\t\tinput.contextKey = options.contextKey;\n\t\t\tinput.busy = true;\n\t\t\tPromise.all([picks, options.activeItem])\n\t\t\t\t.then(([items, _activeItem]) => {\n\t\t\t\t\tactiveItem = _activeItem;\n\t\t\t\t\tinput.busy = false;\n\t\t\t\t\tinput.items = items;\n\t\t\t\t\tif (input.canSelectMany) {\n\t\t\t\t\t\tinput.selectedItems = items.filter(item => item.type !== 'separator' && item.picked) as T[];\n\t\t\t\t\t}\n\t\t\t\t\tif (activeItem) {\n\t\t\t\t\t\tinput.activeItems = [activeItem];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\tinput.show();\n\t\t\tPromise.resolve(picks).then(undefined, err => {\n\t\t\t\treject(err);\n\t\t\t\tinput.hide();\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate setValidationOnInput(input: IInputBox, validationResult: string | {\n\t\tcontent: string;\n\t\tseverity: Severity;\n\t} | null | undefined) {\n\t\tif (validationResult && isString(validationResult)) {\n\t\t\tinput.severity = Severity.Error;\n\t\t\tinput.validationMessage = validationResult;\n\t\t} else if (validationResult && !isString(validationResult)) {\n\t\t\tinput.severity = validationResult.severity;\n\t\t\tinput.validationMessage = validationResult.content;\n\t\t} else {\n\t\t\tinput.severity = Severity.Ignore;\n\t\t\tinput.validationMessage = undefined;\n\t\t}\n\t}\n\n\tinput(options: IInputOptions = {}, token: CancellationToken = CancellationToken.None): Promise<string | undefined> {\n\t\treturn new Promise<string | undefined>((resolve) => {\n\t\t\tif (token.isCancellationRequested) {\n\t\t\t\tresolve(undefined);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst input = this.createInputBox();\n\t\t\tconst validateInput = options.validateInput || (() => Promise.resolve(undefined));\n\t\t\tconst onDidValueChange = Event.debounce(input.onDidChangeValue, (last, cur) => cur, 100);\n\t\t\tlet validationValue = options.value || '';\n\t\t\tlet validation = Promise.resolve(validateInput(validationValue));\n\t\t\tconst disposables = [\n\t\t\t\tinput,\n\t\t\t\tonDidValueChange(value => {\n\t\t\t\t\tif (value !== validationValue) {\n\t\t\t\t\t\tvalidation = Promise.resolve(validateInput(value));\n\t\t\t\t\t\tvalidationValue = value;\n\t\t\t\t\t}\n\t\t\t\t\tvalidation.then(result => {\n\t\t\t\t\t\tif (value === validationValue) {\n\t\t\t\t\t\t\tthis.setValidationOnInput(input, result);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t\t\tinput.onDidAccept(() => {\n\t\t\t\t\tconst value = input.value;\n\t\t\t\t\tif (value !== validationValue) {\n\t\t\t\t\t\tvalidation = Promise.resolve(validateInput(value));\n\t\t\t\t\t\tvalidationValue = value;\n\t\t\t\t\t}\n\t\t\t\t\tvalidation.then(result => {\n\t\t\t\t\t\tif (!result || (!isString(result) && result.severity !== Severity.Error)) {\n\t\t\t\t\t\t\tresolve(value);\n\t\t\t\t\t\t\tinput.hide();\n\t\t\t\t\t\t} else if (value === validationValue) {\n\t\t\t\t\t\t\tthis.setValidationOnInput(input, result);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t\t\ttoken.onCancellationRequested(() => {\n\t\t\t\t\tinput.hide();\n\t\t\t\t}),\n\t\t\t\tinput.onDidHide(() => {\n\t\t\t\t\tdispose(disposables);\n\t\t\t\t\tresolve(undefined);\n\t\t\t\t}),\n\t\t\t];\n\n\t\t\tinput.title = options.title;\n\t\t\tinput.value = options.value || '';\n\t\t\tinput.valueSelection = options.valueSelection;\n\t\t\tinput.prompt = options.prompt;\n\t\t\tinput.placeholder = options.placeHolder;\n\t\t\tinput.password = !!options.password;\n\t\t\tinput.ignoreFocusOut = !!options.ignoreFocusLost;\n\t\t\tinput.show();\n\t\t});\n\t}\n\n\tcreateQuickPick<T extends IQuickPickItem>(options: { useSeparators: true }): IQuickPick<T, { useSeparators: true }>;\n\tcreateQuickPick<T extends IQuickPickItem>(options?: { useSeparators: boolean }): IQuickPick<T, { useSeparators: false }>;\n\tcreateQuickPick<T extends IQuickPickItem>(options: { useSeparators: boolean } = { useSeparators: false }): IQuickPick<T, { useSeparators: boolean }> {\n\t\tconst ui = this.getUI(true);\n\t\treturn new QuickPick<T, typeof options>(ui);\n\t}\n\n\tcreateInputBox(): IInputBox {\n\t\tconst ui = this.getUI(true);\n\t\treturn new InputBox(ui);\n\t}\n\n\tprivate show(controller: IQuickInput) {\n\t\tconst ui = this.getUI(true);\n\t\tthis.onShowEmitter.fire();\n\t\tconst oldController = this.controller;\n\t\tthis.controller = controller;\n\t\toldController?.didHide();\n\n\t\tthis.setEnabled(true);\n\t\tui.leftActionBar.clear();\n\t\tui.title.textContent = '';\n\t\tui.description1.textContent = '';\n\t\tui.description2.textContent = '';\n\t\tdom.reset(ui.widget);\n\t\tui.rightActionBar.clear();\n\t\tui.inlineActionBar.clear();\n\t\tui.checkAll.checked = false;\n\t\t// ui.inputBox.value = ''; Avoid triggering an event.\n\t\tui.inputBox.placeholder = '';\n\t\tui.inputBox.password = false;\n\t\tui.inputBox.showDecoration(Severity.Ignore);\n\t\tui.visibleCount.setCount(0);\n\t\tui.count.setCount(0);\n\t\tdom.reset(ui.message);\n\t\tui.progressBar.stop();\n\t\tui.progressBar.getContainer().setAttribute('aria-hidden', 'true');\n\t\tui.list.setElements([]);\n\t\tui.list.matchOnDescription = false;\n\t\tui.list.matchOnDetail = false;\n\t\tui.list.matchOnLabel = true;\n\t\tui.list.sortByLabel = true;\n\t\tui.tree.updateFilterOptions({\n\t\t\tmatchOnDescription: false,\n\t\t\tmatchOnLabel: true\n\t\t});\n\t\tui.tree.sortByLabel = true;\n\t\tui.ignoreFocusOut = false;\n\t\tui.inputBox.toggles = undefined;\n\t\tui.inputBox.actions = undefined;\n\n\t\tconst backKeybindingLabel = this.options.backKeybindingLabel();\n\t\tbackButton.tooltip = backKeybindingLabel ? localize('quickInput.backWithKeybinding', \"Back ({0})\", backKeybindingLabel) : localize('quickInput.back', \"Back\");\n\n\t\tui.container.style.display = '';\n\t\tthis.updateLayout();\n\t\tthis.dndController?.layoutContainer();\n\t\tui.inputBox.setFocus();\n\t\tthis.quickInputTypeContext.set(controller.type);\n\t}\n\n\tisVisible(): boolean {\n\t\treturn !!this.ui && this.ui.container.style.display !== 'none';\n\t}\n\n\tprivate setVisibilities(visibilities: Visibilities) {\n\t\tconst ui = this.getUI();\n\t\tui.title.style.display = visibilities.title ? '' : 'none';\n\t\tui.description1.style.display = visibilities.description && (visibilities.inputBox || visibilities.checkAll) ? '' : 'none';\n\t\tui.description2.style.display = visibilities.description && !(visibilities.inputBox || visibilities.checkAll) ? '' : 'none';\n\t\tui.checkAll.domNode.style.display = visibilities.checkAll ? '' : 'none';\n\t\tui.inputContainer.style.display = visibilities.inputBox ? '' : 'none';\n\t\tui.filterContainer.style.display = visibilities.inputBox ? '' : 'none';\n\t\tui.visibleCountContainer.style.display = visibilities.visibleCount ? '' : 'none';\n\t\tui.countContainer.style.display = visibilities.count ? '' : 'none';\n\t\tui.okContainer.style.display = visibilities.ok ? '' : 'none';\n\t\tui.customButtonContainer.style.display = visibilities.customButton ? '' : 'none';\n\t\tui.message.style.display = visibilities.message ? '' : 'none';\n\t\tui.progressBar.getContainer().style.display = visibilities.progressBar ? '' : 'none';\n\t\tui.list.displayed = !!visibilities.list;\n\t\tui.tree.displayed = !!visibilities.tree;\n\t\tui.container.classList.toggle('show-checkboxes', !!visibilities.checkBox);\n\t\tui.container.classList.toggle('hidden-input', !visibilities.inputBox && !visibilities.description);\n\t\tthis.updateLayout(); // TODO\n\t}\n\n\tprivate setEnabled(enabled: boolean) {\n\t\tif (enabled !== this.enabled) {\n\t\t\tthis.enabled = enabled;\n\t\t\tconst ui = this.getUI();\n\t\t\tfor (const item of ui.leftActionBar.viewItems) {\n\t\t\t\t(item as ActionViewItem).action.enabled = enabled;\n\t\t\t}\n\t\t\tfor (const item of ui.rightActionBar.viewItems) {\n\t\t\t\t(item as ActionViewItem).action.enabled = enabled;\n\t\t\t}\n\t\t\tif (enabled) {\n\t\t\t\tui.checkAll.enable();\n\t\t\t} else {\n\t\t\t\tui.checkAll.disable();\n\t\t\t}\n\t\t\tui.inputBox.enabled = enabled;\n\t\t\tui.ok.enabled = enabled;\n\t\t\tui.list.enabled = enabled;\n\t\t}\n\t}\n\n\thide(reason?: QuickInputHideReason) {\n\t\tconst controller = this.controller;\n\t\tif (!controller) {\n\t\t\treturn;\n\t\t}\n\t\tcontroller.willHide(reason);\n\n\t\tconst container = this.ui?.container;\n\t\tconst focusChanged = container && !dom.isAncestorOfActiveElement(container);\n\t\tthis.controller = null;\n\t\tthis.onHideEmitter.fire();\n\t\tif (container) {\n\t\t\tcontainer.style.display = 'none';\n\t\t}\n\t\tif (!focusChanged) {\n\t\t\tlet currentElement = this.previousFocusElement;\n\t\t\twhile (currentElement && !currentElement.offsetParent) {\n\t\t\t\tcurrentElement = currentElement.parentElement ?? undefined;\n\t\t\t}\n\t\t\tif (currentElement?.offsetParent) {\n\t\t\t\tcurrentElement.focus();\n\t\t\t\tthis.previousFocusElement = undefined;\n\t\t\t} else {\n\t\t\t\tthis.options.returnFocus();\n\t\t\t}\n\t\t}\n\t\tcontroller.didHide(reason);\n\t}\n\n\ttoggleHover() {\n\t\tif (this.isVisible() && this.controller instanceof QuickPick) {\n\t\t\tthis.getUI().list.toggleHover();\n\t\t}\n\t}\n\n\tlayout(dimension: dom.IDimension, titleBarOffset: number): void {\n\t\tthis.dimension = dimension;\n\t\tthis.titleBarOffset = titleBarOffset;\n\t\tthis.updateLayout();\n\t}\n\n\tprivate updateLayout() {\n\t\tif (this.ui && this.isVisible()) {\n\t\t\tconst style = this.ui.container.style;\n\t\t\tconst width = Math.min(this.dimension!.width * 0.62 /* golden cut */, QuickInputController.MAX_WIDTH);\n\t\t\tstyle.width = width + 'px';\n\n\t\t\t// Position\n\t\t\tstyle.top = `${this.viewState?.top ? Math.round(this.dimension!.height * this.viewState.top) : this.titleBarOffset}px`;\n\t\t\tstyle.left = `${Math.round((this.dimension!.width * (this.viewState?.left ?? 0.5 /* center */)) - (width / 2))}px`;\n\n\t\t\tthis.ui.inputBox.layout();\n\t\t\tthis.ui.list.layout(this.dimension && this.dimension.height * 0.4);\n\t\t\tthis.ui.tree.layout(this.dimension && this.dimension.height * 0.4);\n\t\t}\n\t}\n\n\tapplyStyles(styles: IQuickInputStyles) {\n\t\tthis.styles = styles;\n\t\tthis.updateStyles();\n\t}\n\n\tprivate updateStyles() {\n\t\tif (this.ui) {\n\t\t\tconst {\n\t\t\t\tquickInputTitleBackground, quickInputBackground, quickInputForeground, widgetBorder, widgetShadow,\n\t\t\t} = this.styles.widget;\n\t\t\tthis.ui.titleBar.style.backgroundColor = quickInputTitleBackground ?? '';\n\t\t\tthis.ui.container.style.backgroundColor = quickInputBackground ?? '';\n\t\t\tthis.ui.container.style.color = quickInputForeground ?? '';\n\t\t\tthis.ui.container.style.border = widgetBorder ? `1px solid ${widgetBorder}` : '';\n\t\t\tthis.ui.container.style.boxShadow = widgetShadow ? `0 0 8px 2px ${widgetShadow}` : '';\n\t\t\tthis.ui.list.style(this.styles.list);\n\t\t\tthis.ui.tree.tree.style(this.styles.list);\n\n\t\t\tconst content: string[] = [];\n\t\t\tif (this.styles.pickerGroup.pickerGroupBorder) {\n\t\t\t\tcontent.push(`.quick-input-list .quick-input-list-entry { border-top-color: ${this.styles.pickerGroup.pickerGroupBorder}; }`);\n\t\t\t}\n\t\t\tif (this.styles.pickerGroup.pickerGroupForeground) {\n\t\t\t\tcontent.push(`.quick-input-list .quick-input-list-separator { color: ${this.styles.pickerGroup.pickerGroupForeground}; }`);\n\t\t\t}\n\t\t\tif (this.styles.pickerGroup.pickerGroupForeground) {\n\t\t\t\tcontent.push(`.quick-input-list .quick-input-list-separator-as-item { color: var(--vscode-descriptionForeground); }`);\n\t\t\t}\n\n\t\t\tif (this.styles.keybindingLabel.keybindingLabelBackground ||\n\t\t\t\tthis.styles.keybindingLabel.keybindingLabelBorder ||\n\t\t\t\tthis.styles.keybindingLabel.keybindingLabelBottomBorder ||\n\t\t\t\tthis.styles.keybindingLabel.keybindingLabelShadow ||\n\t\t\t\tthis.styles.keybindingLabel.keybindingLabelForeground) {\n\t\t\t\tcontent.push('.quick-input-list .monaco-keybinding > .monaco-keybinding-key {');\n\t\t\t\tif (this.styles.keybindingLabel.keybindingLabelBackground) {\n\t\t\t\t\tcontent.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`);\n\t\t\t\t}\n\t\t\t\tif (this.styles.keybindingLabel.keybindingLabelBorder) {\n\t\t\t\t\t// Order matters here. `border-color` must come before `border-bottom-color`.\n\t\t\t\t\tcontent.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`);\n\t\t\t\t}\n\t\t\t\tif (this.styles.keybindingLabel.keybindingLabelBottomBorder) {\n\t\t\t\t\tcontent.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`);\n\t\t\t\t}\n\t\t\t\tif (this.styles.keybindingLabel.keybindingLabelShadow) {\n\t\t\t\t\tcontent.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`);\n\t\t\t\t}\n\t\t\t\tif (this.styles.keybindingLabel.keybindingLabelForeground) {\n\t\t\t\t\tcontent.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`);\n\t\t\t\t}\n\t\t\t\tcontent.push('}');\n\t\t\t}\n\n\t\t\tconst newStyles = content.join('\\n');\n\t\t\tif (newStyles !== this.ui.styleSheet.textContent) {\n\t\t\t\tthis.ui.styleSheet.textContent = newStyles;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate loadViewState(): QuickInputViewState | undefined {\n\t\ttry {\n\t\t\tconst data = JSON.parse(this.storageService.get(VIEWSTATE_STORAGE_KEY, StorageScope.APPLICATION, '{}'));\n\t\t\tif (data.top !== undefined || data.left !== undefined) {\n\t\t\t\treturn data;\n\t\t\t}\n\t\t} catch { }\n\n\t\treturn undefined;\n\t}\n\n\tprivate saveViewState(viewState: QuickInputViewState | undefined): void {\n\t\tconst isMainWindow = this.layoutService.activeContainer === this.layoutService.mainContainer;\n\t\tif (!isMainWindow) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (viewState !== undefined) {\n\t\t\tthis.storageService.store(VIEWSTATE_STORAGE_KEY, JSON.stringify(viewState), StorageScope.APPLICATION, StorageTarget.MACHINE);\n\t\t} else {\n\t\t\tthis.storageService.remove(VIEWSTATE_STORAGE_KEY, StorageScope.APPLICATION);\n\t\t}\n\t}\n}\n\nexport interface IQuickInputControllerHost extends ILayoutService { }\n\nclass QuickInputDragAndDropController extends Disposable {\n\treadonly dndViewState = observableValue<{ top?: number; left?: number; done: boolean } | undefined>(this, undefined);\n\n\tprivate readonly _snapThreshold = 20;\n\tprivate readonly _snapLineHorizontalRatio = 0.25;\n\n\tprivate readonly _controlsOnLeft: boolean;\n\tprivate readonly _controlsOnRight: boolean;\n\n\tprivate _quickInputAlignmentContext: IContextKey<'center' | 'top' | undefined>;\n\n\tconstructor(\n\t\tprivate _container: HTMLElement,\n\t\tprivate readonly _quickInputContainer: HTMLElement,\n\t\tprivate _quickInputDragAreas: { node: HTMLElement; includeChildren: boolean; excludeNodes?: HTMLElement[] }[],\n\t\tinitialViewState: QuickInputViewState | undefined,\n\t\t@ILayoutService private readonly _layoutService: ILayoutService,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IConfigurationService private readonly configurationService: IConfigurationService\n\t) {\n\t\tsuper();\n\t\tthis._quickInputAlignmentContext = QuickInputAlignmentContextKey.bindTo(contextKeyService);\n\t\tconst customWindowControls = getWindowControlsStyle(this.configurationService) === WindowControlsStyle.CUSTOM;\n\n\t\t// Do not allow the widget to overflow or underflow window controls.\n\t\t// Use CSS calculations to avoid having to force layout with `.clientWidth`\n\t\tthis._controlsOnLeft = customWindowControls && platform === Platform.Mac;\n\t\tthis._controlsOnRight = customWindowControls && (platform === Platform.Windows || platform === Platform.Linux);\n\t\tthis._registerLayoutListener();\n\t\tthis.registerMouseListeners();\n\t\tthis.dndViewState.set({ ...initialViewState, done: true }, undefined);\n\t}\n\n\treparentUI(container: HTMLElement): void {\n\t\tthis._container = container;\n\t}\n\n\tlayoutContainer(dimension = this._layoutService.activeContainerDimension): void {\n\t\tconst state = this.dndViewState.get();\n\t\tconst dragAreaRect = this._quickInputContainer.getBoundingClientRect();\n\t\tif (state?.top && state?.left) {\n\t\t\tconst a = Math.round(state.left * 1e2) / 1e2;\n\t\t\tconst b = dimension.width;\n\t\t\tconst c = dragAreaRect.width;\n\t\t\tconst d = a * b - c / 2;\n\t\t\tthis._layout(state.top * dimension.height, d);\n\t\t}\n\t}\n\n\tprivate _registerLayoutListener() {\n\t\tthis._register(Event.filter(this._layoutService.onDidLayoutContainer, e => e.container === this._container)((e) => this.layoutContainer(e.dimension)));\n\t}\n\n\tprivate registerMouseListeners(): void {\n\t\tconst dragArea = this._quickInputContainer;\n\n\t\t// Double click\n\t\tthis._register(dom.addDisposableGenericMouseUpListener(dragArea, (event: MouseEvent) => {\n\t\t\tconst originEvent = new StandardMouseEvent(dom.getWindow(dragArea), event);\n\t\t\tif (originEvent.detail !== 2) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Ignore event if the target is not the drag area\n\t\t\tconst area = this._quickInputDragAreas.find(({ node, includeChildren }) => includeChildren ? dom.isAncestor(originEvent.target, node) : originEvent.target === node);\n\t\t\tif (!area || area.excludeNodes?.some(node => dom.isAncestor(originEvent.target, node))) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.dndViewState.set({ top: undefined, left: undefined, done: true }, undefined);\n\t\t}));\n\n\t\t// Mouse down\n\t\tthis._register(dom.addDisposableGenericMouseDownListener(dragArea, (e: MouseEvent) => {\n\t\t\tconst activeWindow = dom.getWindow(this._layoutService.activeContainer);\n\t\t\tconst originEvent = new StandardMouseEvent(activeWindow, e);\n\n\t\t\t// Ignore event if the target is not the drag area\n\t\t\tconst area = this._quickInputDragAreas.find(({ node, includeChildren }) => includeChildren ? dom.isAncestor(originEvent.target, node) : originEvent.target === node);\n\t\t\tif (!area || area.excludeNodes?.some(node => dom.isAncestor(originEvent.target, node))) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Mouse position offset relative to dragArea\n\t\t\tconst dragAreaRect = this._quickInputContainer.getBoundingClientRect();\n\t\t\tconst dragOffsetX = originEvent.browserEvent.clientX - dragAreaRect.left;\n\t\t\tconst dragOffsetY = originEvent.browserEvent.clientY - dragAreaRect.top;\n\n\t\t\tlet isMovingQuickInput = false;\n\t\t\tconst mouseMoveListener = dom.addDisposableGenericMouseMoveListener(activeWindow, (e: MouseEvent) => {\n\t\t\t\tconst mouseMoveEvent = new StandardMouseEvent(activeWindow, e);\n\t\t\t\tmouseMoveEvent.preventDefault();\n\n\t\t\t\tif (!isMovingQuickInput) {\n\t\t\t\t\tisMovingQuickInput = true;\n\t\t\t\t}\n\n\t\t\t\tthis._layout(e.clientY - dragOffsetY, e.clientX - dragOffsetX);\n\t\t\t});\n\t\t\tconst mouseUpListener = dom.addDisposableGenericMouseUpListener(activeWindow, (e: MouseEvent) => {\n\t\t\t\tif (isMovingQuickInput) {\n\t\t\t\t\t// Save position\n\t\t\t\t\tconst state = this.dndViewState.get();\n\t\t\t\t\tthis.dndViewState.set({ top: state?.top, left: state?.left, done: true }, undefined);\n\t\t\t\t}\n\n\t\t\t\t// Dispose listeners\n\t\t\t\tmouseMoveListener.dispose();\n\t\t\t\tmouseUpListener.dispose();\n\t\t\t});\n\t\t}));\n\t}\n\n\tprivate _layout(topCoordinate: number, leftCoordinate: number) {\n\t\tconst snapCoordinateYTop = this._getTopSnapValue();\n\t\tconst snapCoordinateY = this._getCenterYSnapValue();\n\t\tconst snapCoordinateX = this._getCenterXSnapValue();\n\t\t// Make sure the quick input is not moved outside the container\n\t\ttopCoordinate = Math.max(0, Math.min(topCoordinate, this._container.clientHeight - this._quickInputContainer.clientHeight));\n\n\t\tif (topCoordinate < this._layoutService.activeContainerOffset.top) {\n\t\t\tif (this._controlsOnLeft) {\n\t\t\t\tleftCoordinate = Math.max(leftCoordinate, 80 / getZoomFactor(dom.getActiveWindow()));\n\t\t\t} else if (this._controlsOnRight) {\n\t\t\t\tleftCoordinate = Math.min(leftCoordinate, this._container.clientWidth - this._quickInputContainer.clientWidth - (140 / getZoomFactor(dom.getActiveWindow())));\n\t\t\t}\n\t\t}\n\n\t\tconst snappingToTop = Math.abs(topCoordinate - snapCoordinateYTop) < this._snapThreshold;\n\t\ttopCoordinate = snappingToTop ? snapCoordinateYTop : topCoordinate;\n\t\tconst snappingToCenter = Math.abs(topCoordinate - snapCoordinateY) < this._snapThreshold;\n\t\ttopCoordinate = snappingToCenter ? snapCoordinateY : topCoordinate;\n\t\tconst top = topCoordinate / this._container.clientHeight;\n\n\t\t// Make sure the quick input is not moved outside the container\n\t\tleftCoordinate = Math.max(0, Math.min(leftCoordinate, this._container.clientWidth - this._quickInputContainer.clientWidth));\n\t\tconst snappingToCenterX = Math.abs(leftCoordinate - snapCoordinateX) < this._snapThreshold;\n\t\tleftCoordinate = snappingToCenterX ? snapCoordinateX : leftCoordinate;\n\n\t\tconst b = this._container.clientWidth;\n\t\tconst c = this._quickInputContainer.clientWidth;\n\t\tconst d = leftCoordinate;\n\t\tconst left = (d + c / 2) / b;\n\n\t\tthis.dndViewState.set({ top, left, done: false }, undefined);\n\t\tif (snappingToCenterX) {\n\t\t\tif (snappingToTop) {\n\t\t\t\tthis._quickInputAlignmentContext.set('top');\n\t\t\t\treturn;\n\t\t\t} else if (snappingToCenter) {\n\t\t\t\tthis._quickInputAlignmentContext.set('center');\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthis._quickInputAlignmentContext.set(undefined);\n\t}\n\n\tprivate _getTopSnapValue() {\n\t\treturn this._layoutService.activeContainerOffset.quickPickTop;\n\t}\n\n\tprivate _getCenterYSnapValue() {\n\t\treturn Math.round(this._container.clientHeight * this._snapLineHorizontalRatio);\n\t}\n\n\tprivate _getCenterXSnapValue() {\n\t\treturn Math.round(this._container.clientWidth / 2) - Math.round(this._quickInputContainer.clientWidth / 2);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["vs/platform/quickinput/browser/quickInputController.ts"],"names":[],"mappings":"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","file":"quickInputController.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport * as dom from '../../../base/browser/dom.js';\nimport * as domStylesheetsJs from '../../../base/browser/domStylesheets.js';\nimport { ActionBar } from '../../../base/browser/ui/actionbar/actionbar.js';\nimport { ActionViewItem } from '../../../base/browser/ui/actionbar/actionViewItems.js';\nimport { Button } from '../../../base/browser/ui/button/button.js';\nimport { CountBadge } from '../../../base/browser/ui/countBadge/countBadge.js';\nimport { ProgressBar } from '../../../base/browser/ui/progressbar/progressbar.js';\nimport { CancellationToken } from '../../../base/common/cancellation.js';\nimport { Emitter, Event } from '../../../base/common/event.js';\nimport { Disposable, DisposableStore, dispose } from '../../../base/common/lifecycle.js';\nimport Severity from '../../../base/common/severity.js';\nimport { isString } from '../../../base/common/types.js';\nimport { isModifierKey } from '../../../base/common/keyCodes.js';\nimport { localize } from '../../../nls.js';\nimport { IInputBox, IInputOptions, IKeyMods, IPickOptions, IQuickInput, IQuickInputButton, IQuickPick, IQuickPickItem, QuickInputHideReason, QuickPickInput, QuickInputType } from '../common/quickInput.js';\nimport { QuickInputBox } from './quickInputBox.js';\nimport { QuickInputUI, Writeable, IQuickInputStyles, IQuickInputOptions, QuickPick, backButton, InputBox, Visibilities, InQuickInputContextKey, QuickInputTypeContextKey, EndOfQuickInputBoxContextKey, QuickInputAlignmentContextKey } from './quickInput.js';\nimport { ILayoutService } from '../../layout/browser/layoutService.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { IInstantiationService } from '../../instantiation/common/instantiation.js';\nimport { QuickInputList } from './quickInputList.js';\nimport { IContextKey, IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport './quickInputActions.js';\nimport { autorun, observableValue } from '../../../base/common/observable.js';\nimport { StandardMouseEvent } from '../../../base/browser/mouseEvent.js';\nimport { IStorageService, StorageScope, StorageTarget } from '../../storage/common/storage.js';\nimport { IConfigurationService } from '../../configuration/common/configuration.js';\nimport { Platform, platform, setTimeout0 } from '../../../base/common/platform.js';\nimport { getWindowControlsStyle, WindowControlsStyle } from '../../window/common/window.js';\nimport { getZoomFactor } from '../../../base/browser/browser.js';\nimport { TriStateCheckbox, createToggleActionViewItemProvider } from '../../../base/browser/ui/toggle/toggle.js';\nimport { defaultCheckboxStyles } from '../../theme/browser/defaultStyles.js';\nimport { QuickInputTreeController } from './tree/quickInputTreeController.js';\n\nconst $ = dom.$;\n\nconst VIEWSTATE_STORAGE_KEY = 'workbench.quickInput.viewState';\n\ntype QuickInputViewState = {\n\treadonly top?: number;\n\treadonly left?: number;\n};\n\nexport class QuickInputController extends Disposable {\n\tprivate static readonly MAX_WIDTH = 600; // Max total width of quick input widget\n\n\tprivate idPrefix: string;\n\tprivate ui: QuickInputUI | undefined;\n\tprivate dimension?: dom.IDimension;\n\tprivate titleBarOffset?: number;\n\tprivate enabled = true;\n\tprivate readonly onDidAcceptEmitter = this._register(new Emitter<void>());\n\tprivate readonly onDidCustomEmitter = this._register(new Emitter<void>());\n\tprivate readonly onDidTriggerButtonEmitter = this._register(new Emitter<IQuickInputButton>());\n\tprivate keyMods: Writeable<IKeyMods> = { ctrlCmd: false, alt: false };\n\n\tprivate controller: IQuickInput | null = null;\n\tget currentQuickInput() { return this.controller ?? undefined; }\n\n\tprivate _container: HTMLElement;\n\tget container() { return this._container; }\n\n\tprivate styles: IQuickInputStyles;\n\n\tprivate onShowEmitter = this._register(new Emitter<void>());\n\treadonly onShow = this.onShowEmitter.event;\n\n\tprivate onHideEmitter = this._register(new Emitter<void>());\n\treadonly onHide = this.onHideEmitter.event;\n\n\tprivate previousFocusElement?: HTMLElement;\n\n\tprivate viewState: QuickInputViewState | undefined;\n\tprivate dndController: QuickInputDragAndDropController | undefined;\n\n\tprivate readonly inQuickInputContext: IContextKey<boolean>;\n\tprivate readonly quickInputTypeContext: IContextKey<QuickInputType>;\n\tprivate readonly endOfQuickInputBoxContext: IContextKey<boolean>;\n\n\tconstructor(\n\t\tprivate options: IQuickInputOptions,\n\t\t@ILayoutService private readonly layoutService: ILayoutService,\n\t\t@IInstantiationService private readonly instantiationService: IInstantiationService,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IStorageService private readonly storageService: IStorageService\n\t) {\n\t\tsuper();\n\n\t\tthis.inQuickInputContext = InQuickInputContextKey.bindTo(contextKeyService);\n\t\tthis.quickInputTypeContext = QuickInputTypeContextKey.bindTo(contextKeyService);\n\t\tthis.endOfQuickInputBoxContext = EndOfQuickInputBoxContextKey.bindTo(contextKeyService);\n\n\t\tthis.idPrefix = options.idPrefix;\n\t\tthis._container = options.container;\n\t\tthis.styles = options.styles;\n\t\tthis._register(Event.runAndSubscribe(dom.onDidRegisterWindow, ({ window, disposables }) => this.registerKeyModsListeners(window, disposables), { window: mainWindow, disposables: this._store }));\n\t\tthis._register(dom.onWillUnregisterWindow(window => {\n\t\t\tif (this.ui && dom.getWindow(this.ui.container) === window) {\n\t\t\t\t// The window this quick input is contained in is about to\n\t\t\t\t// close, so we have to make sure to reparent it back to an\n\t\t\t\t// existing parent to not loose functionality.\n\t\t\t\t// (https://github.com/microsoft/vscode/issues/195870)\n\t\t\t\tthis.reparentUI(this.layoutService.mainContainer);\n\t\t\t\tthis.layout(this.layoutService.mainContainerDimension, this.layoutService.mainContainerOffset.quickPickTop);\n\t\t\t}\n\t\t}));\n\t\tthis.viewState = this.loadViewState();\n\t}\n\n\tprivate registerKeyModsListeners(window: Window, disposables: DisposableStore): void {\n\t\tconst listener = (e: KeyboardEvent | MouseEvent) => {\n\t\t\tthis.keyMods.ctrlCmd = e.ctrlKey || e.metaKey;\n\t\t\tthis.keyMods.alt = e.altKey;\n\t\t};\n\n\t\tfor (const event of [dom.EventType.KEY_DOWN, dom.EventType.KEY_UP, dom.EventType.MOUSE_DOWN]) {\n\t\t\tdisposables.add(dom.addDisposableListener(window, event, listener, true));\n\t\t}\n\t}\n\n\tprivate getUI(showInActiveContainer?: boolean): QuickInputUI {\n\t\tif (this.ui) {\n\t\t\t// In order to support aux windows, re-parent the controller\n\t\t\t// if the original event is from a different document\n\t\t\tif (showInActiveContainer) {\n\t\t\t\tif (dom.getWindow(this._container) !== dom.getWindow(this.layoutService.activeContainer)) {\n\t\t\t\t\tthis.reparentUI(this.layoutService.activeContainer);\n\t\t\t\t\tthis.layout(this.layoutService.activeContainerDimension, this.layoutService.activeContainerOffset.quickPickTop);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.ui;\n\t\t}\n\n\t\tconst container = dom.append(this._container, $('.quick-input-widget.show-file-icons'));\n\t\tcontainer.tabIndex = -1;\n\t\tcontainer.style.display = 'none';\n\n\t\tconst styleSheet = domStylesheetsJs.createStyleSheet(container);\n\n\t\tconst titleBar = dom.append(container, $('.quick-input-titlebar'));\n\n\t\tconst leftActionBar = this._register(new ActionBar(titleBar, {\n\t\t\thoverDelegate: this.options.hoverDelegate,\n\t\t\tactionViewItemProvider: createToggleActionViewItemProvider(this.styles.toggle)\n\t\t}));\n\t\tleftActionBar.domNode.classList.add('quick-input-left-action-bar');\n\n\t\tconst title = dom.append(titleBar, $('.quick-input-title'));\n\n\t\tconst rightActionBar = this._register(new ActionBar(titleBar, {\n\t\t\thoverDelegate: this.options.hoverDelegate,\n\t\t\tactionViewItemProvider: createToggleActionViewItemProvider(this.styles.toggle)\n\t\t}));\n\t\trightActionBar.domNode.classList.add('quick-input-right-action-bar');\n\n\t\tconst headerContainer = dom.append(container, $('.quick-input-header'));\n\n\t\tconst checkAll = this._register(new TriStateCheckbox(localize('quickInput.checkAll', \"Toggle all checkboxes\"), false, { ...defaultCheckboxStyles, size: 15 }));\n\t\tdom.append(headerContainer, checkAll.domNode);\n\t\tthis._register(checkAll.onChange(() => {\n\t\t\tconst checked = checkAll.checked;\n\t\t\tlist.setAllVisibleChecked(checked === true);\n\t\t}));\n\t\tthis._register(dom.addDisposableListener(checkAll.domNode, dom.EventType.CLICK, e => {\n\t\t\tif (e.x || e.y) { // Avoid 'click' triggered by 'space'...\n\t\t\t\tinputBox.setFocus();\n\t\t\t}\n\t\t}));\n\n\t\tconst description2 = dom.append(headerContainer, $('.quick-input-description'));\n\t\tconst inputContainer = dom.append(headerContainer, $('.quick-input-and-message'));\n\t\tconst filterContainer = dom.append(inputContainer, $('.quick-input-filter'));\n\n\t\tconst inputBox = this._register(new QuickInputBox(filterContainer, this.styles.inputBox, this.styles.toggle));\n\t\tinputBox.setAttribute('aria-describedby', `${this.idPrefix}message`);\n\n\t\tconst visibleCountContainer = dom.append(filterContainer, $('.quick-input-visible-count'));\n\t\tvisibleCountContainer.setAttribute('aria-live', 'polite');\n\t\tvisibleCountContainer.setAttribute('aria-atomic', 'true');\n\t\tconst visibleCount = this._register(new CountBadge(visibleCountContainer, { countFormat: localize({ key: 'quickInput.visibleCount', comment: ['This tells the user how many items are shown in a list of items to select from. The items can be anything. Currently not visible, but read by screen readers.'] }, \"{0} Results\") }, this.styles.countBadge));\n\n\t\tconst countContainer = dom.append(filterContainer, $('.quick-input-count'));\n\t\tcountContainer.setAttribute('aria-live', 'polite');\n\t\tconst count = this._register(new CountBadge(countContainer, { countFormat: localize({ key: 'quickInput.countSelected', comment: ['This tells the user how many items are selected in a list of items to select from. The items can be anything.'] }, \"{0} Selected\") }, this.styles.countBadge));\n\n\t\tconst inlineActionBar = this._register(new ActionBar(headerContainer, {\n\t\t\thoverDelegate: this.options.hoverDelegate,\n\t\t\tactionViewItemProvider: createToggleActionViewItemProvider(this.styles.toggle)\n\t\t}));\n\t\tinlineActionBar.domNode.classList.add('quick-input-inline-action-bar');\n\n\t\tconst okContainer = dom.append(headerContainer, $('.quick-input-action'));\n\t\tconst ok = this._register(new Button(okContainer, this.styles.button));\n\t\tok.label = localize('ok', \"OK\");\n\t\tthis._register(ok.onDidClick(e => {\n\t\t\tthis.onDidAcceptEmitter.fire();\n\t\t}));\n\n\t\tconst customButtonContainer = dom.append(headerContainer, $('.quick-input-action'));\n\t\tconst customButton = this._register(new Button(customButtonContainer, { ...this.styles.button, supportIcons: true }));\n\t\tcustomButton.label = localize('custom', \"Custom\");\n\t\tthis._register(customButton.onDidClick(e => {\n\t\t\tthis.onDidCustomEmitter.fire();\n\t\t}));\n\n\t\tconst message = dom.append(inputContainer, $(`#${this.idPrefix}message.quick-input-message`));\n\n\t\tconst progressBar = this._register(new ProgressBar(container, this.styles.progressBar));\n\t\tprogressBar.getContainer().classList.add('quick-input-progress');\n\n\t\tconst widget = dom.append(container, $('.quick-input-html-widget'));\n\t\twidget.tabIndex = -1;\n\n\t\tconst description1 = dom.append(container, $('.quick-input-description'));\n\n\t\t// List\n\t\tconst listId = this.idPrefix + 'list';\n\t\tconst list = this._register(this.instantiationService.createInstance(QuickInputList, container, this.options.hoverDelegate, this.options.linkOpenerDelegate, listId, this.styles));\n\t\tinputBox.setAttribute('aria-controls', listId);\n\t\tthis._register(list.onDidChangeFocus(() => {\n\t\t\tif (inputBox.hasFocus()) {\n\t\t\t\tconst activeDescendant = list.getActiveDescendant();\n\t\t\t\tif (activeDescendant) {\n\t\t\t\t\tinputBox.setAttribute('aria-activedescendant', activeDescendant);\n\t\t\t\t} else {\n\t\t\t\t\tinputBox.removeAttribute('aria-activedescendant');\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\t\tthis._register(list.onChangedAllVisibleChecked(checked => {\n\t\t\t// TODO: Support tri-state checkbox when we remove the .indent property that is faking tree structure.\n\t\t\tcheckAll.checked = checked;\n\t\t}));\n\t\tthis._register(list.onChangedVisibleCount(c => {\n\t\t\tvisibleCount.setCount(c);\n\t\t}));\n\t\tthis._register(list.onChangedCheckedCount(c => {\n\t\t\t// TODO@TylerLeonhardt: Without this setTimeout, the screen reader will not read out\n\t\t\t// the final count of checked items correctly. Investigate a better way\n\t\t\t// to do this. ref https://github.com/microsoft/vscode/issues/258617\n\t\t\tsetTimeout0(() => count.setCount(c));\n\t\t}));\n\t\tthis._register(list.onLeave(() => {\n\t\t\t// Defer to avoid the input field reacting to the triggering key.\n\t\t\t// TODO@TylerLeonhardt https://github.com/microsoft/vscode/issues/203675\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!this.controller) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tinputBox.setFocus();\n\t\t\t\tif (this.controller instanceof QuickPick && this.controller.canSelectMany) {\n\t\t\t\t\tlist.clearFocus();\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t}));\n\n\t\t// Tree\n\t\tconst tree = this._register(this.instantiationService.createInstance(\n\t\t\tQuickInputTreeController,\n\t\t\tcontainer,\n\t\t\tthis.options.hoverDelegate,\n\t\t\tthis.styles\n\t\t));\n\t\tthis._register(tree.tree.onDidChangeFocus(() => {\n\t\t\tif (inputBox.hasFocus()) {\n\t\t\t\tconst activeDescendant = tree.getActiveDescendant();\n\t\t\t\tif (activeDescendant) {\n\t\t\t\t\tinputBox.setAttribute('aria-activedescendant', activeDescendant);\n\t\t\t\t} else {\n\t\t\t\t\tinputBox.removeAttribute('aria-activedescendant');\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\t\tthis._register(tree.onLeave(() => {\n\t\t\t// Defer to avoid the input field reacting to the triggering key.\n\t\t\t// TODO@TylerLeonhardt https://github.com/microsoft/vscode/issues/203675\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!this.controller) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tinputBox.setFocus();\n\t\t\t\ttree.tree.setFocus([]);\n\t\t\t}, 0);\n\t\t}));\n\t\t// Wire up tree's accept event to the UI's accept emitter for non-pickable items\n\t\tthis._register(tree.onDidAccept(() => {\n\t\t\tthis.onDidAcceptEmitter.fire();\n\t\t}));\n\t\tthis._register(tree.tree.onDidChangeContentHeight(() => this.updateLayout()));\n\n\t\tconst focusTracker = dom.trackFocus(container);\n\t\tthis._register(focusTracker);\n\t\tthis._register(dom.addDisposableListener(container, dom.EventType.FOCUS, e => {\n\t\t\tconst ui = this.getUI();\n\t\t\tif (dom.isAncestor(e.relatedTarget as HTMLElement, ui.inputContainer)) {\n\t\t\t\tconst value = ui.inputBox.isSelectionAtEnd();\n\t\t\t\tif (this.endOfQuickInputBoxContext.get() !== value) {\n\t\t\t\t\tthis.endOfQuickInputBoxContext.set(value);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Ignore focus events within container\n\t\t\tif (dom.isAncestor(e.relatedTarget as HTMLElement, ui.container)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.inQuickInputContext.set(true);\n\t\t\tthis.previousFocusElement = dom.isHTMLElement(e.relatedTarget) ? e.relatedTarget : undefined;\n\t\t}, true));\n\t\tthis._register(focusTracker.onDidBlur(() => {\n\t\t\tif (!this.getUI().ignoreFocusOut && !this.options.ignoreFocusOut()) {\n\t\t\t\tthis.hide(QuickInputHideReason.Blur);\n\t\t\t}\n\t\t\tthis.inQuickInputContext.set(false);\n\t\t\tthis.endOfQuickInputBoxContext.set(false);\n\t\t\tthis.previousFocusElement = undefined;\n\t\t}));\n\t\tthis._register(inputBox.onKeyDown(e => {\n\t\t\tconst value = this.getUI().inputBox.isSelectionAtEnd();\n\t\t\tif (this.endOfQuickInputBoxContext.get() !== value) {\n\t\t\t\tthis.endOfQuickInputBoxContext.set(value);\n\t\t\t}\n\t\t\t// Allow screen readers to read what's in the input\n\t\t\t// Note: this works for arrow keys and selection changes,\n\t\t\t// but not for deletions since that often triggers a\n\t\t\t// change in the list.\n\t\t\t// Don't remove aria-activedescendant when only modifier keys are pressed\n\t\t\t// to prevent screen reader re-announcements when users press Ctrl to silence speech.\n\t\t\t// See: https://github.com/microsoft/vscode/issues/271032\n\t\t\tif (!isModifierKey(e.keyCode)) {\n\t\t\t\tinputBox.removeAttribute('aria-activedescendant');\n\t\t\t}\n\t\t}));\n\t\tthis._register(dom.addDisposableListener(container, dom.EventType.FOCUS, (e: FocusEvent) => {\n\t\t\tinputBox.setFocus();\n\t\t}));\n\n\t\t// Drag and Drop support\n\t\tthis.dndController = this._register(this.instantiationService.createInstance(\n\t\t\tQuickInputDragAndDropController,\n\t\t\tthis._container,\n\t\t\tcontainer,\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tnode: titleBar,\n\t\t\t\t\tincludeChildren: true,\n\t\t\t\t\texcludeNodes: [leftActionBar.domNode, rightActionBar.domNode]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tnode: headerContainer,\n\t\t\t\t\tincludeChildren: false\n\t\t\t\t}\n\t\t\t],\n\t\t\tthis.viewState\n\t\t));\n\n\t\t// DnD update layout\n\t\tthis._register(autorun(reader => {\n\t\t\tconst dndViewState = this.dndController?.dndViewState.read(reader);\n\t\t\tif (!dndViewState) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (dndViewState.top !== undefined && dndViewState.left !== undefined) {\n\t\t\t\tthis.viewState = {\n\t\t\t\t\t...this.viewState,\n\t\t\t\t\ttop: dndViewState.top,\n\t\t\t\t\tleft: dndViewState.left\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\t// Reset position/size\n\t\t\t\tthis.viewState = undefined;\n\t\t\t}\n\n\t\t\tthis.updateLayout();\n\n\t\t\t// Save position\n\t\t\tif (dndViewState.done) {\n\t\t\t\tthis.saveViewState(this.viewState);\n\t\t\t}\n\t\t}));\n\n\t\tthis.ui = {\n\t\t\tcontainer,\n\t\t\tstyleSheet,\n\t\t\tleftActionBar,\n\t\t\ttitleBar,\n\t\t\ttitle,\n\t\t\tdescription1,\n\t\t\tdescription2,\n\t\t\twidget,\n\t\t\trightActionBar,\n\t\t\tinlineActionBar,\n\t\t\tcheckAll,\n\t\t\tinputContainer,\n\t\t\tfilterContainer,\n\t\t\tinputBox,\n\t\t\tvisibleCountContainer,\n\t\t\tvisibleCount,\n\t\t\tcountContainer,\n\t\t\tcount,\n\t\t\tokContainer,\n\t\t\tok,\n\t\t\tmessage,\n\t\t\tcustomButtonContainer,\n\t\t\tcustomButton,\n\t\t\tlist,\n\t\t\ttree,\n\t\t\tprogressBar,\n\t\t\tonDidAccept: this.onDidAcceptEmitter.event,\n\t\t\tonDidCustom: this.onDidCustomEmitter.event,\n\t\t\tonDidTriggerButton: this.onDidTriggerButtonEmitter.event,\n\t\t\tignoreFocusOut: false,\n\t\t\tkeyMods: this.keyMods,\n\t\t\tshow: controller => this.show(controller),\n\t\t\thide: () => this.hide(),\n\t\t\tsetVisibilities: visibilities => this.setVisibilities(visibilities),\n\t\t\tsetEnabled: enabled => this.setEnabled(enabled),\n\t\t\tsetContextKey: contextKey => this.options.setContextKey(contextKey),\n\t\t\tlinkOpenerDelegate: content => this.options.linkOpenerDelegate(content)\n\t\t};\n\t\tthis.updateStyles();\n\t\treturn this.ui;\n\t}\n\n\tprivate reparentUI(container: HTMLElement): void {\n\t\tif (this.ui) {\n\t\t\tthis._container = container;\n\t\t\tdom.append(this._container, this.ui.container);\n\t\t\tthis.dndController?.reparentUI(this._container);\n\t\t}\n\t}\n\n\tpick<T extends IQuickPickItem, O extends IPickOptions<T>>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options: IPickOptions<T> = {}, token: CancellationToken = CancellationToken.None): Promise<(O extends { canPickMany: true } ? T[] : T) | undefined> {\n\t\ttype R = (O extends { canPickMany: true } ? T[] : T) | undefined;\n\t\treturn new Promise<R>((doResolve, reject) => {\n\t\t\tlet resolve = (result: R) => {\n\t\t\t\tresolve = doResolve;\n\t\t\t\toptions.onKeyMods?.(input.keyMods);\n\t\t\t\tdoResolve(result);\n\t\t\t};\n\t\t\tif (token.isCancellationRequested) {\n\t\t\t\tresolve(undefined);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst input = this.createQuickPick<T>({ useSeparators: true });\n\t\t\tlet activeItem: T | undefined;\n\t\t\tconst disposables = [\n\t\t\t\tinput,\n\t\t\t\tinput.onDidAccept(() => {\n\t\t\t\t\tif (input.canSelectMany) {\n\t\t\t\t\t\tresolve(<R>input.selectedItems.slice());\n\t\t\t\t\t\tinput.hide();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst result = input.activeItems[0];\n\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\tresolve(<R>result);\n\t\t\t\t\t\t\tinput.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tinput.onDidChangeActive(items => {\n\t\t\t\t\tconst focused = items[0];\n\t\t\t\t\tif (focused && options.onDidFocus) {\n\t\t\t\t\t\toptions.onDidFocus(focused);\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tinput.onDidChangeSelection(items => {\n\t\t\t\t\tif (!input.canSelectMany) {\n\t\t\t\t\t\tconst result = items[0];\n\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\tresolve(<R>result);\n\t\t\t\t\t\t\tinput.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tinput.onDidTriggerItemButton(event => options.onDidTriggerItemButton && options.onDidTriggerItemButton({\n\t\t\t\t\t...event,\n\t\t\t\t\tremoveItem: () => {\n\t\t\t\t\t\tconst index = input.items.indexOf(event.item);\n\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\tconst items = input.items.slice();\n\t\t\t\t\t\t\tconst removed = items.splice(index, 1);\n\t\t\t\t\t\t\tconst activeItems = input.activeItems.filter(activeItem => activeItem !== removed[0]);\n\t\t\t\t\t\t\tconst keepScrollPositionBefore = input.keepScrollPosition;\n\t\t\t\t\t\t\tinput.keepScrollPosition = true;\n\t\t\t\t\t\t\tinput.items = items;\n\t\t\t\t\t\t\tif (activeItems) {\n\t\t\t\t\t\t\t\tinput.activeItems = activeItems;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinput.keepScrollPosition = keepScrollPositionBefore;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})),\n\t\t\t\tinput.onDidTriggerSeparatorButton(event => options.onDidTriggerSeparatorButton?.(event)),\n\t\t\t\tinput.onDidChangeValue(value => {\n\t\t\t\t\tif (activeItem && !value && (input.activeItems.length !== 1 || input.activeItems[0] !== activeItem)) {\n\t\t\t\t\t\tinput.activeItems = [activeItem];\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttoken.onCancellationRequested(() => {\n\t\t\t\t\tinput.hide();\n\t\t\t\t}),\n\t\t\t\tinput.onDidHide(() => {\n\t\t\t\t\tdispose(disposables);\n\t\t\t\t\tresolve(undefined);\n\t\t\t\t}),\n\t\t\t];\n\t\t\tinput.title = options.title;\n\t\t\tif (options.value) {\n\t\t\t\tinput.value = options.value;\n\t\t\t}\n\t\t\tinput.canSelectMany = !!options.canPickMany;\n\t\t\tinput.placeholder = options.placeHolder;\n\t\t\tinput.prompt = options.prompt;\n\t\t\tinput.ignoreFocusOut = !!options.ignoreFocusLost;\n\t\t\tinput.matchOnDescription = !!options.matchOnDescription;\n\t\t\tinput.matchOnDetail = !!options.matchOnDetail;\n\t\t\tif (options.sortByLabel !== undefined) {\n\t\t\t\tinput.sortByLabel = options.sortByLabel;\n\t\t\t}\n\t\t\tinput.matchOnLabel = (options.matchOnLabel === undefined) || options.matchOnLabel; // default to true\n\t\t\tinput.quickNavigate = options.quickNavigate;\n\t\t\tinput.hideInput = !!options.hideInput;\n\t\t\tinput.contextKey = options.contextKey;\n\t\t\tinput.busy = true;\n\t\t\tPromise.all([picks, options.activeItem])\n\t\t\t\t.then(([items, _activeItem]) => {\n\t\t\t\t\tactiveItem = _activeItem;\n\t\t\t\t\tinput.busy = false;\n\t\t\t\t\tinput.items = items;\n\t\t\t\t\tif (input.canSelectMany) {\n\t\t\t\t\t\tinput.selectedItems = items.filter(item => item.type !== 'separator' && item.picked) as T[];\n\t\t\t\t\t}\n\t\t\t\t\tif (activeItem) {\n\t\t\t\t\t\tinput.activeItems = [activeItem];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\tinput.show();\n\t\t\tPromise.resolve(picks).then(undefined, err => {\n\t\t\t\treject(err);\n\t\t\t\tinput.hide();\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate setValidationOnInput(input: IInputBox, validationResult: string | {\n\t\tcontent: string;\n\t\tseverity: Severity;\n\t} | null | undefined) {\n\t\tif (validationResult && isString(validationResult)) {\n\t\t\tinput.severity = Severity.Error;\n\t\t\tinput.validationMessage = validationResult;\n\t\t} else if (validationResult && !isString(validationResult)) {\n\t\t\tinput.severity = validationResult.severity;\n\t\t\tinput.validationMessage = validationResult.content;\n\t\t} else {\n\t\t\tinput.severity = Severity.Ignore;\n\t\t\tinput.validationMessage = undefined;\n\t\t}\n\t}\n\n\tinput(options: IInputOptions = {}, token: CancellationToken = CancellationToken.None): Promise<string | undefined> {\n\t\treturn new Promise<string | undefined>((resolve) => {\n\t\t\tif (token.isCancellationRequested) {\n\t\t\t\tresolve(undefined);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst input = this.createInputBox();\n\t\t\tconst validateInput = options.validateInput || (() => Promise.resolve(undefined));\n\t\t\tconst onDidValueChange = Event.debounce(input.onDidChangeValue, (last, cur) => cur, 100);\n\t\t\tlet validationValue = options.value || '';\n\t\t\tlet validation = Promise.resolve(validateInput(validationValue));\n\t\t\tconst disposables = [\n\t\t\t\tinput,\n\t\t\t\tonDidValueChange(value => {\n\t\t\t\t\tif (value !== validationValue) {\n\t\t\t\t\t\tvalidation = Promise.resolve(validateInput(value));\n\t\t\t\t\t\tvalidationValue = value;\n\t\t\t\t\t}\n\t\t\t\t\tvalidation.then(result => {\n\t\t\t\t\t\tif (value === validationValue) {\n\t\t\t\t\t\t\tthis.setValidationOnInput(input, result);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t\t\tinput.onDidAccept(() => {\n\t\t\t\t\tconst value = input.value;\n\t\t\t\t\tif (value !== validationValue) {\n\t\t\t\t\t\tvalidation = Promise.resolve(validateInput(value));\n\t\t\t\t\t\tvalidationValue = value;\n\t\t\t\t\t}\n\t\t\t\t\tvalidation.then(result => {\n\t\t\t\t\t\tif (!result || (!isString(result) && result.severity !== Severity.Error)) {\n\t\t\t\t\t\t\tresolve(value);\n\t\t\t\t\t\t\tinput.hide();\n\t\t\t\t\t\t} else if (value === validationValue) {\n\t\t\t\t\t\t\tthis.setValidationOnInput(input, result);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t\t\ttoken.onCancellationRequested(() => {\n\t\t\t\t\tinput.hide();\n\t\t\t\t}),\n\t\t\t\tinput.onDidHide(() => {\n\t\t\t\t\tdispose(disposables);\n\t\t\t\t\tresolve(undefined);\n\t\t\t\t}),\n\t\t\t];\n\n\t\t\tinput.title = options.title;\n\t\t\tinput.value = options.value || '';\n\t\t\tinput.valueSelection = options.valueSelection;\n\t\t\tinput.prompt = options.prompt;\n\t\t\tinput.placeholder = options.placeHolder;\n\t\t\tinput.password = !!options.password;\n\t\t\tinput.ignoreFocusOut = !!options.ignoreFocusLost;\n\t\t\tinput.show();\n\t\t});\n\t}\n\n\tcreateQuickPick<T extends IQuickPickItem>(options: { useSeparators: true }): IQuickPick<T, { useSeparators: true }>;\n\tcreateQuickPick<T extends IQuickPickItem>(options?: { useSeparators: boolean }): IQuickPick<T, { useSeparators: false }>;\n\tcreateQuickPick<T extends IQuickPickItem>(options: { useSeparators: boolean } = { useSeparators: false }): IQuickPick<T, { useSeparators: boolean }> {\n\t\tconst ui = this.getUI(true);\n\t\treturn new QuickPick<T, typeof options>(ui);\n\t}\n\n\tcreateInputBox(): IInputBox {\n\t\tconst ui = this.getUI(true);\n\t\treturn new InputBox(ui);\n\t}\n\n\tprivate show(controller: IQuickInput) {\n\t\tconst ui = this.getUI(true);\n\t\tthis.onShowEmitter.fire();\n\t\tconst oldController = this.controller;\n\t\tthis.controller = controller;\n\t\toldController?.didHide();\n\n\t\tthis.setEnabled(true);\n\t\tui.leftActionBar.clear();\n\t\tui.title.textContent = '';\n\t\tui.description1.textContent = '';\n\t\tui.description2.textContent = '';\n\t\tdom.reset(ui.widget);\n\t\tui.rightActionBar.clear();\n\t\tui.inlineActionBar.clear();\n\t\tui.checkAll.checked = false;\n\t\t// ui.inputBox.value = ''; Avoid triggering an event.\n\t\tui.inputBox.placeholder = '';\n\t\tui.inputBox.password = false;\n\t\tui.inputBox.showDecoration(Severity.Ignore);\n\t\tui.visibleCount.setCount(0);\n\t\tui.count.setCount(0);\n\t\tui.countContainer.style.right = '4px';\n\t\tdom.reset(ui.message);\n\t\tui.progressBar.stop();\n\t\tui.progressBar.getContainer().setAttribute('aria-hidden', 'true');\n\t\tui.list.setElements([]);\n\t\tui.list.matchOnDescription = false;\n\t\tui.list.matchOnDetail = false;\n\t\tui.list.matchOnLabel = true;\n\t\tui.list.sortByLabel = true;\n\t\tui.tree.updateFilterOptions({\n\t\t\tmatchOnDescription: false,\n\t\t\tmatchOnLabel: true\n\t\t});\n\t\tui.tree.sortByLabel = true;\n\t\tui.ignoreFocusOut = false;\n\t\tui.inputBox.toggles = undefined;\n\t\tui.inputBox.actions = undefined;\n\n\t\tconst backKeybindingLabel = this.options.backKeybindingLabel();\n\t\tbackButton.tooltip = backKeybindingLabel ? localize('quickInput.backWithKeybinding', \"Back ({0})\", backKeybindingLabel) : localize('quickInput.back', \"Back\");\n\n\t\tui.container.style.display = '';\n\t\tthis.updateLayout();\n\t\tthis.dndController?.layoutContainer();\n\t\tui.inputBox.setFocus();\n\t\tthis.quickInputTypeContext.set(controller.type);\n\t}\n\n\tisVisible(): boolean {\n\t\treturn !!this.ui && this.ui.container.style.display !== 'none';\n\t}\n\n\tprivate setVisibilities(visibilities: Visibilities) {\n\t\tconst ui = this.getUI();\n\t\tui.title.style.display = visibilities.title ? '' : 'none';\n\t\tui.description1.style.display = visibilities.description && (visibilities.inputBox || visibilities.checkAll) ? '' : 'none';\n\t\tui.description2.style.display = visibilities.description && !(visibilities.inputBox || visibilities.checkAll) ? '' : 'none';\n\t\tui.checkAll.domNode.style.display = visibilities.checkAll ? '' : 'none';\n\t\tui.inputContainer.style.display = visibilities.inputBox ? '' : 'none';\n\t\tui.filterContainer.style.display = visibilities.inputBox ? '' : 'none';\n\t\tui.visibleCountContainer.style.display = visibilities.visibleCount ? '' : 'none';\n\t\tui.countContainer.style.display = visibilities.count ? '' : 'none';\n\t\tui.okContainer.style.display = visibilities.ok ? '' : 'none';\n\t\tui.customButtonContainer.style.display = visibilities.customButton ? '' : 'none';\n\t\tui.message.style.display = visibilities.message ? '' : 'none';\n\t\tui.progressBar.getContainer().style.display = visibilities.progressBar ? '' : 'none';\n\t\tui.list.displayed = !!visibilities.list;\n\t\tui.tree.displayed = !!visibilities.tree;\n\t\tui.container.classList.toggle('show-checkboxes', !!visibilities.checkBox);\n\t\tui.container.classList.toggle('hidden-input', !visibilities.inputBox && !visibilities.description);\n\t\tthis.updateLayout(); // TODO\n\t}\n\n\tprivate setEnabled(enabled: boolean) {\n\t\tif (enabled !== this.enabled) {\n\t\t\tthis.enabled = enabled;\n\t\t\tconst ui = this.getUI();\n\t\t\tfor (const item of ui.leftActionBar.viewItems) {\n\t\t\t\t(item as ActionViewItem).action.enabled = enabled;\n\t\t\t}\n\t\t\tfor (const item of ui.rightActionBar.viewItems) {\n\t\t\t\t(item as ActionViewItem).action.enabled = enabled;\n\t\t\t}\n\t\t\tif (enabled) {\n\t\t\t\tui.checkAll.enable();\n\t\t\t} else {\n\t\t\t\tui.checkAll.disable();\n\t\t\t}\n\t\t\tui.inputBox.enabled = enabled;\n\t\t\tui.ok.enabled = enabled;\n\t\t\tui.list.enabled = enabled;\n\t\t}\n\t}\n\n\thide(reason?: QuickInputHideReason) {\n\t\tconst controller = this.controller;\n\t\tif (!controller) {\n\t\t\treturn;\n\t\t}\n\t\tcontroller.willHide(reason);\n\n\t\tconst container = this.ui?.container;\n\t\tconst focusChanged = container && !dom.isAncestorOfActiveElement(container);\n\t\tthis.controller = null;\n\t\tthis.onHideEmitter.fire();\n\t\tif (container) {\n\t\t\tcontainer.style.display = 'none';\n\t\t}\n\t\tif (!focusChanged) {\n\t\t\tlet currentElement = this.previousFocusElement;\n\t\t\twhile (currentElement && !currentElement.offsetParent) {\n\t\t\t\tcurrentElement = currentElement.parentElement ?? undefined;\n\t\t\t}\n\t\t\tif (currentElement?.offsetParent) {\n\t\t\t\tcurrentElement.focus();\n\t\t\t\tthis.previousFocusElement = undefined;\n\t\t\t} else {\n\t\t\t\tthis.options.returnFocus();\n\t\t\t}\n\t\t}\n\t\tcontroller.didHide(reason);\n\t}\n\n\ttoggleHover() {\n\t\tif (this.isVisible() && this.controller instanceof QuickPick) {\n\t\t\tthis.getUI().list.toggleHover();\n\t\t}\n\t}\n\n\tlayout(dimension: dom.IDimension, titleBarOffset: number): void {\n\t\tthis.dimension = dimension;\n\t\tthis.titleBarOffset = titleBarOffset;\n\t\tthis.updateLayout();\n\t}\n\n\tprivate updateLayout() {\n\t\tif (this.ui && this.isVisible()) {\n\t\t\tconst style = this.ui.container.style;\n\t\t\tconst width = Math.min(this.dimension!.width * 0.62 /* golden cut */, QuickInputController.MAX_WIDTH);\n\t\t\tstyle.width = width + 'px';\n\n\t\t\t// Position\n\t\t\tstyle.top = `${this.viewState?.top ? Math.round(this.dimension!.height * this.viewState.top) : this.titleBarOffset}px`;\n\t\t\tstyle.left = `${Math.round((this.dimension!.width * (this.viewState?.left ?? 0.5 /* center */)) - (width / 2))}px`;\n\n\t\t\tthis.ui.inputBox.layout();\n\t\t\tthis.ui.list.layout(this.dimension && this.dimension.height * 0.4);\n\t\t\tthis.ui.tree.layout(this.dimension && this.dimension.height * 0.4);\n\t\t}\n\t}\n\n\tapplyStyles(styles: IQuickInputStyles) {\n\t\tthis.styles = styles;\n\t\tthis.updateStyles();\n\t}\n\n\tprivate updateStyles() {\n\t\tif (this.ui) {\n\t\t\tconst {\n\t\t\t\tquickInputTitleBackground, quickInputBackground, quickInputForeground, widgetBorder, widgetShadow,\n\t\t\t} = this.styles.widget;\n\t\t\tthis.ui.titleBar.style.backgroundColor = quickInputTitleBackground ?? '';\n\t\t\tthis.ui.container.style.backgroundColor = quickInputBackground ?? '';\n\t\t\tthis.ui.container.style.color = quickInputForeground ?? '';\n\t\t\tthis.ui.container.style.border = widgetBorder ? `1px solid ${widgetBorder}` : '';\n\t\t\tthis.ui.container.style.boxShadow = widgetShadow ? `0 0 8px 2px ${widgetShadow}` : '';\n\t\t\tthis.ui.list.style(this.styles.list);\n\t\t\tthis.ui.tree.tree.style(this.styles.list);\n\n\t\t\tconst content: string[] = [];\n\t\t\tif (this.styles.pickerGroup.pickerGroupBorder) {\n\t\t\t\tcontent.push(`.quick-input-list .quick-input-list-entry { border-top-color: ${this.styles.pickerGroup.pickerGroupBorder}; }`);\n\t\t\t}\n\t\t\tif (this.styles.pickerGroup.pickerGroupForeground) {\n\t\t\t\tcontent.push(`.quick-input-list .quick-input-list-separator { color: ${this.styles.pickerGroup.pickerGroupForeground}; }`);\n\t\t\t}\n\t\t\tif (this.styles.pickerGroup.pickerGroupForeground) {\n\t\t\t\tcontent.push(`.quick-input-list .quick-input-list-separator-as-item { color: var(--vscode-descriptionForeground); }`);\n\t\t\t}\n\n\t\t\tif (this.styles.keybindingLabel.keybindingLabelBackground ||\n\t\t\t\tthis.styles.keybindingLabel.keybindingLabelBorder ||\n\t\t\t\tthis.styles.keybindingLabel.keybindingLabelBottomBorder ||\n\t\t\t\tthis.styles.keybindingLabel.keybindingLabelShadow ||\n\t\t\t\tthis.styles.keybindingLabel.keybindingLabelForeground) {\n\t\t\t\tcontent.push('.quick-input-list .monaco-keybinding > .monaco-keybinding-key {');\n\t\t\t\tif (this.styles.keybindingLabel.keybindingLabelBackground) {\n\t\t\t\t\tcontent.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`);\n\t\t\t\t}\n\t\t\t\tif (this.styles.keybindingLabel.keybindingLabelBorder) {\n\t\t\t\t\t// Order matters here. `border-color` must come before `border-bottom-color`.\n\t\t\t\t\tcontent.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`);\n\t\t\t\t}\n\t\t\t\tif (this.styles.keybindingLabel.keybindingLabelBottomBorder) {\n\t\t\t\t\tcontent.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`);\n\t\t\t\t}\n\t\t\t\tif (this.styles.keybindingLabel.keybindingLabelShadow) {\n\t\t\t\t\tcontent.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`);\n\t\t\t\t}\n\t\t\t\tif (this.styles.keybindingLabel.keybindingLabelForeground) {\n\t\t\t\t\tcontent.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`);\n\t\t\t\t}\n\t\t\t\tcontent.push('}');\n\t\t\t}\n\n\t\t\tconst newStyles = content.join('\\n');\n\t\t\tif (newStyles !== this.ui.styleSheet.textContent) {\n\t\t\t\tthis.ui.styleSheet.textContent = newStyles;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate loadViewState(): QuickInputViewState | undefined {\n\t\ttry {\n\t\t\tconst data = JSON.parse(this.storageService.get(VIEWSTATE_STORAGE_KEY, StorageScope.APPLICATION, '{}'));\n\t\t\tif (data.top !== undefined || data.left !== undefined) {\n\t\t\t\treturn data;\n\t\t\t}\n\t\t} catch { }\n\n\t\treturn undefined;\n\t}\n\n\tprivate saveViewState(viewState: QuickInputViewState | undefined): void {\n\t\tconst isMainWindow = this.layoutService.activeContainer === this.layoutService.mainContainer;\n\t\tif (!isMainWindow) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (viewState !== undefined) {\n\t\t\tthis.storageService.store(VIEWSTATE_STORAGE_KEY, JSON.stringify(viewState), StorageScope.APPLICATION, StorageTarget.MACHINE);\n\t\t} else {\n\t\t\tthis.storageService.remove(VIEWSTATE_STORAGE_KEY, StorageScope.APPLICATION);\n\t\t}\n\t}\n}\n\nexport interface IQuickInputControllerHost extends ILayoutService { }\n\nclass QuickInputDragAndDropController extends Disposable {\n\treadonly dndViewState = observableValue<{ top?: number; left?: number; done: boolean } | undefined>(this, undefined);\n\n\tprivate readonly _snapThreshold = 20;\n\tprivate readonly _snapLineHorizontalRatio = 0.25;\n\n\tprivate readonly _controlsOnLeft: boolean;\n\tprivate readonly _controlsOnRight: boolean;\n\n\tprivate _quickInputAlignmentContext: IContextKey<'center' | 'top' | undefined>;\n\n\tconstructor(\n\t\tprivate _container: HTMLElement,\n\t\tprivate readonly _quickInputContainer: HTMLElement,\n\t\tprivate _quickInputDragAreas: { node: HTMLElement; includeChildren: boolean; excludeNodes?: HTMLElement[] }[],\n\t\tinitialViewState: QuickInputViewState | undefined,\n\t\t@ILayoutService private readonly _layoutService: ILayoutService,\n\t\t@IContextKeyService contextKeyService: IContextKeyService,\n\t\t@IConfigurationService private readonly configurationService: IConfigurationService\n\t) {\n\t\tsuper();\n\t\tthis._quickInputAlignmentContext = QuickInputAlignmentContextKey.bindTo(contextKeyService);\n\t\tconst customWindowControls = getWindowControlsStyle(this.configurationService) === WindowControlsStyle.CUSTOM;\n\n\t\t// Do not allow the widget to overflow or underflow window controls.\n\t\t// Use CSS calculations to avoid having to force layout with `.clientWidth`\n\t\tthis._controlsOnLeft = customWindowControls && platform === Platform.Mac;\n\t\tthis._controlsOnRight = customWindowControls && (platform === Platform.Windows || platform === Platform.Linux);\n\t\tthis._registerLayoutListener();\n\t\tthis.registerMouseListeners();\n\t\tthis.dndViewState.set({ ...initialViewState, done: true }, undefined);\n\t}\n\n\treparentUI(container: HTMLElement): void {\n\t\tthis._container = container;\n\t}\n\n\tlayoutContainer(dimension = this._layoutService.activeContainerDimension): void {\n\t\tconst state = this.dndViewState.get();\n\t\tconst dragAreaRect = this._quickInputContainer.getBoundingClientRect();\n\t\tif (state?.top && state?.left) {\n\t\t\tconst a = Math.round(state.left * 1e2) / 1e2;\n\t\t\tconst b = dimension.width;\n\t\t\tconst c = dragAreaRect.width;\n\t\t\tconst d = a * b - c / 2;\n\t\t\tthis._layout(state.top * dimension.height, d);\n\t\t}\n\t}\n\n\tprivate _registerLayoutListener() {\n\t\tthis._register(Event.filter(this._layoutService.onDidLayoutContainer, e => e.container === this._container)((e) => this.layoutContainer(e.dimension)));\n\t}\n\n\tprivate registerMouseListeners(): void {\n\t\tconst dragArea = this._quickInputContainer;\n\n\t\t// Double click\n\t\tthis._register(dom.addDisposableGenericMouseUpListener(dragArea, (event: MouseEvent) => {\n\t\t\tconst originEvent = new StandardMouseEvent(dom.getWindow(dragArea), event);\n\t\t\tif (originEvent.detail !== 2) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Ignore event if the target is not the drag area\n\t\t\tconst area = this._quickInputDragAreas.find(({ node, includeChildren }) => includeChildren ? dom.isAncestor(originEvent.target, node) : originEvent.target === node);\n\t\t\tif (!area || area.excludeNodes?.some(node => dom.isAncestor(originEvent.target, node))) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.dndViewState.set({ top: undefined, left: undefined, done: true }, undefined);\n\t\t}));\n\n\t\t// Mouse down\n\t\tthis._register(dom.addDisposableGenericMouseDownListener(dragArea, (e: MouseEvent) => {\n\t\t\tconst activeWindow = dom.getWindow(this._layoutService.activeContainer);\n\t\t\tconst originEvent = new StandardMouseEvent(activeWindow, e);\n\n\t\t\t// Ignore event if the target is not the drag area\n\t\t\tconst area = this._quickInputDragAreas.find(({ node, includeChildren }) => includeChildren ? dom.isAncestor(originEvent.target, node) : originEvent.target === node);\n\t\t\tif (!area || area.excludeNodes?.some(node => dom.isAncestor(originEvent.target, node))) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Mouse position offset relative to dragArea\n\t\t\tconst dragAreaRect = this._quickInputContainer.getBoundingClientRect();\n\t\t\tconst dragOffsetX = originEvent.browserEvent.clientX - dragAreaRect.left;\n\t\t\tconst dragOffsetY = originEvent.browserEvent.clientY - dragAreaRect.top;\n\n\t\t\tlet isMovingQuickInput = false;\n\t\t\tconst mouseMoveListener = dom.addDisposableGenericMouseMoveListener(activeWindow, (e: MouseEvent) => {\n\t\t\t\tconst mouseMoveEvent = new StandardMouseEvent(activeWindow, e);\n\t\t\t\tmouseMoveEvent.preventDefault();\n\n\t\t\t\tif (!isMovingQuickInput) {\n\t\t\t\t\tisMovingQuickInput = true;\n\t\t\t\t}\n\n\t\t\t\tthis._layout(e.clientY - dragOffsetY, e.clientX - dragOffsetX);\n\t\t\t});\n\t\t\tconst mouseUpListener = dom.addDisposableGenericMouseUpListener(activeWindow, (e: MouseEvent) => {\n\t\t\t\tif (isMovingQuickInput) {\n\t\t\t\t\t// Save position\n\t\t\t\t\tconst state = this.dndViewState.get();\n\t\t\t\t\tthis.dndViewState.set({ top: state?.top, left: state?.left, done: true }, undefined);\n\t\t\t\t}\n\n\t\t\t\t// Dispose listeners\n\t\t\t\tmouseMoveListener.dispose();\n\t\t\t\tmouseUpListener.dispose();\n\t\t\t});\n\t\t}));\n\t}\n\n\tprivate _layout(topCoordinate: number, leftCoordinate: number) {\n\t\tconst snapCoordinateYTop = this._getTopSnapValue();\n\t\tconst snapCoordinateY = this._getCenterYSnapValue();\n\t\tconst snapCoordinateX = this._getCenterXSnapValue();\n\t\t// Make sure the quick input is not moved outside the container\n\t\ttopCoordinate = Math.max(0, Math.min(topCoordinate, this._container.clientHeight - this._quickInputContainer.clientHeight));\n\n\t\tif (topCoordinate < this._layoutService.activeContainerOffset.top) {\n\t\t\tif (this._controlsOnLeft) {\n\t\t\t\tleftCoordinate = Math.max(leftCoordinate, 80 / getZoomFactor(dom.getActiveWindow()));\n\t\t\t} else if (this._controlsOnRight) {\n\t\t\t\tleftCoordinate = Math.min(leftCoordinate, this._container.clientWidth - this._quickInputContainer.clientWidth - (140 / getZoomFactor(dom.getActiveWindow())));\n\t\t\t}\n\t\t}\n\n\t\tconst snappingToTop = Math.abs(topCoordinate - snapCoordinateYTop) < this._snapThreshold;\n\t\ttopCoordinate = snappingToTop ? snapCoordinateYTop : topCoordinate;\n\t\tconst snappingToCenter = Math.abs(topCoordinate - snapCoordinateY) < this._snapThreshold;\n\t\ttopCoordinate = snappingToCenter ? snapCoordinateY : topCoordinate;\n\t\tconst top = topCoordinate / this._container.clientHeight;\n\n\t\t// Make sure the quick input is not moved outside the container\n\t\tleftCoordinate = Math.max(0, Math.min(leftCoordinate, this._container.clientWidth - this._quickInputContainer.clientWidth));\n\t\tconst snappingToCenterX = Math.abs(leftCoordinate - snapCoordinateX) < this._snapThreshold;\n\t\tleftCoordinate = snappingToCenterX ? snapCoordinateX : leftCoordinate;\n\n\t\tconst b = this._container.clientWidth;\n\t\tconst c = this._quickInputContainer.clientWidth;\n\t\tconst d = leftCoordinate;\n\t\tconst left = (d + c / 2) / b;\n\n\t\tthis.dndViewState.set({ top, left, done: false }, undefined);\n\t\tif (snappingToCenterX) {\n\t\t\tif (snappingToTop) {\n\t\t\t\tthis._quickInputAlignmentContext.set('top');\n\t\t\t\treturn;\n\t\t\t} else if (snappingToCenter) {\n\t\t\t\tthis._quickInputAlignmentContext.set('center');\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthis._quickInputAlignmentContext.set(undefined);\n\t}\n\n\tprivate _getTopSnapValue() {\n\t\treturn this._layoutService.activeContainerOffset.quickPickTop;\n\t}\n\n\tprivate _getCenterYSnapValue() {\n\t\treturn Math.round(this._container.clientHeight * this._snapLineHorizontalRatio);\n\t}\n\n\tprivate _getCenterXSnapValue() {\n\t\treturn Math.round(this._container.clientWidth / 2) - Math.round(this._quickInputContainer.clientWidth / 2);\n\t}\n}\n"]}
@@ -206,7 +206,7 @@ class QuickInputItemDelegate {
206
206
  }
207
207
  class QuickInputAccessibilityProvider {
208
208
  getWidgetAriaLabel() {
209
- return localize(1791, "Quick Input");
209
+ return localize(1790, "Quick Input");
210
210
  }
211
211
  getAriaLabel(element) {
212
212
  return element.separator?.label
@@ -86,7 +86,7 @@ export function renderQuickInputDescription(description, container, actionHandle
86
86
  else {
87
87
  let title = node.title;
88
88
  if (!title && node.href.startsWith('command:')) {
89
- title = localize(1792, "Click to execute command '{0}'", node.href.substring('command:'.length));
89
+ title = localize(1791, "Click to execute command '{0}'", node.href.substring('command:'.length));
90
90
  }
91
91
  else if (!title) {
92
92
  title = node.href;
@@ -13,7 +13,7 @@ export class QuickTreeAccessibilityProvider {
13
13
  this.onCheckedEvent = onCheckedEvent;
14
14
  }
15
15
  getWidgetAriaLabel() {
16
- return localize(1793, "Quick Tree");
16
+ return localize(1792, "Quick Tree");
17
17
  }
18
18
  getAriaLabel(element) {
19
19
  return element.ariaLabel || [element.label, element.description]