{"version":3,"file":"static/js/9148_20c8667704aa043d1f82.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/trustedTypes.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/actionbar/actionViewItems.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/actionbar/actionbar.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/aria/aria.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/button/button.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/contextview/contextview.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/countBadge/countBadge.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/dropdown/dropdown.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/findinput/findInput.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/findinput/findInputToggles.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/findinput/replaceInput.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/highlightedlabel/highlightedLabel.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/hover/hoverDelegate2.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/hover/hoverDelegateFactory.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/hover/hoverWidget.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/iconLabel/iconLabel.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/base/browser/ui/iconLabel/iconLabels.js"],"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 *--------------------------------------------------------------------------------------------*/\nimport { mainWindow } from './window.js';\nimport { onUnexpectedError } from '../common/errors.js';\nexport function createTrustedTypesPolicy(policyName, policyOptions) {\n var _a;\n const monacoEnvironment = globalThis.MonacoEnvironment;\n if (monacoEnvironment === null || monacoEnvironment === void 0 ? void 0 : monacoEnvironment.createTrustedTypesPolicy) {\n try {\n return monacoEnvironment.createTrustedTypesPolicy(policyName, policyOptions);\n }\n catch (err) {\n onUnexpectedError(err);\n return undefined;\n }\n }\n try {\n return (_a = mainWindow.trustedTypes) === null || _a === void 0 ? void 0 : _a.createPolicy(policyName, policyOptions);\n }\n catch (err) {\n onUnexpectedError(err);\n return undefined;\n }\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 *--------------------------------------------------------------------------------------------*/\nimport { isFirefox } from '../../browser.js';\nimport { DataTransfers } from '../../dnd.js';\nimport { addDisposableListener, EventHelper, EventType } from '../../dom.js';\nimport { EventType as TouchEventType, Gesture } from '../../touch.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { SelectBox } from '../selectBox/selectBox.js';\nimport { Action, ActionRunner, Separator } from '../../../common/actions.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport * as platform from '../../../common/platform.js';\nimport * as types from '../../../common/types.js';\nimport './actionbar.css';\nimport * as nls from '../../../../nls.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nexport class BaseActionViewItem extends Disposable {\n get action() {\n return this._action;\n }\n constructor(context, action, options = {}) {\n super();\n this.options = options;\n this._context = context || this;\n this._action = action;\n if (action instanceof Action) {\n this._register(action.onDidChange(event => {\n if (!this.element) {\n // we have not been rendered yet, so there\n // is no point in updating the UI\n return;\n }\n this.handleActionChangeEvent(event);\n }));\n }\n }\n handleActionChangeEvent(event) {\n if (event.enabled !== undefined) {\n this.updateEnabled();\n }\n if (event.checked !== undefined) {\n this.updateChecked();\n }\n if (event.class !== undefined) {\n this.updateClass();\n }\n if (event.label !== undefined) {\n this.updateLabel();\n this.updateTooltip();\n }\n if (event.tooltip !== undefined) {\n this.updateTooltip();\n }\n }\n get actionRunner() {\n if (!this._actionRunner) {\n this._actionRunner = this._register(new ActionRunner());\n }\n return this._actionRunner;\n }\n set actionRunner(actionRunner) {\n this._actionRunner = actionRunner;\n }\n isEnabled() {\n return this._action.enabled;\n }\n setActionContext(newContext) {\n this._context = newContext;\n }\n render(container) {\n const element = this.element = container;\n this._register(Gesture.addTarget(container));\n const enableDragging = this.options && this.options.draggable;\n if (enableDragging) {\n container.draggable = true;\n if (isFirefox) {\n // Firefox: requires to set a text data transfer to get going\n this._register(addDisposableListener(container, EventType.DRAG_START, e => { var _a; return (_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.setData(DataTransfers.TEXT, this._action.label); }));\n }\n }\n this._register(addDisposableListener(element, TouchEventType.Tap, e => this.onClick(e, true))); // Preserve focus on tap #125470\n this._register(addDisposableListener(element, EventType.MOUSE_DOWN, e => {\n if (!enableDragging) {\n EventHelper.stop(e, true); // do not run when dragging is on because that would disable it\n }\n if (this._action.enabled && e.button === 0) {\n element.classList.add('active');\n }\n }));\n if (platform.isMacintosh) {\n // macOS: allow to trigger the button when holding Ctrl+key and pressing the\n // main mouse button. This is for scenarios where e.g. some interaction forces\n // the Ctrl+key to be pressed and hold but the user still wants to interact\n // with the actions (for example quick access in quick navigation mode).\n this._register(addDisposableListener(element, EventType.CONTEXT_MENU, e => {\n if (e.button === 0 && e.ctrlKey === true) {\n this.onClick(e);\n }\n }));\n }\n this._register(addDisposableListener(element, EventType.CLICK, e => {\n EventHelper.stop(e, true);\n // menus do not use the click event\n if (!(this.options && this.options.isMenu)) {\n this.onClick(e);\n }\n }));\n this._register(addDisposableListener(element, EventType.DBLCLICK, e => {\n EventHelper.stop(e, true);\n }));\n [EventType.MOUSE_UP, EventType.MOUSE_OUT].forEach(event => {\n this._register(addDisposableListener(element, event, e => {\n EventHelper.stop(e);\n element.classList.remove('active');\n }));\n });\n }\n onClick(event, preserveFocus = false) {\n var _a;\n EventHelper.stop(event, true);\n const context = types.isUndefinedOrNull(this._context) ? ((_a = this.options) === null || _a === void 0 ? void 0 : _a.useEventAsContext) ? event : { preserveFocus } : this._context;\n this.actionRunner.run(this._action, context);\n }\n // Only set the tabIndex on the element once it is about to get focused\n // That way this element wont be a tab stop when it is not needed #106441\n focus() {\n if (this.element) {\n this.element.tabIndex = 0;\n this.element.focus();\n this.element.classList.add('focused');\n }\n }\n blur() {\n if (this.element) {\n this.element.blur();\n this.element.tabIndex = -1;\n this.element.classList.remove('focused');\n }\n }\n setFocusable(focusable) {\n if (this.element) {\n this.element.tabIndex = focusable ? 0 : -1;\n }\n }\n get trapsArrowNavigation() {\n return false;\n }\n updateEnabled() {\n // implement in subclass\n }\n updateLabel() {\n // implement in subclass\n }\n getClass() {\n return this.action.class;\n }\n getTooltip() {\n return this.action.tooltip;\n }\n updateTooltip() {\n var _a, _b, _c;\n if (!this.element) {\n return;\n }\n const title = (_a = this.getTooltip()) !== null && _a !== void 0 ? _a : '';\n this.updateAriaLabel();\n if ((_b = this.options.hoverDelegate) === null || _b === void 0 ? void 0 : _b.showNativeHover) {\n /* While custom hover is not inside custom hover */\n this.element.title = title;\n }\n else {\n if (!this.customHover && title !== '') {\n const hoverDelegate = (_c = this.options.hoverDelegate) !== null && _c !== void 0 ? _c : getDefaultHoverDelegate('element');\n this.customHover = this._store.add(getBaseLayerHoverDelegate().setupUpdatableHover(hoverDelegate, this.element, title));\n }\n else if (this.customHover) {\n this.customHover.update(title);\n }\n }\n }\n updateAriaLabel() {\n var _a;\n if (this.element) {\n const title = (_a = this.getTooltip()) !== null && _a !== void 0 ? _a : '';\n this.element.setAttribute('aria-label', title);\n }\n }\n updateClass() {\n // implement in subclass\n }\n updateChecked() {\n // implement in subclass\n }\n dispose() {\n if (this.element) {\n this.element.remove();\n this.element = undefined;\n }\n this._context = undefined;\n super.dispose();\n }\n}\nexport class ActionViewItem extends BaseActionViewItem {\n constructor(context, action, options) {\n super(context, action, options);\n this.options = options;\n this.options.icon = options.icon !== undefined ? options.icon : false;\n this.options.label = options.label !== undefined ? options.label : true;\n this.cssClass = '';\n }\n render(container) {\n super.render(container);\n types.assertType(this.element);\n const label = document.createElement('a');\n label.classList.add('action-label');\n label.setAttribute('role', this.getDefaultAriaRole());\n this.label = label;\n this.element.appendChild(label);\n if (this.options.label && this.options.keybinding) {\n const kbLabel = document.createElement('span');\n kbLabel.classList.add('keybinding');\n kbLabel.textContent = this.options.keybinding;\n this.element.appendChild(kbLabel);\n }\n this.updateClass();\n this.updateLabel();\n this.updateTooltip();\n this.updateEnabled();\n this.updateChecked();\n }\n getDefaultAriaRole() {\n if (this._action.id === Separator.ID) {\n return 'presentation'; // A separator is a presentation item\n }\n else {\n if (this.options.isMenu) {\n return 'menuitem';\n }\n else {\n return 'button';\n }\n }\n }\n // Only set the tabIndex on the element once it is about to get focused\n // That way this element wont be a tab stop when it is not needed #106441\n focus() {\n if (this.label) {\n this.label.tabIndex = 0;\n this.label.focus();\n }\n }\n blur() {\n if (this.label) {\n this.label.tabIndex = -1;\n }\n }\n setFocusable(focusable) {\n if (this.label) {\n this.label.tabIndex = focusable ? 0 : -1;\n }\n }\n updateLabel() {\n if (this.options.label && this.label) {\n this.label.textContent = this.action.label;\n }\n }\n getTooltip() {\n let title = null;\n if (this.action.tooltip) {\n title = this.action.tooltip;\n }\n else if (!this.options.label && this.action.label && this.options.icon) {\n title = this.action.label;\n if (this.options.keybinding) {\n title = nls.localize({ key: 'titleLabel', comment: ['action title', 'action keybinding'] }, \"{0} ({1})\", title, this.options.keybinding);\n }\n }\n return title !== null && title !== void 0 ? title : undefined;\n }\n updateClass() {\n var _a;\n if (this.cssClass && this.label) {\n this.label.classList.remove(...this.cssClass.split(' '));\n }\n if (this.options.icon) {\n this.cssClass = this.getClass();\n if (this.label) {\n this.label.classList.add('codicon');\n if (this.cssClass) {\n this.label.classList.add(...this.cssClass.split(' '));\n }\n }\n this.updateEnabled();\n }\n else {\n (_a = this.label) === null || _a === void 0 ? void 0 : _a.classList.remove('codicon');\n }\n }\n updateEnabled() {\n var _a, _b;\n if (this.action.enabled) {\n if (this.label) {\n this.label.removeAttribute('aria-disabled');\n this.label.classList.remove('disabled');\n }\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.classList.remove('disabled');\n }\n else {\n if (this.label) {\n this.label.setAttribute('aria-disabled', 'true');\n this.label.classList.add('disabled');\n }\n (_b = this.element) === null || _b === void 0 ? void 0 : _b.classList.add('disabled');\n }\n }\n updateAriaLabel() {\n var _a;\n if (this.label) {\n const title = (_a = this.getTooltip()) !== null && _a !== void 0 ? _a : '';\n this.label.setAttribute('aria-label', title);\n }\n }\n updateChecked() {\n if (this.label) {\n if (this.action.checked !== undefined) {\n this.label.classList.toggle('checked', this.action.checked);\n this.label.setAttribute('aria-checked', this.action.checked ? 'true' : 'false');\n this.label.setAttribute('role', 'checkbox');\n }\n else {\n this.label.classList.remove('checked');\n this.label.removeAttribute('aria-checked');\n this.label.setAttribute('role', this.getDefaultAriaRole());\n }\n }\n }\n}\nexport class SelectActionViewItem extends BaseActionViewItem {\n constructor(ctx, action, options, selected, contextViewProvider, styles, selectBoxOptions) {\n super(ctx, action);\n this.selectBox = new SelectBox(options, selected, contextViewProvider, styles, selectBoxOptions);\n this.selectBox.setFocusable(false);\n this._register(this.selectBox);\n this.registerListeners();\n }\n select(index) {\n this.selectBox.select(index);\n }\n registerListeners() {\n this._register(this.selectBox.onDidSelect(e => this.runAction(e.selected, e.index)));\n }\n runAction(option, index) {\n this.actionRunner.run(this._action, this.getActionContext(option, index));\n }\n getActionContext(option, index) {\n return option;\n }\n setFocusable(focusable) {\n this.selectBox.setFocusable(focusable);\n }\n focus() {\n var _a;\n (_a = this.selectBox) === null || _a === void 0 ? void 0 : _a.focus();\n }\n blur() {\n var _a;\n (_a = this.selectBox) === null || _a === void 0 ? void 0 : _a.blur();\n }\n render(container) {\n this.selectBox.render(container);\n }\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 *--------------------------------------------------------------------------------------------*/\nimport * as DOM from '../../dom.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { ActionViewItem, BaseActionViewItem } from './actionViewItems.js';\nimport { createInstantHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { ActionRunner, Separator } from '../../../common/actions.js';\nimport { Emitter } from '../../../common/event.js';\nimport { Disposable, DisposableMap, DisposableStore, dispose } from '../../../common/lifecycle.js';\nimport * as types from '../../../common/types.js';\nimport './actionbar.css';\nexport class ActionBar extends Disposable {\n constructor(container, options = {}) {\n var _a, _b, _c, _d, _e, _f, _g;\n super();\n this._actionRunnerDisposables = this._register(new DisposableStore());\n this.viewItemDisposables = this._register(new DisposableMap());\n // Trigger Key Tracking\n this.triggerKeyDown = false;\n this.focusable = true;\n this._onDidBlur = this._register(new Emitter());\n this.onDidBlur = this._onDidBlur.event;\n this._onDidCancel = this._register(new Emitter({ onWillAddFirstListener: () => this.cancelHasListener = true }));\n this.onDidCancel = this._onDidCancel.event;\n this.cancelHasListener = false;\n this._onDidRun = this._register(new Emitter());\n this.onDidRun = this._onDidRun.event;\n this._onWillRun = this._register(new Emitter());\n this.onWillRun = this._onWillRun.event;\n this.options = options;\n this._context = (_a = options.context) !== null && _a !== void 0 ? _a : null;\n this._orientation = (_b = this.options.orientation) !== null && _b !== void 0 ? _b : 0 /* ActionsOrientation.HORIZONTAL */;\n this._triggerKeys = {\n keyDown: (_d = (_c = this.options.triggerKeys) === null || _c === void 0 ? void 0 : _c.keyDown) !== null && _d !== void 0 ? _d : false,\n keys: (_f = (_e = this.options.triggerKeys) === null || _e === void 0 ? void 0 : _e.keys) !== null && _f !== void 0 ? _f : [3 /* KeyCode.Enter */, 10 /* KeyCode.Space */]\n };\n this._hoverDelegate = (_g = options.hoverDelegate) !== null && _g !== void 0 ? _g : this._register(createInstantHoverDelegate());\n if (this.options.actionRunner) {\n this._actionRunner = this.options.actionRunner;\n }\n else {\n this._actionRunner = new ActionRunner();\n this._actionRunnerDisposables.add(this._actionRunner);\n }\n this._actionRunnerDisposables.add(this._actionRunner.onDidRun(e => this._onDidRun.fire(e)));\n this._actionRunnerDisposables.add(this._actionRunner.onWillRun(e => this._onWillRun.fire(e)));\n this.viewItems = [];\n this.focusedItem = undefined;\n this.domNode = document.createElement('div');\n this.domNode.className = 'monaco-action-bar';\n let previousKeys;\n let nextKeys;\n switch (this._orientation) {\n case 0 /* ActionsOrientation.HORIZONTAL */:\n previousKeys = [15 /* KeyCode.LeftArrow */];\n nextKeys = [17 /* KeyCode.RightArrow */];\n break;\n case 1 /* ActionsOrientation.VERTICAL */:\n previousKeys = [16 /* KeyCode.UpArrow */];\n nextKeys = [18 /* KeyCode.DownArrow */];\n this.domNode.className += ' vertical';\n break;\n }\n this._register(DOM.addDisposableListener(this.domNode, DOM.EventType.KEY_DOWN, e => {\n const event = new StandardKeyboardEvent(e);\n let eventHandled = true;\n const focusedItem = typeof this.focusedItem === 'number' ? this.viewItems[this.focusedItem] : undefined;\n if (previousKeys && (event.equals(previousKeys[0]) || event.equals(previousKeys[1]))) {\n eventHandled = this.focusPrevious();\n }\n else if (nextKeys && (event.equals(nextKeys[0]) || event.equals(nextKeys[1]))) {\n eventHandled = this.focusNext();\n }\n else if (event.equals(9 /* KeyCode.Escape */) && this.cancelHasListener) {\n this._onDidCancel.fire();\n }\n else if (event.equals(14 /* KeyCode.Home */)) {\n eventHandled = this.focusFirst();\n }\n else if (event.equals(13 /* KeyCode.End */)) {\n eventHandled = this.focusLast();\n }\n else if (event.equals(2 /* KeyCode.Tab */) && focusedItem instanceof BaseActionViewItem && focusedItem.trapsArrowNavigation) {\n eventHandled = this.focusNext();\n }\n else if (this.isTriggerKeyEvent(event)) {\n // Staying out of the else branch even if not triggered\n if (this._triggerKeys.keyDown) {\n this.doTrigger(event);\n }\n else {\n this.triggerKeyDown = true;\n }\n }\n else {\n eventHandled = false;\n }\n if (eventHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }));\n this._register(DOM.addDisposableListener(this.domNode, DOM.EventType.KEY_UP, e => {\n const event = new StandardKeyboardEvent(e);\n // Run action on Enter/Space\n if (this.isTriggerKeyEvent(event)) {\n if (!this._triggerKeys.keyDown && this.triggerKeyDown) {\n this.triggerKeyDown = false;\n this.doTrigger(event);\n }\n event.preventDefault();\n event.stopPropagation();\n }\n // Recompute focused item\n else if (event.equals(2 /* KeyCode.Tab */) || event.equals(1024 /* KeyMod.Shift */ | 2 /* KeyCode.Tab */) || event.equals(16 /* KeyCode.UpArrow */) || event.equals(18 /* KeyCode.DownArrow */) || event.equals(15 /* KeyCode.LeftArrow */) || event.equals(17 /* KeyCode.RightArrow */)) {\n this.updateFocusedItem();\n }\n }));\n this.focusTracker = this._register(DOM.trackFocus(this.domNode));\n this._register(this.focusTracker.onDidBlur(() => {\n if (DOM.getActiveElement() === this.domNode || !DOM.isAncestor(DOM.getActiveElement(), this.domNode)) {\n this._onDidBlur.fire();\n this.previouslyFocusedItem = this.focusedItem;\n this.focusedItem = undefined;\n this.triggerKeyDown = false;\n }\n }));\n this._register(this.focusTracker.onDidFocus(() => this.updateFocusedItem()));\n this.actionsList = document.createElement('ul');\n this.actionsList.className = 'actions-container';\n if (this.options.highlightToggledItems) {\n this.actionsList.classList.add('highlight-toggled');\n }\n this.actionsList.setAttribute('role', this.options.ariaRole || 'toolbar');\n if (this.options.ariaLabel) {\n this.actionsList.setAttribute('aria-label', this.options.ariaLabel);\n }\n this.domNode.appendChild(this.actionsList);\n container.appendChild(this.domNode);\n }\n refreshRole() {\n if (this.length() >= 1) {\n this.actionsList.setAttribute('role', this.options.ariaRole || 'toolbar');\n }\n else {\n this.actionsList.setAttribute('role', 'presentation');\n }\n }\n // Some action bars should not be focusable at times\n // When an action bar is not focusable make sure to make all the elements inside it not focusable\n // When an action bar is focusable again, make sure the first item can be focused\n setFocusable(focusable) {\n this.focusable = focusable;\n if (this.focusable) {\n const firstEnabled = this.viewItems.find(vi => vi instanceof BaseActionViewItem && vi.isEnabled());\n if (firstEnabled instanceof BaseActionViewItem) {\n firstEnabled.setFocusable(true);\n }\n }\n else {\n this.viewItems.forEach(vi => {\n if (vi instanceof BaseActionViewItem) {\n vi.setFocusable(false);\n }\n });\n }\n }\n isTriggerKeyEvent(event) {\n let ret = false;\n this._triggerKeys.keys.forEach(keyCode => {\n ret = ret || event.equals(keyCode);\n });\n return ret;\n }\n updateFocusedItem() {\n var _a, _b;\n for (let i = 0; i < this.actionsList.children.length; i++) {\n const elem = this.actionsList.children[i];\n if (DOM.isAncestor(DOM.getActiveElement(), elem)) {\n this.focusedItem = i;\n (_b = (_a = this.viewItems[this.focusedItem]) === null || _a === void 0 ? void 0 : _a.showHover) === null || _b === void 0 ? void 0 : _b.call(_a);\n break;\n }\n }\n }\n get context() {\n return this._context;\n }\n set context(context) {\n this._context = context;\n this.viewItems.forEach(i => i.setActionContext(context));\n }\n get actionRunner() {\n return this._actionRunner;\n }\n set actionRunner(actionRunner) {\n this._actionRunner = actionRunner;\n // when setting a new `IActionRunner` make sure to dispose old listeners and\n // start to forward events from the new listener\n this._actionRunnerDisposables.clear();\n this._actionRunnerDisposables.add(this._actionRunner.onDidRun(e => this._onDidRun.fire(e)));\n this._actionRunnerDisposables.add(this._actionRunner.onWillRun(e => this._onWillRun.fire(e)));\n this.viewItems.forEach(item => item.actionRunner = actionRunner);\n }\n getContainer() {\n return this.domNode;\n }\n getAction(indexOrElement) {\n var _a;\n // by index\n if (typeof indexOrElement === 'number') {\n return (_a = this.viewItems[indexOrElement]) === null || _a === void 0 ? void 0 : _a.action;\n }\n // by element\n if (DOM.isHTMLElement(indexOrElement)) {\n while (indexOrElement.parentElement !== this.actionsList) {\n if (!indexOrElement.parentElement) {\n return undefined;\n }\n indexOrElement = indexOrElement.parentElement;\n }\n for (let i = 0; i < this.actionsList.childNodes.length; i++) {\n if (this.actionsList.childNodes[i] === indexOrElement) {\n return this.viewItems[i].action;\n }\n }\n }\n return undefined;\n }\n push(arg, options = {}) {\n const actions = Array.isArray(arg) ? arg : [arg];\n let index = types.isNumber(options.index) ? options.index : null;\n actions.forEach((action) => {\n const actionViewItemElement = document.createElement('li');\n actionViewItemElement.className = 'action-item';\n actionViewItemElement.setAttribute('role', 'presentation');\n let item;\n const viewItemOptions = { hoverDelegate: this._hoverDelegate, ...options };\n if (this.options.actionViewItemProvider) {\n item = this.options.actionViewItemProvider(action, viewItemOptions);\n }\n if (!item) {\n item = new ActionViewItem(this.context, action, viewItemOptions);\n }\n // Prevent native context menu on actions\n if (!this.options.allowContextMenu) {\n this.viewItemDisposables.set(item, DOM.addDisposableListener(actionViewItemElement, DOM.EventType.CONTEXT_MENU, (e) => {\n DOM.EventHelper.stop(e, true);\n }));\n }\n item.actionRunner = this._actionRunner;\n item.setActionContext(this.context);\n item.render(actionViewItemElement);\n if (this.focusable && item instanceof BaseActionViewItem && this.viewItems.length === 0) {\n // We need to allow for the first enabled item to be focused on using tab navigation #106441\n item.setFocusable(true);\n }\n if (index === null || index < 0 || index >= this.actionsList.children.length) {\n this.actionsList.appendChild(actionViewItemElement);\n this.viewItems.push(item);\n }\n else {\n this.actionsList.insertBefore(actionViewItemElement, this.actionsList.children[index]);\n this.viewItems.splice(index, 0, item);\n index++;\n }\n });\n if (typeof this.focusedItem === 'number') {\n // After a clear actions might be re-added to simply toggle some actions. We should preserve focus #97128\n this.focus(this.focusedItem);\n }\n this.refreshRole();\n }\n clear() {\n if (this.isEmpty()) {\n return;\n }\n this.viewItems = dispose(this.viewItems);\n this.viewItemDisposables.clearAndDisposeAll();\n DOM.clearNode(this.actionsList);\n this.refreshRole();\n }\n length() {\n return this.viewItems.length;\n }\n isEmpty() {\n return this.viewItems.length === 0;\n }\n focus(arg) {\n let selectFirst = false;\n let index = undefined;\n if (arg === undefined) {\n selectFirst = true;\n }\n else if (typeof arg === 'number') {\n index = arg;\n }\n else if (typeof arg === 'boolean') {\n selectFirst = arg;\n }\n if (selectFirst && typeof this.focusedItem === 'undefined') {\n const firstEnabled = this.viewItems.findIndex(item => item.isEnabled());\n // Focus the first enabled item\n this.focusedItem = firstEnabled === -1 ? undefined : firstEnabled;\n this.updateFocus(undefined, undefined, true);\n }\n else {\n if (index !== undefined) {\n this.focusedItem = index;\n }\n this.updateFocus(undefined, undefined, true);\n }\n }\n focusFirst() {\n this.focusedItem = this.length() - 1;\n return this.focusNext(true);\n }\n focusLast() {\n this.focusedItem = 0;\n return this.focusPrevious(true);\n }\n focusNext(forceLoop) {\n if (typeof this.focusedItem === 'undefined') {\n this.focusedItem = this.viewItems.length - 1;\n }\n else if (this.viewItems.length <= 1) {\n return false;\n }\n const startIndex = this.focusedItem;\n let item;\n do {\n if (!forceLoop && this.options.preventLoopNavigation && this.focusedItem + 1 >= this.viewItems.length) {\n this.focusedItem = startIndex;\n return false;\n }\n this.focusedItem = (this.focusedItem + 1) % this.viewItems.length;\n item = this.viewItems[this.focusedItem];\n } while (this.focusedItem !== startIndex && ((this.options.focusOnlyEnabledItems && !item.isEnabled()) || item.action.id === Separator.ID));\n this.updateFocus();\n return true;\n }\n focusPrevious(forceLoop) {\n if (typeof this.focusedItem === 'undefined') {\n this.focusedItem = 0;\n }\n else if (this.viewItems.length <= 1) {\n return false;\n }\n const startIndex = this.focusedItem;\n let item;\n do {\n this.focusedItem = this.focusedItem - 1;\n if (this.focusedItem < 0) {\n if (!forceLoop && this.options.preventLoopNavigation) {\n this.focusedItem = startIndex;\n return false;\n }\n this.focusedItem = this.viewItems.length - 1;\n }\n item = this.viewItems[this.focusedItem];\n } while (this.focusedItem !== startIndex && ((this.options.focusOnlyEnabledItems && !item.isEnabled()) || item.action.id === Separator.ID));\n this.updateFocus(true);\n return true;\n }\n updateFocus(fromRight, preventScroll, forceFocus = false) {\n var _a, _b;\n if (typeof this.focusedItem === 'undefined') {\n this.actionsList.focus({ preventScroll });\n }\n if (this.previouslyFocusedItem !== undefined && this.previouslyFocusedItem !== this.focusedItem) {\n (_a = this.viewItems[this.previouslyFocusedItem]) === null || _a === void 0 ? void 0 : _a.blur();\n }\n const actionViewItem = this.focusedItem !== undefined ? this.viewItems[this.focusedItem] : undefined;\n if (actionViewItem) {\n let focusItem = true;\n if (!types.isFunction(actionViewItem.focus)) {\n focusItem = false;\n }\n if (this.options.focusOnlyEnabledItems && types.isFunction(actionViewItem.isEnabled) && !actionViewItem.isEnabled()) {\n focusItem = false;\n }\n if (actionViewItem.action.id === Separator.ID) {\n focusItem = false;\n }\n if (!focusItem) {\n this.actionsList.focus({ preventScroll });\n this.previouslyFocusedItem = undefined;\n }\n else if (forceFocus || this.previouslyFocusedItem !== this.focusedItem) {\n actionViewItem.focus(fromRight);\n this.previouslyFocusedItem = this.focusedItem;\n }\n if (focusItem) {\n (_b = actionViewItem.showHover) === null || _b === void 0 ? void 0 : _b.call(actionViewItem);\n }\n }\n }\n doTrigger(event) {\n if (typeof this.focusedItem === 'undefined') {\n return; //nothing to focus\n }\n // trigger action\n const actionViewItem = this.viewItems[this.focusedItem];\n if (actionViewItem instanceof BaseActionViewItem) {\n const context = (actionViewItem._context === null || actionViewItem._context === undefined) ? event : actionViewItem._context;\n this.run(actionViewItem._action, context);\n }\n }\n async run(action, context) {\n await this._actionRunner.run(action, context);\n }\n dispose() {\n this._context = undefined;\n this.viewItems = dispose(this.viewItems);\n this.getContainer().remove();\n super.dispose();\n }\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 *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport './aria.css';\n// Use a max length since we are inserting the whole msg in the DOM and that can cause browsers to freeze for long messages #94233\nconst MAX_MESSAGE_LENGTH = 20000;\nlet ariaContainer;\nlet alertContainer;\nlet alertContainer2;\nlet statusContainer;\nlet statusContainer2;\nexport function setARIAContainer(parent) {\n ariaContainer = document.createElement('div');\n ariaContainer.className = 'monaco-aria-container';\n const createAlertContainer = () => {\n const element = document.createElement('div');\n element.className = 'monaco-alert';\n element.setAttribute('role', 'alert');\n element.setAttribute('aria-atomic', 'true');\n ariaContainer.appendChild(element);\n return element;\n };\n alertContainer = createAlertContainer();\n alertContainer2 = createAlertContainer();\n const createStatusContainer = () => {\n const element = document.createElement('div');\n element.className = 'monaco-status';\n element.setAttribute('aria-live', 'polite');\n element.setAttribute('aria-atomic', 'true');\n ariaContainer.appendChild(element);\n return element;\n };\n statusContainer = createStatusContainer();\n statusContainer2 = createStatusContainer();\n parent.appendChild(ariaContainer);\n}\n/**\n * Given the provided message, will make sure that it is read as alert to screen readers.\n */\nexport function alert(msg) {\n if (!ariaContainer) {\n return;\n }\n // Use alternate containers such that duplicated messages get read out by screen readers #99466\n if (alertContainer.textContent !== msg) {\n dom.clearNode(alertContainer2);\n insertMessage(alertContainer, msg);\n }\n else {\n dom.clearNode(alertContainer);\n insertMessage(alertContainer2, msg);\n }\n}\n/**\n * Given the provided message, will make sure that it is read as status to screen readers.\n */\nexport function status(msg) {\n if (!ariaContainer) {\n return;\n }\n if (statusContainer.textContent !== msg) {\n dom.clearNode(statusContainer2);\n insertMessage(statusContainer, msg);\n }\n else {\n dom.clearNode(statusContainer);\n insertMessage(statusContainer2, msg);\n }\n}\nfunction insertMessage(target, msg) {\n dom.clearNode(target);\n if (msg.length > MAX_MESSAGE_LENGTH) {\n msg = msg.substr(0, MAX_MESSAGE_LENGTH);\n }\n target.textContent = msg;\n // See https://www.paciellogroup.com/blog/2012/06/html5-accessibility-chops-aria-rolealert-browser-support/\n target.style.visibility = 'hidden';\n target.style.visibility = 'visible';\n}\n","import { addDisposableListener, EventHelper, EventType, reset, trackFocus } from '../../dom.js';\nimport { sanitize } from '../../dompurify/dompurify.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { renderMarkdown, renderStringAsPlaintext } from '../../markdownRenderer.js';\nimport { Gesture, EventType as TouchEventType } from '../../touch.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { renderLabelWithIcons } from '../iconLabel/iconLabels.js';\nimport { Color } from '../../../common/color.js';\nimport { Emitter } from '../../../common/event.js';\nimport { isMarkdownString, markdownStringEqual } from '../../../common/htmlContent.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nimport './button.css';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nexport const unthemedButtonStyles = {\n buttonBackground: '#0E639C',\n buttonHoverBackground: '#006BB3',\n buttonSeparator: Color.white.toString(),\n buttonForeground: Color.white.toString(),\n buttonBorder: undefined,\n buttonSecondaryBackground: undefined,\n buttonSecondaryForeground: undefined,\n buttonSecondaryHoverBackground: undefined\n};\nexport class Button extends Disposable {\n get onDidClick() { return this._onDidClick.event; }\n constructor(container, options) {\n super();\n this._label = '';\n this._onDidClick = this._register(new Emitter());\n this._onDidEscape = this._register(new Emitter());\n this.options = options;\n this._element = document.createElement('a');\n this._element.classList.add('monaco-button');\n this._element.tabIndex = 0;\n this._element.setAttribute('role', 'button');\n this._element.classList.toggle('secondary', !!options.secondary);\n const background = options.secondary ? options.buttonSecondaryBackground : options.buttonBackground;\n const foreground = options.secondary ? options.buttonSecondaryForeground : options.buttonForeground;\n this._element.style.color = foreground || '';\n this._element.style.backgroundColor = background || '';\n if (options.supportShortLabel) {\n this._labelShortElement = document.createElement('div');\n this._labelShortElement.classList.add('monaco-button-label-short');\n this._element.appendChild(this._labelShortElement);\n this._labelElement = document.createElement('div');\n this._labelElement.classList.add('monaco-button-label');\n this._element.appendChild(this._labelElement);\n this._element.classList.add('monaco-text-button-with-short-label');\n }\n if (typeof options.title === 'string') {\n this.setTitle(options.title);\n }\n if (typeof options.ariaLabel === 'string') {\n this._element.setAttribute('aria-label', options.ariaLabel);\n }\n container.appendChild(this._element);\n this._register(Gesture.addTarget(this._element));\n [EventType.CLICK, TouchEventType.Tap].forEach(eventType => {\n this._register(addDisposableListener(this._element, eventType, e => {\n if (!this.enabled) {\n EventHelper.stop(e);\n return;\n }\n this._onDidClick.fire(e);\n }));\n });\n this._register(addDisposableListener(this._element, EventType.KEY_DOWN, e => {\n const event = new StandardKeyboardEvent(e);\n let eventHandled = false;\n if (this.enabled && (event.equals(3 /* KeyCode.Enter */) || event.equals(10 /* KeyCode.Space */))) {\n this._onDidClick.fire(e);\n eventHandled = true;\n }\n else if (event.equals(9 /* KeyCode.Escape */)) {\n this._onDidEscape.fire(e);\n this._element.blur();\n eventHandled = true;\n }\n if (eventHandled) {\n EventHelper.stop(event, true);\n }\n }));\n this._register(addDisposableListener(this._element, EventType.MOUSE_OVER, e => {\n if (!this._element.classList.contains('disabled')) {\n this.updateBackground(true);\n }\n }));\n this._register(addDisposableListener(this._element, EventType.MOUSE_OUT, e => {\n this.updateBackground(false); // restore standard styles\n }));\n // Also set hover background when button is focused for feedback\n this.focusTracker = this._register(trackFocus(this._element));\n this._register(this.focusTracker.onDidFocus(() => { if (this.enabled) {\n this.updateBackground(true);\n } }));\n this._register(this.focusTracker.onDidBlur(() => { if (this.enabled) {\n this.updateBackground(false);\n } }));\n }\n dispose() {\n super.dispose();\n this._element.remove();\n }\n getContentElements(content) {\n const elements = [];\n for (let segment of renderLabelWithIcons(content)) {\n if (typeof (segment) === 'string') {\n segment = segment.trim();\n // Ignore empty segment\n if (segment === '') {\n continue;\n }\n // Convert string segments to nodes\n const node = document.createElement('span');\n node.textContent = segment;\n elements.push(node);\n }\n else {\n elements.push(segment);\n }\n }\n return elements;\n }\n updateBackground(hover) {\n let background;\n if (this.options.secondary) {\n background = hover ? this.options.buttonSecondaryHoverBackground : this.options.buttonSecondaryBackground;\n }\n else {\n background = hover ? this.options.buttonHoverBackground : this.options.buttonBackground;\n }\n if (background) {\n this._element.style.backgroundColor = background;\n }\n }\n get element() {\n return this._element;\n }\n set label(value) {\n var _a;\n if (this._label === value) {\n return;\n }\n if (isMarkdownString(this._label) && isMarkdownString(value) && markdownStringEqual(this._label, value)) {\n return;\n }\n this._element.classList.add('monaco-text-button');\n const labelElement = this.options.supportShortLabel ? this._labelElement : this._element;\n if (isMarkdownString(value)) {\n const rendered = renderMarkdown(value, { inline: true });\n rendered.dispose();\n // Don't include outer `

