monaco-editor-core 0.55.0-dev-20251023 → 0.55.0-dev-20251024
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.
- package/esm/nls.messages.cs.js +1 -1
- package/esm/nls.messages.de.js +1 -1
- package/esm/nls.messages.es.js +1 -1
- package/esm/nls.messages.fr.js +1 -1
- package/esm/nls.messages.it.js +1 -1
- package/esm/nls.messages.ja.js +1 -1
- package/esm/nls.messages.ko.js +1 -1
- package/esm/nls.messages.pl.js +1 -1
- package/esm/nls.messages.pt-br.js +1 -1
- package/esm/nls.messages.ru.js +1 -1
- package/esm/nls.messages.tr.js +1 -1
- package/esm/nls.messages.zh-cn.js +1 -1
- package/esm/nls.messages.zh-tw.js +1 -1
- package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/esm/vs/base/browser/ui/iconLabel/iconlabel.css +2 -0
- package/esm/vs/base/browser/ui/toggle/toggle.js +2 -2
- package/esm/vs/base/browser/ui/toggle/toggle.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/compressedObjectTreeModel.js +7 -0
- package/esm/vs/base/browser/ui/tree/compressedObjectTreeModel.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/objectTree.js +3 -0
- package/esm/vs/base/browser/ui/tree/objectTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/objectTreeModel.js +20 -0
- package/esm/vs/base/browser/ui/tree/objectTreeModel.js.map +1 -1
- package/esm/vs/base/common/codiconsLibrary.js +2 -0
- package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
- package/esm/vs/base/common/network.js +5 -1
- package/esm/vs/base/common/network.js.map +1 -1
- package/esm/vs/base/common/platform.js +0 -1
- package/esm/vs/base/common/platform.js.map +1 -1
- package/esm/vs/platform/configuration/common/configurationRegistry.js +12 -0
- package/esm/vs/platform/configuration/common/configurationRegistry.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInput.js +2 -0
- package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputController.js +6 -0
- package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTree.js +9 -9
- package/esm/vs/platform/quickinput/browser/tree/quickInputTree.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js +19 -26
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeSorter.js +46 -0
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeSorter.js.map +1 -0
- package/esm/vs/platform/quickinput/common/quickInput.js.map +1 -1
- 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 { 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 } 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, { hoverDelegate: this.options.hoverDelegate }));\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, { hoverDelegate: this.options.hoverDelegate }));\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, { hoverDelegate: this.options.hoverDelegate }));\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));\n\t\tinputBox.setAttribute('aria-controls', listId);\n\t\tthis._register(list.onDidChangeFocus(() => {\n\t\t\tif (inputBox.hasFocus()) {\n\t\t\t\tinputBox.setAttribute('aria-activedescendant', list.getActiveDescendant() ?? '');\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));\n\t\tthis._register(tree.tree.onDidChangeFocus(() => {\n\t\t\tif (inputBox.hasFocus()) {\n\t\t\t\tinputBox.setAttribute('aria-activedescendant', tree.getActiveDescendant() ?? '');\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(_ => {\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 screenreaders 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\tinputBox.removeAttribute('aria-activedescendant');\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},\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<undefined>>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.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.ignoreFocusOut = false;\n\t\tui.inputBox.toggles = 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 }[],\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\tif (!this._quickInputDragAreas.some(({ node, includeChildren }) => includeChildren ? dom.isAncestor(originEvent.target as HTMLElement, node) : 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\tif (!this._quickInputDragAreas.some(({ node, includeChildren }) => includeChildren ? dom.isAncestor(originEvent.target as HTMLElement, node) : 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 { 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 } 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, { hoverDelegate: this.options.hoverDelegate }));\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, { hoverDelegate: this.options.hoverDelegate }));\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, { hoverDelegate: this.options.hoverDelegate }));\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));\n\t\tinputBox.setAttribute('aria-controls', listId);\n\t\tthis._register(list.onDidChangeFocus(() => {\n\t\t\tif (inputBox.hasFocus()) {\n\t\t\t\tinputBox.setAttribute('aria-activedescendant', list.getActiveDescendant() ?? '');\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));\n\t\tthis._register(tree.tree.onDidChangeFocus(() => {\n\t\t\tif (inputBox.hasFocus()) {\n\t\t\t\tinputBox.setAttribute('aria-activedescendant', tree.getActiveDescendant() ?? '');\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(_ => {\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 screenreaders 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\tinputBox.removeAttribute('aria-activedescendant');\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},\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<undefined>>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\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 }[],\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\tif (!this._quickInputDragAreas.some(({ node, includeChildren }) => includeChildren ? dom.isAncestor(originEvent.target as HTMLElement, node) : 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\tif (!this._quickInputDragAreas.some(({ node, includeChildren }) => includeChildren ? dom.isAncestor(originEvent.target as HTMLElement, node) : 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"]}
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
export function getParentNodeState(parentChildren) {
|
|
6
6
|
let containsChecks = false;
|
|
7
7
|
let containsUnchecks = false;
|
|
8
|
-
let
|
|
8
|
+
let containsMixed = false;
|
|
9
9
|
for (const element of parentChildren) {
|
|
10
10
|
switch (element.element?.checked) {
|
|
11
|
-
case '
|
|
12
|
-
|
|
11
|
+
case 'mixed':
|
|
12
|
+
containsMixed = true;
|
|
13
13
|
break;
|
|
14
14
|
case true:
|
|
15
15
|
containsChecks = true;
|
|
@@ -18,18 +18,18 @@ export function getParentNodeState(parentChildren) {
|
|
|
18
18
|
containsUnchecks = true;
|
|
19
19
|
break;
|
|
20
20
|
}
|
|
21
|
-
if (containsChecks && containsUnchecks &&
|
|
21
|
+
if (containsChecks && containsUnchecks && containsMixed) {
|
|
22
22
|
break;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
const newState = containsUnchecks
|
|
26
|
-
?
|
|
27
|
-
? '
|
|
26
|
+
? containsMixed
|
|
27
|
+
? 'mixed'
|
|
28
28
|
: containsChecks
|
|
29
|
-
? '
|
|
29
|
+
? 'mixed'
|
|
30
30
|
: false
|
|
31
|
-
:
|
|
32
|
-
? '
|
|
31
|
+
: containsMixed
|
|
32
|
+
? 'mixed'
|
|
33
33
|
: containsChecks;
|
|
34
34
|
return newState;
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/platform/quickinput/browser/tree/quickInputTree.ts","vs/platform/quickinput/browser/tree/quickInputTree.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAWhG,MAAM,UAAU,kBAAkB,CAAC,cAA+G;IACjJ,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/platform/quickinput/browser/tree/quickInputTree.ts","vs/platform/quickinput/browser/tree/quickInputTree.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAWhG,MAAM,UAAU,kBAAkB,CAAC,cAA+G;IACjJ,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACtC,QAAQ,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;YAClC,KAAK,OAAO;gBACX,aAAa,GAAG,IAAI,CAAC;gBACrB,MAAM;YACP,KAAK,IAAI;gBACR,cAAc,GAAG,IAAI,CAAC;gBACtB,MAAM;YACP;gBACC,gBAAgB,GAAG,IAAI,CAAC;gBACxB,MAAM;QACR,CAAC;QACD,IAAI,cAAc,IAAI,gBAAgB,IAAI,aAAa,EAAE,CAAC;YACzD,MAAM;QACP,CAAC;IACF,CAAC;IACD,MAAM,QAAQ,GAAG,gBAAgB;QAChC,CAAC,CAAC,aAAa;YACd,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,cAAc;gBACf,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,KAAK;QACT,CAAC,CAAC,aAAa;YACd,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,cAAc,CAAC;IACnB,OAAO,QAAQ,CAAC;AACjB,CAAC","file":"quickInputTree.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 { IMatch } from '../../../../base/common/filters.js';\nimport { IQuickTreeItem } from '../../common/quickInput.js';\nimport { IObjectTreeElement, ITreeNode } from '../../../../base/browser/ui/tree/tree.js';\n\nexport interface IQuickTreeFilterData {\n\treadonly labelHighlights?: IMatch[];\n\treadonly descriptionHighlights?: IMatch[];\n}\n\nexport function getParentNodeState(parentChildren: ITreeNode<IQuickTreeItem | null, IQuickTreeFilterData>[] | IObjectTreeElement<IQuickTreeItem>[]): boolean | 'mixed' {\n\tlet containsChecks = false;\n\tlet containsUnchecks = false;\n\tlet containsMixed = false;\n\n\tfor (const element of parentChildren) {\n\t\tswitch (element.element?.checked) {\n\t\t\tcase 'mixed':\n\t\t\t\tcontainsMixed = true;\n\t\t\t\tbreak;\n\t\t\tcase true:\n\t\t\t\tcontainsChecks = true;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcontainsUnchecks = true;\n\t\t\t\tbreak;\n\t\t}\n\t\tif (containsChecks && containsUnchecks && containsMixed) {\n\t\t\tbreak;\n\t\t}\n\t}\n\tconst newState = containsUnchecks\n\t\t? containsMixed\n\t\t\t? 'mixed'\n\t\t\t: containsChecks\n\t\t\t\t? 'mixed'\n\t\t\t\t: false\n\t\t: containsMixed\n\t\t\t? 'mixed'\n\t\t\t: containsChecks;\n\treturn newState;\n}\n","/*---------------------------------------------------------------------------------------------\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 { IMatch } from '../../../../base/common/filters.js';\nimport { IQuickTreeItem } from '../../common/quickInput.js';\nimport { IObjectTreeElement, ITreeNode } from '../../../../base/browser/ui/tree/tree.js';\n\nexport interface IQuickTreeFilterData {\n\treadonly labelHighlights?: IMatch[];\n\treadonly descriptionHighlights?: IMatch[];\n}\n\nexport function getParentNodeState(parentChildren: ITreeNode<IQuickTreeItem | null, IQuickTreeFilterData>[] | IObjectTreeElement<IQuickTreeItem>[]): boolean | 'mixed' {\n\tlet containsChecks = false;\n\tlet containsUnchecks = false;\n\tlet containsMixed = false;\n\n\tfor (const element of parentChildren) {\n\t\tswitch (element.element?.checked) {\n\t\t\tcase 'mixed':\n\t\t\t\tcontainsMixed = true;\n\t\t\t\tbreak;\n\t\t\tcase true:\n\t\t\t\tcontainsChecks = true;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcontainsUnchecks = true;\n\t\t\t\tbreak;\n\t\t}\n\t\tif (containsChecks && containsUnchecks && containsMixed) {\n\t\t\tbreak;\n\t\t}\n\t}\n\tconst newState = containsUnchecks\n\t\t? containsMixed\n\t\t\t? 'mixed'\n\t\t\t: containsChecks\n\t\t\t\t? 'mixed'\n\t\t\t\t: false\n\t\t: containsMixed\n\t\t\t? 'mixed'\n\t\t\t: containsChecks;\n\treturn newState;\n}\n"]}
|
|
@@ -29,7 +29,7 @@ export class QuickTreeAccessibilityProvider {
|
|
|
29
29
|
}
|
|
30
30
|
isChecked(element) {
|
|
31
31
|
return {
|
|
32
|
-
get value() { return element.checked === '
|
|
32
|
+
get value() { return element.checked === 'mixed' ? 'mixed' : !!element.checked; },
|
|
33
33
|
onDidChange: e => Event.filter(this.onCheckedEvent, e => e.item === element)(_ => e()),
|
|
34
34
|
};
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAKhG,OAAO,EAAE,KAAK,EAAyB,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,8BAA8B;IAC1C,YAA6B,cAAiD;QAAjD,mBAAc,GAAd,cAAc,CAAmC;IAAI,CAAC;IAEnF,kBAAkB;QACjB,OAAO,QAAQ,CAAC,IAAW,EAAE,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,YAAY,CAAC,OAAU;QACtB,OAAO,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;aAC9D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;aAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAChB,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAED,aAAa;QACZ,OAAO,MAAM,CAAC;IACf,CAAC;IAED,OAAO,CAAC,QAAW;QAClB,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,SAAS,CAAC,OAAU;QACnB,OAAO;YACN,IAAI,KAAK,KAAK,OAAO,OAAO,CAAC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"sources":["vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAKhG,OAAO,EAAE,KAAK,EAAyB,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,8BAA8B;IAC1C,YAA6B,cAAiD;QAAjD,mBAAc,GAAd,cAAc,CAAmC;IAAI,CAAC;IAEnF,kBAAkB;QACjB,OAAO,QAAQ,CAAC,IAAW,EAAE,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,YAAY,CAAC,OAAU;QACtB,OAAO,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;aAC9D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;aAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAChB,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAED,aAAa;QACZ,OAAO,MAAM,CAAC;IACf,CAAC;IAED,OAAO,CAAC,QAAW;QAClB,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,SAAS,CAAC,OAAU;QACnB,OAAO;YACN,IAAI,KAAK,KAAK,OAAO,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACjF,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;SACtF,CAAC;IACH,CAAC;CACD","file":"quickInputTreeAccessibilityProvider.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 { AriaRole } from '../../../../base/browser/ui/aria/aria.js';\nimport { CheckBoxAccessibleState } from '../../../../base/browser/ui/list/listView.js';\nimport { IListAccessibilityProvider } from '../../../../base/browser/ui/list/listWidget.js';\nimport { Event, IValueWithChangeEvent } from '../../../../base/common/event.js';\nimport { getCodiconAriaLabel } from '../../../../base/common/iconLabels.js';\nimport { localize } from '../../../../nls.js';\nimport { IQuickTreeCheckboxEvent, IQuickTreeItem } from '../../common/quickInput.js';\n/**\n * Accessibility provider for QuickTree.\n */\nexport class QuickTreeAccessibilityProvider<T extends IQuickTreeItem> implements IListAccessibilityProvider<T> {\n\tconstructor(private readonly onCheckedEvent: Event<IQuickTreeCheckboxEvent<T>>) { }\n\n\tgetWidgetAriaLabel(): string {\n\t\treturn localize('quickTree', \"Quick Tree\");\n\t}\n\n\tgetAriaLabel(element: T): string {\n\t\treturn element.ariaLabel || [element.label, element.description]\n\t\t\t.map(s => getCodiconAriaLabel(s))\n\t\t\t.filter(s => !!s)\n\t\t\t.join(', ');\n\t}\n\n\tgetWidgetRole(): AriaRole {\n\t\treturn 'tree';\n\t}\n\n\tgetRole(_element: T): AriaRole {\n\t\treturn 'checkbox';\n\t}\n\n\tisChecked(element: T): IValueWithChangeEvent<CheckBoxAccessibleState> | undefined {\n\t\treturn {\n\t\t\tget value() { return element.checked === 'mixed' ? 'mixed' : !!element.checked; },\n\t\t\tonDidChange: e => Event.filter(this.onCheckedEvent, e => e.item === element)(_ => e()),\n\t\t};\n\t}\n}\n"]}
|
|
@@ -22,6 +22,7 @@ import { getParentNodeState } from './quickInputTree.js';
|
|
|
22
22
|
import { QuickTreeAccessibilityProvider } from './quickInputTreeAccessibilityProvider.js';
|
|
23
23
|
import { QuickInputTreeFilter } from './quickInputTreeFilter.js';
|
|
24
24
|
import { QuickInputTreeRenderer } from './quickInputTreeRenderer.js';
|
|
25
|
+
import { QuickInputTreeSorter } from './quickInputTreeSorter.js';
|
|
25
26
|
const $ = dom.$;
|
|
26
27
|
let QuickInputTreeController = class QuickInputTreeController extends Disposable {
|
|
27
28
|
constructor(container, hoverDelegate, instantiationService) {
|
|
@@ -44,6 +45,7 @@ let QuickInputTreeController = class QuickInputTreeController extends Disposable
|
|
|
44
45
|
this._container = dom.append(container, $('.quick-input-tree'));
|
|
45
46
|
this._renderer = this._register(this.instantiationService.createInstance(QuickInputTreeRenderer, hoverDelegate, this._onDidTriggerButton, this.onDidChangeCheckboxState));
|
|
46
47
|
this._filter = this.instantiationService.createInstance(QuickInputTreeFilter);
|
|
48
|
+
this._sorter = this._register(new QuickInputTreeSorter());
|
|
47
49
|
this._tree = this._register(this.instantiationService.createInstance((WorkbenchObjectTree), 'QuickInputTree', this._container, new QuickInputTreeDelegate(), [this._renderer], {
|
|
48
50
|
accessibilityProvider: new QuickTreeAccessibilityProvider(this.onDidChangeCheckboxState),
|
|
49
51
|
horizontalScrolling: false,
|
|
@@ -55,32 +57,7 @@ let QuickInputTreeController = class QuickInputTreeController extends Disposable
|
|
|
55
57
|
expandOnDoubleClick: true,
|
|
56
58
|
expandOnlyOnTwistieClick: true,
|
|
57
59
|
disableExpandOnSpacebar: true,
|
|
58
|
-
sorter:
|
|
59
|
-
compare: (a, b) => {
|
|
60
|
-
if (a.label < b.label) {
|
|
61
|
-
return -1;
|
|
62
|
-
}
|
|
63
|
-
else if (a.label > b.label) {
|
|
64
|
-
return 1;
|
|
65
|
-
}
|
|
66
|
-
// use description to break ties
|
|
67
|
-
if (a.description && b.description) {
|
|
68
|
-
if (a.description < b.description) {
|
|
69
|
-
return -1;
|
|
70
|
-
}
|
|
71
|
-
else if (a.description > b.description) {
|
|
72
|
-
return 1;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
else if (a.description) {
|
|
76
|
-
return -1;
|
|
77
|
-
}
|
|
78
|
-
else if (b.description) {
|
|
79
|
-
return 1;
|
|
80
|
-
}
|
|
81
|
-
return 0;
|
|
82
|
-
}
|
|
83
|
-
},
|
|
60
|
+
sorter: this._sorter,
|
|
84
61
|
filter: this._filter
|
|
85
62
|
}));
|
|
86
63
|
this.registerOnOpenListener();
|
|
@@ -94,9 +71,25 @@ let QuickInputTreeController = class QuickInputTreeController extends Disposable
|
|
|
94
71
|
set displayed(value) {
|
|
95
72
|
this._container.style.display = value ? '' : 'none';
|
|
96
73
|
}
|
|
74
|
+
get sortByLabel() {
|
|
75
|
+
return this._sorter.sortByLabel;
|
|
76
|
+
}
|
|
77
|
+
set sortByLabel(value) {
|
|
78
|
+
this._sorter.sortByLabel = value;
|
|
79
|
+
this._tree.resort(null, true);
|
|
80
|
+
}
|
|
97
81
|
getActiveDescendant() {
|
|
98
82
|
return this._tree.getHTMLElement().getAttribute('aria-activedescendant');
|
|
99
83
|
}
|
|
84
|
+
updateFilterOptions(options) {
|
|
85
|
+
if (options.matchOnLabel !== undefined) {
|
|
86
|
+
this._filter.matchOnLabel = options.matchOnLabel;
|
|
87
|
+
}
|
|
88
|
+
if (options.matchOnDescription !== undefined) {
|
|
89
|
+
this._filter.matchOnDescription = options.matchOnDescription;
|
|
90
|
+
}
|
|
91
|
+
this._tree.refilter();
|
|
92
|
+
}
|
|
100
93
|
layout(maxHeight) {
|
|
101
94
|
this._tree.getHTMLElement().style.maxHeight = maxHeight ? `${
|
|
102
95
|
// Make sure height aligns with list item heights
|