monaco-editor-core 0.55.0-dev-20251014 → 0.55.0-dev-20251016
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/nls.keys.json +1 -1
- package/esm/nls.messages.cs.js +9 -0
- package/esm/nls.messages.de.js +2 -2
- package/esm/nls.messages.es.js +2 -2
- package/esm/nls.messages.fr.js +2 -2
- package/esm/nls.messages.it.js +2 -2
- package/esm/nls.messages.ja.js +2 -2
- package/esm/nls.messages.js +1 -1
- package/esm/nls.messages.json +1 -1
- package/esm/nls.messages.ko.js +2 -2
- package/esm/nls.messages.pl.js +9 -0
- package/esm/nls.messages.pt-br.js +9 -0
- package/esm/nls.messages.ru.js +2 -2
- package/esm/nls.messages.tr.js +9 -0
- package/esm/nls.messages.zh-cn.js +2 -2
- package/esm/nls.messages.zh-tw.js +2 -2
- package/esm/nls.metadata.json +10 -0
- package/esm/vs/base/browser/canIUse.js +0 -1
- package/esm/vs/base/browser/canIUse.js.map +1 -1
- package/esm/vs/base/browser/domSanitize.js +31 -23
- package/esm/vs/base/browser/domSanitize.js.map +1 -1
- package/esm/vs/base/browser/dompurify/dompurify.js +188 -385
- package/esm/vs/base/browser/markdownRenderer.js +6 -1
- package/esm/vs/base/browser/markdownRenderer.js.map +1 -1
- package/esm/vs/base/browser/trustedTypes.js.map +1 -1
- package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/esm/vs/base/browser/ui/toggle/toggle.js +6 -0
- package/esm/vs/base/browser/ui/toggle/toggle.js.map +1 -1
- package/esm/vs/base/common/codiconsLibrary.js +1 -0
- package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
- package/esm/vs/base/common/objects.js +0 -1
- package/esm/vs/base/common/objects.js.map +1 -1
- package/esm/vs/editor/browser/controller/mouseTarget.js +2 -1
- package/esm/vs/editor/browser/controller/mouseTarget.js.map +1 -1
- package/esm/vs/editor/browser/coreCommands.js +4 -2
- package/esm/vs/editor/browser/coreCommands.js.map +1 -1
- package/esm/vs/editor/browser/services/abstractCodeEditorService.js +5 -0
- package/esm/vs/editor/browser/services/abstractCodeEditorService.js.map +1 -1
- package/esm/vs/editor/browser/services/codeEditorService.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/copySelection.js +104 -0
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/copySelection.js.map +1 -0
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js +3 -3
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js +25 -24
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/diffEditor.contribution.js +5 -5
- package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +7 -3
- package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js +7 -7
- package/esm/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +2 -2
- package/esm/vs/editor/browser/widget/diffEditor/features/revertButtonsFeature.js +2 -2
- package/esm/vs/editor/browser/widget/diffEditor/registrations.contribution.js +5 -5
- package/esm/vs/editor/browser/widget/diffEditor/style.css +11 -0
- package/esm/vs/editor/browser/widget/multiDiffEditor/colors.js +3 -3
- package/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js +2 -2
- package/esm/vs/editor/common/config/editorConfigurationSchema.js +54 -54
- package/esm/vs/editor/common/config/editorOptions.js +406 -406
- package/esm/vs/editor/common/core/editorColorRegistry.js +68 -68
- package/esm/vs/editor/common/cursor/cursorMoveCommands.js +10 -1
- package/esm/vs/editor/common/cursor/cursorMoveCommands.js.map +1 -1
- package/esm/vs/editor/common/editorContextKeys.js +46 -46
- package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
- package/esm/vs/editor/common/languages.js +56 -56
- package/esm/vs/editor/common/model/editStack.js +1 -1
- package/esm/vs/editor/common/standaloneStrings.js +10 -10
- package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
- package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
- package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +6 -6
- package/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
- package/esm/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
- package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +17 -17
- package/esm/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
- package/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
- package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
- package/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
- package/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
- package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
- package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +13 -14
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js.map +1 -1
- package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
- package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
- package/esm/vs/editor/contrib/find/browser/findController.js +16 -16
- package/esm/vs/editor/contrib/find/browser/findWidget.js +26 -26
- package/esm/vs/editor/contrib/folding/browser/folding.js +20 -20
- package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
- package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js.map +1 -1
- package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
- package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
- package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
- package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
- package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
- package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
- package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
- package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
- package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
- package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +9 -9
- package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
- package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
- package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +19 -19
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +12 -12
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +15 -10
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
- package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
- package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
- package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +47 -37
- package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js.map +1 -1
- package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
- package/esm/vs/editor/contrib/links/browser/links.js +10 -10
- package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
- package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
- package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
- package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +56 -10
- package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js.map +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
- package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
- package/esm/vs/editor/contrib/rename/browser/rename.js +11 -11
- package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
- package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
- package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
- package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +2 -2
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js.map +1 -1
- package/esm/vs/editor/contrib/suggest/browser/suggest.js +8 -8
- package/esm/vs/editor/contrib/suggest/browser/suggestController.js +10 -10
- package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
- package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
- package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
- package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
- package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
- package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
- package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
- package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +1 -1
- package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
- package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
- package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
- package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
- package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
- package/esm/vs/platform/actions/browser/toolbar.js +2 -2
- package/esm/vs/platform/actions/common/actions.js +0 -1
- package/esm/vs/platform/actions/common/actions.js.map +1 -1
- package/esm/vs/platform/actions/common/menuService.js +2 -2
- package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
- package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
- package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
- package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
- package/esm/vs/platform/contextkey/common/scanner.js +5 -5
- package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
- package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
- package/esm/vs/platform/list/browser/listService.js +27 -27
- package/esm/vs/platform/markers/common/markerService.js +2 -2
- package/esm/vs/platform/markers/common/markers.js +6 -6
- package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +7 -7
- package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
- package/esm/vs/platform/quickinput/browser/quickInput.js +10 -10
- package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
- package/esm/vs/platform/quickinput/browser/quickInputController.js +6 -6
- package/esm/vs/platform/quickinput/browser/quickInputList.js +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
- package/esm/vs/platform/quickinput/common/quickInput.js.map +1 -1
- package/esm/vs/platform/theme/common/colorUtils.js +2 -2
- package/esm/vs/platform/theme/common/colors/baseColors.js +17 -17
- package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
- package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
- package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
- package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
- package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
- package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
- package/esm/vs/platform/theme/common/colors/miscColors.js +15 -15
- package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
- package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
- package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
- package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
- package/esm/vs/platform/workspace/common/workspace.js +1 -1
- package/package.json +3 -3
- package/version.txt +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/browser/ui/toggle/toggle.ts","vs/base/browser/ui/toggle/toggle.ts"],"names":[],"mappings":"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","file":"toggle.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["\nimport { Codicon } from '../../../common/codicons.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { KeyCode } from '../../../common/keyCodes.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nimport { IKeyboardEvent } from '../../keyboardEvent.js';\nimport { IManagedHover } from '../hover/hover.js';\nimport { IHoverDelegate } from '../hover/hoverDelegate.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { Widget } from '../widget.js';\nimport './toggle.css';\n\nexport interface IToggleOpts extends IToggleStyles {\n\treadonly actionClassName?: string;\n\treadonly icon?: ThemeIcon;\n\treadonly title: string;\n\treadonly isChecked: boolean;\n\treadonly notFocusable?: boolean;\n\treadonly hoverDelegate?: IHoverDelegate;\n}\n\nexport interface IToggleStyles {\n\treadonly inputActiveOptionBorder: string | undefined;\n\treadonly inputActiveOptionForeground: string | undefined;\n\treadonly inputActiveOptionBackground: string | undefined;\n}\n\nexport interface ICheckboxStyles {\n\treadonly checkboxBackground: string | undefined;\n\treadonly checkboxBorder: string | undefined;\n\treadonly checkboxForeground: string | undefined;\n\treadonly checkboxDisabledBackground: string | undefined;\n\treadonly checkboxDisabledForeground: string | undefined;\n\treadonly size?: number;\n\treadonly hoverDelegate?: IHoverDelegate;\n}\n\nexport const unthemedToggleStyles = {\n\tinputActiveOptionBorder: '#007ACC00',\n\tinputActiveOptionForeground: '#FFFFFF',\n\tinputActiveOptionBackground: '#0E639C50'\n};\n\nexport class Toggle extends Widget {\n\n\tprivate readonly _onChange = this._register(new Emitter<boolean>());\n\tget onChange(): Event<boolean /* via keyboard */> { return this._onChange.event; }\n\n\tprivate readonly _onKeyDown = this._register(new Emitter<IKeyboardEvent>());\n\tget onKeyDown(): Event<IKeyboardEvent> { return this._onKeyDown.event; }\n\n\tprivate readonly _opts: IToggleOpts;\n\tprivate _icon: ThemeIcon | undefined;\n\treadonly domNode: HTMLElement;\n\n\tprivate _checked: boolean;\n\tprivate _hover: IManagedHover;\n\n\tconstructor(opts: IToggleOpts) {\n\t\tsuper();\n\n\t\tthis._opts = opts;\n\t\tthis._checked = this._opts.isChecked;\n\n\t\tconst classes = ['monaco-custom-toggle'];\n\t\tif (this._opts.icon) {\n\t\t\tthis._icon = this._opts.icon;\n\t\t\tclasses.push(...ThemeIcon.asClassNameArray(this._icon));\n\t\t}\n\t\tif (this._opts.actionClassName) {\n\t\t\tclasses.push(...this._opts.actionClassName.split(' '));\n\t\t}\n\t\tif (this._checked) {\n\t\t\tclasses.push('checked');\n\t\t}\n\n\t\tthis.domNode = document.createElement('div');\n\t\tthis._hover = this._register(getBaseLayerHoverDelegate().setupManagedHover(opts.hoverDelegate ?? getDefaultHoverDelegate('mouse'), this.domNode, this._opts.title));\n\t\tthis.domNode.classList.add(...classes);\n\t\tif (!this._opts.notFocusable) {\n\t\t\tthis.domNode.tabIndex = 0;\n\t\t}\n\t\tthis.domNode.setAttribute('role', 'checkbox');\n\t\tthis.domNode.setAttribute('aria-checked', String(this._checked));\n\t\tthis.domNode.setAttribute('aria-label', this._opts.title);\n\n\t\tthis.applyStyles();\n\n\t\tthis.onclick(this.domNode, (ev) => {\n\t\t\tif (this.enabled) {\n\t\t\t\tthis.checked = !this._checked;\n\t\t\t\tthis._onChange.fire(false);\n\t\t\t\tev.preventDefault();\n\t\t\t}\n\t\t});\n\n\t\tthis._register(this.ignoreGesture(this.domNode));\n\n\t\tthis.onkeydown(this.domNode, (keyboardEvent) => {\n\t\t\tif (!this.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (keyboardEvent.keyCode === KeyCode.Space || keyboardEvent.keyCode === KeyCode.Enter) {\n\t\t\t\tthis.checked = !this._checked;\n\t\t\t\tthis._onChange.fire(true);\n\t\t\t\tkeyboardEvent.preventDefault();\n\t\t\t\tkeyboardEvent.stopPropagation();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._onKeyDown.fire(keyboardEvent);\n\t\t});\n\t}\n\n\tget enabled(): boolean {\n\t\treturn this.domNode.getAttribute('aria-disabled') !== 'true';\n\t}\n\n\tfocus(): void {\n\t\tthis.domNode.focus();\n\t}\n\n\tget checked(): boolean {\n\t\treturn this._checked;\n\t}\n\n\tset checked(newIsChecked: boolean) {\n\t\tthis._checked = newIsChecked;\n\n\t\tthis.domNode.setAttribute('aria-checked', String(this._checked));\n\t\tthis.domNode.classList.toggle('checked', this._checked);\n\n\t\tthis.applyStyles();\n\t}\n\n\tsetIcon(icon: ThemeIcon | undefined): void {\n\t\tif (this._icon) {\n\t\t\tthis.domNode.classList.remove(...ThemeIcon.asClassNameArray(this._icon));\n\t\t}\n\t\tthis._icon = icon;\n\t\tif (this._icon) {\n\t\t\tthis.domNode.classList.add(...ThemeIcon.asClassNameArray(this._icon));\n\t\t}\n\t}\n\n\twidth(): number {\n\t\treturn 2 /*margin left*/ + 2 /*border*/ + 2 /*padding*/ + 16 /* icon width */;\n\t}\n\n\tprotected applyStyles(): void {\n\t\tif (this.domNode) {\n\t\t\tthis.domNode.style.borderColor = (this._checked && this._opts.inputActiveOptionBorder) || '';\n\t\t\tthis.domNode.style.color = (this._checked && this._opts.inputActiveOptionForeground) || 'inherit';\n\t\t\tthis.domNode.style.backgroundColor = (this._checked && this._opts.inputActiveOptionBackground) || '';\n\t\t}\n\t}\n\n\tenable(): void {\n\t\tthis.domNode.setAttribute('aria-disabled', String(false));\n\t\tthis.domNode.classList.remove('disabled');\n\t}\n\n\tdisable(): void {\n\t\tthis.domNode.setAttribute('aria-disabled', String(true));\n\t\tthis.domNode.classList.add('disabled');\n\t}\n\n\tsetTitle(newTitle: string): void {\n\t\tthis._hover.update(newTitle);\n\t\tthis.domNode.setAttribute('aria-label', newTitle);\n\t}\n}\n\n\nabstract class BaseCheckbox extends Widget {\n\tstatic readonly CLASS_NAME = 'monaco-checkbox';\n\n\tprotected readonly _onChange = this._register(new Emitter<boolean>());\n\treadonly onChange: Event<boolean /* via keyboard */> = this._onChange.event;\n\n\tconstructor(\n\t\tprotected readonly checkbox: Toggle,\n\t\treadonly domNode: HTMLElement,\n\t\tprotected readonly styles: ICheckboxStyles\n\t) {\n\t\tsuper();\n\n\t\tthis.applyStyles();\n\t}\n\n\tget enabled(): boolean {\n\t\treturn this.checkbox.enabled;\n\t}\n\n\tenable(): void {\n\t\tthis.checkbox.enable();\n\t\tthis.applyStyles(true);\n\t}\n\n\tdisable(): void {\n\t\tthis.checkbox.disable();\n\t\tthis.applyStyles(false);\n\t}\n\n\tsetTitle(newTitle: string): void {\n\t\tthis.checkbox.setTitle(newTitle);\n\t}\n\n\tprotected applyStyles(enabled = this.enabled): void {\n\t\tthis.domNode.style.color = (enabled ? this.styles.checkboxForeground : this.styles.checkboxDisabledForeground) || '';\n\t\tthis.domNode.style.backgroundColor = (enabled ? this.styles.checkboxBackground : this.styles.checkboxDisabledBackground) || '';\n\t\tthis.domNode.style.borderColor = (enabled ? this.styles.checkboxBorder : this.styles.checkboxDisabledBackground) || '';\n\n\t\tconst size = this.styles.size || 18;\n\t\tthis.domNode.style.width =\n\t\t\tthis.domNode.style.height =\n\t\t\tthis.domNode.style.fontSize = `${size}px`;\n\t\tthis.domNode.style.fontSize = `${size - 2}px`;\n\t}\n}\n\nexport class Checkbox extends BaseCheckbox {\n\tconstructor(title: string, isChecked: boolean, styles: ICheckboxStyles) {\n\t\tconst toggle = new Toggle({ title, isChecked, icon: Codicon.check, actionClassName: BaseCheckbox.CLASS_NAME, hoverDelegate: styles.hoverDelegate, ...unthemedToggleStyles });\n\t\tsuper(toggle, toggle.domNode, styles);\n\n\t\tthis._register(toggle);\n\t\tthis._register(this.checkbox.onChange(keyboard => {\n\t\t\tthis.applyStyles();\n\t\t\tthis._onChange.fire(keyboard);\n\t\t}));\n\t}\n\n\tget checked(): boolean {\n\t\treturn this.checkbox.checked;\n\t}\n\n\tset checked(newIsChecked: boolean) {\n\t\tthis.checkbox.checked = newIsChecked;\n\t\tthis.applyStyles();\n\t}\n\n\tprotected override applyStyles(enabled?: boolean): void {\n\t\tif (this.checkbox.checked) {\n\t\t\tthis.checkbox.setIcon(Codicon.check);\n\t\t} else {\n\t\t\tthis.checkbox.setIcon(undefined);\n\t\t}\n\t\tsuper.applyStyles(enabled);\n\t}\n}\n\nexport class TriStateCheckbox extends BaseCheckbox {\n\tconstructor(\n\t\ttitle: string,\n\t\tprivate _state: boolean | 'partial',\n\t\tstyles: ICheckboxStyles\n\t) {\n\t\tlet icon: ThemeIcon | undefined;\n\t\tswitch (_state) {\n\t\t\tcase true:\n\t\t\t\ticon = Codicon.check;\n\t\t\t\tbreak;\n\t\t\tcase 'partial':\n\t\t\t\ticon = Codicon.dash;\n\t\t\t\tbreak;\n\t\t\tcase false:\n\t\t\t\ticon = undefined;\n\t\t\t\tbreak;\n\t\t}\n\t\tconst checkbox = new Toggle({\n\t\t\ttitle,\n\t\t\tisChecked: _state === true,\n\t\t\ticon,\n\t\t\tactionClassName: Checkbox.CLASS_NAME,\n\t\t\thoverDelegate: styles.hoverDelegate,\n\t\t\t...unthemedToggleStyles\n\t\t});\n\t\tsuper(\n\t\t\tcheckbox,\n\t\t\tcheckbox.domNode,\n\t\t\tstyles\n\t\t);\n\n\t\tthis._register(checkbox);\n\t\tthis._register(this.checkbox.onChange(keyboard => {\n\t\t\tthis._state = this.checkbox.checked;\n\t\t\tthis.applyStyles();\n\t\t\tthis._onChange.fire(keyboard);\n\t\t}));\n\t}\n\n\tget checked(): boolean | 'partial' {\n\t\treturn this._state;\n\t}\n\n\tset checked(newState: boolean | 'partial') {\n\t\tif (this._state !== newState) {\n\t\t\tthis._state = newState;\n\t\t\tthis.checkbox.checked = newState === true;\n\t\t\tthis.applyStyles();\n\t\t}\n\t}\n\n\tprotected override applyStyles(enabled?: boolean): void {\n\t\tswitch (this._state) {\n\t\t\tcase true:\n\t\t\t\tthis.checkbox.setIcon(Codicon.check);\n\t\t\t\tbreak;\n\t\t\tcase 'partial':\n\t\t\t\tthis.checkbox.setIcon(Codicon.dash);\n\t\t\t\tbreak;\n\t\t\tcase false:\n\t\t\t\tthis.checkbox.setIcon(undefined);\n\t\t\t\tbreak;\n\t\t}\n\t\tsuper.applyStyles(enabled);\n\t}\n}\n","\nimport { Codicon } from '../../../common/codicons.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { KeyCode } from '../../../common/keyCodes.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nimport { IKeyboardEvent } from '../../keyboardEvent.js';\nimport { IManagedHover } from '../hover/hover.js';\nimport { IHoverDelegate } from '../hover/hoverDelegate.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { Widget } from '../widget.js';\nimport './toggle.css';\n\nexport interface IToggleOpts extends IToggleStyles {\n\treadonly actionClassName?: string;\n\treadonly icon?: ThemeIcon;\n\treadonly title: string;\n\treadonly isChecked: boolean;\n\treadonly notFocusable?: boolean;\n\treadonly hoverDelegate?: IHoverDelegate;\n}\n\nexport interface IToggleStyles {\n\treadonly inputActiveOptionBorder: string | undefined;\n\treadonly inputActiveOptionForeground: string | undefined;\n\treadonly inputActiveOptionBackground: string | undefined;\n}\n\nexport interface ICheckboxStyles {\n\treadonly checkboxBackground: string | undefined;\n\treadonly checkboxBorder: string | undefined;\n\treadonly checkboxForeground: string | undefined;\n\treadonly checkboxDisabledBackground: string | undefined;\n\treadonly checkboxDisabledForeground: string | undefined;\n\treadonly size?: number;\n\treadonly hoverDelegate?: IHoverDelegate;\n}\n\nexport const unthemedToggleStyles = {\n\tinputActiveOptionBorder: '#007ACC00',\n\tinputActiveOptionForeground: '#FFFFFF',\n\tinputActiveOptionBackground: '#0E639C50'\n};\n\nexport class Toggle extends Widget {\n\n\tprivate readonly _onChange = this._register(new Emitter<boolean>());\n\tget onChange(): Event<boolean /* via keyboard */> { return this._onChange.event; }\n\n\tprivate readonly _onKeyDown = this._register(new Emitter<IKeyboardEvent>());\n\tget onKeyDown(): Event<IKeyboardEvent> { return this._onKeyDown.event; }\n\n\tprivate readonly _opts: IToggleOpts;\n\tprivate _icon: ThemeIcon | undefined;\n\treadonly domNode: HTMLElement;\n\n\tprivate _checked: boolean;\n\tprivate _hover: IManagedHover;\n\n\tconstructor(opts: IToggleOpts) {\n\t\tsuper();\n\n\t\tthis._opts = opts;\n\t\tthis._checked = this._opts.isChecked;\n\n\t\tconst classes = ['monaco-custom-toggle'];\n\t\tif (this._opts.icon) {\n\t\t\tthis._icon = this._opts.icon;\n\t\t\tclasses.push(...ThemeIcon.asClassNameArray(this._icon));\n\t\t}\n\t\tif (this._opts.actionClassName) {\n\t\t\tclasses.push(...this._opts.actionClassName.split(' '));\n\t\t}\n\t\tif (this._checked) {\n\t\t\tclasses.push('checked');\n\t\t}\n\n\t\tthis.domNode = document.createElement('div');\n\t\tthis._hover = this._register(getBaseLayerHoverDelegate().setupManagedHover(opts.hoverDelegate ?? getDefaultHoverDelegate('mouse'), this.domNode, this._opts.title));\n\t\tthis.domNode.classList.add(...classes);\n\t\tif (!this._opts.notFocusable) {\n\t\t\tthis.domNode.tabIndex = 0;\n\t\t}\n\t\tthis.domNode.setAttribute('role', 'checkbox');\n\t\tthis.domNode.setAttribute('aria-checked', String(this._checked));\n\t\tthis.domNode.setAttribute('aria-label', this._opts.title);\n\n\t\tthis.applyStyles();\n\n\t\tthis.onclick(this.domNode, (ev) => {\n\t\t\tif (this.enabled) {\n\t\t\t\tthis.checked = !this._checked;\n\t\t\t\tthis._onChange.fire(false);\n\t\t\t\tev.preventDefault();\n\t\t\t}\n\t\t});\n\n\t\tthis._register(this.ignoreGesture(this.domNode));\n\n\t\tthis.onkeydown(this.domNode, (keyboardEvent) => {\n\t\t\tif (!this.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (keyboardEvent.keyCode === KeyCode.Space || keyboardEvent.keyCode === KeyCode.Enter) {\n\t\t\t\tthis.checked = !this._checked;\n\t\t\t\tthis._onChange.fire(true);\n\t\t\t\tkeyboardEvent.preventDefault();\n\t\t\t\tkeyboardEvent.stopPropagation();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._onKeyDown.fire(keyboardEvent);\n\t\t});\n\t}\n\n\tget enabled(): boolean {\n\t\treturn this.domNode.getAttribute('aria-disabled') !== 'true';\n\t}\n\n\tfocus(): void {\n\t\tthis.domNode.focus();\n\t}\n\n\tget checked(): boolean {\n\t\treturn this._checked;\n\t}\n\n\tset checked(newIsChecked: boolean) {\n\t\tthis._checked = newIsChecked;\n\n\t\tthis.domNode.setAttribute('aria-checked', String(this._checked));\n\t\tthis.domNode.classList.toggle('checked', this._checked);\n\n\t\tthis.applyStyles();\n\t}\n\n\tsetIcon(icon: ThemeIcon | undefined): void {\n\t\tif (this._icon) {\n\t\t\tthis.domNode.classList.remove(...ThemeIcon.asClassNameArray(this._icon));\n\t\t}\n\t\tthis._icon = icon;\n\t\tif (this._icon) {\n\t\t\tthis.domNode.classList.add(...ThemeIcon.asClassNameArray(this._icon));\n\t\t}\n\t}\n\n\twidth(): number {\n\t\treturn 2 /*margin left*/ + 2 /*border*/ + 2 /*padding*/ + 16 /* icon width */;\n\t}\n\n\tprotected applyStyles(): void {\n\t\tif (this.domNode) {\n\t\t\tthis.domNode.style.borderColor = (this._checked && this._opts.inputActiveOptionBorder) || '';\n\t\t\tthis.domNode.style.color = (this._checked && this._opts.inputActiveOptionForeground) || 'inherit';\n\t\t\tthis.domNode.style.backgroundColor = (this._checked && this._opts.inputActiveOptionBackground) || '';\n\t\t}\n\t}\n\n\tenable(): void {\n\t\tthis.domNode.setAttribute('aria-disabled', String(false));\n\t\tthis.domNode.classList.remove('disabled');\n\t}\n\n\tdisable(): void {\n\t\tthis.domNode.setAttribute('aria-disabled', String(true));\n\t\tthis.domNode.classList.add('disabled');\n\t}\n\n\tsetTitle(newTitle: string): void {\n\t\tthis._hover.update(newTitle);\n\t\tthis.domNode.setAttribute('aria-label', newTitle);\n\t}\n}\n\n\nabstract class BaseCheckbox extends Widget {\n\tstatic readonly CLASS_NAME = 'monaco-checkbox';\n\n\tprotected readonly _onChange = this._register(new Emitter<boolean>());\n\treadonly onChange: Event<boolean /* via keyboard */> = this._onChange.event;\n\n\tconstructor(\n\t\tprotected readonly checkbox: Toggle,\n\t\treadonly domNode: HTMLElement,\n\t\tprotected readonly styles: ICheckboxStyles\n\t) {\n\t\tsuper();\n\n\t\tthis.applyStyles();\n\t}\n\n\tget enabled(): boolean {\n\t\treturn this.checkbox.enabled;\n\t}\n\n\tenable(): void {\n\t\tthis.checkbox.enable();\n\t\tthis.applyStyles(true);\n\t}\n\n\tdisable(): void {\n\t\tthis.checkbox.disable();\n\t\tthis.applyStyles(false);\n\t}\n\n\tsetTitle(newTitle: string): void {\n\t\tthis.checkbox.setTitle(newTitle);\n\t}\n\n\tprotected applyStyles(enabled = this.enabled): void {\n\t\tthis.domNode.style.color = (enabled ? this.styles.checkboxForeground : this.styles.checkboxDisabledForeground) || '';\n\t\tthis.domNode.style.backgroundColor = (enabled ? this.styles.checkboxBackground : this.styles.checkboxDisabledBackground) || '';\n\t\tthis.domNode.style.borderColor = (enabled ? this.styles.checkboxBorder : this.styles.checkboxDisabledBackground) || '';\n\n\t\tconst size = this.styles.size || 18;\n\t\tthis.domNode.style.width =\n\t\t\tthis.domNode.style.height =\n\t\t\tthis.domNode.style.fontSize = `${size}px`;\n\t\tthis.domNode.style.fontSize = `${size - 2}px`;\n\t}\n}\n\nexport class Checkbox extends BaseCheckbox {\n\tconstructor(title: string, isChecked: boolean, styles: ICheckboxStyles) {\n\t\tconst toggle = new Toggle({ title, isChecked, icon: Codicon.check, actionClassName: BaseCheckbox.CLASS_NAME, hoverDelegate: styles.hoverDelegate, ...unthemedToggleStyles });\n\t\tsuper(toggle, toggle.domNode, styles);\n\n\t\tthis._register(toggle);\n\t\tthis._register(this.checkbox.onChange(keyboard => {\n\t\t\tthis.applyStyles();\n\t\t\tthis._onChange.fire(keyboard);\n\t\t}));\n\t}\n\n\tget checked(): boolean {\n\t\treturn this.checkbox.checked;\n\t}\n\n\tset checked(newIsChecked: boolean) {\n\t\tthis.checkbox.checked = newIsChecked;\n\t\tthis.applyStyles();\n\t}\n\n\tprotected override applyStyles(enabled?: boolean): void {\n\t\tif (this.checkbox.checked) {\n\t\t\tthis.checkbox.setIcon(Codicon.check);\n\t\t} else {\n\t\t\tthis.checkbox.setIcon(undefined);\n\t\t}\n\t\tsuper.applyStyles(enabled);\n\t}\n}\n\nexport class TriStateCheckbox extends BaseCheckbox {\n\tconstructor(\n\t\ttitle: string,\n\t\tprivate _state: boolean | 'partial',\n\t\tstyles: ICheckboxStyles\n\t) {\n\t\tlet icon: ThemeIcon | undefined;\n\t\tswitch (_state) {\n\t\t\tcase true:\n\t\t\t\ticon = Codicon.check;\n\t\t\t\tbreak;\n\t\t\tcase 'partial':\n\t\t\t\ticon = Codicon.dash;\n\t\t\t\tbreak;\n\t\t\tcase false:\n\t\t\t\ticon = undefined;\n\t\t\t\tbreak;\n\t\t}\n\t\tconst checkbox = new Toggle({\n\t\t\ttitle,\n\t\t\tisChecked: _state === true,\n\t\t\ticon,\n\t\t\tactionClassName: Checkbox.CLASS_NAME,\n\t\t\thoverDelegate: styles.hoverDelegate,\n\t\t\t...unthemedToggleStyles\n\t\t});\n\t\tsuper(\n\t\t\tcheckbox,\n\t\t\tcheckbox.domNode,\n\t\t\tstyles\n\t\t);\n\n\t\tthis._register(checkbox);\n\t\tthis._register(this.checkbox.onChange(keyboard => {\n\t\t\tthis._state = this.checkbox.checked;\n\t\t\tthis.applyStyles();\n\t\t\tthis._onChange.fire(keyboard);\n\t\t}));\n\t}\n\n\tget checked(): boolean | 'partial' {\n\t\treturn this._state;\n\t}\n\n\tset checked(newState: boolean | 'partial') {\n\t\tif (this._state !== newState) {\n\t\t\tthis._state = newState;\n\t\t\tthis.checkbox.checked = newState === true;\n\t\t\tthis.applyStyles();\n\t\t}\n\t}\n\n\tprotected override applyStyles(enabled?: boolean): void {\n\t\tswitch (this._state) {\n\t\t\tcase true:\n\t\t\t\tthis.checkbox.setIcon(Codicon.check);\n\t\t\t\tbreak;\n\t\t\tcase 'partial':\n\t\t\t\tthis.checkbox.setIcon(Codicon.dash);\n\t\t\t\tbreak;\n\t\t\tcase false:\n\t\t\t\tthis.checkbox.setIcon(undefined);\n\t\t\t\tbreak;\n\t\t}\n\t\tsuper.applyStyles(enabled);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/browser/ui/toggle/toggle.ts","vs/base/browser/ui/toggle/toggle.ts"],"names":[],"mappings":"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","file":"toggle.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["\nimport { Codicon } from '../../../common/codicons.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { KeyCode } from '../../../common/keyCodes.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nimport { IKeyboardEvent } from '../../keyboardEvent.js';\nimport { IManagedHover } from '../hover/hover.js';\nimport { IHoverDelegate } from '../hover/hoverDelegate.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { Widget } from '../widget.js';\nimport './toggle.css';\n\nexport interface IToggleOpts extends IToggleStyles {\n\treadonly actionClassName?: string;\n\treadonly icon?: ThemeIcon;\n\treadonly title: string;\n\treadonly isChecked: boolean;\n\treadonly notFocusable?: boolean;\n\treadonly hoverDelegate?: IHoverDelegate;\n}\n\nexport interface IToggleStyles {\n\treadonly inputActiveOptionBorder: string | undefined;\n\treadonly inputActiveOptionForeground: string | undefined;\n\treadonly inputActiveOptionBackground: string | undefined;\n}\n\nexport interface ICheckboxStyles {\n\treadonly checkboxBackground: string | undefined;\n\treadonly checkboxBorder: string | undefined;\n\treadonly checkboxForeground: string | undefined;\n\treadonly checkboxDisabledBackground: string | undefined;\n\treadonly checkboxDisabledForeground: string | undefined;\n\treadonly size?: number;\n\treadonly hoverDelegate?: IHoverDelegate;\n}\n\nexport const unthemedToggleStyles = {\n\tinputActiveOptionBorder: '#007ACC00',\n\tinputActiveOptionForeground: '#FFFFFF',\n\tinputActiveOptionBackground: '#0E639C50'\n};\n\nexport class Toggle extends Widget {\n\n\tprivate readonly _onChange = this._register(new Emitter<boolean>());\n\tget onChange(): Event<boolean /* via keyboard */> { return this._onChange.event; }\n\n\tprivate readonly _onKeyDown = this._register(new Emitter<IKeyboardEvent>());\n\tget onKeyDown(): Event<IKeyboardEvent> { return this._onKeyDown.event; }\n\n\tprivate readonly _opts: IToggleOpts;\n\tprivate _icon: ThemeIcon | undefined;\n\treadonly domNode: HTMLElement;\n\n\tprivate _checked: boolean;\n\tprivate _hover: IManagedHover;\n\n\tconstructor(opts: IToggleOpts) {\n\t\tsuper();\n\n\t\tthis._opts = opts;\n\t\tthis._checked = this._opts.isChecked;\n\n\t\tconst classes = ['monaco-custom-toggle'];\n\t\tif (this._opts.icon) {\n\t\t\tthis._icon = this._opts.icon;\n\t\t\tclasses.push(...ThemeIcon.asClassNameArray(this._icon));\n\t\t}\n\t\tif (this._opts.actionClassName) {\n\t\t\tclasses.push(...this._opts.actionClassName.split(' '));\n\t\t}\n\t\tif (this._checked) {\n\t\t\tclasses.push('checked');\n\t\t}\n\n\t\tthis.domNode = document.createElement('div');\n\t\tthis._hover = this._register(getBaseLayerHoverDelegate().setupManagedHover(opts.hoverDelegate ?? getDefaultHoverDelegate('mouse'), this.domNode, this._opts.title));\n\t\tthis.domNode.classList.add(...classes);\n\t\tif (!this._opts.notFocusable) {\n\t\t\tthis.domNode.tabIndex = 0;\n\t\t}\n\t\tthis.domNode.setAttribute('role', 'checkbox');\n\t\tthis.domNode.setAttribute('aria-checked', String(this._checked));\n\t\tthis.domNode.setAttribute('aria-label', this._opts.title);\n\n\t\tthis.applyStyles();\n\n\t\tthis.onclick(this.domNode, (ev) => {\n\t\t\tif (this.enabled) {\n\t\t\t\tthis.checked = !this._checked;\n\t\t\t\tthis._onChange.fire(false);\n\t\t\t\tev.preventDefault();\n\t\t\t}\n\t\t});\n\n\t\tthis._register(this.ignoreGesture(this.domNode));\n\n\t\tthis.onkeydown(this.domNode, (keyboardEvent) => {\n\t\t\tif (!this.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (keyboardEvent.keyCode === KeyCode.Space || keyboardEvent.keyCode === KeyCode.Enter) {\n\t\t\t\tthis.checked = !this._checked;\n\t\t\t\tthis._onChange.fire(true);\n\t\t\t\tkeyboardEvent.preventDefault();\n\t\t\t\tkeyboardEvent.stopPropagation();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._onKeyDown.fire(keyboardEvent);\n\t\t});\n\t}\n\n\tget enabled(): boolean {\n\t\treturn this.domNode.getAttribute('aria-disabled') !== 'true';\n\t}\n\n\tfocus(): void {\n\t\tthis.domNode.focus();\n\t}\n\n\tget checked(): boolean {\n\t\treturn this._checked;\n\t}\n\n\tset checked(newIsChecked: boolean) {\n\t\tthis._checked = newIsChecked;\n\n\t\tthis.domNode.setAttribute('aria-checked', String(this._checked));\n\t\tthis.domNode.classList.toggle('checked', this._checked);\n\n\t\tthis.applyStyles();\n\t}\n\n\tsetIcon(icon: ThemeIcon | undefined): void {\n\t\tif (this._icon) {\n\t\t\tthis.domNode.classList.remove(...ThemeIcon.asClassNameArray(this._icon));\n\t\t}\n\t\tthis._icon = icon;\n\t\tif (this._icon) {\n\t\t\tthis.domNode.classList.add(...ThemeIcon.asClassNameArray(this._icon));\n\t\t}\n\t}\n\n\twidth(): number {\n\t\treturn 2 /*margin left*/ + 2 /*border*/ + 2 /*padding*/ + 16 /* icon width */;\n\t}\n\n\tprotected applyStyles(): void {\n\t\tif (this.domNode) {\n\t\t\tthis.domNode.style.borderColor = (this._checked && this._opts.inputActiveOptionBorder) || '';\n\t\t\tthis.domNode.style.color = (this._checked && this._opts.inputActiveOptionForeground) || 'inherit';\n\t\t\tthis.domNode.style.backgroundColor = (this._checked && this._opts.inputActiveOptionBackground) || '';\n\t\t}\n\t}\n\n\tenable(): void {\n\t\tthis.domNode.setAttribute('aria-disabled', String(false));\n\t\tthis.domNode.classList.remove('disabled');\n\t}\n\n\tdisable(): void {\n\t\tthis.domNode.setAttribute('aria-disabled', String(true));\n\t\tthis.domNode.classList.add('disabled');\n\t}\n\n\tsetTitle(newTitle: string): void {\n\t\tthis._hover.update(newTitle);\n\t\tthis.domNode.setAttribute('aria-label', newTitle);\n\t}\n\n\tset visible(visible: boolean) {\n\t\tthis.domNode.style.display = visible ? '' : 'none';\n\t}\n\n\tget visible() {\n\t\treturn this.domNode.style.display !== 'none';\n\t}\n}\n\n\nabstract class BaseCheckbox extends Widget {\n\tstatic readonly CLASS_NAME = 'monaco-checkbox';\n\n\tprotected readonly _onChange = this._register(new Emitter<boolean>());\n\treadonly onChange: Event<boolean /* via keyboard */> = this._onChange.event;\n\n\tconstructor(\n\t\tprotected readonly checkbox: Toggle,\n\t\treadonly domNode: HTMLElement,\n\t\tprotected readonly styles: ICheckboxStyles\n\t) {\n\t\tsuper();\n\n\t\tthis.applyStyles();\n\t}\n\n\tget enabled(): boolean {\n\t\treturn this.checkbox.enabled;\n\t}\n\n\tenable(): void {\n\t\tthis.checkbox.enable();\n\t\tthis.applyStyles(true);\n\t}\n\n\tdisable(): void {\n\t\tthis.checkbox.disable();\n\t\tthis.applyStyles(false);\n\t}\n\n\tsetTitle(newTitle: string): void {\n\t\tthis.checkbox.setTitle(newTitle);\n\t}\n\n\tprotected applyStyles(enabled = this.enabled): void {\n\t\tthis.domNode.style.color = (enabled ? this.styles.checkboxForeground : this.styles.checkboxDisabledForeground) || '';\n\t\tthis.domNode.style.backgroundColor = (enabled ? this.styles.checkboxBackground : this.styles.checkboxDisabledBackground) || '';\n\t\tthis.domNode.style.borderColor = (enabled ? this.styles.checkboxBorder : this.styles.checkboxDisabledBackground) || '';\n\n\t\tconst size = this.styles.size || 18;\n\t\tthis.domNode.style.width =\n\t\t\tthis.domNode.style.height =\n\t\t\tthis.domNode.style.fontSize = `${size}px`;\n\t\tthis.domNode.style.fontSize = `${size - 2}px`;\n\t}\n}\n\nexport class Checkbox extends BaseCheckbox {\n\tconstructor(title: string, isChecked: boolean, styles: ICheckboxStyles) {\n\t\tconst toggle = new Toggle({ title, isChecked, icon: Codicon.check, actionClassName: BaseCheckbox.CLASS_NAME, hoverDelegate: styles.hoverDelegate, ...unthemedToggleStyles });\n\t\tsuper(toggle, toggle.domNode, styles);\n\n\t\tthis._register(toggle);\n\t\tthis._register(this.checkbox.onChange(keyboard => {\n\t\t\tthis.applyStyles();\n\t\t\tthis._onChange.fire(keyboard);\n\t\t}));\n\t}\n\n\tget checked(): boolean {\n\t\treturn this.checkbox.checked;\n\t}\n\n\tset checked(newIsChecked: boolean) {\n\t\tthis.checkbox.checked = newIsChecked;\n\t\tthis.applyStyles();\n\t}\n\n\tprotected override applyStyles(enabled?: boolean): void {\n\t\tif (this.checkbox.checked) {\n\t\t\tthis.checkbox.setIcon(Codicon.check);\n\t\t} else {\n\t\t\tthis.checkbox.setIcon(undefined);\n\t\t}\n\t\tsuper.applyStyles(enabled);\n\t}\n}\n\nexport class TriStateCheckbox extends BaseCheckbox {\n\tconstructor(\n\t\ttitle: string,\n\t\tprivate _state: boolean | 'partial',\n\t\tstyles: ICheckboxStyles\n\t) {\n\t\tlet icon: ThemeIcon | undefined;\n\t\tswitch (_state) {\n\t\t\tcase true:\n\t\t\t\ticon = Codicon.check;\n\t\t\t\tbreak;\n\t\t\tcase 'partial':\n\t\t\t\ticon = Codicon.dash;\n\t\t\t\tbreak;\n\t\t\tcase false:\n\t\t\t\ticon = undefined;\n\t\t\t\tbreak;\n\t\t}\n\t\tconst checkbox = new Toggle({\n\t\t\ttitle,\n\t\t\tisChecked: _state === true,\n\t\t\ticon,\n\t\t\tactionClassName: Checkbox.CLASS_NAME,\n\t\t\thoverDelegate: styles.hoverDelegate,\n\t\t\t...unthemedToggleStyles\n\t\t});\n\t\tsuper(\n\t\t\tcheckbox,\n\t\t\tcheckbox.domNode,\n\t\t\tstyles\n\t\t);\n\n\t\tthis._register(checkbox);\n\t\tthis._register(this.checkbox.onChange(keyboard => {\n\t\t\tthis._state = this.checkbox.checked;\n\t\t\tthis.applyStyles();\n\t\t\tthis._onChange.fire(keyboard);\n\t\t}));\n\t}\n\n\tget checked(): boolean | 'partial' {\n\t\treturn this._state;\n\t}\n\n\tset checked(newState: boolean | 'partial') {\n\t\tif (this._state !== newState) {\n\t\t\tthis._state = newState;\n\t\t\tthis.checkbox.checked = newState === true;\n\t\t\tthis.applyStyles();\n\t\t}\n\t}\n\n\tprotected override applyStyles(enabled?: boolean): void {\n\t\tswitch (this._state) {\n\t\t\tcase true:\n\t\t\t\tthis.checkbox.setIcon(Codicon.check);\n\t\t\t\tbreak;\n\t\t\tcase 'partial':\n\t\t\t\tthis.checkbox.setIcon(Codicon.dash);\n\t\t\t\tbreak;\n\t\t\tcase false:\n\t\t\t\tthis.checkbox.setIcon(undefined);\n\t\t\t\tbreak;\n\t\t}\n\t\tsuper.applyStyles(enabled);\n\t}\n}\n","\nimport { Codicon } from '../../../common/codicons.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { KeyCode } from '../../../common/keyCodes.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nimport { IKeyboardEvent } from '../../keyboardEvent.js';\nimport { IManagedHover } from '../hover/hover.js';\nimport { IHoverDelegate } from '../hover/hoverDelegate.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { Widget } from '../widget.js';\nimport './toggle.css';\n\nexport interface IToggleOpts extends IToggleStyles {\n\treadonly actionClassName?: string;\n\treadonly icon?: ThemeIcon;\n\treadonly title: string;\n\treadonly isChecked: boolean;\n\treadonly notFocusable?: boolean;\n\treadonly hoverDelegate?: IHoverDelegate;\n}\n\nexport interface IToggleStyles {\n\treadonly inputActiveOptionBorder: string | undefined;\n\treadonly inputActiveOptionForeground: string | undefined;\n\treadonly inputActiveOptionBackground: string | undefined;\n}\n\nexport interface ICheckboxStyles {\n\treadonly checkboxBackground: string | undefined;\n\treadonly checkboxBorder: string | undefined;\n\treadonly checkboxForeground: string | undefined;\n\treadonly checkboxDisabledBackground: string | undefined;\n\treadonly checkboxDisabledForeground: string | undefined;\n\treadonly size?: number;\n\treadonly hoverDelegate?: IHoverDelegate;\n}\n\nexport const unthemedToggleStyles = {\n\tinputActiveOptionBorder: '#007ACC00',\n\tinputActiveOptionForeground: '#FFFFFF',\n\tinputActiveOptionBackground: '#0E639C50'\n};\n\nexport class Toggle extends Widget {\n\n\tprivate readonly _onChange = this._register(new Emitter<boolean>());\n\tget onChange(): Event<boolean /* via keyboard */> { return this._onChange.event; }\n\n\tprivate readonly _onKeyDown = this._register(new Emitter<IKeyboardEvent>());\n\tget onKeyDown(): Event<IKeyboardEvent> { return this._onKeyDown.event; }\n\n\tprivate readonly _opts: IToggleOpts;\n\tprivate _icon: ThemeIcon | undefined;\n\treadonly domNode: HTMLElement;\n\n\tprivate _checked: boolean;\n\tprivate _hover: IManagedHover;\n\n\tconstructor(opts: IToggleOpts) {\n\t\tsuper();\n\n\t\tthis._opts = opts;\n\t\tthis._checked = this._opts.isChecked;\n\n\t\tconst classes = ['monaco-custom-toggle'];\n\t\tif (this._opts.icon) {\n\t\t\tthis._icon = this._opts.icon;\n\t\t\tclasses.push(...ThemeIcon.asClassNameArray(this._icon));\n\t\t}\n\t\tif (this._opts.actionClassName) {\n\t\t\tclasses.push(...this._opts.actionClassName.split(' '));\n\t\t}\n\t\tif (this._checked) {\n\t\t\tclasses.push('checked');\n\t\t}\n\n\t\tthis.domNode = document.createElement('div');\n\t\tthis._hover = this._register(getBaseLayerHoverDelegate().setupManagedHover(opts.hoverDelegate ?? getDefaultHoverDelegate('mouse'), this.domNode, this._opts.title));\n\t\tthis.domNode.classList.add(...classes);\n\t\tif (!this._opts.notFocusable) {\n\t\t\tthis.domNode.tabIndex = 0;\n\t\t}\n\t\tthis.domNode.setAttribute('role', 'checkbox');\n\t\tthis.domNode.setAttribute('aria-checked', String(this._checked));\n\t\tthis.domNode.setAttribute('aria-label', this._opts.title);\n\n\t\tthis.applyStyles();\n\n\t\tthis.onclick(this.domNode, (ev) => {\n\t\t\tif (this.enabled) {\n\t\t\t\tthis.checked = !this._checked;\n\t\t\t\tthis._onChange.fire(false);\n\t\t\t\tev.preventDefault();\n\t\t\t}\n\t\t});\n\n\t\tthis._register(this.ignoreGesture(this.domNode));\n\n\t\tthis.onkeydown(this.domNode, (keyboardEvent) => {\n\t\t\tif (!this.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (keyboardEvent.keyCode === KeyCode.Space || keyboardEvent.keyCode === KeyCode.Enter) {\n\t\t\t\tthis.checked = !this._checked;\n\t\t\t\tthis._onChange.fire(true);\n\t\t\t\tkeyboardEvent.preventDefault();\n\t\t\t\tkeyboardEvent.stopPropagation();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._onKeyDown.fire(keyboardEvent);\n\t\t});\n\t}\n\n\tget enabled(): boolean {\n\t\treturn this.domNode.getAttribute('aria-disabled') !== 'true';\n\t}\n\n\tfocus(): void {\n\t\tthis.domNode.focus();\n\t}\n\n\tget checked(): boolean {\n\t\treturn this._checked;\n\t}\n\n\tset checked(newIsChecked: boolean) {\n\t\tthis._checked = newIsChecked;\n\n\t\tthis.domNode.setAttribute('aria-checked', String(this._checked));\n\t\tthis.domNode.classList.toggle('checked', this._checked);\n\n\t\tthis.applyStyles();\n\t}\n\n\tsetIcon(icon: ThemeIcon | undefined): void {\n\t\tif (this._icon) {\n\t\t\tthis.domNode.classList.remove(...ThemeIcon.asClassNameArray(this._icon));\n\t\t}\n\t\tthis._icon = icon;\n\t\tif (this._icon) {\n\t\t\tthis.domNode.classList.add(...ThemeIcon.asClassNameArray(this._icon));\n\t\t}\n\t}\n\n\twidth(): number {\n\t\treturn 2 /*margin left*/ + 2 /*border*/ + 2 /*padding*/ + 16 /* icon width */;\n\t}\n\n\tprotected applyStyles(): void {\n\t\tif (this.domNode) {\n\t\t\tthis.domNode.style.borderColor = (this._checked && this._opts.inputActiveOptionBorder) || '';\n\t\t\tthis.domNode.style.color = (this._checked && this._opts.inputActiveOptionForeground) || 'inherit';\n\t\t\tthis.domNode.style.backgroundColor = (this._checked && this._opts.inputActiveOptionBackground) || '';\n\t\t}\n\t}\n\n\tenable(): void {\n\t\tthis.domNode.setAttribute('aria-disabled', String(false));\n\t\tthis.domNode.classList.remove('disabled');\n\t}\n\n\tdisable(): void {\n\t\tthis.domNode.setAttribute('aria-disabled', String(true));\n\t\tthis.domNode.classList.add('disabled');\n\t}\n\n\tsetTitle(newTitle: string): void {\n\t\tthis._hover.update(newTitle);\n\t\tthis.domNode.setAttribute('aria-label', newTitle);\n\t}\n\n\tset visible(visible: boolean) {\n\t\tthis.domNode.style.display = visible ? '' : 'none';\n\t}\n\n\tget visible() {\n\t\treturn this.domNode.style.display !== 'none';\n\t}\n}\n\n\nabstract class BaseCheckbox extends Widget {\n\tstatic readonly CLASS_NAME = 'monaco-checkbox';\n\n\tprotected readonly _onChange = this._register(new Emitter<boolean>());\n\treadonly onChange: Event<boolean /* via keyboard */> = this._onChange.event;\n\n\tconstructor(\n\t\tprotected readonly checkbox: Toggle,\n\t\treadonly domNode: HTMLElement,\n\t\tprotected readonly styles: ICheckboxStyles\n\t) {\n\t\tsuper();\n\n\t\tthis.applyStyles();\n\t}\n\n\tget enabled(): boolean {\n\t\treturn this.checkbox.enabled;\n\t}\n\n\tenable(): void {\n\t\tthis.checkbox.enable();\n\t\tthis.applyStyles(true);\n\t}\n\n\tdisable(): void {\n\t\tthis.checkbox.disable();\n\t\tthis.applyStyles(false);\n\t}\n\n\tsetTitle(newTitle: string): void {\n\t\tthis.checkbox.setTitle(newTitle);\n\t}\n\n\tprotected applyStyles(enabled = this.enabled): void {\n\t\tthis.domNode.style.color = (enabled ? this.styles.checkboxForeground : this.styles.checkboxDisabledForeground) || '';\n\t\tthis.domNode.style.backgroundColor = (enabled ? this.styles.checkboxBackground : this.styles.checkboxDisabledBackground) || '';\n\t\tthis.domNode.style.borderColor = (enabled ? this.styles.checkboxBorder : this.styles.checkboxDisabledBackground) || '';\n\n\t\tconst size = this.styles.size || 18;\n\t\tthis.domNode.style.width =\n\t\t\tthis.domNode.style.height =\n\t\t\tthis.domNode.style.fontSize = `${size}px`;\n\t\tthis.domNode.style.fontSize = `${size - 2}px`;\n\t}\n}\n\nexport class Checkbox extends BaseCheckbox {\n\tconstructor(title: string, isChecked: boolean, styles: ICheckboxStyles) {\n\t\tconst toggle = new Toggle({ title, isChecked, icon: Codicon.check, actionClassName: BaseCheckbox.CLASS_NAME, hoverDelegate: styles.hoverDelegate, ...unthemedToggleStyles });\n\t\tsuper(toggle, toggle.domNode, styles);\n\n\t\tthis._register(toggle);\n\t\tthis._register(this.checkbox.onChange(keyboard => {\n\t\t\tthis.applyStyles();\n\t\t\tthis._onChange.fire(keyboard);\n\t\t}));\n\t}\n\n\tget checked(): boolean {\n\t\treturn this.checkbox.checked;\n\t}\n\n\tset checked(newIsChecked: boolean) {\n\t\tthis.checkbox.checked = newIsChecked;\n\t\tthis.applyStyles();\n\t}\n\n\tprotected override applyStyles(enabled?: boolean): void {\n\t\tif (this.checkbox.checked) {\n\t\t\tthis.checkbox.setIcon(Codicon.check);\n\t\t} else {\n\t\t\tthis.checkbox.setIcon(undefined);\n\t\t}\n\t\tsuper.applyStyles(enabled);\n\t}\n}\n\nexport class TriStateCheckbox extends BaseCheckbox {\n\tconstructor(\n\t\ttitle: string,\n\t\tprivate _state: boolean | 'partial',\n\t\tstyles: ICheckboxStyles\n\t) {\n\t\tlet icon: ThemeIcon | undefined;\n\t\tswitch (_state) {\n\t\t\tcase true:\n\t\t\t\ticon = Codicon.check;\n\t\t\t\tbreak;\n\t\t\tcase 'partial':\n\t\t\t\ticon = Codicon.dash;\n\t\t\t\tbreak;\n\t\t\tcase false:\n\t\t\t\ticon = undefined;\n\t\t\t\tbreak;\n\t\t}\n\t\tconst checkbox = new Toggle({\n\t\t\ttitle,\n\t\t\tisChecked: _state === true,\n\t\t\ticon,\n\t\t\tactionClassName: Checkbox.CLASS_NAME,\n\t\t\thoverDelegate: styles.hoverDelegate,\n\t\t\t...unthemedToggleStyles\n\t\t});\n\t\tsuper(\n\t\t\tcheckbox,\n\t\t\tcheckbox.domNode,\n\t\t\tstyles\n\t\t);\n\n\t\tthis._register(checkbox);\n\t\tthis._register(this.checkbox.onChange(keyboard => {\n\t\t\tthis._state = this.checkbox.checked;\n\t\t\tthis.applyStyles();\n\t\t\tthis._onChange.fire(keyboard);\n\t\t}));\n\t}\n\n\tget checked(): boolean | 'partial' {\n\t\treturn this._state;\n\t}\n\n\tset checked(newState: boolean | 'partial') {\n\t\tif (this._state !== newState) {\n\t\t\tthis._state = newState;\n\t\t\tthis.checkbox.checked = newState === true;\n\t\t\tthis.applyStyles();\n\t\t}\n\t}\n\n\tprotected override applyStyles(enabled?: boolean): void {\n\t\tswitch (this._state) {\n\t\t\tcase true:\n\t\t\t\tthis.checkbox.setIcon(Codicon.check);\n\t\t\t\tbreak;\n\t\t\tcase 'partial':\n\t\t\t\tthis.checkbox.setIcon(Codicon.dash);\n\t\t\t\tbreak;\n\t\t\tcase false:\n\t\t\t\tthis.checkbox.setIcon(undefined);\n\t\t\t\tbreak;\n\t\t}\n\t\tsuper.applyStyles(enabled);\n\t}\n}\n"]}
|
|
@@ -622,5 +622,6 @@ export const codiconsLibrary = {
|
|
|
622
622
|
quotes: register('quotes', 0xec60),
|
|
623
623
|
rename: register('rename', 0xec61),
|
|
624
624
|
runWithDeps: register('run-with-deps', 0xec62),
|
|
625
|
+
debugConnected: register('debug-connected', 0xec63),
|
|
625
626
|
};
|
|
626
627
|
//# sourceMappingURL=codiconsLibrary.js.map
|