`\n const root = (_a = rendered.element.querySelector('p')) === null || _a === void 0 ? void 0 : _a.innerHTML;\n if (root) {\n // Only allow a very limited set of inline html tags\n const sanitized = sanitize(root, { ADD_TAGS: ['b', 'i', 'u', 'code', 'span'], ALLOWED_ATTR: ['class'], RETURN_TRUSTED_TYPE: true });\n labelElement.innerHTML = sanitized;\n }\n else {\n reset(labelElement);\n }\n }\n else {\n if (this.options.supportIcons) {\n reset(labelElement, ...this.getContentElements(value));\n }\n else {\n labelElement.textContent = value;\n }\n }\n let title = '';\n if (typeof this.options.title === 'string') {\n title = this.options.title;\n }\n else if (this.options.title) {\n title = renderStringAsPlaintext(value);\n }\n this.setTitle(title);\n if (typeof this.options.ariaLabel === 'string') {\n this._element.setAttribute('aria-label', this.options.ariaLabel);\n }\n else if (this.options.ariaLabel) {\n this._element.setAttribute('aria-label', title);\n }\n this._label = value;\n }\n get label() {\n return this._label;\n }\n set icon(icon) {\n this._element.classList.add(...ThemeIcon.asClassNameArray(icon));\n }\n set enabled(value) {\n if (value) {\n this._element.classList.remove('disabled');\n this._element.setAttribute('aria-disabled', String(false));\n this._element.tabIndex = 0;\n }\n else {\n this._element.classList.add('disabled');\n this._element.setAttribute('aria-disabled', String(true));\n }\n }\n get enabled() {\n return !this._element.classList.contains('disabled');\n }\n setTitle(title) {\n var _a;\n if (!this._hover && title !== '') {\n this._hover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover((_a = this.options.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('mouse'), this._element, title));\n }\n else if (this._hover) {\n this._hover.update(title);\n }\n }\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 *--------------------------------------------------------------------------------------------*/\nimport { BrowserFeatures } from '../../canIUse.js';\nimport * as DOM from '../../dom.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../common/lifecycle.js';\nimport * as platform from '../../../common/platform.js';\nimport { Range } from '../../../common/range.js';\nimport './contextview.css';\nexport function isAnchor(obj) {\n const anchor = obj;\n return !!anchor && typeof anchor.x === 'number' && typeof anchor.y === 'number';\n}\nexport var LayoutAnchorMode;\n(function (LayoutAnchorMode) {\n LayoutAnchorMode[LayoutAnchorMode[\"AVOID\"] = 0] = \"AVOID\";\n LayoutAnchorMode[LayoutAnchorMode[\"ALIGN\"] = 1] = \"ALIGN\";\n})(LayoutAnchorMode || (LayoutAnchorMode = {}));\n/**\n * Lays out a one dimensional view next to an anchor in a viewport.\n *\n * @returns The view offset within the viewport.\n */\nexport function layout(viewportSize, viewSize, anchor) {\n const layoutAfterAnchorBoundary = anchor.mode === LayoutAnchorMode.ALIGN ? anchor.offset : anchor.offset + anchor.size;\n const layoutBeforeAnchorBoundary = anchor.mode === LayoutAnchorMode.ALIGN ? anchor.offset + anchor.size : anchor.offset;\n if (anchor.position === 0 /* LayoutAnchorPosition.Before */) {\n if (viewSize <= viewportSize - layoutAfterAnchorBoundary) {\n return layoutAfterAnchorBoundary; // happy case, lay it out after the anchor\n }\n if (viewSize <= layoutBeforeAnchorBoundary) {\n return layoutBeforeAnchorBoundary - viewSize; // ok case, lay it out before the anchor\n }\n return Math.max(viewportSize - viewSize, 0); // sad case, lay it over the anchor\n }\n else {\n if (viewSize <= layoutBeforeAnchorBoundary) {\n return layoutBeforeAnchorBoundary - viewSize; // happy case, lay it out before the anchor\n }\n if (viewSize <= viewportSize - layoutAfterAnchorBoundary) {\n return layoutAfterAnchorBoundary; // ok case, lay it out after the anchor\n }\n return 0; // sad case, lay it over the anchor\n }\n}\nexport class ContextView extends Disposable {\n constructor(container, domPosition) {\n super();\n this.container = null;\n this.useFixedPosition = false;\n this.useShadowDOM = false;\n this.delegate = null;\n this.toDisposeOnClean = Disposable.None;\n this.toDisposeOnSetContainer = Disposable.None;\n this.shadowRoot = null;\n this.shadowRootHostElement = null;\n this.view = DOM.$('.context-view');\n DOM.hide(this.view);\n this.setContainer(container, domPosition);\n this._register(toDisposable(() => this.setContainer(null, 1 /* ContextViewDOMPosition.ABSOLUTE */)));\n }\n setContainer(container, domPosition) {\n var _a;\n this.useFixedPosition = domPosition !== 1 /* ContextViewDOMPosition.ABSOLUTE */;\n const usedShadowDOM = this.useShadowDOM;\n this.useShadowDOM = domPosition === 3 /* ContextViewDOMPosition.FIXED_SHADOW */;\n if (container === this.container && usedShadowDOM === this.useShadowDOM) {\n return; // container is the same and no shadow DOM usage has changed\n }\n if (this.container) {\n this.toDisposeOnSetContainer.dispose();\n if (this.shadowRoot) {\n this.shadowRoot.removeChild(this.view);\n this.shadowRoot = null;\n (_a = this.shadowRootHostElement) === null || _a === void 0 ? void 0 : _a.remove();\n this.shadowRootHostElement = null;\n }\n else {\n this.container.removeChild(this.view);\n }\n this.container = null;\n }\n if (container) {\n this.container = container;\n if (this.useShadowDOM) {\n this.shadowRootHostElement = DOM.$('.shadow-root-host');\n this.container.appendChild(this.shadowRootHostElement);\n this.shadowRoot = this.shadowRootHostElement.attachShadow({ mode: 'open' });\n const style = document.createElement('style');\n style.textContent = SHADOW_ROOT_CSS;\n this.shadowRoot.appendChild(style);\n this.shadowRoot.appendChild(this.view);\n this.shadowRoot.appendChild(DOM.$('slot'));\n }\n else {\n this.container.appendChild(this.view);\n }\n const toDisposeOnSetContainer = new DisposableStore();\n ContextView.BUBBLE_UP_EVENTS.forEach(event => {\n toDisposeOnSetContainer.add(DOM.addStandardDisposableListener(this.container, event, e => {\n this.onDOMEvent(e, false);\n }));\n });\n ContextView.BUBBLE_DOWN_EVENTS.forEach(event => {\n toDisposeOnSetContainer.add(DOM.addStandardDisposableListener(this.container, event, e => {\n this.onDOMEvent(e, true);\n }, true));\n });\n this.toDisposeOnSetContainer = toDisposeOnSetContainer;\n }\n }\n show(delegate) {\n var _a, _b, _c;\n if (this.isVisible()) {\n this.hide();\n }\n // Show static box\n DOM.clearNode(this.view);\n this.view.className = 'context-view monaco-component';\n this.view.style.top = '0px';\n this.view.style.left = '0px';\n this.view.style.zIndex = `${2575 + ((_a = delegate.layer) !== null && _a !== void 0 ? _a : 0)}`;\n this.view.style.position = this.useFixedPosition ? 'fixed' : 'absolute';\n DOM.show(this.view);\n // Render content\n this.toDisposeOnClean = delegate.render(this.view) || Disposable.None;\n // Set active delegate\n this.delegate = delegate;\n // Layout\n this.doLayout();\n // Focus\n (_c = (_b = this.delegate).focus) === null || _c === void 0 ? void 0 : _c.call(_b);\n }\n getViewElement() {\n return this.view;\n }\n layout() {\n var _a, _b;\n if (!this.isVisible()) {\n return;\n }\n if (this.delegate.canRelayout === false && !(platform.isIOS && BrowserFeatures.pointerEvents)) {\n this.hide();\n return;\n }\n (_b = (_a = this.delegate) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.doLayout();\n }\n doLayout() {\n // Check that we still have a delegate - this.delegate.layout may have hidden\n if (!this.isVisible()) {\n return;\n }\n // Get anchor\n const anchor = this.delegate.getAnchor();\n // Compute around\n let around;\n // Get the element's position and size (to anchor the view)\n if (DOM.isHTMLElement(anchor)) {\n const elementPosition = DOM.getDomNodePagePosition(anchor);\n // In areas where zoom is applied to the element or its ancestors, we need to adjust the size of the element\n // e.g. The title bar has counter zoom behavior meaning it applies the inverse of zoom level.\n // Window Zoom Level: 1.5, Title Bar Zoom: 1/1.5, Size Multiplier: 1.5\n const zoom = DOM.getDomNodeZoomLevel(anchor);\n around = {\n top: elementPosition.top * zoom,\n left: elementPosition.left * zoom,\n width: elementPosition.width * zoom,\n height: elementPosition.height * zoom\n };\n }\n else if (isAnchor(anchor)) {\n around = {\n top: anchor.y,\n left: anchor.x,\n width: anchor.width || 1,\n height: anchor.height || 2\n };\n }\n else {\n around = {\n top: anchor.posy,\n left: anchor.posx,\n // We are about to position the context view where the mouse\n // cursor is. To prevent the view being exactly under the mouse\n // when showing and thus potentially triggering an action within,\n // we treat the mouse location like a small sized block element.\n width: 2,\n height: 2\n };\n }\n const viewSizeWidth = DOM.getTotalWidth(this.view);\n const viewSizeHeight = DOM.getTotalHeight(this.view);\n const anchorPosition = this.delegate.anchorPosition || 0 /* AnchorPosition.BELOW */;\n const anchorAlignment = this.delegate.anchorAlignment || 0 /* AnchorAlignment.LEFT */;\n const anchorAxisAlignment = this.delegate.anchorAxisAlignment || 0 /* AnchorAxisAlignment.VERTICAL */;\n let top;\n let left;\n const activeWindow = DOM.getActiveWindow();\n if (anchorAxisAlignment === 0 /* AnchorAxisAlignment.VERTICAL */) {\n const verticalAnchor = { offset: around.top - activeWindow.pageYOffset, size: around.height, position: anchorPosition === 0 /* AnchorPosition.BELOW */ ? 0 /* LayoutAnchorPosition.Before */ : 1 /* LayoutAnchorPosition.After */ };\n const horizontalAnchor = { offset: around.left, size: around.width, position: anchorAlignment === 0 /* AnchorAlignment.LEFT */ ? 0 /* LayoutAnchorPosition.Before */ : 1 /* LayoutAnchorPosition.After */, mode: LayoutAnchorMode.ALIGN };\n top = layout(activeWindow.innerHeight, viewSizeHeight, verticalAnchor) + activeWindow.pageYOffset;\n // if view intersects vertically with anchor, we must avoid the anchor\n if (Range.intersects({ start: top, end: top + viewSizeHeight }, { start: verticalAnchor.offset, end: verticalAnchor.offset + verticalAnchor.size })) {\n horizontalAnchor.mode = LayoutAnchorMode.AVOID;\n }\n left = layout(activeWindow.innerWidth, viewSizeWidth, horizontalAnchor);\n }\n else {\n const horizontalAnchor = { offset: around.left, size: around.width, position: anchorAlignment === 0 /* AnchorAlignment.LEFT */ ? 0 /* LayoutAnchorPosition.Before */ : 1 /* LayoutAnchorPosition.After */ };\n const verticalAnchor = { offset: around.top, size: around.height, position: anchorPosition === 0 /* AnchorPosition.BELOW */ ? 0 /* LayoutAnchorPosition.Before */ : 1 /* LayoutAnchorPosition.After */, mode: LayoutAnchorMode.ALIGN };\n left = layout(activeWindow.innerWidth, viewSizeWidth, horizontalAnchor);\n // if view intersects horizontally with anchor, we must avoid the anchor\n if (Range.intersects({ start: left, end: left + viewSizeWidth }, { start: horizontalAnchor.offset, end: horizontalAnchor.offset + horizontalAnchor.size })) {\n verticalAnchor.mode = LayoutAnchorMode.AVOID;\n }\n top = layout(activeWindow.innerHeight, viewSizeHeight, verticalAnchor) + activeWindow.pageYOffset;\n }\n this.view.classList.remove('top', 'bottom', 'left', 'right');\n this.view.classList.add(anchorPosition === 0 /* AnchorPosition.BELOW */ ? 'bottom' : 'top');\n this.view.classList.add(anchorAlignment === 0 /* AnchorAlignment.LEFT */ ? 'left' : 'right');\n this.view.classList.toggle('fixed', this.useFixedPosition);\n const containerPosition = DOM.getDomNodePagePosition(this.container);\n this.view.style.top = `${top - (this.useFixedPosition ? DOM.getDomNodePagePosition(this.view).top : containerPosition.top)}px`;\n this.view.style.left = `${left - (this.useFixedPosition ? DOM.getDomNodePagePosition(this.view).left : containerPosition.left)}px`;\n this.view.style.width = 'initial';\n }\n hide(data) {\n const delegate = this.delegate;\n this.delegate = null;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.onHide) {\n delegate.onHide(data);\n }\n this.toDisposeOnClean.dispose();\n DOM.hide(this.view);\n }\n isVisible() {\n return !!this.delegate;\n }\n onDOMEvent(e, onCapture) {\n if (this.delegate) {\n if (this.delegate.onDOMEvent) {\n this.delegate.onDOMEvent(e, DOM.getWindow(e).document.activeElement);\n }\n else if (onCapture && !DOM.isAncestor(e.target, this.container)) {\n this.hide();\n }\n }\n }\n dispose() {\n this.hide();\n super.dispose();\n }\n}\nContextView.BUBBLE_UP_EVENTS = ['click', 'keydown', 'focus', 'blur'];\nContextView.BUBBLE_DOWN_EVENTS = ['click'];\nconst SHADOW_ROOT_CSS = /* css */ `\n\t:host {\n\t\tall: initial; /* 1st rule so subsequent properties are reset. */\n\t}\n\n\t.codicon[class*='codicon-'] {\n\t\tfont: normal normal normal 16px/1 codicon;\n\t\tdisplay: inline-block;\n\t\ttext-decoration: none;\n\t\ttext-rendering: auto;\n\t\ttext-align: center;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tuser-select: none;\n\t\t-webkit-user-select: none;\n\t\t-ms-user-select: none;\n\t}\n\n\t:host {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe WPC\", \"Segoe UI\", \"HelveticaNeue-Light\", system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif;\n\t}\n\n\t:host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }\n\t:host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, \"PingFang SC\", \"Hiragino Sans GB\", sans-serif; }\n\t:host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, \"PingFang TC\", sans-serif; }\n\t:host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, \"Hiragino Kaku Gothic Pro\", sans-serif; }\n\t:host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, \"Nanum Gothic\", \"Apple SD Gothic Neo\", \"AppleGothic\", sans-serif; }\n\n\t:host-context(.windows) { font-family: \"Segoe WPC\", \"Segoe UI\", sans-serif; }\n\t:host-context(.windows:lang(zh-Hans)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Microsoft YaHei\", sans-serif; }\n\t:host-context(.windows:lang(zh-Hant)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Microsoft Jhenghei\", sans-serif; }\n\t:host-context(.windows:lang(ja)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Yu Gothic UI\", \"Meiryo UI\", sans-serif; }\n\t:host-context(.windows:lang(ko)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Malgun Gothic\", \"Dotom\", sans-serif; }\n\n\t:host-context(.linux) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif; }\n\t:host-context(.linux:lang(zh-Hans)) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", \"Source Han Sans SC\", \"Source Han Sans CN\", \"Source Han Sans\", sans-serif; }\n\t:host-context(.linux:lang(zh-Hant)) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", \"Source Han Sans TC\", \"Source Han Sans TW\", \"Source Han Sans\", sans-serif; }\n\t:host-context(.linux:lang(ja)) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", \"Source Han Sans J\", \"Source Han Sans JP\", \"Source Han Sans\", sans-serif; }\n\t:host-context(.linux:lang(ko)) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", \"Source Han Sans K\", \"Source Han Sans JR\", \"Source Han Sans\", \"UnDotum\", \"FBaekmuk Gulim\", sans-serif; }\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 *--------------------------------------------------------------------------------------------*/\nimport { $, append } from '../../dom.js';\nimport { format } from '../../../common/strings.js';\nimport './countBadge.css';\nexport class CountBadge {\n constructor(container, options, styles) {\n this.options = options;\n this.styles = styles;\n this.count = 0;\n this.element = append(container, $('.monaco-count-badge'));\n this.countFormat = this.options.countFormat || '{0}';\n this.titleFormat = this.options.titleFormat || '';\n this.setCount(this.options.count || 0);\n }\n setCount(count) {\n this.count = count;\n this.render();\n }\n setTitleFormat(titleFormat) {\n this.titleFormat = titleFormat;\n this.render();\n }\n render() {\n var _a, _b;\n this.element.textContent = format(this.countFormat, this.count);\n this.element.title = format(this.titleFormat, this.count);\n this.element.style.backgroundColor = (_a = this.styles.badgeBackground) !== null && _a !== void 0 ? _a : '';\n this.element.style.color = (_b = this.styles.badgeForeground) !== null && _b !== void 0 ? _b : '';\n if (this.styles.badgeBorder) {\n this.element.style.border = `1px solid ${this.styles.badgeBorder}`;\n }\n }\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 *--------------------------------------------------------------------------------------------*/\nimport { $, addDisposableListener, append, EventHelper, EventType, isMouseEvent } from '../../dom.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { EventType as GestureEventType, Gesture } from '../../touch.js';\nimport { ActionRunner } from '../../../common/actions.js';\nimport { Emitter } from '../../../common/event.js';\nimport './dropdown.css';\nclass BaseDropdown extends ActionRunner {\n constructor(container, options) {\n super();\n this._onDidChangeVisibility = this._register(new Emitter());\n this.onDidChangeVisibility = this._onDidChangeVisibility.event;\n this._element = append(container, $('.monaco-dropdown'));\n this._label = append(this._element, $('.dropdown-label'));\n let labelRenderer = options.labelRenderer;\n if (!labelRenderer) {\n labelRenderer = (container) => {\n container.textContent = options.label || '';\n return null;\n };\n }\n for (const event of [EventType.CLICK, EventType.MOUSE_DOWN, GestureEventType.Tap]) {\n this._register(addDisposableListener(this.element, event, e => EventHelper.stop(e, true))); // prevent default click behaviour to trigger\n }\n for (const event of [EventType.MOUSE_DOWN, GestureEventType.Tap]) {\n this._register(addDisposableListener(this._label, event, e => {\n if (isMouseEvent(e) && (e.detail > 1 || e.button !== 0)) {\n // prevent right click trigger to allow separate context menu (https://github.com/microsoft/vscode/issues/151064)\n // prevent multiple clicks to open multiple context menus (https://github.com/microsoft/vscode/issues/41363)\n return;\n }\n if (this.visible) {\n this.hide();\n }\n else {\n this.show();\n }\n }));\n }\n this._register(addDisposableListener(this._label, EventType.KEY_UP, e => {\n const event = new StandardKeyboardEvent(e);\n if (event.equals(3 /* KeyCode.Enter */) || event.equals(10 /* KeyCode.Space */)) {\n EventHelper.stop(e, true); // https://github.com/microsoft/vscode/issues/57997\n if (this.visible) {\n this.hide();\n }\n else {\n this.show();\n }\n }\n }));\n const cleanupFn = labelRenderer(this._label);\n if (cleanupFn) {\n this._register(cleanupFn);\n }\n this._register(Gesture.addTarget(this._label));\n }\n get element() {\n return this._element;\n }\n show() {\n if (!this.visible) {\n this.visible = true;\n this._onDidChangeVisibility.fire(true);\n }\n }\n hide() {\n if (this.visible) {\n this.visible = false;\n this._onDidChangeVisibility.fire(false);\n }\n }\n dispose() {\n super.dispose();\n this.hide();\n if (this.boxContainer) {\n this.boxContainer.remove();\n this.boxContainer = undefined;\n }\n if (this.contents) {\n this.contents.remove();\n this.contents = undefined;\n }\n if (this._label) {\n this._label.remove();\n this._label = undefined;\n }\n }\n}\nexport class DropdownMenu extends BaseDropdown {\n constructor(container, _options) {\n super(container, _options);\n this._options = _options;\n this._actions = [];\n this.actions = _options.actions || [];\n }\n set menuOptions(options) {\n this._menuOptions = options;\n }\n get menuOptions() {\n return this._menuOptions;\n }\n get actions() {\n if (this._options.actionProvider) {\n return this._options.actionProvider.getActions();\n }\n return this._actions;\n }\n set actions(actions) {\n this._actions = actions;\n }\n show() {\n super.show();\n this.element.classList.add('active');\n this._options.contextMenuProvider.showContextMenu({\n getAnchor: () => this.element,\n getActions: () => this.actions,\n getActionsContext: () => this.menuOptions ? this.menuOptions.context : null,\n getActionViewItem: (action, options) => this.menuOptions && this.menuOptions.actionViewItemProvider ? this.menuOptions.actionViewItemProvider(action, options) : undefined,\n getKeyBinding: action => this.menuOptions && this.menuOptions.getKeyBinding ? this.menuOptions.getKeyBinding(action) : undefined,\n getMenuClassName: () => this._options.menuClassName || '',\n onHide: () => this.onHide(),\n actionRunner: this.menuOptions ? this.menuOptions.actionRunner : undefined,\n anchorAlignment: this.menuOptions ? this.menuOptions.anchorAlignment : 0 /* AnchorAlignment.LEFT */,\n domForShadowRoot: this._options.menuAsChild ? this.element : undefined,\n skipTelemetry: this._options.skipTelemetry\n });\n }\n hide() {\n super.hide();\n }\n onHide() {\n this.hide();\n this.element.classList.remove('active');\n }\n}\n","import { $, append } from '../../dom.js';\nimport { BaseActionViewItem } from '../actionbar/actionViewItems.js';\nimport { DropdownMenu } from './dropdown.js';\nimport { Emitter } from '../../../common/event.js';\nimport './dropdown.css';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nexport class DropdownMenuActionViewItem extends BaseActionViewItem {\n constructor(action, menuActionsOrProvider, contextMenuProvider, options = Object.create(null)) {\n super(null, action, options);\n this.actionItem = null;\n this._onDidChangeVisibility = this._register(new Emitter());\n this.onDidChangeVisibility = this._onDidChangeVisibility.event;\n this.menuActionsOrProvider = menuActionsOrProvider;\n this.contextMenuProvider = contextMenuProvider;\n this.options = options;\n if (this.options.actionRunner) {\n this.actionRunner = this.options.actionRunner;\n }\n }\n render(container) {\n this.actionItem = container;\n const labelRenderer = (el) => {\n var _a;\n this.element = append(el, $('a.action-label'));\n let classNames = [];\n if (typeof this.options.classNames === 'string') {\n classNames = this.options.classNames.split(/\\s+/g).filter(s => !!s);\n }\n else if (this.options.classNames) {\n classNames = this.options.classNames;\n }\n // todo@aeschli: remove codicon, should come through `this.options.classNames`\n if (!classNames.find(c => c === 'icon')) {\n classNames.push('codicon');\n }\n this.element.classList.add(...classNames);\n this.element.setAttribute('role', 'button');\n this.element.setAttribute('aria-haspopup', 'true');\n this.element.setAttribute('aria-expanded', 'false');\n if (this._action.label) {\n this._register(getBaseLayerHoverDelegate().setupUpdatableHover((_a = this.options.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('mouse'), this.element, this._action.label));\n }\n this.element.ariaLabel = this._action.label || '';\n return null;\n };\n const isActionsArray = Array.isArray(this.menuActionsOrProvider);\n const options = {\n contextMenuProvider: this.contextMenuProvider,\n labelRenderer: labelRenderer,\n menuAsChild: this.options.menuAsChild,\n actions: isActionsArray ? this.menuActionsOrProvider : undefined,\n actionProvider: isActionsArray ? undefined : this.menuActionsOrProvider,\n skipTelemetry: this.options.skipTelemetry\n };\n this.dropdownMenu = this._register(new DropdownMenu(container, options));\n this._register(this.dropdownMenu.onDidChangeVisibility(visible => {\n var _a;\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', `${visible}`);\n this._onDidChangeVisibility.fire(visible);\n }));\n this.dropdownMenu.menuOptions = {\n actionViewItemProvider: this.options.actionViewItemProvider,\n actionRunner: this.actionRunner,\n getKeyBinding: this.options.keybindingProvider,\n context: this._context\n };\n if (this.options.anchorAlignmentProvider) {\n const that = this;\n this.dropdownMenu.menuOptions = {\n ...this.dropdownMenu.menuOptions,\n get anchorAlignment() {\n return that.options.anchorAlignmentProvider();\n }\n };\n }\n this.updateTooltip();\n this.updateEnabled();\n }\n getTooltip() {\n let title = null;\n if (this.action.tooltip) {\n title = this.action.tooltip;\n }\n else if (this.action.label) {\n title = this.action.label;\n }\n return title !== null && title !== void 0 ? title : undefined;\n }\n setActionContext(newContext) {\n super.setActionContext(newContext);\n if (this.dropdownMenu) {\n if (this.dropdownMenu.menuOptions) {\n this.dropdownMenu.menuOptions.context = newContext;\n }\n else {\n this.dropdownMenu.menuOptions = { context: newContext };\n }\n }\n }\n show() {\n var _a;\n (_a = this.dropdownMenu) === null || _a === void 0 ? void 0 : _a.show();\n }\n updateEnabled() {\n var _a, _b;\n const disabled = !this.action.enabled;\n (_a = this.actionItem) === null || _a === void 0 ? void 0 : _a.classList.toggle('disabled', disabled);\n (_b = this.element) === null || _b === void 0 ? void 0 : _b.classList.toggle('disabled', disabled);\n }\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 *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { CaseSensitiveToggle, RegexToggle, WholeWordsToggle } from './findInputToggles.js';\nimport { HistoryInputBox } from '../inputbox/inputBox.js';\nimport { Widget } from '../widget.js';\nimport { Emitter } from '../../../common/event.js';\nimport './findInput.css';\nimport * as nls from '../../../../nls.js';\nimport { DisposableStore, MutableDisposable } from '../../../common/lifecycle.js';\nimport { createInstantHoverDelegate } from '../hover/hoverDelegateFactory.js';\nconst NLS_DEFAULT_LABEL = nls.localize('defaultLabel', \"input\");\nexport class FindInput extends Widget {\n constructor(parent, contextViewProvider, options) {\n super();\n this.fixFocusOnOptionClickEnabled = true;\n this.imeSessionInProgress = false;\n this.additionalTogglesDisposables = this._register(new MutableDisposable());\n this.additionalToggles = [];\n this._onDidOptionChange = this._register(new Emitter());\n this.onDidOptionChange = this._onDidOptionChange.event;\n this._onKeyDown = this._register(new Emitter());\n this.onKeyDown = this._onKeyDown.event;\n this._onMouseDown = this._register(new Emitter());\n this.onMouseDown = this._onMouseDown.event;\n this._onInput = this._register(new Emitter());\n this._onKeyUp = this._register(new Emitter());\n this._onCaseSensitiveKeyDown = this._register(new Emitter());\n this.onCaseSensitiveKeyDown = this._onCaseSensitiveKeyDown.event;\n this._onRegexKeyDown = this._register(new Emitter());\n this.onRegexKeyDown = this._onRegexKeyDown.event;\n this._lastHighlightFindOptions = 0;\n this.placeholder = options.placeholder || '';\n this.validation = options.validation;\n this.label = options.label || NLS_DEFAULT_LABEL;\n this.showCommonFindToggles = !!options.showCommonFindToggles;\n const appendCaseSensitiveLabel = options.appendCaseSensitiveLabel || '';\n const appendWholeWordsLabel = options.appendWholeWordsLabel || '';\n const appendRegexLabel = options.appendRegexLabel || '';\n const history = options.history || [];\n const flexibleHeight = !!options.flexibleHeight;\n const flexibleWidth = !!options.flexibleWidth;\n const flexibleMaxHeight = options.flexibleMaxHeight;\n this.domNode = document.createElement('div');\n this.domNode.classList.add('monaco-findInput');\n this.inputBox = this._register(new HistoryInputBox(this.domNode, contextViewProvider, {\n placeholder: this.placeholder || '',\n ariaLabel: this.label || '',\n validationOptions: {\n validation: this.validation\n },\n history,\n showHistoryHint: options.showHistoryHint,\n flexibleHeight,\n flexibleWidth,\n flexibleMaxHeight,\n inputBoxStyles: options.inputBoxStyles,\n }));\n const hoverDelegate = this._register(createInstantHoverDelegate());\n if (this.showCommonFindToggles) {\n this.regex = this._register(new RegexToggle({\n appendTitle: appendRegexLabel,\n isChecked: false,\n hoverDelegate,\n ...options.toggleStyles\n }));\n this._register(this.regex.onChange(viaKeyboard => {\n this._onDidOptionChange.fire(viaKeyboard);\n if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {\n this.inputBox.focus();\n }\n this.validate();\n }));\n this._register(this.regex.onKeyDown(e => {\n this._onRegexKeyDown.fire(e);\n }));\n this.wholeWords = this._register(new WholeWordsToggle({\n appendTitle: appendWholeWordsLabel,\n isChecked: false,\n hoverDelegate,\n ...options.toggleStyles\n }));\n this._register(this.wholeWords.onChange(viaKeyboard => {\n this._onDidOptionChange.fire(viaKeyboard);\n if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {\n this.inputBox.focus();\n }\n this.validate();\n }));\n this.caseSensitive = this._register(new CaseSensitiveToggle({\n appendTitle: appendCaseSensitiveLabel,\n isChecked: false,\n hoverDelegate,\n ...options.toggleStyles\n }));\n this._register(this.caseSensitive.onChange(viaKeyboard => {\n this._onDidOptionChange.fire(viaKeyboard);\n if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {\n this.inputBox.focus();\n }\n this.validate();\n }));\n this._register(this.caseSensitive.onKeyDown(e => {\n this._onCaseSensitiveKeyDown.fire(e);\n }));\n // Arrow-Key support to navigate between options\n const indexes = [this.caseSensitive.domNode, this.wholeWords.domNode, this.regex.domNode];\n this.onkeydown(this.domNode, (event) => {\n if (event.equals(15 /* KeyCode.LeftArrow */) || event.equals(17 /* KeyCode.RightArrow */) || event.equals(9 /* KeyCode.Escape */)) {\n const index = indexes.indexOf(this.domNode.ownerDocument.activeElement);\n if (index >= 0) {\n let newIndex = -1;\n if (event.equals(17 /* KeyCode.RightArrow */)) {\n newIndex = (index + 1) % indexes.length;\n }\n else if (event.equals(15 /* KeyCode.LeftArrow */)) {\n if (index === 0) {\n newIndex = indexes.length - 1;\n }\n else {\n newIndex = index - 1;\n }\n }\n if (event.equals(9 /* KeyCode.Escape */)) {\n indexes[index].blur();\n this.inputBox.focus();\n }\n else if (newIndex >= 0) {\n indexes[newIndex].focus();\n }\n dom.EventHelper.stop(event, true);\n }\n }\n });\n }\n this.controls = document.createElement('div');\n this.controls.className = 'controls';\n this.controls.style.display = this.showCommonFindToggles ? '' : 'none';\n if (this.caseSensitive) {\n this.controls.append(this.caseSensitive.domNode);\n }\n if (this.wholeWords) {\n this.controls.appendChild(this.wholeWords.domNode);\n }\n if (this.regex) {\n this.controls.appendChild(this.regex.domNode);\n }\n this.setAdditionalToggles(options === null || options === void 0 ? void 0 : options.additionalToggles);\n if (this.controls) {\n this.domNode.appendChild(this.controls);\n }\n parent === null || parent === void 0 ? void 0 : parent.appendChild(this.domNode);\n this._register(dom.addDisposableListener(this.inputBox.inputElement, 'compositionstart', (e) => {\n this.imeSessionInProgress = true;\n }));\n this._register(dom.addDisposableListener(this.inputBox.inputElement, 'compositionend', (e) => {\n this.imeSessionInProgress = false;\n this._onInput.fire();\n }));\n this.onkeydown(this.inputBox.inputElement, (e) => this._onKeyDown.fire(e));\n this.onkeyup(this.inputBox.inputElement, (e) => this._onKeyUp.fire(e));\n this.oninput(this.inputBox.inputElement, (e) => this._onInput.fire());\n this.onmousedown(this.inputBox.inputElement, (e) => this._onMouseDown.fire(e));\n }\n get onDidChange() {\n return this.inputBox.onDidChange;\n }\n layout(style) {\n this.inputBox.layout();\n this.updateInputBoxPadding(style.collapsedFindWidget);\n }\n enable() {\n var _a, _b, _c;\n this.domNode.classList.remove('disabled');\n this.inputBox.enable();\n (_a = this.regex) === null || _a === void 0 ? void 0 : _a.enable();\n (_b = this.wholeWords) === null || _b === void 0 ? void 0 : _b.enable();\n (_c = this.caseSensitive) === null || _c === void 0 ? void 0 : _c.enable();\n for (const toggle of this.additionalToggles) {\n toggle.enable();\n }\n }\n disable() {\n var _a, _b, _c;\n this.domNode.classList.add('disabled');\n this.inputBox.disable();\n (_a = this.regex) === null || _a === void 0 ? void 0 : _a.disable();\n (_b = this.wholeWords) === null || _b === void 0 ? void 0 : _b.disable();\n (_c = this.caseSensitive) === null || _c === void 0 ? void 0 : _c.disable();\n for (const toggle of this.additionalToggles) {\n toggle.disable();\n }\n }\n setFocusInputOnOptionClick(value) {\n this.fixFocusOnOptionClickEnabled = value;\n }\n setEnabled(enabled) {\n if (enabled) {\n this.enable();\n }\n else {\n this.disable();\n }\n }\n setAdditionalToggles(toggles) {\n for (const currentToggle of this.additionalToggles) {\n currentToggle.domNode.remove();\n }\n this.additionalToggles = [];\n this.additionalTogglesDisposables.value = new DisposableStore();\n for (const toggle of toggles !== null && toggles !== void 0 ? toggles : []) {\n this.additionalTogglesDisposables.value.add(toggle);\n this.controls.appendChild(toggle.domNode);\n this.additionalTogglesDisposables.value.add(toggle.onChange(viaKeyboard => {\n this._onDidOptionChange.fire(viaKeyboard);\n if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {\n this.inputBox.focus();\n }\n }));\n this.additionalToggles.push(toggle);\n }\n if (this.additionalToggles.length > 0) {\n this.controls.style.display = '';\n }\n this.updateInputBoxPadding();\n }\n updateInputBoxPadding(controlsHidden = false) {\n var _a, _b, _c, _d, _e, _f;\n if (controlsHidden) {\n this.inputBox.paddingRight = 0;\n }\n else {\n this.inputBox.paddingRight =\n (((_b = (_a = this.caseSensitive) === null || _a === void 0 ? void 0 : _a.width()) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = this.wholeWords) === null || _c === void 0 ? void 0 : _c.width()) !== null && _d !== void 0 ? _d : 0) + ((_f = (_e = this.regex) === null || _e === void 0 ? void 0 : _e.width()) !== null && _f !== void 0 ? _f : 0))\n + this.additionalToggles.reduce((r, t) => r + t.width(), 0);\n }\n }\n getValue() {\n return this.inputBox.value;\n }\n setValue(value) {\n if (this.inputBox.value !== value) {\n this.inputBox.value = value;\n }\n }\n select() {\n this.inputBox.select();\n }\n focus() {\n this.inputBox.focus();\n }\n getCaseSensitive() {\n var _a, _b;\n return (_b = (_a = this.caseSensitive) === null || _a === void 0 ? void 0 : _a.checked) !== null && _b !== void 0 ? _b : false;\n }\n setCaseSensitive(value) {\n if (this.caseSensitive) {\n this.caseSensitive.checked = value;\n }\n }\n getWholeWords() {\n var _a, _b;\n return (_b = (_a = this.wholeWords) === null || _a === void 0 ? void 0 : _a.checked) !== null && _b !== void 0 ? _b : false;\n }\n setWholeWords(value) {\n if (this.wholeWords) {\n this.wholeWords.checked = value;\n }\n }\n getRegex() {\n var _a, _b;\n return (_b = (_a = this.regex) === null || _a === void 0 ? void 0 : _a.checked) !== null && _b !== void 0 ? _b : false;\n }\n setRegex(value) {\n if (this.regex) {\n this.regex.checked = value;\n this.validate();\n }\n }\n focusOnCaseSensitive() {\n var _a;\n (_a = this.caseSensitive) === null || _a === void 0 ? void 0 : _a.focus();\n }\n highlightFindOptions() {\n this.domNode.classList.remove('highlight-' + (this._lastHighlightFindOptions));\n this._lastHighlightFindOptions = 1 - this._lastHighlightFindOptions;\n this.domNode.classList.add('highlight-' + (this._lastHighlightFindOptions));\n }\n validate() {\n this.inputBox.validate();\n }\n showMessage(message) {\n this.inputBox.showMessage(message);\n }\n clearMessage() {\n this.inputBox.hideMessage();\n }\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 *--------------------------------------------------------------------------------------------*/\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { Toggle } from '../toggle/toggle.js';\nimport { Codicon } from '../../../common/codicons.js';\nimport * as nls from '../../../../nls.js';\nconst NLS_CASE_SENSITIVE_TOGGLE_LABEL = nls.localize('caseDescription', \"Match Case\");\nconst NLS_WHOLE_WORD_TOGGLE_LABEL = nls.localize('wordsDescription', \"Match Whole Word\");\nconst NLS_REGEX_TOGGLE_LABEL = nls.localize('regexDescription', \"Use Regular Expression\");\nexport class CaseSensitiveToggle extends Toggle {\n constructor(opts) {\n var _a;\n super({\n icon: Codicon.caseSensitive,\n title: NLS_CASE_SENSITIVE_TOGGLE_LABEL + opts.appendTitle,\n isChecked: opts.isChecked,\n hoverDelegate: (_a = opts.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('element'),\n inputActiveOptionBorder: opts.inputActiveOptionBorder,\n inputActiveOptionForeground: opts.inputActiveOptionForeground,\n inputActiveOptionBackground: opts.inputActiveOptionBackground\n });\n }\n}\nexport class WholeWordsToggle extends Toggle {\n constructor(opts) {\n var _a;\n super({\n icon: Codicon.wholeWord,\n title: NLS_WHOLE_WORD_TOGGLE_LABEL + opts.appendTitle,\n isChecked: opts.isChecked,\n hoverDelegate: (_a = opts.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('element'),\n inputActiveOptionBorder: opts.inputActiveOptionBorder,\n inputActiveOptionForeground: opts.inputActiveOptionForeground,\n inputActiveOptionBackground: opts.inputActiveOptionBackground\n });\n }\n}\nexport class RegexToggle extends Toggle {\n constructor(opts) {\n var _a;\n super({\n icon: Codicon.regex,\n title: NLS_REGEX_TOGGLE_LABEL + opts.appendTitle,\n isChecked: opts.isChecked,\n hoverDelegate: (_a = opts.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('element'),\n inputActiveOptionBorder: opts.inputActiveOptionBorder,\n inputActiveOptionForeground: opts.inputActiveOptionForeground,\n inputActiveOptionBackground: opts.inputActiveOptionBackground\n });\n }\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 *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { Toggle } from '../toggle/toggle.js';\nimport { HistoryInputBox } from '../inputbox/inputBox.js';\nimport { Widget } from '../widget.js';\nimport { Codicon } from '../../../common/codicons.js';\nimport { Emitter } from '../../../common/event.js';\nimport './findInput.css';\nimport * as nls from '../../../../nls.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nconst NLS_DEFAULT_LABEL = nls.localize('defaultLabel', \"input\");\nconst NLS_PRESERVE_CASE_LABEL = nls.localize('label.preserveCaseToggle', \"Preserve Case\");\nclass PreserveCaseToggle extends Toggle {\n constructor(opts) {\n var _a;\n super({\n // TODO: does this need its own icon?\n icon: Codicon.preserveCase,\n title: NLS_PRESERVE_CASE_LABEL + opts.appendTitle,\n isChecked: opts.isChecked,\n hoverDelegate: (_a = opts.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('element'),\n inputActiveOptionBorder: opts.inputActiveOptionBorder,\n inputActiveOptionForeground: opts.inputActiveOptionForeground,\n inputActiveOptionBackground: opts.inputActiveOptionBackground,\n });\n }\n}\nexport class ReplaceInput extends Widget {\n constructor(parent, contextViewProvider, _showOptionButtons, options) {\n super();\n this._showOptionButtons = _showOptionButtons;\n this.fixFocusOnOptionClickEnabled = true;\n this.cachedOptionsWidth = 0;\n this._onDidOptionChange = this._register(new Emitter());\n this.onDidOptionChange = this._onDidOptionChange.event;\n this._onKeyDown = this._register(new Emitter());\n this.onKeyDown = this._onKeyDown.event;\n this._onMouseDown = this._register(new Emitter());\n this._onInput = this._register(new Emitter());\n this._onKeyUp = this._register(new Emitter());\n this._onPreserveCaseKeyDown = this._register(new Emitter());\n this.onPreserveCaseKeyDown = this._onPreserveCaseKeyDown.event;\n this.contextViewProvider = contextViewProvider;\n this.placeholder = options.placeholder || '';\n this.validation = options.validation;\n this.label = options.label || NLS_DEFAULT_LABEL;\n const appendPreserveCaseLabel = options.appendPreserveCaseLabel || '';\n const history = options.history || [];\n const flexibleHeight = !!options.flexibleHeight;\n const flexibleWidth = !!options.flexibleWidth;\n const flexibleMaxHeight = options.flexibleMaxHeight;\n this.domNode = document.createElement('div');\n this.domNode.classList.add('monaco-findInput');\n this.inputBox = this._register(new HistoryInputBox(this.domNode, this.contextViewProvider, {\n ariaLabel: this.label || '',\n placeholder: this.placeholder || '',\n validationOptions: {\n validation: this.validation\n },\n history,\n showHistoryHint: options.showHistoryHint,\n flexibleHeight,\n flexibleWidth,\n flexibleMaxHeight,\n inputBoxStyles: options.inputBoxStyles\n }));\n this.preserveCase = this._register(new PreserveCaseToggle({\n appendTitle: appendPreserveCaseLabel,\n isChecked: false,\n ...options.toggleStyles\n }));\n this._register(this.preserveCase.onChange(viaKeyboard => {\n this._onDidOptionChange.fire(viaKeyboard);\n if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {\n this.inputBox.focus();\n }\n this.validate();\n }));\n this._register(this.preserveCase.onKeyDown(e => {\n this._onPreserveCaseKeyDown.fire(e);\n }));\n if (this._showOptionButtons) {\n this.cachedOptionsWidth = this.preserveCase.width();\n }\n else {\n this.cachedOptionsWidth = 0;\n }\n // Arrow-Key support to navigate between options\n const indexes = [this.preserveCase.domNode];\n this.onkeydown(this.domNode, (event) => {\n if (event.equals(15 /* KeyCode.LeftArrow */) || event.equals(17 /* KeyCode.RightArrow */) || event.equals(9 /* KeyCode.Escape */)) {\n const index = indexes.indexOf(this.domNode.ownerDocument.activeElement);\n if (index >= 0) {\n let newIndex = -1;\n if (event.equals(17 /* KeyCode.RightArrow */)) {\n newIndex = (index + 1) % indexes.length;\n }\n else if (event.equals(15 /* KeyCode.LeftArrow */)) {\n if (index === 0) {\n newIndex = indexes.length - 1;\n }\n else {\n newIndex = index - 1;\n }\n }\n if (event.equals(9 /* KeyCode.Escape */)) {\n indexes[index].blur();\n this.inputBox.focus();\n }\n else if (newIndex >= 0) {\n indexes[newIndex].focus();\n }\n dom.EventHelper.stop(event, true);\n }\n }\n });\n const controls = document.createElement('div');\n controls.className = 'controls';\n controls.style.display = this._showOptionButtons ? 'block' : 'none';\n controls.appendChild(this.preserveCase.domNode);\n this.domNode.appendChild(controls);\n parent === null || parent === void 0 ? void 0 : parent.appendChild(this.domNode);\n this.onkeydown(this.inputBox.inputElement, (e) => this._onKeyDown.fire(e));\n this.onkeyup(this.inputBox.inputElement, (e) => this._onKeyUp.fire(e));\n this.oninput(this.inputBox.inputElement, (e) => this._onInput.fire());\n this.onmousedown(this.inputBox.inputElement, (e) => this._onMouseDown.fire(e));\n }\n enable() {\n this.domNode.classList.remove('disabled');\n this.inputBox.enable();\n this.preserveCase.enable();\n }\n disable() {\n this.domNode.classList.add('disabled');\n this.inputBox.disable();\n this.preserveCase.disable();\n }\n setEnabled(enabled) {\n if (enabled) {\n this.enable();\n }\n else {\n this.disable();\n }\n }\n select() {\n this.inputBox.select();\n }\n focus() {\n this.inputBox.focus();\n }\n getPreserveCase() {\n return this.preserveCase.checked;\n }\n setPreserveCase(value) {\n this.preserveCase.checked = value;\n }\n focusOnPreserve() {\n this.preserveCase.focus();\n }\n validate() {\n var _a;\n (_a = this.inputBox) === null || _a === void 0 ? void 0 : _a.validate();\n }\n set width(newWidth) {\n this.inputBox.paddingRight = this.cachedOptionsWidth;\n this.domNode.style.width = newWidth + 'px';\n }\n dispose() {\n super.dispose();\n }\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 *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { renderLabelWithIcons } from '../iconLabel/iconLabels.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport * as objects from '../../../common/objects.js';\n/**\n * A widget which can render a label with substring highlights, often\n * originating from a filter function like the fuzzy matcher.\n */\nexport class HighlightedLabel extends Disposable {\n /**\n * Create a new {@link HighlightedLabel}.\n *\n * @param container The parent container to append to.\n */\n constructor(container, options) {\n var _a;\n super();\n this.options = options;\n this.text = '';\n this.title = '';\n this.highlights = [];\n this.didEverRender = false;\n this.supportIcons = (_a = options === null || options === void 0 ? void 0 : options.supportIcons) !== null && _a !== void 0 ? _a : false;\n this.domNode = dom.append(container, dom.$('span.monaco-highlighted-label'));\n }\n /**\n * The label's DOM node.\n */\n get element() {\n return this.domNode;\n }\n /**\n * Set the label and highlights.\n *\n * @param text The label to display.\n * @param highlights The ranges to highlight.\n * @param title An optional title for the hover tooltip.\n * @param escapeNewLines Whether to escape new lines.\n * @returns\n */\n set(text, highlights = [], title = '', escapeNewLines) {\n if (!text) {\n text = '';\n }\n if (escapeNewLines) {\n // adjusts highlights inplace\n text = HighlightedLabel.escapeNewLines(text, highlights);\n }\n if (this.didEverRender && this.text === text && this.title === title && objects.equals(this.highlights, highlights)) {\n return;\n }\n this.text = text;\n this.title = title;\n this.highlights = highlights;\n this.render();\n }\n render() {\n var _a, _b, _c, _d;\n const children = [];\n let pos = 0;\n for (const highlight of this.highlights) {\n if (highlight.end === highlight.start) {\n continue;\n }\n if (pos < highlight.start) {\n const substring = this.text.substring(pos, highlight.start);\n if (this.supportIcons) {\n children.push(...renderLabelWithIcons(substring));\n }\n else {\n children.push(substring);\n }\n pos = highlight.start;\n }\n const substring = this.text.substring(pos, highlight.end);\n const element = dom.$('span.highlight', undefined, ...this.supportIcons ? renderLabelWithIcons(substring) : [substring]);\n if (highlight.extraClasses) {\n element.classList.add(...highlight.extraClasses);\n }\n children.push(element);\n pos = highlight.end;\n }\n if (pos < this.text.length) {\n const substring = this.text.substring(pos);\n if (this.supportIcons) {\n children.push(...renderLabelWithIcons(substring));\n }\n else {\n children.push(substring);\n }\n }\n dom.reset(this.domNode, ...children);\n if ((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.hoverDelegate) === null || _b === void 0 ? void 0 : _b.showNativeHover) {\n /* While custom hover is not inside custom hover */\n this.domNode.title = this.title;\n }\n else {\n if (!this.customHover && this.title !== '') {\n const hoverDelegate = (_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.hoverDelegate) !== null && _d !== void 0 ? _d : getDefaultHoverDelegate('mouse');\n this.customHover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover(hoverDelegate, this.domNode, this.title));\n }\n else if (this.customHover) {\n this.customHover.update(this.title);\n }\n }\n this.didEverRender = true;\n }\n static escapeNewLines(text, highlights) {\n let total = 0;\n let extra = 0;\n return text.replace(/\\r\\n|\\r|\\n/g, (match, offset) => {\n extra = match === '\\r\\n' ? -1 : 0;\n offset += total;\n for (const highlight of highlights) {\n if (highlight.end <= offset) {\n continue;\n }\n if (highlight.start >= offset) {\n highlight.start += extra;\n }\n if (highlight.end >= offset) {\n highlight.end += extra;\n }\n }\n total += extra;\n return '\\u23CE';\n });\n }\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 *--------------------------------------------------------------------------------------------*/\nlet baseHoverDelegate = {\n showHover: () => undefined,\n hideHover: () => undefined,\n showAndFocusLastHover: () => undefined,\n setupUpdatableHover: () => null,\n triggerUpdatableHover: () => undefined\n};\n/**\n * Sets the hover delegate for use **only in the `base/` layer**.\n */\nexport function setBaseLayerHoverDelegate(hoverDelegate) {\n baseHoverDelegate = hoverDelegate;\n}\n/**\n * Gets the hover delegate for use **only in the `base/` layer**.\n *\n * Since the hover service depends on various platform services, this delegate essentially bypasses\n * the standard dependency injection mechanism by injecting a global hover service at start up. The\n * only reason this should be used is if `IHoverService` is not available.\n */\nexport function getBaseLayerHoverDelegate() {\n return baseHoverDelegate;\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 *--------------------------------------------------------------------------------------------*/\nimport { Lazy } from '../../../common/lazy.js';\nconst nullHoverDelegateFactory = () => ({\n get delay() { return -1; },\n dispose: () => { },\n showHover: () => { return undefined; },\n});\nlet hoverDelegateFactory = nullHoverDelegateFactory;\nconst defaultHoverDelegateMouse = new Lazy(() => hoverDelegateFactory('mouse', false));\nconst defaultHoverDelegateElement = new Lazy(() => hoverDelegateFactory('element', false));\n// TODO: Remove when getDefaultHoverDelegate is no longer used\nexport function setHoverDelegateFactory(hoverDelegateProvider) {\n hoverDelegateFactory = hoverDelegateProvider;\n}\n// TODO: Refine type for use in new IHoverService interface\nexport function getDefaultHoverDelegate(placement) {\n if (placement === 'element') {\n return defaultHoverDelegateElement.value;\n }\n return defaultHoverDelegateMouse.value;\n}\n// TODO: Create equivalent in IHoverService\nexport function createInstantHoverDelegate() {\n // Creates a hover delegate with instant hover enabled.\n // This hover belongs to the consumer and requires the them to dispose it.\n // Instant hover only makes sense for 'element' placement.\n return hoverDelegateFactory('element', true);\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 *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { DomScrollableElement } from '../scrollbar/scrollableElement.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport './hoverWidget.css';\nimport { localize } from '../../../../nls.js';\nconst $ = dom.$;\nexport class HoverWidget extends Disposable {\n constructor() {\n super();\n this.containerDomNode = document.createElement('div');\n this.containerDomNode.className = 'monaco-hover';\n this.containerDomNode.tabIndex = 0;\n this.containerDomNode.setAttribute('role', 'tooltip');\n this.contentsDomNode = document.createElement('div');\n this.contentsDomNode.className = 'monaco-hover-content';\n this.scrollbar = this._register(new DomScrollableElement(this.contentsDomNode, {\n consumeMouseWheelIfScrollbarIsNeeded: true\n }));\n this.containerDomNode.appendChild(this.scrollbar.getDomNode());\n }\n onContentsChanged() {\n this.scrollbar.scanDomNode();\n }\n}\nexport class HoverAction extends Disposable {\n static render(parent, actionOptions, keybindingLabel) {\n return new HoverAction(parent, actionOptions, keybindingLabel);\n }\n constructor(parent, actionOptions, keybindingLabel) {\n super();\n this.actionContainer = dom.append(parent, $('div.action-container'));\n this.actionContainer.setAttribute('tabindex', '0');\n this.action = dom.append(this.actionContainer, $('a.action'));\n this.action.setAttribute('role', 'button');\n if (actionOptions.iconClass) {\n dom.append(this.action, $(`span.icon.${actionOptions.iconClass}`));\n }\n const label = dom.append(this.action, $('span'));\n label.textContent = keybindingLabel ? `${actionOptions.label} (${keybindingLabel})` : actionOptions.label;\n this._store.add(new ClickAction(this.actionContainer, actionOptions.run));\n this._store.add(new KeyDownAction(this.actionContainer, actionOptions.run, [3 /* KeyCode.Enter */, 10 /* KeyCode.Space */]));\n this.setEnabled(true);\n }\n setEnabled(enabled) {\n if (enabled) {\n this.actionContainer.classList.remove('disabled');\n this.actionContainer.removeAttribute('aria-disabled');\n }\n else {\n this.actionContainer.classList.add('disabled');\n this.actionContainer.setAttribute('aria-disabled', 'true');\n }\n }\n}\nexport function getHoverAccessibleViewHint(shouldHaveHint, keybinding) {\n return shouldHaveHint && keybinding ? localize('acessibleViewHint', \"Inspect this in the accessible view with {0}.\", keybinding) : shouldHaveHint ? localize('acessibleViewHintNoKbOpen', \"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding.\") : '';\n}\nexport class ClickAction extends Disposable {\n constructor(container, run) {\n super();\n this._register(dom.addDisposableListener(container, dom.EventType.CLICK, e => {\n e.stopPropagation();\n e.preventDefault();\n run(container);\n }));\n }\n}\nexport class KeyDownAction extends Disposable {\n constructor(container, run, keyCodes) {\n super();\n this._register(dom.addDisposableListener(container, dom.EventType.KEY_DOWN, e => {\n const event = new StandardKeyboardEvent(e);\n if (keyCodes.some(keyCode => event.equals(keyCode))) {\n e.stopPropagation();\n e.preventDefault();\n run(container);\n }\n }));\n }\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 *--------------------------------------------------------------------------------------------*/\nimport './iconlabel.css';\nimport * as dom from '../../dom.js';\nimport { HighlightedLabel } from '../highlightedlabel/highlightedLabel.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport { equals } from '../../../common/objects.js';\nimport { Range } from '../../../common/range.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nimport { isString } from '../../../common/types.js';\nimport { stripIcons } from '../../../common/iconLabels.js';\nclass FastLabelNode {\n constructor(_element) {\n this._element = _element;\n }\n get element() {\n return this._element;\n }\n set textContent(content) {\n if (this.disposed || content === this._textContent) {\n return;\n }\n this._textContent = content;\n this._element.textContent = content;\n }\n set className(className) {\n if (this.disposed || className === this._className) {\n return;\n }\n this._className = className;\n this._element.className = className;\n }\n set empty(empty) {\n if (this.disposed || empty === this._empty) {\n return;\n }\n this._empty = empty;\n this._element.style.marginLeft = empty ? '0' : '';\n }\n dispose() {\n this.disposed = true;\n }\n}\nexport class IconLabel extends Disposable {\n constructor(container, options) {\n var _a;\n super();\n this.customHovers = new Map();\n this.creationOptions = options;\n this.domNode = this._register(new FastLabelNode(dom.append(container, dom.$('.monaco-icon-label'))));\n this.labelContainer = dom.append(this.domNode.element, dom.$('.monaco-icon-label-container'));\n this.nameContainer = dom.append(this.labelContainer, dom.$('span.monaco-icon-name-container'));\n if ((options === null || options === void 0 ? void 0 : options.supportHighlights) || (options === null || options === void 0 ? void 0 : options.supportIcons)) {\n this.nameNode = this._register(new LabelWithHighlights(this.nameContainer, !!options.supportIcons));\n }\n else {\n this.nameNode = new Label(this.nameContainer);\n }\n this.hoverDelegate = (_a = options === null || options === void 0 ? void 0 : options.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('mouse');\n }\n get element() {\n return this.domNode.element;\n }\n setLabel(label, description, options) {\n var _a;\n const labelClasses = ['monaco-icon-label'];\n const containerClasses = ['monaco-icon-label-container'];\n let ariaLabel = '';\n if (options) {\n if (options.extraClasses) {\n labelClasses.push(...options.extraClasses);\n }\n if (options.italic) {\n labelClasses.push('italic');\n }\n if (options.strikethrough) {\n labelClasses.push('strikethrough');\n }\n if (options.disabledCommand) {\n containerClasses.push('disabled');\n }\n if (options.title) {\n if (typeof options.title === 'string') {\n ariaLabel += options.title;\n }\n else {\n ariaLabel += label;\n }\n }\n }\n const existingIconNode = this.domNode.element.querySelector('.monaco-icon-label-iconpath');\n if (options === null || options === void 0 ? void 0 : options.iconPath) {\n let iconNode;\n if (!existingIconNode || !(dom.isHTMLElement(existingIconNode))) {\n iconNode = dom.$('.monaco-icon-label-iconpath');\n this.domNode.element.prepend(iconNode);\n }\n else {\n iconNode = existingIconNode;\n }\n iconNode.style.backgroundImage = dom.asCSSUrl(options === null || options === void 0 ? void 0 : options.iconPath);\n }\n else if (existingIconNode) {\n existingIconNode.remove();\n }\n this.domNode.className = labelClasses.join(' ');\n this.domNode.element.setAttribute('aria-label', ariaLabel);\n this.labelContainer.className = containerClasses.join(' ');\n this.setupHover((options === null || options === void 0 ? void 0 : options.descriptionTitle) ? this.labelContainer : this.element, options === null || options === void 0 ? void 0 : options.title);\n this.nameNode.setLabel(label, options);\n if (description || this.descriptionNode) {\n const descriptionNode = this.getOrCreateDescriptionNode();\n if (descriptionNode instanceof HighlightedLabel) {\n descriptionNode.set(description || '', options ? options.descriptionMatches : undefined, undefined, options === null || options === void 0 ? void 0 : options.labelEscapeNewLines);\n this.setupHover(descriptionNode.element, options === null || options === void 0 ? void 0 : options.descriptionTitle);\n }\n else {\n descriptionNode.textContent = description && (options === null || options === void 0 ? void 0 : options.labelEscapeNewLines) ? HighlightedLabel.escapeNewLines(description, []) : (description || '');\n this.setupHover(descriptionNode.element, (options === null || options === void 0 ? void 0 : options.descriptionTitle) || '');\n descriptionNode.empty = !description;\n }\n }\n if ((options === null || options === void 0 ? void 0 : options.suffix) || this.suffixNode) {\n const suffixNode = this.getOrCreateSuffixNode();\n suffixNode.textContent = (_a = options === null || options === void 0 ? void 0 : options.suffix) !== null && _a !== void 0 ? _a : '';\n }\n }\n setupHover(htmlElement, tooltip) {\n const previousCustomHover = this.customHovers.get(htmlElement);\n if (previousCustomHover) {\n previousCustomHover.dispose();\n this.customHovers.delete(htmlElement);\n }\n if (!tooltip) {\n htmlElement.removeAttribute('title');\n return;\n }\n if (this.hoverDelegate.showNativeHover) {\n function setupNativeHover(htmlElement, tooltip) {\n if (isString(tooltip)) {\n // Icons don't render in the native hover so we strip them out\n htmlElement.title = stripIcons(tooltip);\n }\n else if (tooltip === null || tooltip === void 0 ? void 0 : tooltip.markdownNotSupportedFallback) {\n htmlElement.title = tooltip.markdownNotSupportedFallback;\n }\n else {\n htmlElement.removeAttribute('title');\n }\n }\n setupNativeHover(htmlElement, tooltip);\n }\n else {\n const hoverDisposable = getBaseLayerHoverDelegate().setupUpdatableHover(this.hoverDelegate, htmlElement, tooltip);\n if (hoverDisposable) {\n this.customHovers.set(htmlElement, hoverDisposable);\n }\n }\n }\n dispose() {\n super.dispose();\n for (const disposable of this.customHovers.values()) {\n disposable.dispose();\n }\n this.customHovers.clear();\n }\n getOrCreateSuffixNode() {\n if (!this.suffixNode) {\n const suffixContainer = this._register(new FastLabelNode(dom.after(this.nameContainer, dom.$('span.monaco-icon-suffix-container'))));\n this.suffixNode = this._register(new FastLabelNode(dom.append(suffixContainer.element, dom.$('span.label-suffix'))));\n }\n return this.suffixNode;\n }\n getOrCreateDescriptionNode() {\n var _a;\n if (!this.descriptionNode) {\n const descriptionContainer = this._register(new FastLabelNode(dom.append(this.labelContainer, dom.$('span.monaco-icon-description-container'))));\n if ((_a = this.creationOptions) === null || _a === void 0 ? void 0 : _a.supportDescriptionHighlights) {\n this.descriptionNode = this._register(new HighlightedLabel(dom.append(descriptionContainer.element, dom.$('span.label-description')), { supportIcons: !!this.creationOptions.supportIcons }));\n }\n else {\n this.descriptionNode = this._register(new FastLabelNode(dom.append(descriptionContainer.element, dom.$('span.label-description'))));\n }\n }\n return this.descriptionNode;\n }\n}\nclass Label {\n constructor(container) {\n this.container = container;\n this.label = undefined;\n this.singleLabel = undefined;\n }\n setLabel(label, options) {\n if (this.label === label && equals(this.options, options)) {\n return;\n }\n this.label = label;\n this.options = options;\n if (typeof label === 'string') {\n if (!this.singleLabel) {\n this.container.innerText = '';\n this.container.classList.remove('multiple');\n this.singleLabel = dom.append(this.container, dom.$('a.label-name', { id: options === null || options === void 0 ? void 0 : options.domId }));\n }\n this.singleLabel.textContent = label;\n }\n else {\n this.container.innerText = '';\n this.container.classList.add('multiple');\n this.singleLabel = undefined;\n for (let i = 0; i < label.length; i++) {\n const l = label[i];\n const id = (options === null || options === void 0 ? void 0 : options.domId) && `${options === null || options === void 0 ? void 0 : options.domId}_${i}`;\n dom.append(this.container, dom.$('a.label-name', { id, 'data-icon-label-count': label.length, 'data-icon-label-index': i, 'role': 'treeitem' }, l));\n if (i < label.length - 1) {\n dom.append(this.container, dom.$('span.label-separator', undefined, (options === null || options === void 0 ? void 0 : options.separator) || '/'));\n }\n }\n }\n }\n}\nfunction splitMatches(labels, separator, matches) {\n if (!matches) {\n return undefined;\n }\n let labelStart = 0;\n return labels.map(label => {\n const labelRange = { start: labelStart, end: labelStart + label.length };\n const result = matches\n .map(match => Range.intersect(labelRange, match))\n .filter(range => !Range.isEmpty(range))\n .map(({ start, end }) => ({ start: start - labelStart, end: end - labelStart }));\n labelStart = labelRange.end + separator.length;\n return result;\n });\n}\nclass LabelWithHighlights extends Disposable {\n constructor(container, supportIcons) {\n super();\n this.container = container;\n this.supportIcons = supportIcons;\n this.label = undefined;\n this.singleLabel = undefined;\n }\n setLabel(label, options) {\n if (this.label === label && equals(this.options, options)) {\n return;\n }\n this.label = label;\n this.options = options;\n if (typeof label === 'string') {\n if (!this.singleLabel) {\n this.container.innerText = '';\n this.container.classList.remove('multiple');\n this.singleLabel = this._register(new HighlightedLabel(dom.append(this.container, dom.$('a.label-name', { id: options === null || options === void 0 ? void 0 : options.domId })), { supportIcons: this.supportIcons }));\n }\n this.singleLabel.set(label, options === null || options === void 0 ? void 0 : options.matches, undefined, options === null || options === void 0 ? void 0 : options.labelEscapeNewLines);\n }\n else {\n this.container.innerText = '';\n this.container.classList.add('multiple');\n this.singleLabel = undefined;\n const separator = (options === null || options === void 0 ? void 0 : options.separator) || '/';\n const matches = splitMatches(label, separator, options === null || options === void 0 ? void 0 : options.matches);\n for (let i = 0; i < label.length; i++) {\n const l = label[i];\n const m = matches ? matches[i] : undefined;\n const id = (options === null || options === void 0 ? void 0 : options.domId) && `${options === null || options === void 0 ? void 0 : options.domId}_${i}`;\n const name = dom.$('a.label-name', { id, 'data-icon-label-count': label.length, 'data-icon-label-index': i, 'role': 'treeitem' });\n const highlightedLabel = this._register(new HighlightedLabel(dom.append(this.container, name), { supportIcons: this.supportIcons }));\n highlightedLabel.set(l, m, undefined, options === null || options === void 0 ? void 0 : options.labelEscapeNewLines);\n if (i < label.length - 1) {\n dom.append(name, dom.$('span.label-separator', undefined, separator));\n }\n }\n }\n }\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 *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nconst labelWithIconsRegex = new RegExp(`(\\\\\\\\)?\\\\$\\\\((${ThemeIcon.iconNameExpression}(?:${ThemeIcon.iconModifierExpression})?)\\\\)`, 'g');\nexport function renderLabelWithIcons(text) {\n const elements = new Array();\n let match;\n let textStart = 0, textStop = 0;\n while ((match = labelWithIconsRegex.exec(text)) !== null) {\n textStop = match.index || 0;\n if (textStart < textStop) {\n elements.push(text.substring(textStart, textStop));\n }\n textStart = (match.index || 0) + match[0].length;\n const [, escaped, codicon] = match;\n elements.push(escaped ? `$(${codicon})` : renderIcon({ id: codicon }));\n }\n if (textStart < text.length) {\n elements.push(text.substring(textStart));\n }\n return elements;\n}\nexport function renderIcon(icon) {\n const node = dom.$(`span`);\n node.classList.add(...ThemeIcon.asClassNameArray(icon));\n return node;\n}\n"],"names":["createTrustedTypesPolicy","policyName","policyOptions","_a","monacoEnvironment","globalThis","MonacoEnvironment","err","createPolicy","BaseActionViewItem","action","this","_action","constructor","context","options","super","_context","_register","onDidChange","event","element","handleActionChangeEvent","undefined","enabled","updateEnabled","checked","updateChecked","class","updateClass","label","updateLabel","updateTooltip","tooltip","actionRunner","_actionRunner","isEnabled","setActionContext","newContext","render","container","enableDragging","draggable","e","dataTransfer","setData","onClick","button","classList","add","ctrlKey","isMenu","forEach","remove","preserveFocus","useEventAsContext","run","focus","tabIndex","blur","setFocusable","focusable","trapsArrowNavigation","getClass","getTooltip","_b","_c","title","updateAriaLabel","hoverDelegate","showNativeHover","customHover","update","_store","setupUpdatableHover","setAttribute","dispose","ActionViewItem","icon","cssClass","document","createElement","getDefaultAriaRole","appendChild","keybinding","kbLabel","textContent","id","key","comment","split","removeAttribute","toggle","SelectActionViewItem","ctx","selected","contextViewProvider","styles","selectBoxOptions","selectBox","registerListeners","select","index","onDidSelect","runAction","option","getActionContext","ActionBar","_d","_e","_f","_g","previousKeys","nextKeys","_actionRunnerDisposables","viewItemDisposables","triggerKeyDown","_onDidBlur","onDidBlur","_onDidCancel","onWillAddFirstListener","cancelHasListener","onDidCancel","_onDidRun","onDidRun","_onWillRun","onWillRun","_orientation","orientation","_triggerKeys","keyDown","triggerKeys","keys","_hoverDelegate","fire","viewItems","focusedItem","domNode","className","eventHandled","equals","focusPrevious","focusNext","focusFirst","focusLast","isTriggerKeyEvent","doTrigger","preventDefault","stopPropagation","updateFocusedItem","focusTracker","previouslyFocusedItem","onDidFocus","actionsList","highlightToggledItems","ariaRole","ariaLabel","refreshRole","length","firstEnabled","find","vi","ret","keyCode","i","children","elem","showHover","call","clear","item","getContainer","getAction","indexOrElement","parentElement","childNodes","push","arg","actions","Array","isArray","actionViewItemElement","viewItemOptions","actionViewItemProvider","allowContextMenu","set","insertBefore","splice","isEmpty","clearAndDisposeAll","selectFirst","findIndex","updateFocus","forceLoop","startIndex","preventLoopNavigation","focusOnlyEnabledItems","fromRight","preventScroll","forceFocus","actionViewItem","focusItem","MAX_MESSAGE_LENGTH","ariaContainer","alertContainer","alertContainer2","statusContainer","statusContainer2","setARIAContainer","parent","createAlertContainer","createStatusContainer","alert","msg","insertMessage","status","target","substr","style","visibility","Button","onDidClick","_onDidClick","_label","_onDidEscape","_element","secondary","background","buttonSecondaryBackground","buttonBackground","foreground","buttonSecondaryForeground","buttonForeground","color","backgroundColor","supportShortLabel","_labelShortElement","_labelElement","setTitle","eventType","contains","updateBackground","getContentElements","content","elements","segment","trim","node","hover","buttonSecondaryHoverBackground","buttonHoverBackground","value","labelElement","rendered","inline","root","querySelector","innerHTML","sanitized","ADD_TAGS","ALLOWED_ATTR","RETURN_TRUSTED_TYPE","supportIcons","String","_hover","LayoutAnchorMode","layout","viewportSize","viewSize","anchor","layoutAfterAnchorBoundary","mode","ALIGN","offset","size","layoutBeforeAnchorBoundary","position","Math","max","ContextView","domPosition","useFixedPosition","useShadowDOM","delegate","toDisposeOnClean","toDisposeOnSetContainer","shadowRoot","shadowRootHostElement","view","setContainer","usedShadowDOM","removeChild","attachShadow","SHADOW_ROOT_CSS","BUBBLE_UP_EVENTS","onDOMEvent","BUBBLE_DOWN_EVENTS","show","isVisible","hide","top","left","zIndex","layer","doLayout","getViewElement","canRelayout","getAnchor","around","elementPosition","zoom","width","height","obj","x","y","isAnchor","posy","posx","viewSizeWidth","viewSizeHeight","anchorPosition","anchorAlignment","anchorAxisAlignment","activeWindow","verticalAnchor","pageYOffset","horizontalAnchor","innerHeight","start","end","AVOID","innerWidth","containerPosition","data","onHide","onCapture","activeElement","CountBadge","count","$","countFormat","titleFormat","setCount","setTitleFormat","badgeBackground","badgeForeground","badgeBorder","border","BaseDropdown","_onDidChangeVisibility","onDidChangeVisibility","labelRenderer","detail","visible","cleanupFn","boxContainer","contents","DropdownMenu","_options","_actions","menuOptions","_menuOptions","actionProvider","getActions","contextMenuProvider","showContextMenu","getActionsContext","getActionViewItem","getKeyBinding","getMenuClassName","menuClassName","domForShadowRoot","menuAsChild","skipTelemetry","DropdownMenuActionViewItem","menuActionsOrProvider","Object","create","actionItem","isActionsArray","el","classNames","filter","s","c","dropdownMenu","keybindingProvider","anchorAlignmentProvider","that","disabled","NLS_DEFAULT_LABEL","FindInput","fixFocusOnOptionClickEnabled","imeSessionInProgress","additionalTogglesDisposables","additionalToggles","_onDidOptionChange","onDidOptionChange","_onKeyDown","onKeyDown","_onMouseDown","onMouseDown","_onInput","_onKeyUp","_onCaseSensitiveKeyDown","onCaseSensitiveKeyDown","_onRegexKeyDown","onRegexKeyDown","_lastHighlightFindOptions","placeholder","validation","showCommonFindToggles","appendCaseSensitiveLabel","appendWholeWordsLabel","appendRegexLabel","history","flexibleHeight","flexibleWidth","flexibleMaxHeight","inputBox","validationOptions","showHistoryHint","inputBoxStyles","regex","appendTitle","isChecked","toggleStyles","onChange","viaKeyboard","validate","wholeWords","caseSensitive","indexes","onkeydown","indexOf","ownerDocument","newIndex","controls","display","append","setAdditionalToggles","inputElement","onkeyup","oninput","onmousedown","updateInputBoxPadding","collapsedFindWidget","enable","disable","setFocusInputOnOptionClick","setEnabled","toggles","currentToggle","controlsHidden","paddingRight","reduce","r","t","getValue","setValue","getCaseSensitive","setCaseSensitive","getWholeWords","setWholeWords","getRegex","setRegex","focusOnCaseSensitive","highlightFindOptions","showMessage","message","clearMessage","hideMessage","NLS_CASE_SENSITIVE_TOGGLE_LABEL","NLS_WHOLE_WORD_TOGGLE_LABEL","NLS_REGEX_TOGGLE_LABEL","CaseSensitiveToggle","opts","inputActiveOptionBorder","inputActiveOptionForeground","inputActiveOptionBackground","WholeWordsToggle","RegexToggle","NLS_PRESERVE_CASE_LABEL","PreserveCaseToggle","ReplaceInput","_showOptionButtons","cachedOptionsWidth","_onPreserveCaseKeyDown","onPreserveCaseKeyDown","appendPreserveCaseLabel","preserveCase","getPreserveCase","setPreserveCase","focusOnPreserve","newWidth","HighlightedLabel","text","highlights","didEverRender","escapeNewLines","pos","highlight","substring","extraClasses","total","extra","replace","match","baseHoverDelegate","hideHover","showAndFocusLastHover","triggerUpdatableHover","setBaseLayerHoverDelegate","getBaseLayerHoverDelegate","hoverDelegateFactory","delay","defaultHoverDelegateMouse","defaultHoverDelegateElement","setHoverDelegateFactory","hoverDelegateProvider","getDefaultHoverDelegate","placement","createInstantHoverDelegate","HoverWidget","containerDomNode","contentsDomNode","scrollbar","consumeMouseWheelIfScrollbarIsNeeded","getDomNode","onContentsChanged","scanDomNode","HoverAction","actionOptions","keybindingLabel","actionContainer","iconClass","ClickAction","KeyDownAction","getHoverAccessibleViewHint","shouldHaveHint","keyCodes","some","FastLabelNode","disposed","_textContent","_className","empty","_empty","marginLeft","IconLabel","customHovers","Map","creationOptions","labelContainer","nameContainer","supportHighlights","nameNode","LabelWithHighlights","Label","setLabel","description","labelClasses","containerClasses","italic","strikethrough","disabledCommand","existingIconNode","iconPath","iconNode","prepend","backgroundImage","join","setupHover","descriptionTitle","descriptionNode","getOrCreateDescriptionNode","descriptionMatches","labelEscapeNewLines","suffix","suffixNode","getOrCreateSuffixNode","htmlElement","previousCustomHover","get","delete","setupNativeHover","markdownNotSupportedFallback","hoverDisposable","disposable","values","suffixContainer","descriptionContainer","supportDescriptionHighlights","singleLabel","innerText","domId","l","separator","matches","labels","labelStart","map","labelRange","result","range","splitMatches","m","name","labelWithIconsRegex","RegExp","renderLabelWithIcons","textStart","textStop","exec","escaped","codicon","renderIcon"],"sourceRoot":""}